DBLINK
作用: 使用DBLINK和远程数据库之间进行通信, 从而可以操作远程数据库
DM 支持的数据库连接方式
1、DM
2、ORACLE
3、ODBC
4、DPI
DBLINK 的类型
同构 源端和目标端使用的数据库均为达梦数据库, DBLINK(DM DBLINK DM)
异构 源端数据库为其他类型数据库, 目标端数据库为DMDBLINK(其他数据库 DBLINK DM)
DBLINK 常用操作
创建dblink
CREATE PUBLIC LINK link_name CONNECT ‘DAMENG’ WITH 用户名 IDENTIFIED BY 密码 USING ‘192.168.0.31/5369’;
CREATE PUBLIC LINK LINK1 CONNECT WITH USER01 IDENTIFIED BY AAA123456 using ‘DMSERVER’;
– DMSERVER 为实例名
删除dblink
DROP LINK link_name;
使用dblink
SELECT * FROM TB_NAME@LINK_NAME;
DM 和 DM 之间使用DBLINK
1、dm.ini 开启MAL系统 (两台服务器相同操作)
1.1、源端
[root@itsdata ~]# vi /dmdata/itsdata/dm.ini
MAL_INI = 1
1.2、目标端
[root@itsapp1 ~]# vi /dmdata/its/dm.ini
MAL_INI = 1
2、配置dmmal.ini(两台服务器相同操作)
[root@itsdata ~]# vi /dmdata/itsdata/dmmal.ini
[MAL_INST1]
MAL_INST_NAME =itsdata
MAL_HOST = 100.63.1.7
MAL_PORT = 16001
MAL_INST_HOST = 100.63.1.7
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = its
MAL_HOST = 100.63.1.1
MAL_PORT = 16001
MAL_INST_HOST = 100.63.1.1
MAL_INST_PORT = 5236
[root@itsdata ~]# scp /dmdata/itsdata/dmmal.ini 100.63.1.1:/dmdata/its/
3、启动数据库
3.1、源端
[root@itsdata bin]# ./DmServiceitsdata start
3.2、目标端
[root@itsapp1 bin]# ./DmServiceits start
4、目标端上建立DBLINK
SQL> CREATE or replace PUBLIC LINK l2 CONNECT ‘DAMENG’ WITH SYSDBA IDENTIFIED BY fangyu421 USING ‘100.63.1.7/16001’;
SQL> CREATE or replace PUBLIC LINK l3 CONNECT ‘DAMENG’ WITH SYSDBA IDENTIFIED BY fangyu421 USING ‘100.63.1.7/5236’;
/* DBLINK 可以使用MAL端口, 也可以使用实例端口 */
5、测试查询
SQL> SELECT * FROM T1@L2;
行号 ID
---------- -----------
1 1
2 2
3 3
SQL> SELECT * FROM T1@L3;
行号 ID
---------- -----------
1 1
2 2
3 3
6、测试插入
SQL> INSERT INTO T1@L2 VALUES(4);
SQL> COMMIT;
SQL> INSERT INTO T1@L3 VALUES(50);
SQL> COMMIT;
SQL> SELECT * FROM T1@L3;
行号 ID
---------- -----------
1 1
2 2
3 3
4 4
5 50
SQL> SELECT * FROM T1@L2;
行号 ID
---------- -----------
1 1
2 2
3 3
4 4
5 50
SQL>
DM 到 ORACLE 使用DBLINK
1、在目标端安装oracle客户端工具
[root@itsapp1 ~]# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip -d /dm8/oracle/
[root@itsapp1 ~]# unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip -d /dm8/oracle/
[root@itsapp1 ~]# cd /dm8/oracle/instantclient_11_2/
[root@itsapp1 instantclient_11_2]# ln -s libclntsh.so.11.1 libclntsh.so
[root@itsapp1 instantclient_11_2]# ln -s libocci.so.11.1 libocci.so
[root@itsapp1 instantclient_11_2]# vi /etc/ld.so.conf.d/oracle.conf
/dm8/oracle/instantclient_11_2
[root@itsapp1 instantclient_11_2]# ldconfig
[root@itsapp1 dm8]# chown -R dmdba:dinstall oracle
2、创建DBLINK
SQL> CREATE or replace PUBLIC LINK orcl4 CONNECT ‘ORACLE’ WITH fangyu IDENTIFIED BY fangyu421 USING ‘100.63.1.7:1521/itsdata’;
3、测试功能
SQL> SELECT * FROM T1@ORCL4;
行号 ID
---------- --
1 1
SQL> INSERT INTO T1@orcl4 VALUES(2);
SQL> COMMIT;
SQL> SELECT * FROM T1@ORCL4;
行号 ID
---------- --
1 1
2 2
已用时间: 1.809(毫秒). 执行号:604.
SQL>
DM的数据库服务上需要安装ORACLE的OCI结构
1、使用服务名连接
CREATE LINK link_oracle CONNECT 'ORACLE' WITH 用户名 IDENTIFIED BY 密码 USING 'ORCL';
2、通过描述符连接
CREATE OR REPLACE LINK LINK1 CONNECT 'ORACLE' WITH USER01 IDENTIFIED BY USER01
USING '(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.225)(PORT =
1521)))
(CONNECT_DATA = (SERVICE_NAME = orcl) )
)';
3、通过ip地址连接
CREATE LINK LINK1 CONNECT 'ORACLE' WITH USER01 IDENTIFIED BY USER01 USING '192.168.0.225/orcl';
DM 到 MySQL 使用DBLINK
/* 常见MySQL的用户一定要大写, 否则无法连接 */
1、DM数据库上安装ODBC驱动
[root@itsapp1~]#yum -y install unixODBC unixODBC-devel ./mysql-connector-odbc-5.3.10-1.el7.x86_64.rpm
2、配置ODBC
[root@itsapp1 ~]# cat /etc/odbcinst.ini
[MySQL ODBC 5.3 Unicode Driver]
Driver=/usr/lib64/libmyodbc5w.so
UsageCount=1
[root@itsapp1 ~]# cat /etc/odbc.ini
[mysqlodbc]
Driver = MySQL ODBC 5.3 Unicode Driver
SERVER = 100.63.1.7
PORT = 3306
USER = fangyu
PASSWORD = fangyu421
CHARSET = gbk
DATABASE = db1
OPTION = 3
TRACE = OFF
[root@itsapp1 ~]#
3、DM 数据库上创建DBLINK
CREATE or replace PUBLIC LINK m1 CONNECT 'ODBC' WITH fangyu IDENTIFIED BY fangyu421 USING 'mysqlodbc';
SQL> SELECT * FROM DB1.T1@M1;
行号 id
---------- -----------
1 1
SQL> INSERT INTO DB1.T1@m1 VALUES(2);
SQL> SELECT * FROM DB1.T1@m1;
行号 id
---------- -----------
1 1
2 2
SQL>
DBLINK 相关视图
DBA_DB_LINK;
ORACLE 迁移到 DM
[dmdba@itsapp1 ~]$ cd $DM_HOME/tool
[dmdba@itsapp1 tool]$ ./dts
MySQL 迁移到 DM
详细内容请参考官方文档:https://eco.dameng.com
更多详情请访问达梦在线服务平台 https://eco.dameng.com/