日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle 11g 通过透明网关访问瀚高数据库

發(fā)布時間:2023/12/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 11g 通过透明网关访问瀚高数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Oracle 11g 訪問瀚高數(shù)據(jù)庫

一、前提

這個訪問瀚高數(shù)據(jù)庫的方式,本質(zhì)上就是以 Oracle 的透明網(wǎng)關(guān)為基礎(chǔ),Oracle 數(shù)據(jù)庫安裝的時候默認就安裝透明網(wǎng)關(guān)了。

場景

操作系統(tǒng):Centos7.9

處理:x86_64

Oracle數(shù)據(jù)庫版本:11.2.0.4

Oracle數(shù)據(jù)庫IP地址:192.168.70.107

瀚高數(shù)據(jù)庫版本:hgdb-see-4.5.7

瀚高數(shù)據(jù)庫IP地址:192.168.70.169,端口號:5866

二、安裝驅(qū)動

在 Oracle 服務(wù)器上,安裝 unixODBC,命令如下:

yum install -y unixODBC unixODBC-devel

需要使用瀚高的提供的驅(qū)動包,因為這個支持sm3加密,同時 psqlodb 版本也支持 Oracle11g 的透明網(wǎng)關(guān)。下載地址:

鏈接:https://pan.baidu.com/s/1l67cHDkDltMX-n5Nt3rZAQ 提取碼:yyds (如果鏈接失效,請聯(lián)系瀚高獲取)

將瀚高提供的驅(qū)動包解壓

tar -xzvf hgodbc-centos7.9_x86-64.tar.gz -C /opt

這里要留意庫文件 psqlodbcw.so 的絕對路徑:

/opt/HG_ODBC/psqlODBC/lib/psqlodbcw.so

后面配置透明網(wǎng)關(guān)要用到。

三、配置文件

Oracle 數(shù)據(jù)庫安裝完后,自帶透明網(wǎng)關(guān),一般不需要額外單獨安裝。故在 Oracle 服務(wù)器上執(zhí)行本章節(jié)操作。

3.1 配置 ODBC 數(shù)據(jù)源

切到 Oracle用戶下,執(zhí)行:

vi /home/oracle/.odbc.ini

內(nèi)容如下:

[HGDB_169] Description = HighgoDB ODBC Driver = PostgreSQL Database = highgo Servername = 192.168.70.169 UserName = sysdba Password = Hello@123 Port = 5866 ReadOnly = 0 ConnSettings = set client_encoding to gbk

3.2 配置 listener.ora

Oracle 用戶執(zhí)行:

vi $ORACLE_HOME/network/admin/listener.ora

追加以下內(nèi)容

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = HGDB)(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)(PROGRAM = dg4odbc)(ENV="LD_LIBRARY_PATH=/opt/HG_ODBC/psqlODBC/lib")))

說明:

  • SID_LIST_LISTENER 后面的 “LISTENER” 是當(dāng)前文件中監(jiān)聽的實際名稱,不能隨便命名。
  • SID_NAME 是瀚高數(shù)據(jù)庫的實例,可以自定義一個名稱,如這里的:HGDB
  • 重啟監(jiān)聽:

    lsnrctl reload

    查看監(jiān)聽狀態(tài):

    [oracle@dbs ~]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-OCT-2022 22:38:59 ...... Services Summary... Service "HGDB" has 1 instance(s).Instance "HGDB", status UNKNOWN, has 1 handler(s) for this service... Service "orcl.qcj.com" has 1 instance(s).Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB.qcj.com" has 1 instance(s).Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully

    看到上面有“Service “HGDB” has 1 instance(s).”就可以了。

    3.3 配置 tnsname.ora

    Oracle用戶執(zhí)行:

    vi $ORACLE_HOME/network/admin/tnsnames.ora

    追加以下內(nèi)容:

    HG_LINK =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SID = HGDB))(HS = OK))

    測試一下:

    tnsping HG_LINK 5

    正常結(jié)果如下:

    TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 10-OCT-2022 22:40:08Copyright (c) 1997, 2013, Oracle. All rights reserved.Used parameter files: /u01/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.70.107)(PORT = 1521)) (CONNECT_DATA = (SID = HGDB)) (HS = OK)) OK (0 msec) OK (0 msec) OK (0 msec) OK (0 msec) OK (0 msec)

    3.4 配置透明網(wǎng)關(guān)

    在透明網(wǎng)關(guān)所在的主機上,切到Oracle用戶執(zhí)行:

    vi $ORACLE_HOME/hs/admin/initHGDB.ora

    內(nèi)容如下:

    HS_FDS_CONNECT_INFO = HGDB_169 HS_FDS_TRACE_LEVEL = off HS_FDS_SHAREABLE_NAME = /opt/HG_ODBC/psqlODBC/lib/psqlodbcw.so HS_NLS_NCHAR=UCS2 HS_LANGUAGE=AMERICAN_AMERICA.AL32UTF8 #HS_LANGUAGE=AMERICAN_AMERICA.ZHS16GBK set ODBCINI = /home/oracle/.odbc.ini

    四、測試

    4.1 創(chuàng)建數(shù)據(jù)庫連接

    用 tnsname.ora 中的鏈接名:

    create public database link hgdb connect to "sysdba" identified by "Hello@123" using 'HG_LINK';

    直接定義連接信息,不需要解析:

    DROP PUBLIC DATABASE LINK hgdb;CREATE PUBLIC DATABASE LINK hgdbCONNECT TO "sysdba"IDENTIFIED BY "Hello@123"USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.70.107)(PORT = 1521))) (CONNECT_DATA = (SID = HGDB)) (HS = OK) )';

    以上兩種創(chuàng)建連接的方式二選一即可。

    4.2 查詢

    在瀚高數(shù)據(jù)庫下,使用用戶 sysdba 登錄數(shù)據(jù)庫 highgo,創(chuàng)建表t1,并插入幾條數(shù)據(jù):

    create table t1(id integer, name varchar); insert into t1 values(1,'瀚高'),(2,'test');

    再回到Oracle執(zhí)行:

    select * from "public"."t1"@hgdb;

    注意:

    瀚高數(shù)據(jù)庫中默認是小寫,Oracle默認是大寫,所以這里需要用雙引號將表名、列名等標(biāo)識符引起來,否則都會轉(zhuǎn)成大寫傳到瀚高庫將找不到對象。

    4.3 修改

    插入行:

    insert into "public"."t1"@hgdb values(10,'aaa');

    更新行:

    update "public"."t1"@hgdb set "name"='abc' where "id" = 10;

    刪除行:

    delete from "public"."t1"@hgdb where "id" = 10;

    4.4 同義詞

    如果不想頻繁在表后面用個鏈接名,可以創(chuàng)建別名來代替。

    CREATE SYNONYM t1 FOR "t1"@hgdb;

    然后就可以這樣使用了,不需要加雙引號:

    select * from t1;

    在Oracle本地建的同義詞,默認就是大寫的。

    總結(jié)

    以上是生活随笔為你收集整理的Oracle 11g 通过透明网关访问瀚高数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。