
达梦数据库教程(7)达梦数据库逻辑备份与还原
一、达梦数据库逻辑备份
1、逻辑备份介绍
数据库逻辑备份是指将数据库中的数据和结构以逻辑形式导出的备份方式,备份的是数据的逻辑表示而不是物理文件本身。由于备份出来的文件都是SQL语句,所以非常适合跨平台迁移。但是由于备份和恢复的速度都比较慢,所以不适合对大型数据库进行备份。达梦数据库自带的命令行逻辑备份工具是 dexp 和 dexpdp, dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。逻辑备份工具需要数据库实例正常运行的情况下才能进行,备份还原时可以从四个级别选其一:
· 数据库级(FULL):导出或导入整个数据库中的所有对象。
· 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
· 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象,也是默认操作
· 表级(TABLES):导出或导入一个或多个指定的表或表分区。
2、达梦数据库逻辑备份示例
· 数据库级别备份(FULL)
dexp USERID=SYSDBA/******:5236 FILE=FULL_20250225.dmp LOG=FULL_20250225.log DIRECTORY=/data/dmdbms/backup/ FULL=Y #备份后生成文件如下 -rw-r--r-- 1 dmdba dinstall 6.3K Feb 25 15:52 FULL_20250225.dmp -rw-r--r-- 1 dmdba dinstall 6.0K Feb 25 15:52 DFULL_20250225.log
· 用户级别备份(OWNER)
导出YWPIE用户下所有模式数据 dexp USERID=SYSDBA/******:5236 FILE=YWPIE_20250225.dmp LOG=YWPIE_20250225.log DIRECTORY=/data/dmdbms/backup/ OWNER=YWPIE -rw-r--r-- 1 dmdba dinstall 4.3K Feb 25 15:58 YWPIE_20250225.dmp -rw-r--r-- 1 dmdba dinstall 5.8K Feb 25 15:58 YWPIE_20250225.log
· 模式级别备份(SCHEMA)
导出指定模式下的所有数据 dexp USERID=SYSDBA/******:5236 FILE=SCHEMAS0_20250225.dmp LOG=SCHEMAS0_20250225.log DIRECTORY=/data/dmdbms/backup/ SCHEMAS=YWPIE -rw-r--r-- 1 dmdba dinstall 1.5K Feb 25 16:02 SCHEMAS0_20250225.log -rw-r--r-- 1 dmdba dinstall 5.0K Feb 25 16:02 SCHEMAS0_20250225.dmp
· 表级别备份
dexp USERID=SYSDBA/******:5236 FILE=TABLE_20250225.dmp LOG=DM_DEXP_TAB_20250225.log DIRECTORY=/data/dmdbms/backup/ TABLES=YWPIE.T1,YWPIE.T2 -rw-r--r-- 1 dmdba dinstall 490 Feb 25 16:09 DM_DEXP_TAB_20250225.log -rw-r--r-- 1 dmdba dinstall 4.7K Feb 25 16:09 DM_DEXP_TAB_20250225.dmp
3、达梦数据库逻辑备份常用参数
· QUERY
备份时可以支持数据过滤,和mysqldump时的where参数一样
# 导出 YWPIE.T1表中ID>=3的所有数据 dexp USERID=SYSDBA/******:5236 FILE=QUERY_BACKUP_20250225.dmp LOG=QUERY_BACKUP_20250225.log DIRECTORY=/data/dmdbms/backup/ TABLES=YWPIE.T1 QUERY="WHERE ID>=3"
· EXCLUDE
设置导出时忽略的对象
# 导出SCHEMAS=YWPIE中除了T1表的所有数据 dexp USERID=SYSDBA/******:5236 FILE=DM_DEXP_EXCLUDE_20250225.dmp LOG=DM_DEXP_EXCLUDE_20250225.log DIRECTORY=/data/dmdbms/backup/ SCHEMAS=YWPIE EXCLUDE="TABLES:T1"
· COMPRESS
备份时是否压缩,默认不压缩
dexp USERID=SYSDBA/******:5236 FILE=DM_DEXP_COMPRESS_20250225.dmp LOG=DM_DEXP_COMPRESS_20250225.log DIRECTORY=/data/dmdbms/backup/ SCHEMAS=YWPIE COMPRESS=Y COMPRESS_LEVEL=3
· PARALLEL
指定导出的过程中所使用的线程数,通常可以和CPU数保持一致
dexp USERID=SYSDBA/******:5236 FILE=DM_DEXP_PARALLEL_20250225.dmp LOG=DM_DEXP_PARALLEL_20250225.log DIRECTORY=/data/dmdbms/backup/ SCHEMAS=YWPIE PARALLEL=8
二、达梦数据库逻辑还原
1、达梦数据库逻辑还原介绍
达梦数据库自带的命令行逻辑还原工具是 dimp 和 dimpdp,两者区别在于dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。逻辑还原就是把逻辑备份所产生的SQL文件重新执行的过程。使用dimp进行还原的时候同样支持 FULL、OWNER、SCHEMAS、TABLES 四种级别,缺省为导入的文件导出时所用的方式。
2、达梦数据库逻辑还原常用参数
· TABLE_EXISTS_ACTION
如果要导入的表已存在时的处理方式,默认为直接报错,可选参数包含 SKIP(跳过此表) 、 APPEND(在该表中追加数据) 、 TRUNCATE (先清空表数据再行导入)、 REPLACE(先删除表再导入数据) 、TRUNCATE_CASCADE(级联删除表和依赖数据,随后导入数据)
· REMAP_SCHEMA
SCHEMA映射,可以将源模式中的数据导入到指定模式
· REMAP_TABLE
表映射,可以将源表/视图中的数据导入到指定的表/视图中
· REMAP_TABLESPACE
表空间映射,可以将源表空间中的数据导入到指定的表空间中,使用该参数的前提是导出文件中包含源表表空间。
# 将 MAIN 表空间中的数据导入到 TS 表空间 REMAP_TABLESPACE=MAIN:TS
· DATA_ONLY
是否只导入表数据,默认为N表示对象定义和数据都导入,设置为Y只导入表数据
· INCLUDE
只导入该选项所指定的对象,其余对象被过滤
· EXCLUDE
导入时需要过滤的对象,该选项指定的数据将不被导入
3、达梦数据库逻辑还原示例
· 整库还原
#全库导出 ./dexp SYSDBA/**********:5236 file=full.dmp log=dexp.log directory=/data/dmdbms/backup/ full=Y #全库导入 ./dimp SYSDBA/**********:5236 file=full.dmp log=dimp.log directory=/data/dmdbms/backup full=y table_exists_action=replace
· 按用户还原
一个或多个用户拥有的所有对象
#按原用户导出
dexp SYSDBA/SYSDBA file=full_backup.dmp log=full_export.log directory=/data/backup owner=tanglu
#按原用户导入
dimp USERID=SYSDBA/SYSDBA file=full_backup.dmp log=full_import.log directory=/data/backup owner=tanglu table_exists_action=replace
#跨用户导入
dimp USERID=SYSDBA/SYSDBA file=full_backup.dmp log=full_import.log directory=/data/backup owner=tanglu remap_schema=原用户:新用户 table_exists_action=replace
· 按SCHEMA还原
#按SCHEMA导出 dexp SYSDBA/SYSDBA file=full_backup.dmp log=full_export.log directory=/data/backup schemas=dexp #按SCHEMA导 dimp USERID=SYSDBA/SYSDBA file=full_backup.dmp log=full_import.log directory=/data/backup owner=tanglu table_exists_action=replace
· 按表还原
#导出表 dexp SYSDBA/SYSDBA file=table_backup.dmp log=table_export.log directory=/data/backup tables=test_table1,test_table2; #导入表 dimp SYSDBA/SYSDBA file=table_backup.dmp log=table_import.log directory=/data/backup tables=test_table1,test_table2 table_exists_action=replace
三、达梦数据库逻辑还原实战
当涉及到跨用户、跨SCHEMA或者跨表空间的导出导入时,需要进行REMAP映射操作,指定原对象与目标对象。当用户名不同、SCHEMA不同时通过REMAP_SCHEMA参数对所有SCHEMA进行转换,当用户默认表空间不同,通过REMAP_TABLESPACE参数进行转换
1、A用户数据迁移到B用户
#导出ywpie1数据 dexp USERID=SYSDBA/******:5236 FILE=ywpie1.dmp LOG=ywpie1_exp.log DIRECTORY=/data/dmdbms//backup/ywpie OWNER=YWPIE1 #导入数据到ywpie2用户,由于导出和导入的用户名不同,需要使用REMAP_SCHEMA参数进行转换 dimp USERID=SYSDBA/******:5236 FILE=ywpie1.dmp LOG=ywpie1_imp.log DIRECTORY=/data/dmdbms//backup/ywpie REMAP_SCHEMA=ywpie1:ywpie2 REMAP_TABLESPACE=ywpie1_ts:ywpie2_ts
2、A模式数据迁移到B模式
#导出A模式数据 dexp USERID=SYSDBA/******:5236 FILE=schema_a.dmp LOG=schema_a_exp.log DIRECTORY=/data/dmdbms//backup/schema_a SCHEMAS=a #用户名、模式、表空间不同 dimp USERID=SYSDBA/******:5236 FILE=schema_a.dmp LOG=schema_a_imp.log DIRECTORY=/data/dmdbms//backup/schema_a REMAP_SCHEMA=a:b REMAP_TABLESPACE=atbs:btbs
3、异地还原
如果源库和目标库的参数配置不一致,会出现参数不匹配的警告,可以通过忽略参数IGNORE_INIT_PARA来绕过,该参数值为1是忽略大小写,值为2忽略字符串长度
dimp USERID=SYSDBA/******:5236 FILE=schema_a.dmp LOG=schema_a_imp.log DIRECTORY=/data/dmdbms//backup/schema_a IGNORE_INIT_PARA=2
猜你喜欢

国产数据库 达梦数据库教程(12)守护集群部署与管理
一、达梦数据库守护集群介绍达梦数据库通过守护集群可以实现主备模式或读写分离集群,二者在搭建过程上基本一致,区别在于:· 数据守护集群:通常使用实时归档 + ARCH WAIT APPLY=0 (高性能...

国产数据库 达梦数据库教程(11)达梦数据库授权与版本更新
一、达梦数据库授权管理1、查询授权查询授权到期时间,如果是永久授权,EXPIRED_DATE 列值是 NULL,AUTHORIZED_CUSTOMER 是用户名称SELECT * ...
国产数据库 达梦数据库教程(9)达梦数据库定时备份配置




一、达梦数据库备份管理达梦数据库通过自带的一些函数以及动态视图可以实现定期物理备份、清理历史备份集等自动化操作,不需要再额外配置操作系统的计划任务。如果是需要自动化逻辑备份的话,则需要使用dexp结合...

国产数据库 达梦数据库教程(8)达梦数据库物理备份与还原
一、达梦数据库物理备份介绍物理备份是指直接对数据库底层物理文件进行复制的备份方式,比如数据文件、控制文件、日志文件等。由于物理备份不是通过SQL语句来对数据进行导出和还原,所以整体速度非常快,适合对数...

国产数据库 达梦数据库教程(6)用户权限与模式管理
一、达梦数据库用户1、达梦数据库系统用户达梦数据库在安装完成以后,通过三权分立(达梦数据库安全版则是四权分立)的特性将数据库管理员分为数据库管理员(SYSDBA)、数据库安全员(SYSSSO)、数据库...
文章评论