centos7/open欧拉24.03 系统安装达梦数据库
官方文档 : 数据库安装 | 达梦技术文档
centos7/open欧拉24.03 系统安装达梦数据库
安装前准备
一、前言
用户在安装 DM 数据库之前需要检查或修改操作系统的配置,以保证 DM 数据库能够正确安装和运行。
本文演示环境如下:
| 操作系统 | CPU | 数据库 |
|---|---|---|
| CentOS7/open欧拉24.03 | x86_64 架构 | dm8_20240116_x86_rh7_64 |
信创环境安装部署也可以参考此篇文章,但需注意 CPU 和操作系统对应的 DM 数据库版本。
二、新建 dmdba 用户
注意
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
-
创建用户所在的组,命令如下:
groupadd dinstall -g 2001
-
创建用户,命令如下:
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
-
修改用户密码,命令如下:
passwd dmdba *****
三、修改文件打开最大数
在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。
永久修改和临时修改。
-
重启服务器后永久生效。
使用 root 用户打开 /etc/security/limits.conf 文件进行修改,命令如下:
vi /etc/security/limits.d/dameng.conf
在最后需要添加如下配置:
dmdba soft nice 0 dmdba hard nice 0 dmdba soft as unlimited dmdba hard as unlimited dmdba soft fsize unlimited dmdba hard fsize unlimited dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft core unlimited dmdba hard core unlimited dmdba soft data unlimited dmdba hard data unlimited
注意
修改配置文件后重启服务器生效。
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdba ulimit -a
参数配置已生效。

-
设置参数临时生效
可使用 dmdba 用户执行如下命令,使设置临时生效:
ulimit -n 65536 ulimit -u 65536
建议
使用永久修改方式进行配置。
四、目录规划
1.可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 文件夹下。
2.规划创建实例保存目录、归档保存目录、备份保存目录。
##实例保存目录 mkdir -p /dmdata/data ##归档保存目录 mkdir -p /dmdata/arch ##备份保存目录 mkdir -p /dmdata/dmbak
注意
使用 root 用户建立文件夹,待 dmdba 用户建立完成后需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下
五、修改目录权限
将新建的路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown -R dmdba:dinstall /dmdata/data chown -R dmdba:dinstall /dmdata/arch chown -R dmdba:dinstall /dmdata/dmbak
给路径下的文件设置 755 权限。命令如下:
chmod -R 755 /dmdata/data chmod -R 755 /dmdata/arch chmod -R 755 /dmdata/dmbak
数据库安装
一、前言
DM 数据库在 Linux 环境下支持命令行安装和图形化安装,本章节将分别进行详细介绍。
二、挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
cd /opt mount -o loop dm8_20240116_x86_rh7_64.iso /mnt
三、命令行安装
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。
su - dmdba cd /mnt

执行如下命令进行安装。
./DMInstall.bin -i
-
如果提示tmp临时空间不足设置临时空间到别的路径或者加大tmp空间容量
echo "export DM_INSTALL_TMPDIR=/dmdata/tmp" >> ~/.bash_profile source ~/.bash_profile
按需求选择安装语言,没有 key 文件选择 "n",时区按需求选择一般选择 “21”,安装类型选择“1”,安装目录按实际情况配置,这里示例使用默认安装位置。

数据库安装大概 1~2 分钟,数据库安装完成后,显示如下界面。


数据库安装完成后,需要切换至 root 用户执行上图中的命令 /home/dmdba/dmdbms/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。

数据库安装完成后还需注册实例才能使用数据库,注册实例可参考配置实例章节。
四、图形化安装
启用图形化安装界面前需要通过如下命令将图形界面权限放开:
[root@localhost mnt]# xhost + access control disabled, clients can connect from any host [root@localhost mnt]# echo $DISPLAY [root@localhost mnt]# su - dmdba Last login: 四 1月 25 16:41:51 CST 2024 on pts/1 [dmdba@localhost ~]$ export DISPLAY=:0.0
切换到 dmdba 用户,进入 /mnt 目录下,执行命令开始图形化安装。
[dmdba@localhost ~]$ cd /mnt [dmdba@localhost mnt]$ ./DM DM8 Install.pdf DMInstall.bin [dmdba@localhost mnt]$ ./DMInstall.bin
配置实例
一、前言
DM 数据库在 Linux 环境支持命令行配置实例以及图形化配置实例,本章节将分别进行介绍。
二、命令行方式初始化实例
使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中。
cd /home/dmdba/dmdbms/bin #./dminit path=/dmdata/data PAGE_SIZE=8 EXTENT_SIZE=16 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237 SYSDBA_PWD=****** SYSAUDITOR_PWD=****** #兼容oracle设置: ./dminit path=/dmdata/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 \ BLANK_PAD_MODE=1 DB_NAME=GYLDB INSTANCE_NAME=DBSERVER PORT_NUM=5237 \ SYSDBA_PWD=****** SYSAUDITOR_PWD=****** grep 'COMPATIBLE_MODE' /dmdata/data/GYLDB/dm.ini COMPATIBLE_MODE = 2 XA_COMPATIBLE_MODE = 1 ORDER_BY_NULLS_FLAG = 0 MAX_SESSIONS = 500 #兼容mysql设置: ./dminit path=/dmdata/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=0 CHARSET=1 DB_NAME=ACSDB INSTANCE_NAME=DBSERVER PORT_NUM=5239 SYSDBA_PWD=****** SYSAUDITOR_PWD=****** vim /dmdata/data/ACSDB/dm.ini COMPATIBLE_MODE = 4 XA_COMPATIBLE_MODE = 2 ORDER_BY_NULLS_FLAG = 2 MAX_SESSIONS = 500
需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。
部分参数解释如下:
-
page_size:数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。
-
extent_size:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。数据库创建成功后无法再修改簇大小,可通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小。
-
case_sensitive: 标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数值。
-
charset:字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数值。
-
BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。1:兼容;0:不兼容。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过查询 V$PARAMETER 中的 BLANK_PAD_MODE 参数名查看此参数的设置值。
-
PAGE_CHECK:PAGE_CHECK 为页检查模式。取值范围 0、1、2、3。0:禁用页校验;1:开启页校验并使用 CRC 校验;2:开启页校验并使用指定的 HASH 算法进行校验;3:开启页校验并使用快速 CRC 校验。缺省值为 3。可选参数。在数据库创建成功后无法修改。
-
建议
在实际使用中,初始化参数完成后如需兼容其他数据库,建议提前在 dm.ini 中设置好 COMPATIBLE_MODE 的参数值,便于更好的兼容其他数据库。参数说明:是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL,5:兼容 DM6,6:部分兼容 TERADATA,7:部分兼容 POSTGRES,8:部分兼容 DB2。 注:对 COMPATIBLE_MODE 的修改会影响数据存储和操作结果,修改须慎重;具体可咨询达梦技术服务人员

注册服务
一、命令行注册服务
DM 提供了将 DM 服务脚本注册成操作系统服务的脚本,同时也提供了卸载操作系统服务的脚本。注册和卸载脚本文件所在目录为安装目录的“/script/root”子目录下。
注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。注册服务需使用 root 用户进行注册,使用 root 用户进入数据库安装目录的 /script/root 下,如下所示:
cd /home/dmdba/dmdbms/script/root/
注册实例服务,如下所示:
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST #oracle

部分参数说明:
| 标志 | 参数 | 说明 |
|---|---|---|
| -t | 服务类型 | 注册服务类型,支持一下服务类型:dmap、dmamon、dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm。 |
| -dm_ini | INI 文件路径 | 指定服务所需要的 dm.ini 文件路径。 |
| -p | 服务名后缀 | 指定服务名后缀,生成的操作系统服务名为“服务脚本模板名,称 + 服务名后缀”。此参数只针对 dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm 服务脚本生效。 |
进入数据安装目录下 bin 目录中可以看到已经注册好的服务 DmServiceDMTEST。
cd /home/dmdba/dmdbms/bin ls -lh DmServiceDMTEST

启动、停止数据库
一、命令行启停数据库
1.1 服务名方式
服务注册成功后,启动数据库。
使用 dmdba 用户进入 DM 安装目录下的 bin 目录下
启动数据库,如下所示:
cd /home/dmdba/dmdbms/bin ls ./DmServiceDMTEST start
停止数据库
./DmServiceDMTEST stop
重启数据库
./DmServiceDMTEST restart
查看数据库状态,如下所示:
./DmServiceDMTEST status netstat -ntpl|grep :523 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 :::5237 :::* LISTEN 1734/dmserver
SQL 交互式查询工具
一、概述
disql 是一款命令行客户端工具,用于进行 SQL 交互式查询,disql 工具一般用于没有图形界面时的操作,或者使用的连接工具为命令行形式,如 Xshell、SCRT 等工具。
二、DISQL 登录数据库
2.1 Linux 登录 disql
Linux 登录,进入数据库软件安装目录的 bin 目录下。登录方式主要有两种,分别如下:
方式一:
./disql username/password@IP:PORT
以 /home/dmdba/dmdbms/bin 为例,如下所示
./disql sysdba/******@172.16.1.106:5237 服务器[172.16.1.106:5237]:处于普通打开状态 登录使用时间 : 6.244(ms) disql V8 SQL> select * from sysdual; 行号 ID ---------- ----------- 1 1
方式二:
Copy./disql /nolog ---进入disql操作终端界面,然后执行下面的操作 conn 用户名/密码@IP:PORT 或者 connect 用户名/密码@IP:PORT 或者输入LOGIN命令 login
以 /home/dmdba/dmdbms/bin 为例,disql 中通过 conn 或者 connect 命令连接数据库,操作如下所示:
./disql /nolog disql V8 SQL> conn sysdba/******@172.16.1.106:5237 服务器[172.16.1.106:5237]:处于普通打开状态 登录使用时间 : 9.608(ms) SQL>
-
如果密码含有特殊字符的情况下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转义。以用户名 TEST,密码 TEST@111#2024 为例,如下所示:

创建表空间
一、新建表空间
创建表空间 APPADATA, 指定数据库文件为 '/data/dmdata/DAMENG/APPDATA.DBF',初始大小为 128M,打开自动扩展,每次自动扩展 100M ,扩展上限 1024000M,(使用 RC4 加密算法(encrypt with RC4;))。使用命令行方式创建示例表空间如下:
CREATE TABLESPACE "APPDATA" DATAFILE '/dmdata/data/DMTEST/APPDATA.DBF' size 128 AUTOEXTEND ON next 100 MAXSIZE 1024000 ;
修改表空间
ALTER TABLESPACE "APPDATA" DATAFILE '/dmdata/data/DMTEST/APPDATA.DBF' AUTOEXTEND ON next 100 MAXSIZE 10240000 ;
删除表空间
DROP TABLESPACE "APPADATA" ;
创建用户关联表空间
一、新建用户
使用命令行方式创建用户 TEST ,密码 “Dameng@123”,使用散列算法 SHA512 ,使用存储加密密钥为 “123456”,指定表空间为 TEST,索引表空间为 TEST,授予 “PUBLIC” 和 “SOI” 权限。示例参考如下:
create user "APPUSER" identified by "******" default tablespace "APPDATA" default index tablespace "APPDATA"; grant "PUBLIC","SOI" to "APPUSER";
二。测试案例
CREATE TABLESPACE "APPDATA" DATAFILE '/home/dmdata/data/DMTEST/APPDATA.DBF' size 128 AUTOEXTEND ON next 100 MAXSIZE 1024000 ; create user "JZZNZD_TEST" identified by "******" default tablespace "APPDATA" default index tablespace "APPDATA"; grant "PUBLIC","SOI" to "JZZNZD_TEST";
备份和恢复
1.切换dmdba用户
su - dmdba
2.查看归档状态
2.1 连接数据库
disql sysdba/'******'@172.16.1.9:5239
2.2 检查归档状态
SELECT arch_mode FROM V$DATABASE;
2.3 若未启用(显示N),执行
ALTER DATABASE MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE ADD ARCHIVELOG 'DEST=DEST=/dmdata/dmbak/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=204800'; ALTER DATABASE OPEN;
2.4 创建备份目录
mkdir -p /dmdata/dmbak/dmarch chown -R dmdba:dinstall /dmdata/dmbak/dmarch
3.创建测试数据
-- 创建测试表
CREATE TABLE TEST_BACKUP (
ID INT PRIMARY KEY,
NAME VARCHAR(50),
CREATED_TIME TIMESTAMP DEFAULT SYSTIMESTAMP
);
-- 插入测试数据
INSERT INTO TEST_BACKUP(ID, NAME) VALUES (1, '逻辑备份测试数据1');
INSERT INTO TEST_BACKUP(ID, NAME) VALUES (2, '达梦数据库备份测试');
COMMIT;
-
添加更多测试数据(一次性插入多条记录)
-- 插入10条测试数据 INSERT INTO TEST_BACKUP (ID, NAME) VALUES (3, '备份测试数据3'), (4, '达梦数据库学习笔记'), (5, '运维工程师专用数据'), (6, '逻辑备份验证数据'), (7, '数据库恢复测试'), (8, '达梦8.0新特性测试'), (9, '自动备份脚本验证'), (10, '云环境部署记录'), (11, '高可用架构数据'), (12, '容灾恢复验证数据'); COMMIT; -- 验证数据 SELECT * FROM TEST_BACKUP;
-
增加测试数据多样性(不同时间、不同数据类型)
-- 创建新表存储不同类型的数据
CREATE TABLE TEST_DATA_TYPES (
id INT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10,2),
create_date DATE,
active CHAR(1),
description TEXT
);
-- 插入多种数据类型的数据
INSERT INTO TEST_DATA_TYPES
(id, name, price, create_date, active, description)
VALUES
(1, '标准商品', 199.99, DATE '2023-01-15', 'Y', '普通商品描述信息'),
(2, '限时特惠', 99.50, SYSDATE, 'Y', '促销活动的商品'),
(3, '已下架商品', 299.00, DATE '2022-11-20', 'N', '已停止销售的商品'),
(4, '会员专享', 399.00, ADD_DAYS(SYSDATE, -30), 'Y', '仅限会员购买'),
(5, '测试商品', 0.01, SYSDATE, 'Y', '用于系统测试的特殊商品');
COMMIT;
-- 验证数据
SELECT * FROM TEST_DATA_TYPES;
-
验证数据完整性查询
-- 数据量统计 SELECT 'TEST_BACKUP表' AS "表名", COUNT(*) AS "记录数" FROM TEST_BACKUP UNION ALL SELECT 'TEST_DATA_TYPES表', COUNT(*) FROM TEST_DATA_TYPES;
-
逻辑备份前检查数据状态
SELECT
(SELECT COUNT(*) FROM TEST_BACKUP) AS "测试表数据量",
(SELECT COUNT(*) FROM TEST_DATA_TYPES) AS "类型表数据量",
(SELECT MAX(id) FROM TEST_BACKUP) AS "最大ID",
(SELECT MAX(create_date) FROM TEST_DATA_TYPES) AS "最新日期"
FROM DUAL;
-
查看当前用户下的所有表
SELECT table_name AS "表名", tablespace_name AS "表空间", num_rows AS "行数" FROM DBA_TABLES WHERE owner = 'SYSDBA' ;
-
查看用户创建的业务表
SELECT owner AS "用户", table_name AS "业务表名"
FROM DBA_TABLES
WHERE owner NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO')
AND table_name NOT LIKE 'SYS%'
ORDER BY owner, table_name;
4.备份类型对比

5.数据异常恢复类型

6.逻辑备份与还原
-
导出:dexp(逻辑备份) 导入:dimp(逻辑还原)
6.1 进入达梦用户
su - dmdba cd /home/dmdba/dmdbms/bin
6.2 删除数据,模拟数据丢失,进行恢复
-- 查看TEST_BACKUP表原始数据(记录ID分布) SELECT id, name, created_time FROM TEST_BACKUP ORDER BY id; -- 删除部分数据(删除ID大于5的记录) DELETE FROM TEST_BACKUP WHERE id > 5; -- 确认删除结果(应只剩下前5条记录) SELECT * FROM TEST_BACKUP;
6.3 备份方式
(1)标准化逻辑备份还原命令集
-
备份内容

-
达梦数据库全库还原行为详解
# 还原全库是核心原理 如果目标数据库中的表已经存在但数据丢失:默认情况下不会还原该表的数据 表结构存在但数据不同:不会自动覆盖或还原数据 表完全不存在:会重新创建表结构并导入数据 # 默认行为(未指定参数) dimp ... FULL=Y 表存在但数据丢失:跳过该表的数据导入 表结构存在但数据不同:保留现有数据,不还原备份数据 表不存在:创建表结构并导入数据 # 强制还原数据的正确方式 方法1:清空表后还原(推荐) dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/full_backup_20250620.dmp \ FULL=Y \ TABLE_EXISTS_ACTION=TRUNCATE 作用:先清空所有已存在表的数据,然后重新导入备份数据 方法2:删除后重建(谨慎使用) dimp ... FULL=Y TABLE_EXISTS_ACTION=REPLACE 作用:删除已存在的表,然后重新创建并导入数据(会删除现有表的约束、索引等) 方法3:追加数据(不推荐) dimp ... FULL=Y TABLE_EXISTS_ACTION=APPEND 作用:保留现有数据,将备份数据追加到表中(可能导致重复数据)
-
全库备份还原
# 全库备份 ./dexp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/full_backup_$(date +%Y%m%d).dmp \ LOG=/dmdata/dmbak/backup/full_backup_$(date +%Y%m%d).log \ FULL=Y # 全库还原 ./dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/full_backup_20260428.dmp \ LOG=/dmdata/dmbak/backup/full_restore_$(date +%Y%m%d).log \ FULL=Y \ TABLE_EXISTS_ACTION=TRUNCATE
(2)用户级备份与还原
-
备份内容

-
查看用户名,用来备份还原是OWNER=SYSDBA参数配置
-- 查看所有用户
SELECT USERNAME AS "用户名", ACCOUNT_STATUS AS "状态"
FROM DBA_USERS
WHERE USERNAME NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO', 'CTISYS');
-- 查看有对象的用户
SELECT DISTINCT OWNER AS "用户名"
FROM DBA_OBJECTS
WHERE OWNER NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO', 'CTISYS');
-
用户备份与还原
# 用户备份 ./dexp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/user_nacos_$(date +%Y%m%d).dmp \ LOG=/dmdata/dmbak/backup/user_nacos_$(date +%Y%m%d).log \ OWNER=nacos # 用户还原 ./dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/user_USERNAME_20240620.dmp \ LOG=/dmdata/dmbak/backup/user_USERNAME_restore_$(date +%Y%m%d).log \ OWNER=nacos
(3)模式级备份与还原
-
备份内容

-
查看模式,备份还原SCHEMAS=SYSDBA需要配置
-- 查询当前会话的默认模式
SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') AS "当前模式";
-- 查看具体表所在的模式
SELECT OWNER AS "模式名", TABLE_NAME AS "表名"
FROM DBA_TABLES
WHERE TABLE_NAME IN ('TEST_BACKUP', 'TEST_DATA_TYPES');
-
模式备份还原
# 模式备份 ./dexp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/schema_SCHEMA_$(date +%Y%m%d).dmp \ LOG=/dmdata/dmbak/backup/schema_SCHEMA_$(date +%Y%m%d).log \ SCHEMAS=SYSDBA # 模式还原 ./dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/schema_SCHEMA_20240620.dmp \ LOG=/dmdata/dmbak/backup/schema_SCHEMA_restore_$(date +%Y%m%d).log \ SCHEMAS=SYSDBA
(4)表级备份与还原(最常用)
-
备份内容

-
查看模式名,备份和还原TABLES=SYSDBA.TEST_BACKUP需要指定
1. 快速查询单表模式名
-- 查询TEST_BACKUP表所属模式
SELECT OWNER AS "模式名"
FROM DBA_TABLES
WHERE TABLE_NAME = 'TEST_BACKUP';
2.查看模式对应完整表名
-- 查询所有业务表
SELECT owner || '.' || table_name AS "完整表名"
FROM dba_tables
WHERE owner NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO')
AND table_name NOT LIKE 'SYS%';
-
表级备份还原
# 单表备份 ./dexp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/table_SYSDBA_TEST_BACKUP_$(date +%Y%m%d).dmp \ LOG=/dmdata/dmbak/backup/table_SYSDBA_TEST_BACKUP_$(date +%Y%m%d).log \ TABLES=SYSDBA.TEST_BACKUP # 多表备份(逗号分隔) ./dexp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/two_tables_$(date +%Y%m%d).dmp \ LOG=/dmdata/dmbak/backup/two_tables_$(date +%Y%m%d).log \ TABLES="SYSDBA.TEST_BACKUP,SYSDBA.TEST_DATA_TYPES" # 表还原(覆盖) ./dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/table_SYSDBA_TEST_BACKUP_20260428.dmp \ LOG=/dmdata/dmbak/backup/table_restore_$(date +%Y%m%d).log \ TABLES=SYSDBA.TEST_BACKUP \ TABLE_EXISTS_ACTION=TRUNCATE # 表还原(追加) ./dimp USERID='sysdba/'******'@172.16.1.9:5239' \ FILE=/dmdata/dmbak/backup/table_SYSDBA_TEST_DATA_TYPES_20250620.dmp \ LOG=/dmdata/dmbak/backupp/table_restore_$(date +%Y%m%d).log \ TABLES=SYSDBA.TEST_DATA_TYPES \ TABLE_EXISTS_ACTION=APPEND
6.4 使用说明
-
通用参数:
USERID='sysdba/'******'@172.16.1.9:5239':认证字符串 FILE:备份文件路径,包含日期变量 LOG:日志文件路径,包含日期变量 /dmdata/dmbak/backup/:统一存储目录
-
操作类型:
备份使用dexp工具 还原使用dimp工具
-
关键参数:
FULL=Y:全库操作 OWNER=USERNAME:用户级操作 SCHEMAS=SYSDBA_NAME:模式级操作 TABLES=SYSDBA.TABLE:表级操作 TABLE_EXISTS_ACTION=TRUNCATE/APPEND:表还原策略 日期格式: $(date +%Y%m%d):生成YYYYMMDD格式日期 示例:20250620
-
占位符替换:
USERNAME → 实际用户名 SCHEMA_NAME → 实际模式名 SCHEMA.TABLE → 实际模式.表名
6.5 特定情况下,可以为了恢复,删除指定表
-- 检查表是否存在 SELECT * FROM USER_TABLES WHERE TABLE_NAME = 'TEST_BACKUP'; -- 安全删除(如果表存在则删除) DROP TABLE IF EXISTS SYSDBA.TEST_BACKUP;
其他配置
开启慢sql
cd /dmdata/data/ACSDB
grep 'SVR_LOG ' dm.ini
SVR_LOG = 1 #1:open, 0:close, 2:use switch and detail mode. 3:use not switch and simple mode.
vim sqllog.ini
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
FILE_PATH = /dmdata/data/log #日志文件路径
PART_STOR = 0 ##SQL 日志分区存储,
##表示 SQL 日志进行分区存储的划分条件。
##0 表示不划分;1 表示 USER:根据不同用户分布存储
SWITCH_MODE = 2 ## 日志文件切换模式 2 按文件大小切换
SWITCH_LIMIT = 512 ## 文件大小限制,默认128,建议256 ,单位MB
ASYNC_FLUSH = 1 ## 日志刷盘模式默认1 异步刷盘,0实时刷盘(要考虑性能)
FILE_NUM = 20 ## 打印日志文件个数,默认5个,建议配置20
ITEMS = 0 ## 记录SQL全部内容信息 默认 0
SQL_TRACE_MASK = 1 ## 打印全部类型SQL日志 默认 1
MIN_EXEC_TIME = 1000 ## 详细模式下,记录的最小语句执行时间,单位毫秒 --慢sql时间
USER_MODE = 0 ## SQL 日志按用户过滤时的过滤模式,取值0:关闭用户过滤
USERS = ## 打开 SVR_LOG_USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名
[SLOG_ERROR]
SQL_TRACE_MASK = 23
FILE_PATH = /dmdata/data/log
[SLOG_DDL]
SQL_TRACE_MASK = 3
[SLOG_LONG_SQL]
SQL_TRACE_MASK = 25
MIN_EXEC_TIME = 60000
mkdir /dmdata/data/log
#登录数据库
./disql username/password@IP:PORT
SQL> SP_SET_PARA_VALUE(1,'SVR_LOG',1);
#如果对 sqllog.ini 进行了修改,可通过调用以下函数即时生效,无需重启数据库
SQL> SP_REFRESH_SVR_LOG_CONFIG();
#开启后慢日志会保持在 /dmdata/data/log 目录
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)