首页 > 数据库 > Oracle > Oracle数据库(数据泵)迁移方案(下)
为保证 数据严格一致性 , 关闭监听,重启数据库 。
Shell> su - oracle Shell> lsnrctl stop SQL> shutdown immediate SQL> startup
确认 没有 活动 客户端连接,确认监听已经停止 。
Shell> ps -ef | grep tns Shell> ps -ef | grep LOCAL=NO | grep -v grep | wc -l
目标端( Linux )开启 NFS 服务
Shell> su - root
Shell> vi /etc/exports
/backup {源端IP**.**}(rw,async,no_root_squash)
Shell> /etc/rc.d/init.d/portmap start
Shell> /etc/init.d/nfs start #启动NFS服务端进程
Shell> exportfs -a #输出配置信息命令
Shell> chkconfig nfs on #增加到自启动脚本中
Shell> chkconfig portmap on #增加到自启动脚本中
源端挂载 N FS 文件系统
su - root
mkdir -p /backup
mount {目标端IP**.**}:/backup /backup
注: Linux 不同操作系统版本, N FS 服务配置有差异,需要根据实际版本做调整。
比对 表格的创建,方便后期的数据比对 :
create table object_tmp_201702 as select * from dba_objects ;
标 红部分 ,需要 按照 迁移时 具体 业务 用户 做替换,如下:
SELECT D.OWNER,COUNT(1)
FROM dba_objects d
WHERE d.OWNER in ('SJZLCK', 'YDJW_ZP', 'HZ2004','TEST','DRB','RMAN','MOCHA','CZRKRZSJ','ZJCONN','CZRKTJXX','OGGADMIN','ZJGAZHCX')
and d.OWNER not in ('PUBLIC')
AND NOT EXISTS (SELECT 1 FROM DBA_RECYCLEBIN B WHERE B.object_name=D.OBJECT_NAME AND D.OWNER=B.owner)
GROUP BY D.OWNER
ORDER BY D.OWNER ;
通过挂载 的NFS 目录,将 源端 数据 导出到 对应的NFS 文件系统上 ,如下:
Shell> expdp \'/ as sysdba\' directory=dump_dir dumpfile=JKfull.dmp logfile=JKfull.log full=y
根据 2.1 节生成的创建 语句, 在目标库 创建对应的 业务 表空间 ,要注意表空间预分配大小,建议直接分配(非自动扩展)提高导入性能 。
SQL> @/home/oracle/tts_create_ts.sql
Shell> impdp \'/ as sysdba\' directory=dump_dir dumpfile=JKfull.dmp logfile=JKfull.log full=y
拷贝源端生产库的 tnsnames.ora 文件到新环境目标端,并且开启数据库监听文件,确保数据库实例信息已经注册到监听中。
手动编译目标库 无 效对象:
@?/rdbms/admin/utlrp.sql
编译完成之后,再确认 不存在无 效对象:
select a.owner, a.object_name, a.OBJECT_TYPE from dba_objects a, object_201702 b where a.OBJECT_NAME = b.OBJECT_NAME and a.STATUS = 'INVALID' and b.STATUS = 'VALID';
首先, 由 业务开发人员 进行 应用全模块通测 , 业务全生命周期测试 没有问题后 ,将生产主机替换成临时 IP 地址 ,将目标端 ip 改成老生产端的 ip 接管业务。
与最终客户确认,是否需要将目标端的 I P 地址替换成老生产环境 I P 地址,如果需要,则手动进行修改源端和目标端 R AC SCAN 、 VIP 和 Pu blic IP 等工作。
1 节点:
Vi /etc/hosts 10.10.17.101 host-fefcfedb0f4f 10.10.17.13 host-fefcfedb0f4f-vip 10.253.253.101 host-fefcfedb0f4f-priv 10.10.17.102 host-fefcfebc5b0d 10.10.17.14 host-fefcfebc5b0d-vip 10.253.253.102 host-fefcfebc5b0d-priv 10.10.17.15 orcl-scan
2 节点:
Vi /etc/hosts 10.10.17.101 host-fefcfedb0f4f 10.10.17.13 host-fefcfedb0f4f-vip 10.253.253.101 host-fefcfedb0f4f-priv 10.10.17.102 host-fefcfebc5b0d 10.10.17.14 host-fefcfebc5b0d-vip 10.253.253.102 host-fefcfebc5b0d-priv 10.10.17.15 orcl-scan
[grid@host-fefcfebc5b0d ~]$/u01/app/12.2/grid/bin/srvctl stop scan_listener [grid@host-fefcfebc5b0d ~]$/u01/app/12.2/grid/bin/srvctl stop scan [grid@host-fefcfebc5b0d ~]$/u01/app/12.2/grid/bin/srvctl status scan
[grid@host-fefcfebc5b0d ~]$ srvctl stop listener [grid@host-fefcfebc5b0d ~]$ srvctl stop vip -n host-fefcfedb0f4f [grid@host-fefcfebc5b0d ~]$ srvctl stop vip -n host-fefcfebc5b0d
[root@host-fefcfedb0f4f ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=10.10.17.101 GATEWAY=10.10.17.254 [root@host-fefcfedb0f4f ~]# ifdown eth0 [root@host-fefcfedb0f4f ~]# ifup eth0 [root@host-fefcfedb0f4f ~]# ip a [root@host-fefcfebc5b0d ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=10.10.17.102 GATEWAY=10.10.17.254 [root@host-fefcfebc5b0d ~]# ifdown eth0 [root@host-fefcfebc5b0d ~]# ifup eth0 [root@host-fefcfebc5b0d ~]# ip a
[root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/oifcfg delif -global eth0 [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/oifcfg setif -global eth0/10.10.17.0:public
[root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl modify nodeapps -n host-fefcfedb0f4f -A 10.10.17.13/255.255.255.0/eth0 [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl modify nodeapps -n host-fefcfebc5b0d -A 10.10.17.14/255.255.255.0/eth0 [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl config vip -n host-fefcfedb0f4f VIP exists: /host-fefcfedb0f4f-vip/10.10.17.13/192.168.0.0/255.255.255.0/eth0, hosting node host-fefcfedb0f4f [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl config vip -n host-fefcfebc5b0d VIP exists: /host-fefcfebc5b0d-vip/10.10.17.14/192.168.0.0/255.255.255.0/eth0, hosting node host-fefcfebc5b0d
[root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl modify scan -n 10.10.17.15
[root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl start vip -n host-fefcfedb0f4f [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl start vip -n host-fefcfebc5b0d [root@host-fefcfedb0f4f ~]# /u01/app/12.2/grid/bin/srvctl start listener
[root@host-fefcfedb0f4f ~]#/u01/app/12.2/grid/bin/srvctl start scan [root@host-fefcfedb0f4f ~]#/u01/app/12.2/grid/bin/srvctl start scan_listener
SQL> shutdown immediate 或者 Shell> shutdown -h now
Shell> lsnrctl start Shell> sqlplus / as sysdba SQL> startup
注:由于老生产库环境未作任何变更,因此在极端情况下,可以直接拉起数据库实例和监听,恢复业务。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-2939589/ ,如需转载,请注明出处,否则将追究法律责任。