5 如何进行日常的数据比对
5.1 比对之前首先登录到目标端主机
$cd /dsg/scripts 执行
./verify (运行verify先初始化比对环境启动比对进程
[oracle@dsg_test scripts]$ ./verify
oracle 8839 1 0 10:38 pts/2 00:00:00 /dsg/bin/vagentd 4001 oracle 8841 8839 0 10:38 pts/2 00:00:00 /dsg/bin/vagentd 4001
oracle 8837 1 0 10:38 pts/2 00:00:00 /dsg/bin/loader -s -onlycheck -qno 0 1 oracle 8838 8837 0 10:38 pts/2 00:00:00 /dsg/bin/loader -s -onlycheck -qno 0 1 oracle 8831 1 0 10:38 ? 00:00:00 /dsg/bin/arch_verify_dsg /dsg/log/log.v0 /dsg/log/archivelog/log.v0_archlog 43200
运行verify_check检查比对进程是否已经正常启动。
[oracle@dsg_test scripts]$ ./verify
oracle 8839 1 0 10:38 pts/2 00:00:00 /dsg/bin/vagentd 4001 oracle 8841 8839 0 10:38 pts/2 00:00:00 /dsg/bin/vagentd 4001
oracle 8837 1 0 10:38 pts/2 00:00:00 /dsg/bin/loader -s -onlycheck -qno 0 1 oracle 8838 8837 0 10:38 pts/2 00:00:00 /dsg/bin/loader -s -onlycheck -qno 0 1 oracle 8831 1 0 10:38 ? 00:00:00 /dsg/bin/arch_verify_dsg /dsg/log/log.v0 /dsg/log/archivelog/log.v0_archlog 43200
5.2 登录到源端主机
$cd /dsg/scripts目录运行
./verify 进行当前库所有用户下数据的比对 export SHLIB_PATH=$ORACLE_HOME/lib32 ./xexp dsg/dsg –owner cffex –check –to_db
5.3 在目标端查看比对日志
$cd /dsg/log
通过tail –f log.v0查看实时比对的日志 $cd /dsg/rmp/verify/sync0 cat cfg.loaderno
当cfg.loaderno文件中前后两个数字一致时比对完成 $cd /dsg/rmp/scripts/ 运行
./dismatch 脚本将比对过程中有问题的表生成在同一目录下的dismatch.sql文件,登录到目标端数据库进行进一步查询确认 dismatch脚本格式如下:
[oracle@dsg_test scripts]$ cat dismatch #!/bin/ksh rm dismatch.sql
table=`grep Check ../rmp/verify/sync0/verify.err |awk '{print $2}'` for i in ${table[@]}; do
sql=\ minus select DT.* from \echo $sql >>dismatch.sql done
6 RAC切换情况下所需要的工作
6.1 10.16.17.98主机出现问题
如果源端98主机出现问题,需要将dsg复制进程运行在108主机上启动步骤如下:
使用root用户登录主机
mount dev/sdh1 /dsg --该设备名可能跟实际情况略有不同 su – oracle cd /dsg/scripts ./start ./check
[oracle@dsg_test scripts]$ ./check
oracle 19445 1 0 09:45 pts/5 00:00:00 /dsg/bin/dbpsd 50000 oracle 19461 1 0 09:45 pts/5 00:00:00 /dsg/bin/vagentd 50001 oracle 19469 19461 44 09:45 pts/5 00:22:00 /dsg/bin/vagentd 50001 oracle 19455 1 0 09:45 pts/5 00:00:00 /dsg/bin/sender -tseq 1 oracle 19456 19455 0 09:45 pts/5 00:00:00 /dsg/bin/sender -tseq 1 oracle 19434 1 0 09:45 ? 00:00:00 /dsg/bin/arch_vagentd_dsg /dsg/log/log.sender /dsg/log/archivelog/log.sender_archlog 43200
oracle 19433 1 0 09:45 ? 00:00:00 /dsg/bin/arch_vagentd_dsg /dsg/log/log.vagentd /dsg/log/archivelog/log.vagentd_archlog 43200
如上图所有进程均正常启动表明复制进程正常启动 通过tail –f log.vagentd观察日志复制信息
6.2 10.16.17.98数据库出现问题
如果98数据库停止工作,不包括正常的数据库起停操作,需要执行 $cd /dsg/scripts目录下的
./racdb1fail脚本,Dsg将自动从154数据库上读取信息
[oracle@dsg_test scripts]$ ./racdb1fail
oracle 19445 1 0 09:45 pts/5 00:00:00 /dsg/bin/dbpsd 50000 oracle 19461 1 0 09:45 pts/5 00:00:00 /dsg/bin/vagentd 50001 oracle 19469 19461 44 09:45 pts/5 00:22:00 /dsg/bin/vagentd 50001 oracle 19455 1 0 09:45 pts/5 00:00:00 /dsg/bin/sender -tseq 1 oracle 19456 19455 0 09:45 pts/5 00:00:00 /dsg/bin/sender -tseq 1 oracle 19434 1 0 09:45 ? 00:00:00 /dsg/bin/arch_vagentd_dsg /dsg/log/log.sender /dsg/log/archivelog/log.sender_archlog 43200
oracle 19433 1 0 09:45 ? 00:00:00 /dsg/bin/arch_vagentd_dsg
/dsg/log/log.vagentd /dsg/log/archivelog/log.vagentd_archlog 43200
如上图所有进程均正常启动表明复制进程正常启动 通过tail –f log.vagentd观察日志复制信息
7 源端灾难切换需要进行的操作
7.1 源端停止复制进程
使用oracle登录10.26.17.98
cd /dsg/scripts/ ./stop
7.2 目标端停止复制进程
使用oracle登录10.16.57.252 cd /dsg/scripts/
./stop
7.3 在目标端执行切换脚本
使用oracle登录10.16.57.252
cd /realsync/scripts/ ./switch
switch脚本的内容 sqlplus dsg/dsg < @/realsync/imp/ddl_delayed.sql @/realsync/imp/db_switch.sql EOF exit echo \ 7.4 源端修复后的反向回切 当源端数据库已经修复完成可以被正常的座位生产系统使用后,只需在/dsg/ 目录下配置的反向同步环境中发起一个全同步操作数据就会从252机器上同步到98上,从而完成整个反向回切过程。 8 日常需要删除的一些日志文件 8.1 源端10.16.17.98机器上 cd /dsg/log/archivelog rm *.log cd /dsg/bk2000/log/archivelog/ rm *.log 根据目前的日志的产生速度建议每周删除一次,在每周五收市后执行这一操作 8.2 目标端10.16.57.252机器上 cd /dsg/log/archivelog rm *.log 根据目前的日志的产生速度建议每周删除一次,在每周五收市后执行这一操作