磐维数据库(PanWeiDB)是由中国移动基于中国本土开源数据库openGauss打造的自研数据库产品,主要面向ICT基础设施。它具有高性能、高可靠性、高安全性和高兼容性的特点,能够支持集中式、分布式、云原生、一体机等多种应用场景。目前,磐维数据库已在中国移动的多个省(区、市)公司及专业公司部署应用。未来,磐维数据库计划在云原生、Serverless、智能运维、生态兼容等方面持续做强深度自主研发,进一步打造面向全行业的数据管理解决方案。随着磐维数据库不断深入数据库国产化替换的深水区,越来越多的核心业务系统都在进行代码改造,准备上线磐维数据库。因历史原因,程序开发人员很热衷于使用database link从Oracle实例A访问其他Oracle实例(B、C、D...),从而完成数据的操作,但随着迁移到磐维数据库,异构数据库之间的数据交互就成了不容忽视的问题。

本文介绍了江西移动公司,是如何从Oracle数据库使用透明网关访问磐维数据库数据的。

无特别说明,都以oracle用户执行

测试环境信息

Oracle 19C         -- 192.168.11.151
PanWeiDB 3.0.0 -- 192.168.0.120

1、上传odbc驱动包到oracle服务器并解压

cd /home/oracle
mkdir pwodbc
cd pwodbc
tar xf PanWeiDB-V2.0-ODBC-2.0.3_B01.tar.gz

2、配置odbc实例驱动

cat<<+>/home/oracle/pwodbc/unixODBC-2.3.9/etc/odbcinst.ini
[PWMPP]
Driver64=/home/oracle/pwodbc/odbc/lib/psqlodbcw.so
setup=/home/oracle/pwodbc/odbc/lib/psqlodbcw.so
+

3、配置odbc客户端连接磐维数据的信息

cat <<+>/home/oracle/pwodbc/unixODBC-2.3.9/etc/odbc.ini
[pwdb]
Description=Test
Driver=PWMPP
Servername=192.168.0.120
Database=testdb
Username=tpcc
Password=tpcc@123
Port=17700
Sslmode=allow
+

4、配置Oracle和grid用户环境变量,以使用指定的odbc驱动

cat <<+>>~/.bash_profile
export LD_LIBRARY_PATH=/home/oracle/pwodbc/lib:/home/oracle/pwodbc/odbc/lib:/home/oracle/pwodbc/unixODBC-2.3.9/lib:$LD_LIBRARY_PATH
export ODBCSYSINI=/home/oracle/pwodbc/unixODBC-2.3.9/etc
export ODBCINI=/home/oracle/pwodbc/unixODBC-2.3.9/etc/odbc.ini
+
source ~/.bash_profile

5、为驱动路径添加合适的权限,保证grid和oracle都有权限访问

chmod 755 -R /home/oracle/pwodbc

6、验证odbc驱动能正常访问PanWeiDB库,Oracle和grid用户都验证一下

odbcinst  -j
odbcinst -q -d
isql -v pwdb

结果类似如下:

[oracle@ora19c1 ~]$ isql -v pwdb
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>

7、Oracle 配置透明网关服务,这里以PanWeiDB为sid示例
配置oracle用户hs, 配置init<sid>.ora在 $ORACLE_HOME/hs/admin/init<sid>.ora

cat <<+>$ORACLE_HOME/hs/admin/initpwdb.ora
HS_FDS_CONNECT_INFO = pwdb
HS_FDS_TRACE_LEVEL = 255
HS_FDS_SHAREABLE_NAME = /home/oracle/pwodbc/unixODBC-2.3.9/lib/libodbc.so
HS_NLS_NCHAR = UCS2
HS_LANGUAGE = AMERICAN_AMERICA.AL32UTF8
set LD_LIBRARY_PATH=/home/oracle/pwodbc/lib:/home/oracle/pwodbc/odbc/lib:/home/oracle/pwodbc/unixODBC-2.3.9/lib
set ODBCSYSINI = /home/oracle/pwodbc/unixODBC-2.3.9/etc
+

8、增加侦听

grid:  $ORACLE_HOME/network/admin/listener.ora  增加
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=pwdb)
(ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1)
(PROGRAM=dg4odbc)
(ENVS="LD_LIBRARY_PATH=/home/oracle/pwodbc/lib:/home/oracle/pwodbc/odbc/lib:/home/oracle/pwodbc/unixODBC-2.3.9/lib")
)
)

重新加载侦听

lsnrctl reload
lsnrctl status

9、配置tns
oracle: $ORACLE_HOME/network/admin/tnsnames.ora 增加

pwdb =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.151)(PORT=1521))
(CONNECT_DATA=(SID=pwdb))
(HS=OK)
)
tnsping pwdb

10、创建dblink验证

create database link  pg_link connect to "tpcc" identified by "tpcc@123" using 'pwdb';
select * from "t1"@pg_link ;

结果类似如下

SQL> select * from "t1"@pg_link ;
id
----------
1
SQL>

注意:
访问PanWeiDB的数据库表是需要在表名字上加上双引号(因为在oracle默认会转换为大写,而PanWeiDB默认小写,会造成访问不到表)

【磐维数据库】Oracle(透明网关)访问磐维数据库(PanWeiDB)的更多相关文章

  1. Oracle透明网关访问SQLServer数据库

    针对oracle数据库不同实例之间的数据访问,我们可以直接通过dblink访问,如果oracle数据库想访问mysql/sqlserver等数据库的数据,我们可以通过配置oracle透明网关实现异构数 ...

  2. Oracle透明网关访问MySQL数据库

    针对oracle数据库不同实例之间的数据访问,我们可以直接通过dblink访问,如果oracle数据库想访问mysql/sqlserver等数据库的数据,我们可以通过配置oracle透明网关实现异构数 ...

  3. ORACLE透明网关访问SQL Server配置总结

      透明网关概念 ORACLE透明网关(Oracle Transparent Gateway)可以解决ORACLE数据库和非ORACLE数据库交互数据的需求.在一个异构的分布式环境中,通过ORACLE ...

  4. 【Oracle】Oracle透明网关访问MSSQLServer

             Oracle 数据库的透明网关 ( transparent gateway )是这样的一个接口:通过它,我们可以 sqlplus 操纵其他数据库,如 MS SQLServer . s ...

  5. 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

    开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...

  6. 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?

    从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...

  7. 多维数据库 Oracle Essbase 和 IBM Cogons 底层原理

    多维数据库(Multi Dimensional Database,MDD)使用Dimension(维度)和Cube(数据立方体.数据集市)模型描述数据. 多维数据模型 关系型数据库(Relationa ...

  8. Oracle运维必修内功:前瞻性运维理念

    数据库是商业的灵魂和大脑,作为核心IT业务模块,数据库的重要性毋庸置疑.管理数据库在做好系统前期部署后,在系统持续运行中,需要时刻关注系统自身和环境等对于运行可能产生的潜在影响和可能的危险,并及时予以 ...

  9. oracle直接读写ms sqlserver数据库(二)配置透明网关

    环境说明: 数据库版本:11gR2 透明网关版本:11g 操作系统Windows Server2008_64位 ORACLE_HOME目录:D:\app\Administrator\product\1 ...

  10. Winform 利用 Oracle.ManagedDataAccess访问Oracle数据库

    Winform 利用 Oracle.ManagedDataAccess访问Oracle数据库时出现以下错误: Message = "每个配置文件中只允许存在一个 <configSect ...

随机推荐

  1. VSCODE远程调试中如何开启X11转发实现APP屏幕转发

    本文所要做的事情不做过多解释,本文前提是使用本地window10上的VScode远程调试Ubuntu上的代码,在该过程中我们需要查看可视化显示,为此我们使用VSCODE插件来实现X11转发. VSco ...

  2. [NOIP2010 提高组] 关押罪犯 - 洛谷

    P1525 [NOIP2010 提高组] 关押罪犯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 种类并查集 #include <bits/stdc++.h> #def ...

  3. avdmanager 返回了非零退出代码: 1。

    最近做了一次系统还原,很多功能都出现了异常 重装了 Visual Studio 之后创建安卓仿真器的时候遇到问题,说"avdmanager 返回了非零退出代码: 1." 解决思路 ...

  4. debian10环境安装rtpengine

    操作系统 :debian 10.13_x64 rtpengine版本:10.5 最新的debian12环境可通过apt直接安装rtpengine,但工作中有时候还会涉及到debian10这样的老系统, ...

  5. CF650D Zip-line

    CF650D Zip-line 大概题面: 给定一个长度为 \(n\) 的序列以及\(m\)个操作,每个操作形如" \(a_i,b_i\) ",表示将序列中第 \(a_i\) 个数 ...

  6. manim边学边做--圆弧形

    圆弧形可以算是一种特殊的圆形,它是圆形的一部分.manim中,单独为圆弧形状封装了几个模块: Arc:通用的圆弧,根据半径和角度来绘制圆弧 ArcBetweenPoints:根据两个点和角度来绘制圆弧 ...

  7. TwinCAT3 - 实现自己的Dictionary

    目录 1,前言 2,C#的字典 3,TwinCAT3的字典 定义功能块 添加方法 4,用起来 1,前言 C#有字典,TwinCAT没字典,咋办,自己写一个咯 2,C#的字典 C#的字典使用很简单,下面 ...

  8. 使用 SSH 转义代码来控制连接

    OpenSSH 最常被忽视的一个非常有用的功能是能够从连接内部控制会话的某些方面.通过使用 SSH 转义代码,我们能够在会话内部与本地 SSH 软件进行交互. 强制从客户端断开连接(如何退出卡住或冻结 ...

  9. AI产品经理的探索:技能、机遇与未来展望

    Ai时代的产品经理 随着人工智能(AI)的飞速发展,AI已经从一个前沿技术概念逐步演变为驱动各行业创新的核心力量.从智能助手到自动驾驶,从个性化推荐系统到图像识别,AI正在以不可思议的速度改变着我们的 ...

  10. Kubernetes-3.2:kubespray安装高可用k8sv1.20.2集群及常见报错解决

    kubespray安装高可用k8s集群 环境介绍 系统环境 主机名 / IP地址 角色 内核版本 CentOS 7.6.1810 master1 / 192.168.181.252 master &a ...