XX银行机房搬迁oracle 数据库迁移方案和操作流程.docx
- 文档编号:23671737
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:74
- 大小:41.31KB
XX银行机房搬迁oracle 数据库迁移方案和操作流程.docx
《XX银行机房搬迁oracle 数据库迁移方案和操作流程.docx》由会员分享,可在线阅读,更多相关《XX银行机房搬迁oracle 数据库迁移方案和操作流程.docx(74页珍藏版)》请在冰豆网上搜索。
XX银行机房搬迁oracle数据库迁移方案和操作流程
XX银行数据库迁移方案和步骤
我行数据中心迁移与重构之际,从提升我行业务系统运行效率和连续性的角度出发,于B城市新数据中心先期部署4套oracle11grac集群数据库平台,优化我行A城市生产数据中心现有数据库部署结构。
A城市和B城市两地数据中心的oracle数据库,采用第三方同步软件,将A城市生产数据实时同步至B城市新数据中心,此次迁移共包含11个数据库,11个数据库具体对应的业务系统详见《9月15日切换B城市数据中心4套RAC集群环境相关系统表.xlsx》。
为了保证我行业务系统能够顺利迁移至B城市新数据中心,我行定于2017年8月21日至2017年9月10为业务系统准备和测试时间段,截止2017年8月20日第三方同步软件已部署完成A城市和B城市两地数据中心的复制关系,将11个数据库的数据全部同步至B城市新数据中心9个数据库中,用于业务验证测试,并停止A城市至B城市两地数据中心数据复制关系,待9月10完成业务验证测试后重新开启数据库实时同步关系,直至9月15日数据库切换时停止同步关系。
9月10日至9月15日第三方数据库同步软件实施和切换方案及步骤如下:
一、9月10日孤岛环境测试完成后,关闭各业务系统程序同时停止相关业务系统虚拟机,避免数据同步期间业务系统软件访问B城市新数据中心数据库。
二、9月11日开启A城市至B城市新数据中心的数据复制关系,把A城市生产数据中心的数据全同步至B城市新数据中心,总数据量约3T估计需要2天时间完成全同步的过程,全同步完成后即开始增量实时同步。
三、9月11日停止B城市新数据中心数据库服务器上操作系统的定时任务crontable和数据库的定时任务jobs或schedule。
关闭目标端数据库级别的定时任务jobs或schedule
altersystemsetjob_queue_processes=0scope=bothsid=’*’;
四、9月15日切换之前确保复制关系正常,在各业务系统软件都关闭并没有任何会话访问数据库的前提下,等待5分钟后,锁定B城市和A城市两地数据库业务系统相关的数据库用户的状态,避免数据核对期间数据发生变更。
五、将第三方同步软件不支持的少部分对象及数据,通过导入/导出命令从A城市生产数据中心导入至B城市新数据中心,11个数据库合计耗时需要1个小时。
六、核实B城市新数据中心sequence(序列)和directory(路径)是否跟A城市生产数据中心一致。
七、按数据库用户名和对象类型统计,确保B城市与A城市两地数据库的对象一致。
八、统计B城市和A城市两数据中心oracle数据库的每个表的数据记录数,确保每张表记录数一致,由于我行部分业务表的数据量非常大,预计需要5小时完成数据记录数核对工作。
九、编译B城市新数据中心11套数据库的存储过程和函数,并检查数据库对象状态,确保两数据库对象状态一致。
十、数据库对象和记录数核实无误后,停止B城市和A城市两端数据库的第三方同步软件,11个数据库的同步复制软件全部停止合计需要0.5小时。
十一、启用数据库用户的触发器。
十二、重启B城市新数据中心的所有数据库,使数据库归档生效。
十三、解除B城市新数据中心业务系统相关数据库用户的锁定状态,并确保A城市数据中心的数据库用户为锁定状态。
十四、启用B城市新数据中心数据库服务器上操作系统的定时任务crontable和数据库的定时任务jobs或schedule。
十五、收集B城市新数据中心数据库的统计信息。
十六、启动各业务系统软件,确保各业务系统访问数据库正常。
十七、DBLINK和tnsnames.ora核对
数据比对耗时统计表如下,由于tranrac全部统计时间过长接近8小时,因此需要对此库中的业务表数据分类对待,分类后有10张大表在数据迁移前一天完成数据总量核对,迁移完成后当天只核对除这10张大表之外的表数据纪录,经测试时间可以控制在3小时以内。
数据库
总耗时
备注
tranrac
8小时
去掉1亿以上的数据后统计时长可以控制在5小时以内
Mgrrac
1小时
Hrxjrac
3小时
Ecssdb
0.5小时
Gltxdb
1.5小时
cmis
0.5小时
hxvmdbb
20分钟
Hxvmdba
10分钟
Gapsdb32
10分钟
Cifdb
0.5小时
Cif1db
1小时
第三方同步11个数据库切换的详细操作
此次迁移A城市数据中心源端共有11个数据库,全部通过第三方同步软件实时同步至B城市新数据中心目标端9个数据库中,第三方同步软件目前有3个数据库(ecssdb,mgrrac,hrxjrac)有很少一部分数据库对象暂时不支持,必须通过数据库导入/导出命令进行迁移。
9月15号迁移当天共有5人,A组操作和复核各1人、B组操作和复核各1人,C组机动组1人,以下是每个组的具体分工:
A城市数据库IP
库名
B城市数据库IP
库名
责任人
172.18.1.52
Cifdb
168.0.0.16
168.0.0.17
Cifdb
A组
172.18.1.51
Cif1db
Cif1db
172.18.1.117
Hxvmdbb
168.0.0.21
168.0.0.22
Txqddb
A组
172.18.1.116
Hxmvdba
Gapsdb32
172.18.110.46
Cmis
168.0.0.11
168.0.0.12
Xdxtdb
B组
172.18.110.47
Ecssdb
Ngxtdb
Glxtdb
Glxtdb
172.18.1.129
172.18.1.130
Tranrac
168.0.0.26
168.0.0.27
Tranrac
B组
Mgrrac
Mgrrac
Hrxjrac
Hrxjrac
机动组
C组
数据库:
hrxjrac
此数据库主要承载我行二代支付、超级网银、ESB、轻型柜台和集中作业等12套关键业务系统,9月15日详细切换流程和命令如下:
(1)源端/目标端确定复制关系是状态,并锁定用户状态
用以下命令确认第三方同步软件复制关系当前状态,如果以下命令没有出来任何文件说明复制关系正常。
su-fzs1
ls-l$FZS_DATA/msg.err(查看报错日志)
ls-l$FZS_DATA/msg.index_err(查看创建失败的索引)
ls-l$FZS_DATA/msg.tab(查看坏表文件)
在各业务系统软件都关闭并没有任何会话访问数据库的前提下,等待5分钟,然后锁定B城市和A城市两地数据库业务系统相关的数据库用户的状态,避免数据核对期间数据发生变更。
alteruserMANAGERaccountlock;
alteruserVTSODSaccountlock;
alteruserORAYWJKaccountlock;
alteruserSOTPGUOMIaccountlock;
alteruserIBPSaccountlock;
alteruserBACKUPaccountlock;
alteruserMONITORaccountlock;
alteruserBUSINESSaccountlock;
alteruserIBPSWHaccountlock;
alteruserODSaccountlock;
alteruserINFAaccountlock;
alteruserSUNCPSaccountlock;
alteruserMMSBOaccountlock;
alteruserMMSECIFaccountlock;
alteruserMMSPIBSaccountlock;
alteruserVTSAPPaccountlock;
alteruserSUNDSaccountlock;
alteruserRECOGaccountlock;
alteruserHCEaccountlock;
alteruserVTSIMGaccountlock;
alteruserPAYMENTaccountlock;
alteruserQUERYPTSaccountlock;
alteruserMMSEIPaccountlock;
alteruserSUNFLOWaccountlock;
alteruserESBDATAaccountlock;
(2)同步软件暂不支持的特殊对象处理
由于此库有少量特殊类型的数据库对象(如索引组织表和队列等),这类特殊的数据库对象同步软件暂不支持,需要通过导出/导入方式将数据迁移至B城市数据中心,这部分对象数量为187,但是基本上没什么数据,导出和导入非常快,各需要8分钟就可以完成。
1、目前导出txt文件已经上传到源服务器相应目录下,源端(A城市数据中心)对象导出只需要执行以下命令即可:
expdpparfile=par_ibps..txt
expdpparfile=par_payment.txt
expdpparfile=par_sotpguomi.txt
2、数据导出后通过以下命令将数据上传至目标端(B城市新数据中心)的数据库服务器对应目录下。
scp*.txtfzs1@168.0.0.26:
/fzs_de/dzqdpt/fzs1/
3、在B城市新数据中心数据库服务器中运行以下导入命令,将187个暂不支持的数据库对象导入B城市数据库中。
impdp\'/assysdba\'directory=dumpdirdumpfile=ibps.dmptable_exists_action=replace
impdp\'/assysdba\'directory=dumpdirdumpfile=payment.dmptable_exists_action=replace
impdp\'/assysdba\'directory=dumpdirdumpfile=sotpguomi.dmptable_exists_action=replace
(3)B城市和A城市两数据中心数据库的sequence和directory核对
1、核对两数据中心的sequence(序列),保证B城市数据中心序列的当前值必须大于等于A城市数据中心序列的当前值。
shswitch.sh
catseqrc.log
2、核对两数据中心的directory(路径),保证两数据中心的directory一致,同时检查directory对应的操作系统目录是否存在,且读写权限正常。
(4)按数据库用户名和对象类型统计数据库对象
第三方同步软件完成数据同步后,用以下命令核实两端的数据库对象个数是否一致。
selectt.owner,t.object_type,count
(1)
fromdba_objectst,dba_usersa
wherea.account_status='OPEN'
andregexp_like(t.object_name,'^[A-Z]')
andt.object_namenotlike'%$%'
anda.username=t.owner
anda.usernamenotin('SYS','SYSMAN','DBSNMP','SYSTEM')
groupbyt.owner,t.object_type
orderbyt.owner,t.object_type;
(5)核对两数据中心数据库记录数
数据库同步完成后通过两种方法进行数据比对:
1、通过第三方同步软件提供的WEB界面完成数据记录数核对工作
2、通过运行脚本调用SQL语句,然后比较两端数据库system.qianyi_count表中的数据,具体步骤见《数据量核对详细步骤》章节。
(6)编译无效对象并检查两端数据库对象状态
编译B城市新数据中心数据库的存储过程和函数,并检查除了有效状态以外的数据库对象,确保B城市和A城市两数据中心数据库对象状态必须一致。
sqlplus/assysdba
SQL>@?
/rdbms/admin/utlrp.sql
验证索引、约束、存储过程等状态,以及当前无效对象
--验证无效对象
SELECTt.owner,t.object_name,t.object_type,t.status
FROMdba_objectsT
whereT.STATUS<>'VALID'
andT.Temporary<>'Y'
andt.ownernotin('SYS','SYSMAN','DBSNMP','SYSTEM')
andregexp_like(t.object_name,'^[A-Z]')
andt.object_namenotlike'%$%';
--验证无效约束
selectowner,table_name,constraint_name,status
fromdba_constraintst
wheret.status<>'ENABLED'
andt.ownernotin('SYS','SYSMAN','DBSNMP','SYSTEM','OLAPSYS');
--重建无效索引
select'ALTERINDEX'||owner||'.'||index_name||'REBUILD;'fromdba_indexeswherestatus='INVALID';
(7)停止B城市和A城市两端数据库的第三方同步软件
源端数据库停止同步软件
su-fzs1
cd$FZS_DATA
fzsstop
目标端数据库停止同步软件
su-fzs1
cd$FZS_DATA
vshmt-c
fzsstop
(8)启用触发器
sh../tools/trigger.shfzs2/fzs2
sqlplus/assysdba
SQL>@entri.sql
cattrigger.log
(9)开启目标端数据库归档
目前数据库已开启归档,使用以下命令进行核实即可
sqlplus/assysdba
SQL>archiveloglist;
(10)解除目标端数据库用户锁状态
解除B城市端新数据中心数据库用户锁状态,并确保A城市数据中心数据库用户为锁定状态。
alteruserMANAGERaccountunlock;
alteruserVTSODSaccountunlock;
alteruserORAYWJKaccountunlock;
alteruserSOTPGUOMIaccountunlock;
alteruserIBPSaccountunlock;
alteruserBACKUPaccountunlock;
alteruserMONITORaccountunlock;
alteruserBUSINESSaccountunlock;
alteruserIBPSWHaccountunlock;
alteruserODSaccountunlock;
alteruserINFAaccountunlock;
alteruserSUNCPSaccountunlock;
alteruserMMSBOaccountunlock;
alteruserMMSECIFaccountunlock;
alteruserMMSPIBSaccountunlock;
alteruserVTSAPPaccountunlock;
alteruserSUNDSaccountunlock;
alteruserRECOGaccountunlock;
alteruserHCEaccountunlock;
alteruserVTSIMGaccountunlock;
alteruserPAYMENTaccountunlock;
alteruserQUERYPTSaccountunlock;
alteruserMMSEIPaccountunlock;
alteruserSUNFLOWaccountunlock;
alteruserESBDATAaccountunlock;
(11)启用定时任务
启用B城市新数据中心数据库服务器上操作系统的定时任务crontable和数据库的定时任务jobs或schedule。
job_queue_processes参数值修改为1000,即启用目标端数据库的job/schedule定时任务,然后用以下SQL语句进行查询,确保B城市和A城市两端数据库的定时任务数量和状态一致。
altersystemsetjob_queue_processes=1000scope=bothsid='*'’;
selectclient_name,statusfromdba_autotask_clienta;
selectjob,log_user,schema_user,last_date,intervalfromdba_jobsawherea.LOG_USERnotin('SYS');
selectsid,job,last_datefromdba_jobs_runninga;
select*fromdba_scheduler_schedulesawherea.ownernotin('SYS');
数据库:
tranrac
此数据库主要承载我行电子渠道、银银平台和组合服务平台等关键业务系统,9月15日详细切换流程和命令如下:
(1)源端/目标端确定复制关系是状态,并锁定用户状态
用以下命令确认第三方同步软件复制关系当前状态,如果以下命令没有出来任何文件说明复制关系正常。
su-fzs2
ls-l$FZS_DATA/msg.err(查看报错日志)
ls-l$FZS_DATA/msg.index_err(查看创建失败的索引)
ls-l$FZS_DATA/msg.tab(查看坏表文件)
在各业务系统软件都关闭并没有任何会话访问数据库的前提下,等待5分钟,然后锁定B城市和A城市两地数据库业务系统相关的数据库用户的状态,避免数据核对期间数据发生变更。
alteruserORAYWJKaccountlock;
alteruserHXDXPTaccountlock;
alteruserPWBSaccountlock;
alteruserRADATAaccountlock;
alteruserEPAYaccountlock;
alteruserBACKUPaccountlock;
alteruserHXDXPTWHaccountlock;
alteruserMONITORaccountlock;
alteruserPIBSaccountlock;
alteruserEIBSaccountlock;
alteruserODSUSERaccountlock;
alteruserECIFaccountlock;
alteruserGAPS4101accountlock;
alteruserLINK_01accountlock;
alteruserGAPS41accountlock;
alteruserODSaccountlock;
alteruserPAPERLESSaccountlock;
alteruserEMBSaccountlock;
alteruserLINK_DZQDaccountlock;
alteruserNETPASSaccountlock;
alteruserRPTaccountlock;
alteruserMONITOR_DBaccountlock;
alteruserBOaccountlock;
alteruserEIPaccountlock;
alteruserWXUSERaccountlock;
alteruserPMOBILEaccountlock;
(2)B城市和A城市两数据中心数据库的sequence和directory核对
1、核对两数据中心的sequence(序列),保证B城市数据中心序列的当前值必须大于等于A城市数据中心序列的当前值。
shswitch.sh
catseqrc.log
2、核对两数据中心的directory(路径),保证两数据中心的directory一致,同时检查directory对应的操作系统目录是否存在,且读写权限正常。
(3)按数据库用户名和对象类型统计数据库对象
第三方同步软件完成数据同步后,用以下命令核实两端的数据库对象个数是否一致。
selectt.owner,t.object_type,count
(1)
fromdba_objectst,dba_usersa
wherea.account_status='OPEN'
andregexp_like(t.object_name,'^[A-Z]')
andt.object_namenotlike'%$%'
anda.username=t.owner
anda.usernamenotin('SYS','SYSMAN','DBSNMP','SYSTEM')
groupbyt.owner,t.object_type
orderbyt.owner,t.object_type;
(4)核对两数据中心数据库纪录数
数据库同步完成后通过两种方法进行数据比对:
1、通过第三方同步软件提供的WEB界面完成数据纪录数核对工作
2、通过运行脚本调用SQL语句,然后比较两端数据库system.qianyi_count表中的数据,具体步骤见《数据量核对详细步骤》章节。
(5)编译无效对象并检查两端数据库对象状态
编译B城市新数据中心数据库的存储过程和函数,并检查除了有效状态以外的数据库对象,确保B城市和A城市两数据中心数据库对象状态必须一致。
sqlplus/assysdba
SQL>@?
/rdbms/admin/utlrp.sql
验证索引、约束、存储过程等状态,以及当前无效对象
--验证无效对象
SELECTt.owner,t.object_name,t.object_type,t.status
FROMdba_objectsT
whereT.STATUS<>'VALID'
andT.Te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XX银行机房搬迁oracle 数据库迁移方案和操作流程 XX 银行 机房 搬迁 oracle 数据库 迁移 方案 操作 流程