Oracle通过DBLINK访问GreenPlum

为多个数据库之间的整合和迁移做POC,尝试使用Oracle Gateway和Heterogeneous Service来中转访问,测试过好多次,最终发现只有在32位的Oracle当中才能成功配置。
 配置环境如下:
 Windows 2003 32bit 或 Windows 2008 64bit
 Oracle10G 32bit 或 Oracle11G 32bit
 Source and Target:Oracle 或 MySQL 或 PostgreSQL 或 GreenPlum ......
 

我的配置方式是使用一台独立终端来作为类似跳转的机器,实际的source db和target db均在其他的主机上,这样至少3台涉及到的主机。
 Linux也是可以的,但是现在没实际用到,唯一需要注意的unixODBC版本的问题,因此这里主要描述在Windows2008 DC Server当中访问GreenPlum的配置过程。
 

0. 安装Oracle Database
 注意是含了一个实例,略。
 1. 安装psqlodbc驱动
 略。
 2. 配置ODBC for GreenPlum
 注意选择ANSI,使用UNICODE会对char等字符类型的字段无法查询和显示,略。
 3. 配置hs sid
 hs\admin\initgp.ora:
 HS_FDS_CONNECT_INFO = gp
 HS_FDS_TRACE_LEVEL = debug
 4. 配置hs listener
 listener.ora:
 (SID_DESC =
  (PROGRAM = dg4odbc)# hsodbc for 10g
  (ORACLE_HOME = C:\oracle\product\11.2.0\dbhome_1)
  (SID_NAME = gp)
  #(ENVS= "LD_LIBRARY_PATH = /usr/lib:/u01/app/oracle/product/10.2.0/db_1/lib") # for linux
 )
 5. 配置tns
 tnsnames.ora:
 gp =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=gp))
    (HS=OK)
  )
 

6. 遇到的问题:
 6.0. ORA-01017: 用户名/口令无效; 登录被拒绝
 SQL> CREATE PUBLIC DATABASE LINK postgresql CONNECT TO dba IDENTIFIED BY "isdba"
  USING 'gp';
 

数据库链接已创建。
 

SQL> select * from "a1"@postgresql;
 select * from "a1"@postgresql

相关推荐