Oracle 11g 访问瀚高数据库

一、前提

这个访问瀚高数据库的方式,本质上就是以 Oracle 的透明网关为基础,Oracle 数据库安装的时候默认就安装透明网关了。

场景

操作系统:Centos7.9

处理:x86_64

Oracle数据库版本:11.2.0.4

Oracle数据库IP地址:192.168.70.107

瀚高数据库版本:hgdb-see-4.5.7

瀚高数据库IP地址:192.168.70.169,端口号:5866

二、安装驱动

在 Oracle 服务器上,安装 unixODBC,命令如下:

yum install -y unixODBC unixODBC-devel

需要使用瀚高的提供的驱动包,因为这个支持sm3加密,同时 psqlodb 版本也支持 Oracle11g 的透明网关。下载地址:

链接:https://pan.baidu.com/s/1l67cHDkDltMX-n5Nt3rZAQ 提取码:yyds (如果链接失效,请联系瀚高获取)

将瀚高提供的驱动包解压

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

这里要留意库文件 psqlodbcw.so 的绝对路径:

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

后面配置透明网关要用到。

三、配置文件

Oracle 数据库安装完后,自带透明网关,一般不需要额外单独安装。故在 Oracle 服务器上执行本章节操作。

3.1 配置 ODBC 数据源

切到 Oracle用户下,执行:

vi /home/oracle/.odbc.ini

内容如下:

[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 用户执行:

vi $ORACLE_HOME/network/admin/listener.ora

追加以下内容

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")))

说明:

  1. SID_LIST_LISTENER 后面的 “LISTENER” 是当前文件中监听的实际名称,不能随便命名。
  2. SID_NAME 是瀚高数据库的实例,可以自定义一个名称,如这里的:HGDB

重启监听:

lsnrctl reload

查看监听状态:

[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用户执行:

vi $ORACLE_HOME/network/admin/tnsnames.ora

追加以下内容:

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

测试一下:

tnsping HG_LINK 5

正常结果如下:

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 配置透明网关

在透明网关所在的主机上,切到Oracle用户执行:

vi $ORACLE_HOME/hs/admin/initHGDB.ora

内容如下:

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 创建数据库连接

用 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)
)';

以上两种创建连接的方式二选一即可。

4.2 查询

在瀚高数据库下,使用用户 sysdba 登录数据库 highgo,创建表t1,并插入几条数据:

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

再回到Oracle执行:

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

注意:

瀚高数据库中默认是小写,Oracle默认是大写,所以这里需要用双引号将表名、列名等标识符引起来,否则都会转成大写传到瀚高库将找不到对象。

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 同义词

如果不想频繁在表后面用个链接名,可以创建别名来代替。

CREATE SYNONYM t1 FOR "t1"@hgdb;

然后就可以这样使用了,不需要加双引号:

select * from t1;

在Oracle本地建的同义词,默认就是大写的。

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

  1. Oracle数据库中stragg()函数,在瀚高数据库中如何替换使用?

    瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Microsoft Windows (64-bit) 10 版本:6.0 文档用途 用于解决怎么在瀚高数据库中实现和Oracle数据库中st ...

  2. 瀚高数据库优化解决方案

    本文转自微信公众号"瀚高数据库售前团队"文章https://mp.weixin.qq.com/s/iYwAAc6HWPt2bJbCIbKKfg 声明: 本文章内容仅用于学习.交流, ...

  3. Windows系统部署瀚高数据库并在SuperMap iDesktop中使用

    目录 前言 一:Windows系统部署瀚高数据库 二:对数据库进行PostGIS扩展 三:SuperMap iDesktop中新建HighGoDB数据库型数据源 作者:kxj 前言    瀚高数据库是 ...

  4. mysql数据库迁移到瀚高数据库,包含数据迁移、sql语法、服务启动、部署、tomcat问题整理

    文章目录 1.数据库迁移 2.数据库设置主键自增 2.1 数据库字段问题 2.2 存在即更新 2.3 清空数据表 2.4 瀚高数据库查询过程中显示转换 2.5 mybatis插入一条数据返回自增的主键 ...

  5. python应用系统访问瀚高库

    瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5 症状 python应用系统访问瀚高安全版 ...

  6. 信创环境下三个开源数据库:SQLite、MariaDB(MySQL)和postgreSQL(瀚高数据库免费版)基本操作

    在信创环境下,常用的免费数据库主要是:SQLite.MariaDB(MySQL)和postgreSQL(瀚高数据库免费版),可以在一些产品中内嵌使用. SQLite作为单文件数据库,不需要后台服务,预 ...

  7. mysql partition 语法,MySQL与瀚高数据库的范围分区的语法及实例(APP)

    目录 环境 文档用途 详细信息 环境 系统平台:Microsoft Windows (64-bit) 10 版本:5.6.4 文档用途 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就 ...

  8. 瀚高数据库故障诊断指导方案

    作者:瀚高PG实验室 (Highgo PG Lab) 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86 Red Hat Enterprise Linux 6,Linux x86 SL ...

  9. MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用

    瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台:银河麒麟R系(CPU龙芯)4,银河麒麟U系(CPU飞腾)4 版本:4.5.2,6.0 症状 MySQL替换为国产瀚高数据库时, AES ...

  10. 瀚高数据库DML自动转发功能介绍(数据库层面)

    瀚高数据库 目录 文档用途 详细信息 文档用途 本文用于介绍瀚高在数据库层面开发的数据库转发功能,通过示例演示DML自动转发功能. 详细信息 一.功能介绍 为了向应用程序提供多主服务,瀚高数据库开发s ...

最新文章

  1. 招聘|阿丘科技招系统软件与图像算法工程师(内推)
  2. 三星电子电容器件识别
  3. html5 white space,CSS white-space 属性
  4. 前端学习(417):京东制作页面25中间部分的准备工作
  5. mysql 主键 最佳实践_Spring Data Jpa + MySQL IDENTITY 主键下批量插入最佳实践
  6. C语言fread函数了解
  7. 关于360举报恶意软件有数字签名的回复
  8. 开发软件快捷键(持续更新中)
  9. 物联网形势大好,传感器前景可观
  10. 数据分析之处理丢失数据
  11. movsw 汇编_【汇编】 常用代码段 rep movsw/rep movsw
  12. #《神奇动物:邓布利多之谜》
  13. 入坑数据分析的几个问题——学习、面试、作报告
  14. 微信开发者解除绑定微信公众号的方法,亲测有效
  15. VC/MFC使用OLE操作 EXCEL
  16. 摄像头的像素与分辨率之间的关系
  17. JAVA网络爬爬学习之HttpClient+Jsoup
  18. Spark的容错机制
  19. VC开发程序创建Dump文件
  20. EWSTM8系列教程03_主窗口、工具栏的概述

热门文章

  1. Tableau 中国最美八条骑行线路(三)天数与预算
  2. 使用python做手机app后台
  3. codeforces 760B B. Frodo and pillows(二分)
  4. 为什么银行的现钞买入价低于现汇买入价?
  5. I2C总线中8bit和10bit有什么区别
  6. Oracle 11g 扩展UNDO表空间
  7. STM32H743 USART1 LL 库
  8. 从再生龙(clonezilla)镜像直接提取文件
  9. 直接管理和维护计算机系统的程序称为,全国2008年4月自考计算机原理试题
  10. GaRy-Liang的linux成长日记2-系统安装