DM8在银河麒麟服务器上配置Oracle19c的DBLINK服务

文章目录


前言

       随着国产操作系统的逐步发展壮大,银河麒麟SERVER版操作系统也应用越来越多,它能够安装很多国产软件,比如达梦8数据库,但是由于内核的差异无法直接安装Oracle数据库,导致DM8数据库部分功能无法在银河麒麟操作系统上实现。

       达梦8数据库中有一个外部链接的功能,叫DBLINK,该功能除了可以实时从达梦到达梦的数据库外,还可以配置Oracle到达梦的异构连接方式。

       为此我研究了一下银河麒麟安装Oracle19c和达梦8,并配置了到另外一台centos7上的Oracle19c数据库。再对达梦8通过DBLINK来访问和操作Oracle19c上的数据。


一、准备工作

          1、硬件规划:

硬件规划
服务器配置说明
Centos7虚拟机2C/8G/300G安装Oracle19c数据库
Kylin10虚拟机2C/8G/300G安装Oracle19c和达梦8数据库

          2、软件规划:

名称软件版本
Centos7镜像CentOS-7-x86_64-DVD-1511.iso
Kylin10镜像Kylin-Server-10-SP2-Release-Build09-20210524-x86_64.iso
Oracle数据库LINUX.X64_193000_db_home.zip
DM8数据库dm8_20211021_x86_kylin10_64_ent_8.1.2.70_pack5.iso
客户端软件dbeaver + oracle-jdbc

        3、网络规划:

服务器IP
Centos7/oracle192.168.197.130
KylinV10/DM8  192.168.197.129

        4、文件路径规划:

数据库主路径
Oracle19c/data/app/oracle
DM8/opt/dmdbms

        5、操作思路:

        默认情况下银河麒麟操作系统是不支持Oracle19c的安装,会报2个错误:1、安装时会提示操作系统内核版本不符合安装要求无法安装。2、就算强制修改Oracle19c和操作系统的内核配置文件号,跳过此错误后会续因为lib文件版本不一致会导致Oracle19c安装文件编译失败。

        2021年时我在银河麒麟SP1上安装过Oracle19c,采用的方法是在一台redhat7服务器上编译安装好oracle19c后,将整个文件夹压缩拷贝到银河麒麟SP1上,再重新配置NETCA和DBCA,最后即可正常安装Oracle19c数据库并进行了好几个星期的TPCC压测。

        本次计划将centos7上安装好Oracle19c后,拷贝至银河麒麟SP2后进行相关的测试。

二、操作步骤

1.Centos7配置

  1. 安装操作系统;略过。
  2. 配置操作系统参数,包括:本地yum、关闭防火墙、关闭selinux、配置syctl和limits.conf等。略过。
  3. 新建Oracle用户和Oinstall组,并安装Oracle19c数据库,设置其环境变量。略过。数据库安装完成,如下图:

      数据库启动成功,如下图: 

 

  监听启动成功,如下图:  

 19c引入了PDB模式,默认情况下PDB数据库的用户名是要带一个$符号,而且改变了11g以前的密码加密方式,所以最好将19c的密码加密方式改成11g的模式。本次数据库安装目录为/data/app/oracle,所以通过如下方式修改:

vi /data/app/oracle/network/admin/sqlnet.ora

 增加 SQLNET.ALLOWED_LOGON_VERSION=8。

如下图:

 重启数据库:

进入pdb数据库,创建用户,并赋权 

$sqlplus / as sysdba
SQL> show pdbs;
SQL> alter pluggable database ORCLPDB open;
SQL> alter session set container=ORCLPDB;

SQL> create user testora identified by testora;

SQL> grant dba to testora;

通过DBeaver来连接Oracle数据库,此软件为JAVA开发,采用的是JDBC的连接方式,第一次连接时需要配置JDBC驱动,如果联网的话该软件可以自动更新JDBC驱动。如果有其他ORACLE客户端也可以使用。连接成功:

 在Oracle数据库中准备好相应的测试数据,

CREATE TABLE TESTORA.TEST_A1 (
   ID    INT
,  NAME  VARCHAR2(100)
);


INSERT INTO TESTORA.TEST_A1 VALUES (1,'hanzi');
INSERT INTO TESTORA.TEST_A1 VALUES (2,'汉字');
INSERT INTO TESTORA.TEST_A1 VALUES (3,'汉zi');
COMMIT;

如下图:

 压缩Oracle的整个目录:

tar -zcvf oracle19c.tar.gz /data/app/oracle

 

 自此Centos7服务器安装配置工作完成。

2.银河麒麟配置

  1. 安装操作系统;略过。
  2. 配置操作系统参数,包括:本地yum、关闭防火墙、关闭selinux、配置syctl和limits.conf等。略过。
  3. 新建dmdba用户和dinstall组,并安装dm8数据库和实例,设置其环境变量。略过。
  4. 利用root更新Oracle需要的包。
yum install -y compat-libcap1
yum install -y gcc-c++.x86_64
yum install -y ksh
yum install -y libaio-devel.x86_64

       5.创建与centos7服务器上相同的Oracle文件夹:

 接着拷贝和解压缩Oracle文件

在dmdba用户下配置Oracle的环境变量:

第一次启动DBCA和sqlplus失败。我在银河麒麟SP1版本时没有出现此错误,到SP2版本的时候差异太多,需要一点一点的趟错误。

看错误提示是缺少libnsl,银河麒麟SP2中无此包,下载centos8的libnsl文件安装,提示缺少glibc,而实际上我们已经安装了glibc程序,可能SP2的glibc版本太高,我采用了强制安装。如下图:

 安装好该包后,DBCA、NETCA、sqlplus和lsnrctl正常启动。

 但是此处还有一个大坑:在DBCA工具中数据库无法正常安装和初始化。进Oracle的bin目录下,进行relink扫描,提示缺少 libpthread_nonshared.a 。从centos7服务器上的拷贝一个过来。

scp root@192.168.197.130:/usr/lib64/libpthread_nonshared* /usr/lib64

接着relink,显示一切正常。但是DBCA还是无法创建数据库,不折腾了,可能是glibc版本太高、缺少某个文件夹或者权限的问题。本次实验只要保障sqlplus正常即可。

在银河麒麟SP2的服务器上dmdba用户下利用sqlplus访问Centos7服务器上数据库成功:

sqlplus testora/testora@192.168.197.130:1521/ORCLPDB

 6.接着要在DM8数据库服务器上安装DBLINK异构数据库插件,

利用root用户将dblink11g.tar.gz文件拷贝至DM8数据库的/usr/lib64下,并解压:

tar -zxvf dblink*.tar.gz

接着利用root运行:

cd /usr/lib64 
./run.sh

7、通过DM8自带的manager工具,连接上数据库服务器,新建外部链接,测试成功:

8、访问Oracle上的表成功:

9、往Oracle数据库中插入一条测试记录,成功。

10、在Oracle端显示数据已经插入成功:


总结

        以上就是今天要讲的内容,至此银河麒麟SP2上配置DM8数据库的DBLINK访问Oracle19c功能安装测试完成。另外:银河麒麟SP2上安装的sqlplus工具正常。

        也带来了新的问题:银河SP1通过解压缩的方式来启动DBCA安装实例的方法在银河麒麟SP2上行不通,推测可能是银河麒麟SP2升级了glibc组件的问题导致,该组件又是操作系统的核心组件。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值