内蒙古建设工程交易中心网站,wordpress文章打赏,网站设计西安网站建设,上海做网站汉狮网络为多个数据库之间的整合和迁移做POC#xff0c;尝试使用Oracle Gateway和Heterogeneous Service来中转访问#xff0c;测试过好多次#xff0c;最终发现只有在32位的Oracle当中才能成功配置。 配置环境如下#xff1a; Windows 2003 32bit 或 Windows 2008 64bit Oracle10G…为多个数据库之间的整合和迁移做POC尝试使用Oracle Gateway和Heterogeneous Service来中转访问测试过好多次最终发现只有在32位的Oracle当中才能成功配置。 配置环境如下 Windows 2003 32bit 或 Windows 2008 64bit Oracle10G 32bit 或 Oracle11G 32bit Source and TargetOracle 或 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(PROTOCOLtcp)(HOSTlocalhost)(PORT1521)) (CONNECT_DATA(SIDgp)) (HSOK) ) 6. 遇到的问题 6.0. ORA-01017: 用户名/口令无效; 登录被拒绝 SQL CREATE PUBLIC DATABASE LINK postgresql CONNECT TO dba IDENTIFIED BY isdba USING gp; 数据库链接已创建。 SQL select * from a1postgresql; select * from a1postgresql * 第 1 行出现错误: ORA-01017: 用户名/口令无效; 登录被拒绝 FATAL: no pg_hba.conf entry for host 10.46.182.233, user DBA, database loglapdb, SSL off {28000,NativeErr 210} ORA-02063: 紧接着 2 lines (起自 POSTGRESQL) 这个错误看起来好像非常简单就是密码错误问题是已经确认密码无误且可以使用psql登陆死活不理解什么原因去查看网关日志如下 Exiting hgoinit, rc0 at 2013/05/10-13:31:36 Entered hgolgon at 2013/05/10-13:31:36 reco:0, name:DBA, tflag:0 Entered hgosuec at 2013/05/10-13:31:36 Exiting hgosuec, rc0 at 2013/05/10-13:31:36 HOSGIP for HS_FDS_RECOVERY_ACCOUNT returned RECOVER HOSGIP for HS_FDS_TRANSACTION_LOG returned HS_TRANSACTION_LOG HOSGIP for HS_FDS_TIMESTAMP_MAPPING returned DATE HOSGIP for HS_FDS_DATE_MAPPING returned DATE HOSGIP for HS_FDS_CHARACTER_SEMANTICS returned FALSE HOSGIP for HS_FDS_MAP_NCHAR returned TRUE HOSGIP for HS_FDS_RESULTSET_SUPPORT returned FALSE HOSGIP for HS_FDS_RSET_RETURN_ROWCOUNT returned FALSE HOSGIP for HS_FDS_PROC_IS_FUNC returned FALSE HOSGIP for HS_FDS_REPORT_REAL_AS_DOUBLE returned FALSE using DBA as default value for HS_FDS_DEFAULT_OWNER HOSGIP for HS_SQL_HANDLE_STMT_REUSE returned FALSE Entered hgocont at 2013/05/10-13:31:36 HS_FDS_CONNECT_INFO gp RC-1 from HOSGIP for HS_FDS_CONNECT_STRING Entered hgogenconstr at 2013/05/10-13:31:36 dsn:gp, name:DBA optn: Entered hgocip at 2013/05/10-13:31:36 dsn:gp Exiting hgocip, rc0 at 2013/05/10-13:31:36 Exiting hgogenconstr, rc0 at 2013/05/10-13:31:36 Entered hgopoer at 2013/05/10-13:31:36 后来看到网友也出现了类似的问题原来是用户名也要用双引号括起来,我们从这里也可以看到传输的用户名是大写的DBA reco:0, name:DBA, tflag:0 但实际上在greenplum当中的确实小写的dba包括在定义dblink中的密码也要用双引号当然还有sourcename。 SQL drop public database link postgresql; 数据库链接已删除。 SQL CREATE PUBLIC DATABASE LINK postgresql CONNECT TO dba IDENTIFIED BY isdb a USING gp; 数据库链接已创建。 SQL select * from a1postgresql; 未选定行 6.1. 查询指定字段 SQL Select Name From t1postgresql; Select Name From t1postgresql * 第 1 行出现错误: ORA-00904: NAME: 标识符无效 也必须用双引号 SQL Select Name From t1postgresql; Select Name From t1postgresql * 第 1 行出现错误: ORA-00904: NAME: 标识符无效 另外需要注意的在greenplum中都是小写的表名和字段名称。 6.2. ORA-00600: Internal errorcode, arguments:[HO define: Long fetch], [], [], [], [], [], [], [] 查询的时候报错确认是个hs dg4odbc bug不过这个bug只是在使用PLD的时候出现使用SQL*PLUS没有触发目前我使用的版本是11.2.0.1.0具体见Bug 4391058看描述说在11.2已经修复了怎么我还会遇到呢有人反馈说使用具体字段列举替代”*“可是我这边还是无效。 -EOF-