磐维数据库(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. Apache SeaTunnel 社区 3 月月报

    各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 3 月月报来啦!这里将记录 SeaTunnel 社区每个月的重要更新,并评选出月度之星,欢迎关注. SeaTunnel 月度 Mer ...

  2. 聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现

    本文基于 Netty 4.1.56.Final 版本进行讨论 时光芿苒,岁月如梭,好久没有给大家更新 Netty 相关的文章了,在断更 Netty 的这段日子里,笔者一直在持续更新 Linux 内存管 ...

  3. 2023 CCPC 女生题解

    gym B. 终焉之茧 \(\star\) 显然两个维度分别做 单谷函数,起始点 \(A\) 是一个端点.一个 naive 的想法是三分目标点 \(B\),但交互次数会超.二分关于 \(B\) 对称点 ...

  4. Linux内核 自旋锁spin lock,教你如何用自旋锁让ubuntu死锁

    背景 由于在多处理器环境中某些资源的有限性,有时需要互斥访问(mutual exclusion),这时候就需要引入锁的概念,只有获取了锁的任务才能够对资源进行访问,由于多线程的核心是CPU的时间分片, ...

  5. java_String方法大全

    1 String a = "abcdefg"; 2 3 String a = new String(); 4 String a = new String("abcdefg ...

  6. ASP.NET Core 如何紀錄 Entity Framework Core 5.0 自動產生的 SQL 命令

    在最近的幾個 Entity Framework Core 版本,對於 Logging (紀錄) 的撰寫方式一直在改變,大致上可區分成 EF Core 2.1 , EF Core 3.0+ 與 EF C ...

  7. 最详细STL(二)deque

    deque其实也是数组,也可以动态的添加和减少元素,但是和vector不同的是,deque可以快速的在头部和尾部添加减少元素(vector只能快速的在尾部添加),然而在插入元素的时候因为头部和尾部都可 ...

  8. 安装 AWS CLI

    安装 macOS 使用 Homebrew: brew install awscli 手动安装: curl "https://awscli.amazonaws.com/AWSCLIV2.pkg ...

  9. Java并发编程学习前期知识上篇

    Java并发编程学习前期知识上篇 我们先来看看几个大厂真实的面试题: 从上面几个真实的面试问题来看,我们可以看到大厂的面试都会问到并发相关的问题.所以 Java并发,这个无论是面试还是在工作中,并发都 ...

  10. 淘宝订单信息获取接口API,淘宝打单发货接口

    从事电商软件开发的小伙伴,在日常开发任务中,经常会遇到一个需求,就是将淘宝店铺的订单,同步到自己的内部订单管理系统OMS中,进行淘宝打单发货操作.我介绍下如何将订单同步下来,供各位参考.(注意:所有电 ...