注册
DM8>ORACLED的DBLINK创建全流程
培训园地/ 文章详情 /

DM8>ORACLED的DBLINK创建全流程

不夜侯 2026/10/16 67 0 0

第一部分 root 用户:安装 Oracle 19c EE RPM(最小资源)

1. 上传 rpm 包到服务器 /opt

# 创建oracle所需用户组、用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "Oracle123456" | passwd --stdin oracle

# 内核参数(最小化)
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6553500
kernel.shmall = 1048576
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
EOF
sysctl -p

# 资源限制
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 1024
oracle hard nproc 4096
oracle soft nofile 1024
oracle hard nofile 4096
EOF

# 安装系统依赖(Oracle必需)
yum install -y bc binutils elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel make sysstat libnsl
ln -sf /usr/lib64/libnsl.so.2 /usr/lib64/libnsl.so.1

2. 安装 Oracle 数据库 rpm

rpm -ivh --nodeps oracle-database-ee-19c-1.0-1.x86_64.rpm

3. 执行配置脚本,创建数据库实例(最小内存)

3.1 修改 oracle 用户环境变量

su - oracle
vi ~/.bash_profile

添加以下内容

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

执行生效

source ~/.bash_profile

3.2 手动创建监听配置文件(oracle 用户)

cd $ORACLE_HOME/network/admin
vi listener.ora

LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.247.133)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = ORCLCDB)(ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
    )
  )

vi tnsnames.ora

ORCLCDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLCDB)
    )
  )

3.3 启动监听

cd $ORACLE_HOME/network/admin
lsnrctl start
lsnrctl status

3.4 dbca 静默建库(oracle 用户执行)

内存参数 totalMemory 根据机器内存调整,虚拟机 2G 内存就设 1024,4G 内存设 2048

dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName ORCLCDB -sid ORCLCDB \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword "Oracle@123" \
-systemPassword "Oracle@123" \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName ORCLPDB \
-pdbAdminPassword "Oracle@123" \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 2048 \
-storageType FS \
-datafileDestination /opt/oracle/oradata \
-redoLogFileSize 128 \
-emConfiguration NONE \
-ignorePreReqs

3.5 验证 Oracle 数据库

# 切换oracle用户,设置环境变量
export ORACLE_SID=ORCLCDB
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1

sqlplus / as sysdba
-- 查看当前容器(CDB$ROOT)
SHOW CON_NAME;

-- 切换到PDB ORCLPDB
ALTER SESSION SET CONTAINER=ORCLPDB;
SHOW CON_NAME;

#打开PDB(如果PDB是mount状态,必须执行一次)
ALTER PLUGGABLE DATABASE ORCLPDB OPEN;

#在ORCLPDB里面创建本地用户,PDB本地用户不需要C##前缀
CREATE USER dmtest IDENTIFIED BY dmtest123 QUOTA UNLIMITED ON USERS;
GRANT CREATE SESSION, CREATE TABLE TO dmtest;

#登录用户创建表
sqlplus dmtest/dmtest123@192.168.247.133:1521/ORCLPDB

#dmtest用户下建测试表
CREATE TABLE test_tbl(id NUMBER,name VARCHAR2(50));
INSERT INTO test_tbl VALUES(1,'DM_DBLINK_TEST');
COMMIT;
SELECT * FROM test_tbl;

能正常查询说明 Oracle 库就绪。

第二部分 dmdba 用户:DM 侧 OCI 配置

1.创建一套DM8单机数据库

创建dmdba用户,并上传镜像到/home/dmdba/dm/dmsoft

su - root
groupadd dinstall 
useradd -g dinstall -m -d /dm/dmdbms -s /bin/bash dmdba
mkdir -p /dm/dmdbms
mkdir -p /dm/dmsoft
chown -R dmdba:dinstall /dm/

安装数据库

	su - root
	cd /dm/dmsoft
	mount -o loop dm8_20260831_HWarm920_kylin10_sp1_64.iso  /mnt
	su - dmdba
	cd /mnt
	./DMInstall.bin -i
	Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c (选择安装语言为中文)
	是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:y  (指定key文件路径,路径为 /dm/dmsoft/dm.key)
	是否设置时区? (Y/y:是 N/n:否) [Y/y]:y   (使用默认的时区,即中国所在的东8区)
	请选择安装类型的数字序号 [1 典型安装]:1  (典型安装)
	请选择安装目录 [/home/dmdba/dm/dmdbms]:/dm/dmdbms  (指定软件安装路径)
	是否确认安装路径? (Y/y:是 N/n:否)  [Y/y]:y
	是否确认安装 (Y/y,N/n) [Y/y]:y
	…….省略安装过程
	安装完成。 
	安装完后以root用户执行:/dm/dmdbms/script/root/root_installer.sh

初始化数据

./dminit path=/dm/dmdata DB_NAME=DMSERVER   INSTANCE_NAME=DMSERVER  page_size=32 log_size=2048 charset=0 case_sensitive=1 rlog_gen_for_huge=0 sysdba_pwd=Dameng@2026 sysauditor_pwd=Dameng@2026 syssso_pwd=Dameng@2026

启动数据库

./dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm/dmdata/DMSERVER/dm.ini
./DmServiceDMSERVER start
./disql SYSDBA/'"Dameng@2026"':5236

2.安装依赖和调整环境变量

yum install -y libnsl --麒麟需要安装依赖
su - dmdba
上传包instantclient-basic-linux.x64-19.32.0.0.0dbru.zip  到/dm下
chown -R dmdba:dinstall instantclient-basic-linux.x64-19.32.0.0.0dbru.zip

cd /dm
unzip instantclient-basic-linux.x64-19.32.0.0.0dbru.zip
cp -r instantclient_19_32  /dm/dmdbms/bin
# 校验OCI库依赖,不能有not foundcd $DM_HOME/bin/instantclient_19_32
cd $DM_HOME/bin/instantclient_19_32
ldd libclntsh.so.19.1

# 创建tns目录
mkdir -p $DM_HOME/bin/instantclient_19_32/network/admin

# dmdba交互式环境变量
vi  ~/.bash_profile
export DM_HOME="/dm/dmdbms"
export ORACLE_HOME=/dm/dmdbms/bin/instantclient_19_32
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ORACLE_HOME:/usr/lib64:/usr/local/lib:$DM_HOME/bin:$DM_HOME/tool:"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8    #必须和远端 Oracle 数据库字符集匹配
export PATH=$ORACLE_HOME:$PATH
#执行语句让环境变量生效
source ~/.bash_profile

3.重启 DM 数据库

cd $DM_HOME/bin
./DmServiceDMSERVER stop
./DmServiceDMSERVER start

4.disql 创建 DBLINK 并测试

./disql SYSDBA/'"*****"' 

5.在DM8执行以下语句测试验证

CREATE PUBLIC LINK LINK_ORA CONNECT 'ORACLE' WITH dmtest IDENTIFIED BY dmtest123 USING '192.168.247.133:1521/ORCLPDB'; 
SELECT * FROM TEST_TBL@LINK_ORA;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服