DM数据库全库备份表结构---以用户级备份表结构为例介绍

一、环境
①、操作系统环境为Red Hat Enterprise Linux 8.5
②、数据库版本为达梦V8企业版
二、使用场景描述
①、异构数据库测试迁移后,想保留表结构,只将正式库数据库做迁移的;
②、测试环境对表结构做了大量调整,想保留表结构应用到其他项目。
三、实验演示
1、逻辑备份说明
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备
份。备份的内容非常灵活,,在备份前还可以选择生成日志文件,记录备份的过程以供
查看。
2、查看数据库服务,准备测试用户及数据

[root@localhost ~]# su - dmdba
上一次登录:三 420 00:55:29 CST 2022pts/0[dmdba@localhost ~]$ ps -ef|grep dms
dmdba       990      1  0 00:54 ?        00:00:07 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
dmdba      1449   1423  0 01:20 pts/0    00:00:00 grep --color=auto dms
[dmdba@localhost ~]$
①、登录disql,新建测试数据
[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.651(ms)
SQL> CREATE TABLE TEST.T1(ID INT,NAME VARCHAR(20));
操作已执行
已用时间: 8.382(毫秒). 执行号:2200.
SQL> SELECT * FROM TEST.T1;
未选定行
已用时间: 1.159(毫秒). 执行号:2201.
②、使用循环插入测试数据,一共插入50条数据
SQL> BEGIN
	FOR I IN 1..50
	LOOP
		INSERT INTO TEST.T1 VALUES(I,'AAA'||I);
		COMMIT;
		END LOOP;
END;
/2   3   4   5   6   7   8
DMSQL 过程已成功完成
已用时间: 51.257(毫秒). 执行号:2202.
SQL> SELECT * FROM TEST.T1;

行号     ID          NAME
---------- ----------- -----
1          1           AAA1
2          2           AAA2
3          3           AAA3
4          4           AAA4
5          5           AAA5
6          6           AAA6
7          7           AAA7
8          8           AAA8
9          9           AAA9
10         10          AAA10
11         11          AAA11
...
行号     ID          NAME
---------- ----------- -----
45         45          AAA45
46         46          AAA46
47         47          AAA47
48         48          AAA48
49         49          AAA49
50         50          AAA50

3、备份TEST用户下的所有数据(用户级别的备份)

[dmdba@localhost bin]$ ./dexp TEST/dameng123@127.0.0.1:5236 FILE=/dm8/TEST.dmp OWNER=TEST
dexp V8
正在导出 第1SCHEMATEST
开始导出模式[TEST].....T1导出结束,共导出 50 行数据
模式[TEST]导出结束.....
成功导出 第1SCHEMATEST
共导出 1SCHEMA
整个导出过程共花费    0.235 s
成功终止导出, 没有出现警告

4、备份TEST用户下的所有表结构(用户级别的备份),添加导出参数EXCLUDE,导出内容中忽略指定的对象。对象有CONSTRAINTS、INDEXES、ROWS、TRIGGERS 和GRANTS。
比如:EXCLUDE= (CONSTRAINTS,INDEXES)

[dmdba@localhost bin]$ ./dexp TEST/dameng123@127.0.0.1:5236 FILE=/dm8/TEST001.dmp OWNER=TEST EXCLUDE= (ROWS)
-bash: 未预期的符号 `(' 附近有语法错误
[dmdba@localhost bin]$
**出现报错,原因:linux无法直接识别括号,需要转义**
[dmdba@localhost bin]$ ./dexp TEST/dameng123@127.0.0.1:5236 FILE=/dm8/TEST001.dmp OWNER=TEST EXCLUDE=\(ROWS\)
dexp V8
正在导出 第1SCHEMATEST
开始导出模式[TEST].....
模式[TEST]导出结束.....
成功导出 第1SCHEMATEST
共导出 1SCHEMA
整个导出过程共花费    0.043 s
成功终止导出, 没有出现警告

5、删除TEST用户下的T1表,还原备份的表结构

SQL> SELECT COUNT(*) FROM TEST.T1;

行号     COUNT(*)
---------- --------------------
1          50

已用时间: 0.458(毫秒). 执行号:2601.
SQL> DROP TABLE TEST.T1;
操作已执行
已用时间: 28.884(毫秒). 执行号:2602.
SQL> SELECT COUNT(*) FROM TEST.T1;
SELECT COUNT(*) FROM TEST.T1;1 行附近出现错误[-2106]:无效的表或视图名[T1].
已用时间: 0.575(毫秒). 执行号:0.
①、T1表已经被删除,现在还原表结构
[dmdba@localhost bin]$ ./dimp TEST/dameng123@127.0.0.1:5236 FILE=/dm8/TEST001.dmp OWNER=TEST
dimp V8

本地编码:PG_UTF8, 导入文件编码:PG_GB18030

开始导入模式[TEST]......

导入模式中的 NECESSARY GLOBAL 对象……

模式中的 NECESSARY GLOBAL 对象导入完成……


----- [2022-04-20 01:41:57]导入表:T1 -----


创建表 T1 ...T1 的数据导入完成,共导入数据:0 行

导入模式中的 GLOBAL 对象……

模式中的 GLOBAL 对象导入完成……

模式[TEST]导入完成......


整个导入过程共花费    0.023 s



成功终止导入, 没有出现警告
[dmdba@localhost bin]$
②、查询还原的表T1
[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.997(ms)
SQL> SELECT * FROM TEST.T1;
*未选定行*
已用时间: 1.716(毫秒). 执行号:3000.
只有表结构,并无数据。

至此,数据库用户级整库备份数据库表结构结束。
更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值