达梦数据库dblink测试(DM-ORACLE19c及DM8-DM8)

news2024/11/28 14:13:31

目录

DM与DM创建DBLINK. 3

一、配置203服务器... 3

1、主服务器203开启mal服务... 3

2、主服务器203配置dmmal.ini文件... 3

3、重启203数据库... 4

二、配置200服务器... 4

三、创建dblink. 4

DM与Oracle数据库创建dblink. 5

一、DM服务器:... 6

1、初始化实例... 6

2、注册服务: root 用户进行注册。... 6

3、启动服务... 6

二、Oracle服务器配置... 6

1、oracle数据库必须注册监听,并启动监听... 6

2、配置tnsname文件... 8

3、查询ORACLE_HOME路径... 9

4、查询oracle字符集... 9

三、DM服务器操作... 9

1、下载客户端... 9

2、配置环境变量... 10

3、配置tnsname.ora文件... 11

4、达梦服务器需要开启dmmal服务... 12

5、配置dmmal.ini 12

6、重启DM数据库... 13

7、测试sqlplus能否链接,连接成功... 13

8、创建db_link. 14

9、测试... 16

DM与DM创建DBLINK

DM8服务器:192.168.16.203

DM8服务器:192.168.16.200

检查防火墙状态

systemctl status firewalld.service

暂时关闭防火墙,下次启动时防火墙仍随系统启动而启动

systemctl stop firewalld.service

彻底永久关闭防火墙

systemctl disable firewalld.service

一、配置203服务器

1、主服务器203开启mal服务

vim dm.ini

2、主服务器203配置dmmal.ini文件

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间

[MAL_INST1]

MAL_INST_NAME = DBSERVER #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

MAL_HOST = 192.168.16.203 #MAL 系统监听 TCP 连接的 IP 地址

MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 (主备机传输日志)

MAL_INST_HOST = 192.168.16.203 #实例的对外服务 IP 地址

MAL_INST_PORT = 5236 #实例的对外服务端口 dm.ini 中的 PORT_NUM 一致

[MAL_INST2]

MAL_INST_NAME = DMSERVER

MAL_HOST = 192.168.16.200

MAL_PORT = 61141

MAL_INST_HOST = 192.168.16.200

MAL_INST_PORT = 5237

3、重启203数据库

DmServiceDMSERVER restart

二、配置200服务器

目标服务器200开启mal服务并配置dmmal.ini文件(两台服务器一致)

复制203的即可

重启200数据库

DmServiceDMSERVER restart

三、创建dblink

disql

例:使用DM数据库203,创建一个连接到IP200,MAL_PORT端口5237 的MAL站点的外部链接,登录到此站点使用的用户名为SYSDBA,密码为SYSDBA,实例名为:DMSERVER。

CREATE PUBLIC LINK LINK200 CONNECT 'DAMENG' WITH SYSDBA IDENTIFIED BY SYSDBA USING '192.168.16.200/5237';

CREATE PUBLIC LINK LINK201 CONNECT WITH SYSDBA IDENTIFIED BY SYSDBA using 'DMSERVER';

CREATE PUBLIC LINK LINK203 CONNECT 'DAMENG' WITH dm_hr IDENTIFIED BY "hr1234567" USING '192.168.16.200/5237';

CREATE PUBLIC LINK LINK204 CONNECT WITH dm_hr IDENTIFIED BY "hr1234567" using 'DMSERVER';

测试:均可以

insert into dept@LINK200 values(200,400);

insert into dept@LINK203 values(205,405);

commit;

小结:DM到DM的dblink必须双方都开启mal服务并且都配置dmmal.ini文件

DM与Oracle数据库创建dblink

Oracle19c服务器:192.168.16.67

DM8服务器:192.168.16.203

一、DM服务器:

1、初始化实例

su - dmdba

./dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5236

2、注册服务: root 用户进行注册。

cd /dm8/script/root

./dm_service_installer.sh -t dmserver -dm_ini /dm/data/DMDB/dm.ini -p DMSERVER

3、启动服务

DmServiceDMSERVER start

连接服务

Disql

二、Oracle服务器配置

1、oracle数据库必须注册监听,并启动监听

配置listener.ora监听文件

vim listener.ora

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-01)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

SID_LIST_LISTENER1 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME =orcl)

(ORACLE_HOME = /u01/app/oracle/product/19c/db_1)

(SID_NAME = orcl)

)

)

重启监听

lsnrctl stop

lsnrctl start

lsnrctl status

2、配置tnsname文件

vim tnsnames.ora

LISTENER_ORCL =

(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19c-01)(PORT = 1521))

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.67)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

CATALOG =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle19c-asm)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

3、查询ORACLE_HOME路径

echo $ORACLE_HOME

4、查询oracle字符集

SELECT * FROM NLS_DATABASE_PARAMETERS;

三、DM服务器操作

1、下载客户端

客户端下载地址

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

下载三个zip包:basic、sdk、sqlplus解压

解压到DM服务器

mkdir -p /opt/dblink/instantclient

unzip xxx --三个包都自动解压到这一个目录里面了。。

复制所有lib到/dm8/bin

cp lib* /dm8/bin

cd /dm8/bin

将libclntsh.so.19.1建立软连接名为libclntsh.so

ln -s libclintsh.so.19.1 libclintsh.so

或者直接

cp libclintsh.so.19.1 libclintsh.so

ldd libclintsh.so.19.1 --检查依赖是否完整(这里完整的)

2、配置环境变量

vim .bash_profile --蓝色的为创建dblink新增oracle配置,原DM配置不动。LANG=zh_CN.UTF8这个参数可以使本会话linux显示为中文

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin" ##原DM库配置

export DM_HOME="/dm8"

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

export ORACLE_HOME=/u01/app/oracle/product/19c/db_1 ## 远程Oracle端的$ORACLE_HOME;

export ORACLE_SID=orcl ## 远程Oracle端的SID;

export TNS_ADMIN=/dm8/bin/instantclient_19_19/network/admin ## 服务名文件所在目录;

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ## 远程Oracle端的字符集;

export LD_LIBRARY_PATH==$LD_LIBRARY_PATH:$ORACLE_HOM:/dm8/bin ##添加ORACLE的dblink后的配置

export PATH=$PATH:$ORACLE_HOME:$DM_HOME/bin/instantclient_19_19 ##这个路径配置sqlplus的路径,配置好了之后任何地方都可以sqlplus直接登录了

#export LANG=zh_CN.UTF8

#unset USERNAME

alias disql='rlwrap disql'

alias dmrman='rlwrap dmrman'

3、配置tnsname.ora文件

cd /dm8/bin/instantclient_19_19/network/admin

vim tnsname.ora

这里就是复制oracle的,只是将host改为ip了

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.67)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

4、达梦服务器需要开启dmmal服务

vim dm.ini

MAL_INI = 1

5、配置dmmal.ini

(我这里只是指定oracle的ip和端口及实例名即可)

vim dmmal.ini

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间

[MAL_INST1]

MAL_INST_NAME = DBSERVER #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

MAL_HOST = 192.168.16.203 #MAL 系统监听 TCP 连接的 IP 地址(内网ip,因为oracle一个网卡就一个16段ip,这里也只能使用16段ip了)

MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口(主备机传输日志) --这里好像也不需要呢,这里写了也没问题(后来验证貌似必须要写呢)

MAL_INST_HOST = 192.168.16.203 #实例的对外服务 IP 地址

MAL_INST_PORT = 5236 #实例的对外服务端口 dm.ini 中的 PORT_NUM 一致

[MAL_INST2]

MAL_INST_NAME = orcl

MAL_HOST = 192.168.16.67

MAL_PORT = 1521

6、重启DM数据库

加载oracle数据库的lib库

DmServiceDMSERVER restart

7、测试sqlplus能否链接,连接成功

环境变量中配置

export PATH=$PATH:$ORACLE_HOME:$DM_HOME/bin/instantclient_19_19

可以直接任何位置sqlplus

8、创建db_link

用户名小写时不要引起来(底层自动转化为大写,引起来转不了)。实例名大小写均可

public link属于sys所有。私有link属于哪个用户创建属于哪个用户。

CREATE PUBLIC LINK "HR_LINK" CONNECT 'ORACLE' WITH hr IDENTIFIED BY "hr" USING '192.168.16.67/orcl';

CREATE PUBLIC LINK "HR_LINK02" CONNECT 'ORACLE' WITH HR IDENTIFIED BY "hr" USING '192.168.16.67/orcl';

CREATE PUBLIC LINK "HR_LINK03" CONNECT 'ORACLE' WITH HR IDENTIFIED BY "hr" USING '192.168.16.67/ORCL';

测试:select * from dept@HR_LINK03;

CREATE LINK LINK1 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING '192.168.16.67/orcl';

(一) 通过网络服务名创建 --这是在dm服务器上配置了tnsname文件并在配置文件中指定了该tns文件目录。

CREATE LINK HR_LINK05 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING 'ORCL';

CREATE LINK HR_LINK06 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING 'orcl';

(二) 通过连接描述符创建

CREATE OR REPLACE LINK HR_LINK08 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING

'(DESCRIPTION =

(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.67)(PORT = 1521)))

(CONNECT_DATA = (SERVICE_NAME = orcl) )

)';

(三) 通过<IP 地址>/<服务名>创建

CREATE LINK HR_LINK10 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING '192.168.16.67/orcl';

例:使用 DM 数据库,创建一个连接到实例名为 ORCL 的外部链接,登录到此站点使用的用户名为hr,设置登录口令为hr,设置使用本地字符集为 UTF-8,字符集转换模式为 1。

注:DBLINK 的本地库和远程库的字符集编码应一致,否则可能导致字符串操作出错

CREATE LINK HR_LINK11 CONNECT 'ORACLE' WITH hr IDENTIFIED BY hr USING 'ORCL' OPTION (LOCAL_CODE='UTF-8', CONVERT_MODE=1);

9、测试

select * from dept@HR_LINK11;

插入数据

DM库

insert into dept@HR_LINK11 values(200,400);

commit;

Oracle库查到了

update dept@HR_LINK11 set bonus=420 where EMPLOYEE_ID =200;

commit;

delete from dept@HR_LINK11 where EMPLOYEE_ID =200;

commit;

达梦数据库社区地址:https://eco.dameng.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

祝愿莘莘学子高考顺利!Good luck on your Gaokao!

《登科后》 唐孟郊 昔日龌龊不足夸&#xff0c;今朝放荡思无涯。 春风得意马蹄疾&#xff0c;一日看尽长安花。 Gone are all my past woes! What more have I to say? My body and my mind enjoy their fill today. Successful, faster runs my horse in vernal breeze;…

ArrayList 的底层原理和源码分析

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; 文章目录 一、简介二、…

Cookie Session

第一章 会话技术 1.1 什么是会话 web会话可简单理解为&#xff1a;用户开一个浏览器&#xff0c;访问某一个web网站&#xff0c;在这个网站点击多个超链接&#xff0c;访问服务器多个web资源&#xff0c;然后关闭浏览器&#xff0c;整个过程称之为一个会话. 它是指浏览器和服…

URL到页面: 探索网页加载的神秘过程

当我们从浏览器的地址栏输入 URL, 按下回车, 再到最后出现需要的网页界面, 这中间究竟发生了什么, 接下来就一步步进行解析. 主要是如下过程: 输入网址DNS 解析客户端发送 HTPP 请求建立 TCP 连接服务器处理请求, 计算响应, 返回响应浏览器渲染页面关闭连接 本篇中只是概述整…

AUTOSAR-OS的调度机制-调度表(没理解透,继续更新)

什么是调度表&#xff1a; 1. 调度表由一系列按时间先后顺序排序的终结点组成&#xff0c;其中每个终结点都有自己的任务&#xff0c;有的终结点可能是激活一系列的任务&#xff0c;有的是设置一系列的事件&#xff0c;还有的可能是既激活一系列的任务又设置一系列的事件。 调…

数据结构之庖丁解牛八大排序算法,附动图说明过程(上)

目录 一、排序的概念以及应用 二、常见排序算法的实现 1.插入排序 1.1直接插入排序 b.实现直接插入排序 1.2希尔排序&#xff08;缩小增量排序&#xff09; 2.选择排序 2.1直接选择排序 2.2堆排序 3.交换排序 3.1冒泡排序 一、排序的概念以及应用 1.排序的概念 所谓排序&#x…

Mysql数据库--修改root密码的几种方法(忘记密码知道密码)

Mysql数据库--修改root密码的几种方法&#xff08;忘记密码&知道密码&#xff09; &#x1f53b;一、知道密码情况--修改root密码⛳ 1.1 方式1&#xff1a;alter 命令修改⛳ 1.2 方式2&#xff1a;set password命令修改 &#x1f53b;二、忘记密码情况-修改root密码⛳ 2.1 …

华为OD机试真题 Java 实现【找车位】【2023 B卷 100分】,附详细解题思路

一、题目描述 停车场有一横排车位&#xff0c;0代表没有停车&#xff0c;1代表有车。至少停了一辆车在车位上&#xff0c;也至少有一个空位没有停车。 为了防剐蹭&#xff0c;需为停车人找到一个车位&#xff0c;使得距停车人的车最近的车辆的距离是最大的&#xff0c;返回此…

打造高质量视频,创造视觉奇观!Camtasia 2023为你升级!

嘿&#xff0c;伙计&#xff01; 在这个全新版本中&#xff0c;我们迎来了焕然一新的动画控制和更简化的特效制作流程&#xff0c;让创作变得更高效。 不仅如此&#xff0c;全新的背景去除和动画光标功能也让视频拥有全新的视觉体验。让我们先谈谈光标&#xff0c;这个细节或…

计算机视觉:风格迁移

风格迁移 本节将介绍如何使用卷积神经网络&#xff0c;自动将一个图像中的风格应用在另一图像之上&#xff0c;即风格迁移&#xff08;style transfer&#xff09; (Gatys et al., 2016)。 这里我们需要两张输入图像&#xff1a;一张是内容图像&#xff0c;另一张是风格图像。…

Mac使用DBeaver连接达梦数据库

Mac使用DBeaver连接达梦数据库 下载达梦驱动包 达梦数据库 在下载页面随便选择一个系统并下载下来。 下载下来的是zip的压缩包解压出来就是一个ISO文件&#xff0c;然后我们打开ISO文件进入目录&#xff1a;/dameng/source/drivers/jdbc 进入目录后找到这几个驱动包&#x…

Vue 2和Vue 3路由Router创建的区别简记(在main.js文件中引入的区别和router的js文件中创建语法的区别)

Vue 2和Vue 3路由Router创建的区别即Router3.0和Router4.0的创建区别简记 1、版本的搭配&#xff1a; Vue 2到Vue 3的改版升级&#xff0c;同样的带来Vue Router的升级。创建Vue项目之后&#xff0c;我们可以在package.json文件中看到&#xff0c;Vue 2创建的项目往往是与Vue…

C++ | 拷贝文件

C拷贝文件 文章目录 C拷贝文件ANSI-C-WAYPOSIX-WAY (K&R use this in "The C programming language", more low-level)KISS-C-Streambuffer-WAYCOPY-ALGORITHM-C-WAYOWN-BUFFER-C-WAYLINUX-WAY理智的方式C 17Reference欢迎关注公众号【三戒纪元】 列举了几种拷贝…

nestjs超详细从零到零点五详细入门项目搭建过程

nestjs超详细从零到零点五详细入门项目搭建过程 项目完整地址github&#xff0c;修复了一些swagger文档接口&#xff0c;传参显示问题 从零到有搭建一个完整的后台管理系统项目 涉及到的知识 controller控制器provider提供者module模块middleware中间件filter过滤器pipe管道…

简明Python教程

前言&#xff1a;学习《简明 Python 教程》Swaroop, C. H. 著 沈洁元 译 www.byteofpython.info 摘录&#xff0c;方便以后使用查阅。 基础概念 常量 Python中有4种类型的数——整数、长整数、浮点数和复数。 2是一个整数的例子。长整数不过是大一些的整数。3.23和52.3E-4是…

高标准农田信息化管理平台概要设计

1、综合信息一张图系统 通过一张图的形式&#xff0c;可视化直观展示地区土地分布、耕地质量、高标准农田建设情况、灌溉情况、设备分布情况及环境监测数据。农业管理者可在一张图上查看农田相关信息&#xff0c;及时了解农田情况&#xff0c;为农田管理者的精准管理和科学决策…

Axure教程—拖拽获取(中继器+动态面板 )

本文将教大家如何用AXURE中的中继器和动态面板制作拖拽获取效果 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://68e5b3.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87874085?spm1001.2014.3001.5503 二、功能介绍 …

OpenMMLab-AI实战营第二期——2-2.基于RTMPose的耳朵穴位关键点检测(Colab+MMPose)

文章目录 1. Colab和Google云端硬盘1.1 建立项目文件和jupyter文件1.2 Colab运行时选择1.3 关联Colab中的文件和Google云端硬盘的文件 2. Colab和MMPose2.1 环境配置2.2 配置文件修改 3. Colab相关知识 视频链接&#xff1a;B站-RTMPose关键点检测-安装MMDetection和MMPose 1.…

一篇文章搞定Java中常用集合的排序方法

目录 Array 数组 List 列表 Collections.sort() 简单类型 复杂对象 类 使用Lambda表达式 Stream API Map 键值对 对 Map 的 Key 进行排序 对 Map 的 Value 进行排序 最近在做算法题的时候&#xff0c;发现排序在大部分题中都不可或缺&#xff0c;今天心血来潮&am…

Vue配置proxy代理,但接口报错2007 bad domain

1、排查proxy代理配置是否有误 排查 proxyTable 对象中配置的 target 是否正确。若正确&#xff0c;那可能就是请求头的问题。 无特殊配置的情况下&#xff0c;请求头是这样子的&#xff1a; Host 和 Referer 是本地地址&#xff0c;如果后端增加 CSRF 防御机制&#xff0c;…