在上一篇博文中,笔者已经介绍了创建同构数据库DBLINK(DM-DM)的方法。最近,在项目上为用户迁移数据,源库是oracle,目标库为达梦,且用户未提供图形化界面。因此,想到了使用创建ORACLE到达梦的异构DBLINK方式来进行迁移。如果用户已经提供了图形化界面,建议优先采用DMDTS和DMHS。DMDTS适用于500G以下的数据量迁移,且停机窗口相对较长;DMHS适用于500G以上的数据量,且停机窗口相对较短,可实现在线迁移。
下面,笔者主要介绍一下,在无图形化界面的场景中迁移数据时,如何创建ORACLE到DM的异构数据库DBLINK。
【前置条件】
准备两台数据库服务器:A(192.168.1.101)和B(192.168.1.102)
A(192.168.1.101)机器上安装部署ORACLE数据库,使用oracle11g版本:
B(192.168.1.102)机器上安装部署达梦数据库,使用DM8版本:
ORACLE数据库的监听和实例服务已启动:
DM数据库的实例服务已启动:
【操作步骤】
–在DM服务器上安装oracle的客户端
1>把dblink11g.tar.gz上传到/lib64目录下。
2>解压tar -zxvf dblink11g.tar.gz
3>进入/lib64目录下, 运行 run.sh命令:
cd /lib64
./run.sh
4>在目标端192.168.1.101(DM)上创建异构DBLINK
–创建普通DBLINK:
create link “SYSDBA”.“LINK01” connect ‘ORACLE’ with “HR” identified by “HR” using ‘192.168.1.101/ORCL’;
–验证普通DBLINK:
在源端192.168.1.101(ORACLE)上查询HR.EMPLOYEES表:
SQL> select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from hr.employees where rownum<6;
在目标端192.168.1.102(DM)上查询表:
SQL> select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from hr.employees@link01 where rownum<6;
在目标端192.168.1.102(DM)上修改数据:
SQL> update hr.employees@link01 set FIRST_NAME=‘ZHANG’,LAST_NAME=‘SAN’ where EMPLOYEE_ID=198;
在源端192.168.1.101(ORACLE)上查询数据:
SQL> select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from hr.employees where EMPLOYEE_ID=198;
–创建公共DBLINK:
create public link “LINK02” connect ‘ORACLE’ with “SCOTT” identified by “SCOTT” using ‘192.168.1.101/ORCL’;
–验证公共DBLINK:
在源端192.168.1.101(ORACLE)上查询SCOTT.DEPT表:
SQL> select * from SCOTT.DEPT;
在目标端192.168.1.102(DM)上查询表:
SQL> select * from SCOTT.DEPT@link02;
在目标端192.168.1.102(DM)上修改数据:
SQL> update SCOTT.DEPT@link01 set DNAME=‘XIAO SHOU BU’ where DEPTNO=10;
在源端192.168.1.101(ORACLE)上查询数据:
SQL> select * from SCOTT.DEPT where DEPTNO=30;
在源端192.168.1.101(ORACLE)和目标端192.168.1.102(DM)两台机器上验证数据查询和数据更新均没有问题,说明创建的两种达梦数据库异构DBLINK是正常的。
文章
阅读量
获赞