以前都是单实例访问其他数据库,比如SQLSERVER,PG,MYSQL,那如果是RAC,两节点怎么协调,在安装时,如何处理,已经ORACLE要同时访问多个SQLSERVER,怎么实现,带着这些疑问,我们下面来具体实现:
| HIS |
| PACS |
| 心电 |
数据库版本 | ORACLE 19.3.0 RAC |
| MSSQL2016 |
| MSSQL2016 |
操作系统 | CENTOS 7.6 |
| WIN2016 |
| WIN2016 |
IP地址 | 10.16.104.1/10.16.104.2 |
| 10.16.105.67 |
| 10.16.105.21 |
数据库 | HISDB |
| visuncloud |
| nlemr |
端口 | 1521 |
| 1433 |
| 1433 |
用户密码 | thdba/xxxx |
| hissj/xxxx |
| xd_his/xxxx |
测试表 |
|
| wjtj |
| viewreport1001 |
2.安装GATEWAY
去ORACLE官网下载单独的GATEWAY软件,在GRID软件之后,名字叫:LINUX.X64_193000_gateways.zip
在两个节点分别安装GATEWAY软件
在11G RAC,只需要在一个节点安装,会自动拷贝到其他节点,19C,需要在各个节点单独安装GATEWAY软件。
下一步,输入IP地址,端口,实例名,数据库名
其中,实例名可以通过服务来查看到,默认一般为MSSQLSERVER
安装完成之后,下面就开始配置了,所有的配置都需要在两个节点运行
cd $ORACLE_HOME/dg4msql/admin
如果实例名为MSSQLSERVER,这个serverinstance会保留空
PACS:dg4msql1,10.16.105.67/1433/visuncloud
xd:dg4msql2,10.16.105.21/1433//nlemr
多个实例,就直接拷贝:initdg4msql.ora 为 initdg4msql1.ora, initdg4msql2.ora,…, initdg4msqln.ora
里面主要是[IP]:1433//数据库名 有差异
由于是RAC,需要在GRID用户下去建立监听
如果不想麻烦,可以使用默认的监听名字,LISTENER,否则,需要把新监听加入集群中去。
我们这里使用默认监听
su – grid
cd $GRID_HOME/network/admin
添加监听
SID_LIST_LISTENER=
(SID_LIST=
(SID_DEST=
(SID_NAME=dg4msql1)
(ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1)
(PROGRAM=dg4msql)
)
(SID_DEST=
(SID_NAME=dg4msql2)
(ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1)
(PROGRAM=dg4msql)
)
)
注意:
sid_name就是上面配置的配置文件的名称
program用默认的dg4msql表示使用msql的接口
两节点重启监听
Lsnrctl stop
Lsnrctl start
查看监听
Lsnrctl status |grep dg4msql
由于是RAC,两个节点都需要配置
10.16.104.1
10.16.104.2
是两个节点的物理IP,使用VIP,应该也可以
这里配置tns的服务名,由于是在oracle中调用,所以需在ORACLE_HOME下配置,而不是在GRID_HOME下配置:
cd $ORACLE_HOME/network/admin/
cat tnsnames.ora
…
DG4MSQL1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.104.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.104.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dg4msql1)
)
(HS=OK)
)
DG4MSQL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.104.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.104.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dg4msql2)
)
(HS=OK)
)
…
测试联通性
tnsping dg4msql1
tnsping dg4msql2
6. 创建DBLINK:HIS到PACS,心电的DBLINK
名称:PACSDBLINK,XDDBLINK
使用thdba用户,创建PUBLIC DBLINK
conn thdba/xxx
create public database link PACSDBLINK connect to hissj identified by "xxx" using 'dg4msql1';
create public database link XDDBLINK connect to xd_his identified by xxx using 'dg4msql2';
注:这里的dg4msqlx就是tnsnames中配置的服务名.
7. 测试DBLINK
Select * from dual@pacsdblink;
Select * from dual@xddblink;
select * from Wjtj@pacsDBLINK;
select * from viewreport1001@xdDBLINK ;
到此,安装完成,手工。