标签: oracle

  • 使用ORACLE GATEWAY 与Greenplum HAWQ 1.0 互通

    现场环境:Oracle 11g 64bit linux edition

    Greenplum Pivotal HD HAWQ 1.0

    操作系统 RHEL 6.3 x86_64

    为了实现在Oracle中直接访问HAWQ中的数据,需要首先安装Oracle Gateway 11g x86_64 linux edition

     

    需要安装的软件:Oracle Gateway 11g x86_64 linux edition

    DATADIRECT_CONNECT64_ODBC_7.0.1for Greenplum (必须是7版本的,6的不行,rhel6带的unixodbc也不行)

     

    ( 后记,Oracle 11g database server 中貌似也带了hs的功能,直接使用database server 当gateway应也可,不用再单独安装gateway)

    安装路径: Oracle Gateway:/home/oracle/product/11.2.0/tg_1

    Datadirect ODBC :/home/oracle/ddodbc

    Oracle database :/home/oracle/app/oracle/product/11.2.0/dbhome_1

     

    配置:

    修改/home/oracle/product/11.2.0/tg_1/hs/admin/initdg4odbc.ora

    # This is a sample agent init file that contains the HS parameters that are
    # needed for the Database Gateway for ODBC
    #
    # HS init parameters
    #
    HS_FDS_CONNECT_INFO = Greenplum
    #HS_FDS_TRACE_LEVEL = 0
    HS_FDS_TRACE_LEVEL= ODBC
    HS_FDS_TRACE_FILE_NAME = /home/oracle/odbc_trace.log
    HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
    HS_FDS_SUPPORT_STATISTICS = FALSE
    #HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1
    HS_LANGUAGE = AMERICAN_AMERICA.UTF8
    HS_FDS_TIMESTAMP_MAPPING = “TIMESTAMP(6)”
    HS_FDS_FETCH_ROWS=1
    #HS_FDS_SQLLEN_INTERPRETATION=32
    HS_KEEP_REMOTE_COLUMN_SIZE=LOCAL
    HS_NLS_NCHAR = UCS2
    #
    # ODBC specific environment variables
    #
    set ODBCINI=/etc/odbc.ini
    set ODBCINST=/etc/odbcinst.ini

    修改/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

    备注,此处直接使用database的listener。未使用gateway的listener ,在文件后追加:

    SID_LIST_LISTENER =
            (SID_LIST =
                    (SID_DESC =
                            (SID_NAME = dg4odbc)
                            (ORACLE_HOME =/home/oracle/product/11.2.0/tg_1 )
                            (ENV=”LD_LIBRARY_PATH=/usr/local/lib:/home/oracle/product/11.2.0/tg_1/lib:/home/oracle/ddodbc/lib”)
                            (PROGRAM = dg4odbc)
                    )
            )
    )
    修改/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
    增加:
    dg4odbc  =
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
        (CONNECT_DATA=(SID=dg4odbc))
        (HS=OK)
      )
    修改/etc/odbc.ini
    [oracle@server3 admin]$ cat /etc/odbc.ini
    [ODBC Data Sources]
    Greenplum=Greenplum
    [ODBC Data Sources]
    Greenplum Wire Protocol=DataDirect 7.0 Greenplum Wire Protocol
    [ODBC]
    IANAAppCodePage=4
    InstallDir=/home/oracle/ddodbc
    Trace=0
    TraceFile=odbctrace.out
    TraceDll=/home/oracle/ddodbc/lib/ddtrc26.so
    [Greenplum]
    Driver=/home/oracle/ddodbc/lib/ddgplm26.so
    Description=DataDirect 7.0 Greenplum Wire Protocol
    AlternateServers=
    ApplicationUsingThreads=1
    ConnectionReset=0
    ConnectionRetryCount=0
    ConnectionRetryDelay=3
    Database=haier
    DefaultLongDataBuffLen=2048
    EnableDescribeParam=0
    EnableKeysetCursors=0
    EncryptionMethod=0
    ExtendedColumnMetadata=0
    FailoverGranularity=0
    FailoverMode=0
    FailoverPreconnect=0
    FetchTSWTZasTimestamp=0
    FetchTWFSasTime=0
    HostName=server3
    InitializationString=
    KeyPassword=
    KeysetCursorOptions=0
    KeyStore=
    KeyStorePassword=
    LoadBalanceTimeout=0
    LoadBalancing=0
    LoginTimeout=15
    LogonID=
    MaxPoolSize=100
    MinPoolSize=0
    Password=
    Pooling=0
    PortNumber=54321
    QueryTimeout=0
    ReportCodepageConversionErrors=0
    TransactionErrorBehavior=1
    XMLDescribeType=-10
    Charset=utf8
    [ODBC]
    TraceFile=/tmp/sql.log
    Trace=1

     

     

    修改/etc/odbcinst.ini

    [ODBC Drivers]
    DataDirect 7.0 Greenplum Wire Protocol=Installed
    [ODBC Translators]
    OEM to ANSI=Installed
    [Administrator]
    HelpRootDirectory=/home/oracle/ddodbc/adminhelp
    [ODBC]
    #This section must contain values for DSN-less connections
    #if no odbc.ini file exists. If an odbc.ini file exists,
    #the values from that [ODBC] section are used.
    [DataDirect 7.0 Greenplum Wire Protocol]
    Driver=/home/oracle/ddodbc/lib/ddgplm26.so
    Setup=/home/oracle/ddodbc/lib/ddgplm26.so
    APILevel=0
    ConnectFunctions=YYY
    DriverODBCVer=3.52
    FileUsage=0
    HelpRootDirectory=/home/oracle/ddodbc/help
    SQLLevel=0

     

    重启listener

    lsnrctl status 中应有一下内容:

    Listening Endpoints Summary…
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server3)(PORT=1521)))
    Services Summary…
    Service “dg4odbc” has 1 instance(s).
      Instance “dg4odbc”, status UNKNOWN, has 1 handler(s) for this service…
    而后在数据库中创建dblink,注意用户名和密码需要使用双引号

    create database link DBLINK
    connect to “gpadmin” identified by “gpadmin”
    using ‘dg4odbc’;

    执行sql语句即可返回成功(注意HAWQ中的表名和字段名需要使用双引号,用小写表示):

    select count(*) from “poc1″@dblink;

     

  • 心情不在

    上完编译课终于想到该改变一下了。这学期真的好没状态,我还能实现自己的目标?
      我想我还是不适合读书,就象他们说的那样我在学校里太久了.太适应这里的环境.这学期虽然不会比以前更不用功,但是拉下东西太多.数学始终是我的恶梦,编译和unix也拉下不少,眼看就五一了,还有软考呢.全都没准备…
    是我惰性太强,太笨,记性不好才会有今天的局面?不,我想都是借口.年底就找工作了.我不想一事无成.
    啥也不说.看成效

  • 数据库设计课程.

         Day Day Up!小懒虫也开始锻炼了噢,呵..虽然很偷懒,虽然很怕累,但谁说不会有效果?
    我也要向健康一族迈进啦,最近老觉得自己长胖了,肚子好多肉噢,前两天多做了几个仰卧起坐
    ,累得我肚子疼得不行,起床都要侧身起来,闷,不过哑铃还是有点用噢.手比以前有力气多呢.
    恩..坚持住噢..
        今天总算把数据库设计的作业做的差不多了,总体框架也完成了,基本功能已经可用,
    java太累了.早知道用PB做了,用JBuilder 做还算好,这次做比上次有经验,尽量面向对象,代码
    重用做的也比较好,又积累了一些经验,呵.又开始吹自己?

  • oracle 9i sql*plus worksheet乱码问题

    今天使用worksheet做个查询,输出内容令我大跌眼睛,中文都不能正常显示,而且乱码就乱码嘛。
    竟然还显示一个脏字,
    查询sql*plus语言设置select userenv(‘language’) from dual;
    AMERICAN_AMERICA.ZHS16GBK
    没有问题。
    上网查询。。。原来
    对于Oracle Enterprise Manager中的所有工具,有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项,# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 去掉注释符#,同时将其修改为SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。对于Windows操作系统,还需要修改一项,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的 Winnt下,则将其修改为 SQLPLUS_SYSTEMROOT=d:\\WINNT。对于后面一项的修改只对Windows操作系统进行,对UNIX操作系统则不需要。如果在 Windows操作系统中不修改该项,在Oracle Enterprise Manager中,连接系统时,会提示如下的错误:ORA-12560 TNS:protocol adapter error 或者 ORA-12545 Connect failed because target host or object does not exist
       修改完成后,保存文件,退出编辑。重新连接SQL PLUS Worksheet,字符集乱码问题得到解决,显示正确的简体中文字符集。