DM-DM之间的DBLINK
1 创建外部链接
创建一个外部链接。
语法格式
CREATE [OR REPLACE] [PUBLIC] LINK <外部链接名> CONNECT ['<连接库类型>'] WITH < 登录名> IDENTIFIED BY <登录口令> USING '<外部连接串>';
<连接库类型> ::= DAMENG | ORACLE | ODBC
<外部链接串>::=< DAMENG 外部链接串>| < ORACLE 外部链接串> | <ODBC 外部链接串>
<DAMENG 外部链接串>::=[<连接类型>;]<服务器列表>
<连接类型>::= PRIMARY FIRST |
STANDBY FIRST |
PRIMARY ONLY |
STANDBY ONLY
<服务器列表>::=<服务器地址> |
<服务器地址>{,<服务器地址>}
<服务器地址>::=<实例 IP 地址>/<实例端口号> |
<MAL IP 地址>/<MAL 端口号> |
<实例名>
<ORACLE 外部链接串>::= <tsn_name> |<description>|<IP 地址>/<服务名>
<description>::=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=
<IP 地址>)(PORT=<端口号>)))(CONNECT_DATA=(SERVICE_NAME=<服务名>)))
<ODBC 外部链接串>::= <ODBC 数据源 DSN>
参数
1. OR REPLACE 使用 OR REPLACE 选项的好处是,如果系统中已经有同名的数据库 链接名,服务器会自动用新的代码覆盖原来的代码。如果不使用 OR REPLACE 选项,当创建的新外部链接名称与系统中已有的外部链接名称同名时,服务器会报错。
2. PUBLIC 此链接对象是否能够被创建者之外的用户引用;
3. <外部链接名> 数据库链接的名称;
4. <连接库类型> 目前只支持 DAMENG、ORACLE 或 ODBC,默认为 DAMENG;
5. <登录名> 登录用户名称;C
6. <登录口令> 登录用户口令;
7. <连接类型> 当 DBLINK 连接到多机环境时,可以设定<连接类型>和指定多台<服务器地址>。<连接类型>用来指定 DBLINK 将采用何种优先级别连接到<服务器列表>中的机器,共四种连接类型:PRIMARY FIRST 为主机优先连接;STANDBY FIRST 为备机优先连接;PRIMARY ONLY 为只连主机;STANDBY ONLY 为只连备机。缺省为 PRIMARY FIRST。<连接类型>为可选项,一旦指定了<连接类型>,则必须指定<服务器地址>数大于等于 2;
8. <DAMENG 外部链接串>支持三种格式,分别对应目标节点在 dmmal.ini 中的配置项,具体如下:
l <实例 IP 地址>/<实例端口号> 对应 mal_inst_host/mal_inst_port
l <MAL IP 地址>/<MAL 端口号> 对应 mal_host/mal_port
l 实例名 对应 mal_inst_name
9. <ORACLE外部链接串>可以使用配置的网络服务名tsn_name(网络服务名需要配置),或者连接描述符 description(连接描述符是网络连接目标特殊格式的描述,它包括网络协议、主库 IP 地址、端口号和服务名),或者<IP 地址>/<服务名>;
10. <ODBC 外部链接串>DSN 需要用户手动配置。
2、Dm-Dm自建的link演练
1.准备两台服务器,IP配置如下:
DB1=192.168.3.115
DB2=192.168.3.116
2.创建测试环境
a.管理员登录DB1,创建用于DBLink的用户
CREATE USER dblinkuser IDENTIFIED BY link12345; grant resource,dba to dblinkuser;
b.用dblinkuser登录DB1,创建测试表
CREATE TABLE TestTable14(cField1 CHAR(10), vcField1 VARCHAR2(10), ncField1 NCHAR(10), nvcField1 NVARCHAR2(10));
3.两台机器都要配置dmmal.ini,打开dm.ini中MAL_INI参数为1,在两台机器中均配置dmmal.ini
[DAMENG] MAL_INST_NAME=DMSERVER MAL_HOST=192.168.3.115 MAL_PORT=5555 MAL_INST_PORT=5236 MAL_INST_HOST=192.168.3.115 [DAMENG1] MAL_INST_NAME=WDMSERVER MAL_HOST=192.168.3.116 MAL_PORT=5556 MAL_INST_PORT=5236 MAL_INST_HOST=192.168.3.116
重启两台机器的数据库服务
管理员登录DB2,创建DBLink
CREATE PUBLIC LINK DB1Link CONNECT WITH dblinkuser IDENTIFIED BY "link12345" USING 'DMSERVER';
4.执行下列语句
INSERT INTO TestTable14@DB1Link(cfield1, vcfield1, ncfield1, nvcfield1) VALUES ('1','2','3','4'); UPDATE TestTable14@DB1Link SET cfield1 = '11' WHERE cfield1 = '1'; DELETE FROM TestTable14@DB1Link WHERE cfield1='11'; SELECT * FROM TestTable14@DB1Link;
以上步骤各语句执行正确,数据正确插入、更新及删除,并能正确查出。

浙公网安备 33010602011771号