oracle直接读写ms sqlserver数据库(二)配置透明网关
环境说明:
数据库版本:11gR2
透明网关版本:11g
操作系统Windows Server2008_64位
ORACLE_HOME目录:D:\app\Administrator\product\11.2.0\dbhome_1
MS数据库IP:192.168.199.245 数据库:BWONLINE 默认端口:1433
ORACLE数据库IP:172.18.123.113 服务名:db1 默认端口1521
备注:现在安装数据库后安装透明网关,透明网关安装时候的Home目录和数据库的Home目录一样。(好处:方便服务器监听的管理)
马上进入正题:
一、透明网关参数的配置:
1.安装完Gateway软件后,在ORACLE_HOME目录下有一下dg4msql的目录,这就是Gateway软件的目录了。
在dg4msql/admin目录下有一个initdg4msql.ora的文件,这里的文件命名规则为initsid.ora,系统安装完毕后会自动产生一个initdg4msql.ora的文件;

2.在实际的工作中,创建一个连接ms数据库为bwonline的链接,直接拷贝默认的initdg4msql文件,修改后缀,如上图所示 。
3.编辑initbwonline.ora文件:
HS_FDS_CONNECT_INFO=192.168.199.245//DBONLINE
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
HS_FDS_CONNECT_INFO的参数说明:
1)参数格式:hostname:port/serverinstance /databasename,其中hostname为机器名或IP地址,有网友说这里需要填写机器名才可以,但是经过实验测试机器名和IP地址都没有问题;
2)端口号:SQL Server2005默认的端口好为1433,也有网友介绍需要填写端口号才可以,经过测试填写和不填写都是可以的(可能测试环境不同导致测试的结果不同)
3)serverinstance是SQL Server的实例名,不知道什么时候SQL Server也搞起实例来了,一般空着就行。
4)Databasename是SQL Server的数据库名,需要填写;
5)整个参数文件的写法本人总共尝试过4种,经测试都是可以的。

HS_FDS_CONNECT_INFO="192.168.199.245;database=BWONLINE"
HS_FDS_CONNECT_INFO=[192.168.199.245]//BWONLINE
HS_FDS_CONNECT_INFO=192.168.199.245:1433//BWONLINE
HS_FDS_CONNECT_INFO=192.168.199.245//BWONLINE
二、监听文件listener的配置
1.监听文件的目录:ORACLE_HOME/NETWORK/ADMINISTRATOR下的listener.ora文件
2.文件的格式说明:文件分成两部分:SID_LIST_LISTENER和LISTENER
SID_LIST_LISTENER为监听SID的清单,LISTENER为监听主机的信息(IP地址和端口号的设定),详细如下:
# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = dg4msql) -----前面定义SID的名称
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1) -----ORACLE的HOME目录
(PROGRAM = dg4msql) -----程序的配置目录(以前部分的版本透明网关的目录为tg4msql,请大家注意)
)
(SID_DESC =
(SID_NAME = bwonline)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = dg4msql)
)
)
--------加亮部分说明当在透明网关配置完相应的SID,复制加亮的这一段,修改相应的SID_NAME即可。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.123.113)(PORT = 1521)) ----监听服务器的IP地址或hostname和端口号
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = D:\app\Administrator
3.配置完以上参数,启动监听便可以看到相应的服务名:在cmd里面输入:lsnrctl status

三、配置tnsnames文件,这步比较简单,相信都很熟悉了。
1.监听文件的目录:ORACLE_HOME/NETWORK/ADMINISTRATOR下的tnsnames.ora文件
db1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.123.113)(PORT = 1521)) ----监听服务器的信息
)
(CONNECT_DATA =
(SERVICE_NAME = DB1) -----监听服务名称
)
(HS = OK)
)
四、透明网关的测试
1、创建dblink
脚本:
CREATE DATABASE LINK BWONLINE
CONNECT TO SA
IDENTIFIED BY "*****"
USING 'BWONLINE';
2、查找相应MS下面的一张表,然后再ORACLE下面通过DBLINK来访问;

成功返回数据,表明相应的透明网关和dblink都是没有问题的。
3.当往Sql里面插入数据时,有时会出现错误:ORA-01591错误与分布式事务:
则可以用以下办法解锁:
select * from DBA_2PC_PENDING;
找到global_tran_id=ECOLOGY.bf951efe.7.2.44893
commit force 'ECOLOGY.bf951efe.10.24.485992';
或者
rollback force 'ECOLOGY.bf951efe.10.24.485992';
后面这串字符每次都不一样。
4.还有可能出现错误:对象名 'RECOVER.HS_TRANSACTION_LOG' 无效
解决办法是在SQLserver中创建这里配置的用户RECover和表HS_TRANSACTION_LOG
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
表脚本:
DROP TABLE HS_TRANSACTION_LOG
CREATE TABLE HS_TRANSACTION_LOG(
GLOBAL_TRAN_ID char (64) NOT NULL,
TRAN_COMMENT char (255) NULL
)
不过SQLserver里面创建用户比较麻烦,这里可直接改成dbo,和sa的密码。
oracle直接读写ms sqlserver数据库(二)配置透明网关的更多相关文章
- oracle直接读写ms sqlserver数据库(一)如何下载oracle database gateway for sqlserver
想从Oracle实时同步数据到Ms Sqlserver,需要在Oracle里面直连Sqlserver进行数据的读写,可以在Oracle服务器上安装oracle database gateway for ...
- SQLServer数据库镜像配置
目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...
- Oracle SQL developer 连接 MySQL 数据库安装配置
1. 下载 JDBC driver for MySQL 下载链接: https://dev.mysql.com/downloads/connector/j/ 下载成功后,解压缩,得到 mysql jd ...
- MS SQLserver数据库安装
SQL2008的安装 1,双击打开setup安装文件 2,点击“全新安装或向现有安装添加功能” 3,安装程序支持规则,安装完之后,点击确定 4,输入产品的密钥,点击下一步 5,弹出“安装程序支持文件” ...
- linux 使用 pyodbc 访问 ms sqlserver 数据库
一.安装linux下Sqlserver的驱动程序: 我们先来安装SqlServer的驱动程序,再安装ODBC相关的,目的是想尽快可以进行测试,因为在安装完Freetds之后,我们马上就可以在linux ...
- Oracle HA 之 基于活动数据库复制配置oracle 11.2 dataguard
规划:主库:db_name=dbking db_unique_name=dbkingpri 备库:db_name=dbking ...
- Oracle通过ODBC链接SqlServer数据库
原网址:https://www.cnblogs.com/jijm123/p/11598515.html 第一步.创建ODBC数据源 这一步要考虑数据源是32位还是64位的问题,其实就是选择不同的exe ...
- ms sqlserver数据库主文件特别大怎么办
因为项目中需要复制数据库,作为外网测试的数据库,但是数据库特别大,复制特别费劲,即使只复制主文件,主文件也特别大. 然后百度了下,发现数据库有个收缩功能,数据库右键——任务——收缩,可以对数据库进行收 ...
- ms sqlserver数据库建索引
索引分类:从物理结构上可分为两种:聚集索引和非聚集索引 (此外还有空间索引.筛选索引.XML索引) 因为聚集索引是索引顺序与物理存储顺序一致,所以只能建一个. 聚集索引就是把数据按主键顺序存储: 因为 ...
随机推荐
- J2EE简介
一,J2EE概念: J2EE的全称为,Java2 Platform Enterprise Edition,Java或java2平台企业版,他是基于java平台或java2平台的标准版,保留并扩展了J2 ...
- 【转】[.Net] 确定当前网站的物理文件路径
确定当前网站的物理文件路径 在应用程序中,您可能需要确定服务器上的文件或其他资源的路径.例如,如果应用程序以编程方式对文本文件进行读写操作,则必须为用于读取和写入的方法提供该文件的完整物理路径. 将物 ...
- TC-572-D1L2 (双向搜索+记忆化)
solution: 这一题是比较难实现的双向搜索题:(字符串+双向搜索+hash记忆化) 我们可以先把K的前半部分枚举出来,并将得出的所有结果和题目给的n个数的每一个数的前半部分都比对一遍,得到它和每 ...
- Oracle中Inventory目录作用以及如何重建此目录 oraInst.loc 文件
inventory 英 [ˈɪnvəntri] 美 [ˈɪnvəntɔ:ri] n. 清查; 存货清单; 财产目录,财产目录的编制; 存货总值; vt. 盘存; 编制…的目录; 开列…的清单; 总结 ...
- Linux输出重定向>和>>的区别是什么
[简介:>与>>的区别] 1 > 是定向输出到文件,如果文件不存在,就创建文件:如果文件存在,就将其清空:一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`& ...
- 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...
- How to fix Eclipse Tomcat startup timeout in 45 seconds?
命题:怎么修复 Eclipse 里启动 Tomcat 时, 默认启动超时时间为 45 秒的问题? 在 Eclipse 的 J2EE 项目里启动 Tomcat 来调试 Servlet 之类的,断点以后, ...
- 巧用PHP双$功能兼容线上线下配置文件
2014年2月8日 19:27:05 情景: 开发过程中线上和线下的配置文件中的值是不一样的 例如:线上生产环境的样式域名为ie.style.abc.com,而开发环境为ie.style.abc.ne ...
- android蓝牙耳机下的语音(输入/识别)及按键监听
背景:本人负责公司android平台的app开发,最近要开发一个语音助手类的app,类似于灵犀语音助手.虫洞语音助手等.其中有两个蓝牙耳机下的语音识别问题,比较折腾人,问题描述:1.蓝牙耳机连接下捕获 ...
- 关于vim复制剪贴粘贴命令的总结
最近在使用vim,感觉很好很强大,但是在使用复制剪切粘贴命令是,碰到了一些小困惑,网上找了一些资料感觉很不全,讲的也不好,遂自己进行实践并总结了. 首先是剪切(删除): 剪切其实也就顺带删除了所选择的 ...