达梦数据库备份与恢复:dexp 和 dimp 工具的使用与优化
为了确保数据的安全和高效恢复,达梦数据库提供了两个重要工具:dexp 和 dimp,分别用于逻辑导出和导入操作。
dexp(逻辑导出工具):允许用户将数据库、用户、模式或表的数据和结构导出到备份文件中。用户可以根据具体需求选择导出范围、是否包含约束、索引等内容。
dimp(逻辑导入工具):则用于将使用 dexp 导出的备份文件恢复到目标数据库中。导入过程中,用户可以根据需求选择是否编译对象、是否忽略错误等设置。
通过合理使用这两个工具,数据库管理员可以实现高效的数据迁移、备份、恢复等操作,并在发生系统故障或数据丢失时快速恢复,保障数据的安全性和业务的连续性。
第一部分:dexp 逻辑导出
1.1 导出数据库(FULL 方式)
- 完整导出整个数据库。
shell> su - dmdba
shell> cd dmdbms/bin
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dexp
1.2 导出用户(OWNER 方式)
- 导出特定用户的所有对象。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str2.dmp LOG=db_str2.log OWNER=SCOTT DIRECTORY=/data/dexp
1.3 导出模式(SCHEMAS 方式)
- 导出指定模式下的所有对象。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str3.dmp LOG=db_str3.log SCHEMAS=SCOTT DIRECTORY=/data/dexp
1.4 导出表(TABLES 方式)
- 导出指定表或表分区的所有数据行、约束、索引等。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str4.dmp LOG=db_str4.log TABLES=SCOTT.TEST DIRECTORY=/data/dexp
第二部分:dimp 逻辑导入
2.1 导入数据库(FULL 方式)
- 导入整个数据库。
shell> su - dmdba
shell> cd dmdbms/bin
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dimp
2.2 导入用户(OWNER 方式)
- 导入指定用户的所有对象。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str2.dmp LOG=db_str2.log OWNER=SCOTT DIRECTORY=/data/dimp
2.3 导入模式(SCHEMAS 方式)
- 导入指定模式的所有对象。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str3.dmp LOG=db_str3.log SCHEMAS=SCOTT DIRECTORY=/data/dimp
2.4 导入表(TABLES 方式)
- 导入指定表的所有数据行、约束、索引等。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str4.dmp LOG=db_str4.log TABLES=SCOTT.TEST DIRECTORY=/data/dimp
第三部分:达梦 dexp
和 dimp
常用参数
3.1 达梦 dexp
常用参数
- PARALLEL:指定导出的并行线程数。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dexp PARALLEL=2
- TABLE_PARALLEL:指定每个表的导出线程数。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dexp TABLE_PARALLEL=3
- EXCLUDE:设置导出时要忽略的对象(如索引、约束)。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str4_1.dmp LOG=db_str4_1.log TABLES=DM.EMP,DM.TEST DIRECTORY=/data/dexp EXCLUDE=\(CONSTRAINTS,INDEXES\)
- INCLUDE:设置导出时包含的对象。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str4_1.dmp LOG=db_str4_1.log TABLES=DM.EMP,DM.TEST DIRECTORY=/data/dexp INCLUDE=\(CONSTRAINTS,INDEXES\)
- QUERY:设置过滤条件导出表数据。
shell> ./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str4.dmp LOG=db_str4.log TABLES=DM.EMP DIRECTORY=/data/dexp QUERY="WHERE SAL>2000"
3.2 达梦 dimp
常用参数
- PARALLEL:指定导入的并行线程数。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dimp PARALLEL=2
- IGNORE:设置忽略导入时的错误。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dimp IGNORE=Y
- COMMIT_ROWS:设置每批提交的行数。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dimp COMMIT_ROWS=10000
- COMPILE:导入时是否编译过程、视图等对象。
shell> ./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/data/dexp/db_str1.dmp LOG=db_str1.log FULL=Y DIRECTORY=/data/dimp COMPILE=Y
总结
达梦数据库的 dexp 和 dimp 工具提供了强大的逻辑备份和恢复功能。通过合理的选择导出和导入的范围、并行处理的设置以及对特定对象的过滤,用户可以根据实际需求灵活地管理数据库的备份和恢复任务。这些工具不仅适用于数据库的常规备份恢复,还能在数据迁移、灾难恢复等场景中发挥重要作用。
合理使用 dexp 和 dimp 的高级参数,如 PARALLEL、IGNORE 和 QUERY,能够显著提升操作效率,减少备份和恢复过程中的