环境说明:

数据库版本: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数据库(二)配置透明网关的更多相关文章

  1. oracle直接读写ms sqlserver数据库(一)如何下载oracle database gateway for sqlserver

    想从Oracle实时同步数据到Ms Sqlserver,需要在Oracle里面直连Sqlserver进行数据的读写,可以在Oracle服务器上安装oracle database gateway for ...

  2. SQLServer数据库镜像配置

    目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...

  3. Oracle SQL developer 连接 MySQL 数据库安装配置

    1. 下载 JDBC driver for MySQL 下载链接: https://dev.mysql.com/downloads/connector/j/ 下载成功后,解压缩,得到 mysql jd ...

  4. MS SQLserver数据库安装

    SQL2008的安装 1,双击打开setup安装文件 2,点击“全新安装或向现有安装添加功能” 3,安装程序支持规则,安装完之后,点击确定 4,输入产品的密钥,点击下一步 5,弹出“安装程序支持文件” ...

  5. linux 使用 pyodbc 访问 ms sqlserver 数据库

    一.安装linux下Sqlserver的驱动程序: 我们先来安装SqlServer的驱动程序,再安装ODBC相关的,目的是想尽快可以进行测试,因为在安装完Freetds之后,我们马上就可以在linux ...

  6. Oracle HA 之 基于活动数据库复制配置oracle 11.2 dataguard

    规划:主库:db_name=dbking               db_unique_name=dbkingpri               备库:db_name=dbking          ...

  7. Oracle通过ODBC链接SqlServer数据库

    原网址:https://www.cnblogs.com/jijm123/p/11598515.html 第一步.创建ODBC数据源 这一步要考虑数据源是32位还是64位的问题,其实就是选择不同的exe ...

  8. ms sqlserver数据库主文件特别大怎么办

    因为项目中需要复制数据库,作为外网测试的数据库,但是数据库特别大,复制特别费劲,即使只复制主文件,主文件也特别大. 然后百度了下,发现数据库有个收缩功能,数据库右键——任务——收缩,可以对数据库进行收 ...

  9. ms sqlserver数据库建索引

    索引分类:从物理结构上可分为两种:聚集索引和非聚集索引 (此外还有空间索引.筛选索引.XML索引) 因为聚集索引是索引顺序与物理存储顺序一致,所以只能建一个. 聚集索引就是把数据按主键顺序存储: 因为 ...

随机推荐

  1. netty学习总结(一)

    netty是一个nio框架,将java的nio进行了一个封装,形成了一个高性能,高可用的网络编程框架,很多的框架都是基于netty的,所以学好netty是很有用的,而且netty本身的代码结构设计,以 ...

  2. python垃圾回收之分代回收

    可参考vamei的博客和https://www.jianshu.com/p/1e375fb40506

  3. Linux中断(interrupt)子系统之一:中断系统基本原理【转】

    转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...

  4. linux根据端口查找进程【原创】

    如转载请注明地址 1.利用lsof -i:端口号 lsof -i:端口号 [root@01 ~]# lsof -i:8097COMMAND PID USER FD TYPE DEVICE SIZE/O ...

  5. SSL邮件发送(腾讯企业邮箱测试通过,可以支持多附件)

    参考网址:http://www.cnblogs.com/LUA123/p/5575134.html ,谢谢! package net.common.utils.common; import java. ...

  6. SysV和BSD启动风格的比较

    Slackware启动脚本与System V启动脚本的区别何在? Slackware 使用BSD风格的init脚本,而很多别的发行版使用System V风格的init脚本.SysV和BSD脚本都是能让 ...

  7. 关于获取Windows下性能参数的总结

    Windows下特定进程或者所有进程的CPU.物理内存.虚拟内存等性能参数的获取方法小结,包括如何在MFC中以及如何使用C#语言来获取参数. VC API:GlobalMemoryStatus 获取全 ...

  8. 028 Partitioner:数据分区器

    Partitioner:数据分区器,决定数据到下一个RDD的时候在那一个分区 HashPartitioner:根据key的hashCode值来实现 RangePartitioner: 根据key所属范 ...

  9. 【IObit】五大软件激活码( Advanced Systemcare....)

    IObit Malware Fighter 6Pro 破解: 打开软件安装位置,下载替换dll文件 链接: https://pan.baidu.com/s/1Euz87MCANuCnRqZsMQ_w4 ...

  10. 格式化输出函数:printf 那些事 (C语言)

    printf函数提供格式化输出转换 函数包含在头文件  <stdio.h>  中 #include <stdio.h> ...... 函数的原型在头文件的声明为 _CRTIMP ...