热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle通过ODBC连接GreenPlum

原来是发帖记录,有回帖说放博客看到的人更多折腾了oracle到greenplum的dblink访问,分享给大家:要连接的两端:oraclerhel6.56


原来是发帖记录,有回帖说放博客看到的人更多微笑

折腾了oracle到greenplum的dblink访问,分享给大家:
要连接的两端:
oracle rhel 6.5 64位 11.2.0.4
greenplum cenos6.5 64位

操作都在oracle服务器上完成:

root登录操作

安装驱动(第一次操作yum安装的小伙伴可参考我的另一个yum安装步骤贴)
yum install -y

unixODBC-devel-2.2.14-12.el6_3.x86_64.rpm
unixODBC-2.2.14-12.el6_3.x86_64.rpm
postgresql-8.4.18-1.el6_4.x86_64.rpm
postgresql-contrib-8.4.18-1.el6_4.x86_64.rpm
postgresql-devel-8.4.18-1.el6_4.x86_64.rpm
postgresql-libs-8.4.18-1.el6_4.x86_64.rpm
postgresql-odbc-08.04.0200-1.el6.x86_64.rpm
postgresql-plperl-8.4.18-1.el6_4.x86_64.rpm
postgresql-plpython-8.4.18-1.el6_4.x86_64.rpm
postgresql-pltcl-8.4.18-1.el6_4.x86_64.rpm
postgresql-server-8.4.18-1.el6_4.x86_64.rpm
----------------------------------------------------------------
查看驱动配置
cat /etc/odbcinst.ini 

# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib64/psqlodbc.so
Setup = /usr/lib64/libodbcpsqlS.so
FileUsage = 1

----------------------------------------------------------------
测试ODBC驱动是否安装成功
# odbcinst -q -d
[PostgreSQL]

----------------------------------------------------------------
配置DSN
/etc/odbc.ini 
[gp]
Description = Test to gp
Driver = PostgreSQL
Trace    = Yes
TraceFile = /tmp/sql.log
Database = mygp
Servername = 192.168.1.101
UserName = gpuser
Password = gpuser
Port = 5431
ReadOnly = 0

----------------------------------------------------------------
测试连通性
su - oracle
isql -v gp    -- /etc/odbc.ini中的中括号指定的名字
报错:[28000][unixODBC]FATAL: no pg_hba.conf entry for host "192.168.1.99", user "gpuser", database "mygp", SSL off
/*
此问题:PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求
需要在master机器上 /data/master/gpseg-1
vim pg_hba.conf
添加:(信任192.168.1.99 登录数据库)
host   all    all    192.168.1.99/32    trust
*/
netstat -tuln  测试可以看到192.168.1.99
再测试:
isql -v gp
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 
测试成功!

----------------------------------------------------------------
--配置 HSODBC
vim $ORACLE_HOME/hs/admin/initgp.ora
HS_FDS_CONNECT_INFO = gp #对应odbc.ini中括号
HS_FDS_TRACE_LEVEL = debug #当为'debug'时,用于检查报错,在$ORACLE_HOME/hs/log/下;  成功后最好设置为off;
HS_FDS_SHAREABLE_NAME = /usr/lib64/psqlodbc.so  #对应odbcinst.ini Driver
HS_LANGUAGE=american_america.we8mswin1252 #必须写,否则dblink出现ora-28500报错
HS_NLS_NCHAR=UCS2 #必须写,否则dblink出现ora-28500报错

set ODBCINI=/etc/odbc.ini 

----------------------------------------------------------------
--配置监听
vim $ORACLE_HOME/network/admin/listener.ora  

添加
SID_LIST_LISTENER=
(SID_DESC =
   (PROGRAM = dg4odbc)
   (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
   (SID_NAME = gp)  
   (ENVS=LD_LIBRARY_PATH = /u01/app/oracle/product/11.2.0/dbhome_1/lib:/u01/app/oracle/product/11.2.0/dbhome_1/odbc/lib:/usr/lib:/usr/local/lib:/u01/app/oracle/product/11.2.0/dbhome_1/hs/lib:/usr/lib64)
)

vim $ORACLE_HOME/network/admin/tnsnames.ora
gp=
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.99) (PORT = 1521) )
   )
   (CONNECT_DATA = (SID = gp) )  
   (HS=OK)
)

----------------------------------------------------------------
--重启监听,要有 gp 服务
$ lsnrctl stop
$ lsnrctl start

----------------------------------------------------------------
--tnsping测试服务
[oracle@ttt admin]$ tnsping gp

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 10-MAY-2017 16:46:12

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.99) (PORT = 1521))) (CONNECT_DATA =(SID= gp)) (HS=OK))
OK (0 msec)

----------------------------------------------------------------
--创建dblink
create public database link gpuser_gp connect to "gpuser" identified by "gpuser" using 'gp';

--测试
select * from "pg_user"@gpuser_gp
提示ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
 connction string lacks some options {08001,NativeErr = 202} 其实是.odbc.ini文件里面少了个steup选项
以及$ORACLE_HOME/hs/admin/initgp.ora  中必须写两个参数
HS_LANGUAGE=american_america.we8mswin1252
HS_NLS_NCHAR=UCS2

select "usename" from "pg_user"@gpuser_gp;

OK!


推荐阅读
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在深入掌握Spring框架的事务管理之前,了解其背后的数据库事务基础至关重要。Spring的事务管理功能虽然强大且灵活,但其核心依赖于数据库自身的事务处理机制。因此,熟悉数据库事务的基本概念和特性是必不可少的。这包括事务的ACID属性、隔离级别以及常见的事务管理策略等。通过这些基础知识的学习,可以更好地理解和应用Spring中的事务管理配置。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
author-avatar
mobiledu2502858053
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有