万户oa并没有直接获取域控的GUID,所以无法直接修改,需要同步一次后得到oa中新guid在使用。

1、  生产机:发布公告晚上7点后停止OA服务

2、  生产机:备份OA数据库

3、  生产机:备份并修改OA配置文件 whconfig.xml断开老域控,连接新域控,服务不启动。

<!--AD域 -->
    <LdapConfig use="1">
        <Property name="use" value="1"/>
        <Property name="LdapBase" value="ou=xxxxx,dc=xxxxx,dc=com"/>
        <Property name="AutoSync" value="1"/>
        <Property name="interval" value="1"/>
        <LdapOrgInfo>
            <Property name="orgName" value="xxxxxx"/>
            <Property name="orgLevel" value="-1"/>
            <Property name="isCheckFlag" value="1"/>
        </LdapOrgInfo>
        <ContextProperty>
            <Property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
            <Property name="java.naming.provider.url" value="ldap://ip"/>
            <Property name="java.naming.ldap.version" value="3"/>
            <Property name="java.naming.referral" value="follow"/>
            <Property name="java.naming.security.authentication" value="simple"/>
            <Property name="java.naming.security.credentials" value="oa.vvvvv.com"/>
            <Property name="java.naming.security.principal" value="cn=oa,cn=Users,dc=xxxxx,dc=com"/>
            <Property name="java.naming.security.protocol" value="http"/>
        </ContextProperty>
        <SystemProperty>
            <Property name="javax.net.ssl.trustStore" value="D:\bea\jdk142_11\bin\security51.keystore"/>
            <Property name="javax.net.ssl.trustStorePassword" value="xxxxxxxx"/>
        </SystemProperty>
    </LdapConfig>

新域控需要添加用户账号是 oa 密码自定义 xxxxxx

 

4、  测试机:还原数据库到测试环境,不启动应用服务

5、  生产机/测试机:备份 org_employee,org_organization,org_organizaiton_user 表(xxx_copy)

执行以下SQL 获取最大用户id

select emp_id, useraccounts, guid,LASTUPDATE from "ORG_EMPLOYEE" where  USERISDELETED = 0 order by emp_id DESC -- 6864026

 

执行以下SQL 获取最大组织id

select org_id,orgparentorgid,orgnamestring,guid,lastupdate from "ORG_ORGANIZATION" where orgstatus = 0 order by org_id DESC -- 6847570

6、  启动测试环境服务,等待域控数据同步到测试环境

7、  关闭测试环境服务

执行以下SQL 导出域控生成最新用户Excel

select emp_id, useraccounts, guid,LASTUPDATE from "ORG_EMPLOYEE" where USERISDELETED = 0 and emp_id > 6864026

执行以下SQL 导出域控生成最新组织Excel

select org_id,orgparentorgid,orgnamestring,guid,lastupdate from ORG_ORGANIZATION where orgstatus = 0 and org_id > 6847570

在Excle中编写update 语句如附件

 

8、删除最新组织、用户、组织用户关系记录

delete from ORG_ORGANIZATION_USER where emp_id in(select emp_id from "ORG_EMPLOYEE" where USERISDELETED = 0 and emp_id > 6864026)
 
delete from "ORG_EMPLOYEE" where USERISDELETED = 0 and emp_id > 6864026
 
delete  from ORG_ORGANIZATION  where  orgstatus = 0 and org_id > 6847570
 
select org_id,orgparentorgid,orgnamestring,guid,lastupdate from "ORG_ORGANIZATION_copy" where orgstatus = 0 order by org_id DESC -- 6847570

9、执行update,启动测试环境服务

10、再新域控中添加组织用户验证是否同步,用户组织是否被覆盖

11、如果无异常,在正式环境执行update 并启动服务