oracle transparent gateway 10g配置注意事项

 Oracle透明网关是直接访问异构数据库的利器, 例如访问Sybase,SQLServer等数据库. 在9i版本中,oracle gateway 是和数据库软件整合在一起的.在Oracle10g版本中,gateway被独立出来. 并且在9i和10g中, gateway只能支持windows版本的SQLServer访问, 从11g开始, gateway可以安装在Unix 和 Linux上,极大的方便了Oracle和异构数据库之间的数据访问.

 

环境: 一台windows server 2003的电脑,安装有sql server 2000, Oracle 10g, Oracle gateway 10g

IP地址为192.168.0.132

 

注意事项:

1.

HS_FDS_CONNECT_INFO的设置有多种格式,如:

HS_FDS_CONNECT_INFO=”SERVER=192.168.0.132;DATABASE=test”或者
HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433,如:
HS_FDS_CONNECT_INFO=sqlserver.test

 

2.由于透明网关和数据库都是装在同一电脑上,所以设置透明网关的端口为1522。而且这两个东东的监听程序都要启动开来。必须是在数据库监听程序下配置连接接到透明网关下的tg4msql的连接。

 

3.出现这个错误

ERROR at line 1:

ORA-02068: following severe error from DL3

ORA-03135: connection lost contact

要查下数据库监听程序下的tnsnames.ora   

TG4MSQL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.132)(PORT = 1522))

    )

    (CONNECT_DATA =

      (SID” = tg4msql)

    )

    (HS = OK)

  )

   括号是否错位了。

 

4. 透明网关程序和数据库的版本号一致。如:都是10g

 

暂时就这三点了,以后碰到再总结。

oracle database link 的使用

环境:   A 主机,B主机,windows server 2003, oracle 10g

注意点:

1. 设置global_names为false,  这样可以不用全局数据库名。查询select * from global_name可知数据库全局名。

2. 当用create database link dl connect to user identified by “password” using ‘conn_string’ 创建数据库链接时,当你连接数据库链接时,注意链接名一定要大写。 select * from jobs@DL

db2 10.5 使用列式存储

环境: SUSE11 SP2,  DB2 10.5

设置db2set DB2_WORKLOAD=ANALYTIC

创建表t1
create table t1(
empno char(6),
firstnme varchar(12)
) organize by column;

导入数据(使用数据库sample内的表vemp), insert into t1 select empno, firstnme from vemp;

查询数据select * from t1;  直接报错 “SQL0955C Sort memory cannot be allocoated to process the statement. Reason code = “3 “. SQLSTATE=57011″, 经排查得知数据库配置SHEAPTHRES_SHR, SORTHEAP值过小, 修改如下:
db2 update db cfg using SORTHEAP 300000
db2 update db cfg using SHEAPTHRES_SHR 500000

使用infosphere warehouse的federation server

环境:windows server 2003, infosphere warehouse 10.1
在安装infosphere warehouse的时候有个federation server选项,选中后会安装db2 和oracle的包装器。由于从db2 v10开始后图形界面control central已经去除,只好下个ibm data studio administration client来使用图形界面。选择“联合数据库对象”中的“包装程序”,“远程服务器”, “用户映射”, “昵称”依次来创建连接到oracle的联邦表。
还可以在命令行中创建,脚本如下:
CREATE WRAPPER “orclwp” LIBRARY ‘db2net8.dll’ OPTIONS (
ADD DB2_FENCED ‘N’
);
CREATE SERVER “orclsrv”
TYPE “ORACLE”
VERSION ’11’
WRAPPER “orclwp”
OPTIONS (
ADD NODE ‘orcl’     —tnsname.ora设置的名字
);
CREATE USER MAPPING FOR “ADMINISTRATOR” SERVER “orclsrv” OPTIONS (
ADD REMOTE_AUTHID ‘hq’,
REMOTE_PASSWORD ‘hq’
);
CREATE NICKNAME “ADMINISTRATOR”.”emps” FOR “orclsrv”.”HQ”.”EMP”;
创建nickname期间出现一个问题:从数据源 “orclsrv” 中接收到了意外错误代码 “-1″。相关联的文本和标记为 “ORACLE_HOME variable not set”。. SQLCODE=-1822, SQLSTATE=560BD, DRIVER=3.63.108
排除问题: ORACLE_HOME环境变量未设置,设置好这个变量,重启服务器。

DB2 交易日志满

环境: redhat 5,  DB2 V9.7

今天在导tpch的数据时 db2 “import from ‘customer.tbl’ of del modified by coldel| insert into customer”

发现无法导入数据并报错:SQL0964C  The transaction log for the database is full

查询错误db2 ? SQL0964C提示交易日志过小

对这种场景有两种方式来处理:

1. 调整LOGFILSIZ, LOGPRIMARY, LOGSECOND这三个参数

2.绕过缓存使用load来导入db2 “load from ‘customer.tbl’ of del modified by coldel| codepage=1208 insert into customer”

DB2 Event Monitor使用与查询

环境: db2v9.7,  RedHat 5

首先创建一个目录用于存放事件监控,例:
[db2inst1@esi-202 ~]$ mkdir emondir

创建一个sql语句的事件监控
[db2inst1@esi-202 ~]$ db2 “create event monitor emon1 for statements write to file ‘/home/db2inst1/emondir'”

启动emon1
[db2inst1@esi-202 ~]$ db2 “set event monitor emon1 state 1”

查看事件监控生成的内容:
[db2inst1@esi-202 ~]$db2evmon -path emondir

查看事件监控启动情况:
[db2inst1@esi-202 ~]$db2 “select evmonname, event_mon_state(evmonname) from syscat.eventmonitors

关闭emon1
[db2inst1@esi-202 ~]$ db2 “set event monitor emon1 state 1”

删除emon1
[db2inst1@esi-202 ~]$ db2 “drop event monitor emon1′”

solidDB Universal Cache

环境: windows XP,  solidDB,  Datastore Replication Engine( InfoSphere CDC for solidDB, InfoSphere CDC for DB2), InfoSphere CDC Access Control, InfoSphere CDC Management Console. DB2 V9.7 Express-C

 

1. 安装solidDB 和 DB2 V9.7 Express-C

2.设置solidDB安装目录的配置文件solid.ini,在[LogReader]下添加

LogReaderEnabled=yes
MaxLogSize=10240
MaxSpace=100000

为DB2设置日志归档(update db cfg using LOGARCHMETH1 DISK:D:\\DB2\\NODE0000\\logarchmeth\\) C:\\Documents and Settings\\rand>db2 get db cfg | findstr /i “logarchmeth1”
First log archive method                 (LOGARCHMETH1) = DISK:D:\\DB2\\NODE0000\\logarchmeth\\

3.安装InfoSphere CDC for solidDB,配置solidDB Instance 

4.安装 InfoSphere CDC for DB2并配置Data Server node

5.  最后安装InfoSphere CDC Access Control 和 InfoSphere CDC Management Console

6. 启动solidDB instance 和 Data Server instnace

7. 登录至InfoSphere CDC Management Console

输入之前安装InfoSphere CDC Management Console时提供的用户和密码

8. 在该界面上Access Manager添加源和目标的datastore.

9. 在Confiugration添加subscription. (右击,出现New Subscription)  (注:不知怎么回事,登录进去后一直显示New Subscripiton为灰色,无法使用,偶然在File–>Access Server —> disconnect后再登录进来才可以使用)

solidDB_CDC_Config.JPG

UDB_CDC_Config.JPG

InfoSphere_CDC_ManagementConsole.JPG

InfoSphere_CDC_ManagementConsole2.JPG

DB2创建catalog编目

环境: RHEL 5,  DB2 V9.7 Enterprise

使用db2inst1用户登入,创建一个数据库,在命令行中输入 db2 create database toolsdb automatic storage yes, 成功后输入db2 create tools catalog systools use existing database toolsdb, 然后使用默认的用户dasusr1登录到系统,关掉DAS服务, db2admin stop, 接着启动服务 db2admin start