【dm逻辑备份与物理备份】

1逻辑备份

逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和dimp 进行的备份还原。
逻辑导出(dexp)和逻辑导入(dimp)是达梦数据库的两个命令行工具,分别用来实现对达梦数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是达梦数据库自带的工具,只要安装了达梦数据库,就可以在安装目录的bin中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:
数据库级、用户级、模式级和表级。
四种级别独立互斥,不能同时存在。

1.1插入数据

新建表空间
create tablespace DM_TEST datafile ‘DM_TEST.dbf’ size 128 autoextend on;
在这里插入图片描述
新建用户
create user dm identified by “dm1234567”;
在这里插入图片描述
查看有哪些模式
SELECT DISTINCT object_name FROM ALL_OBJECTS WHERE OBJECT_TYPE = ‘SCH’;
在这里插入图片描述
用户授权
在这里插入图片描述
使用dm用户创建表插入数据
在这里插入图片描述
在这里插入图片描述
按上述方法新建cs用户并插入数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2备份数据

dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。
逻辑备份工具使用dexp,有四种级别的导出方式
四种级别所提供的功能:
数据库级(FULL):导出整个数据库中的所有对象。
用户级(OWNER):导出一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导出一个或多个模式下的所有对象。
表级(TABLES):导出一个或多个指定的表或表分区。
1.2.1全库备份
FULL-全库
FULL 方式导出数据库的所有对象。
例如,设置 FULL=Y,导出数据库的所有对象,导出数据库文件和日志文件放在路径/dm/backup/dexp下。
./dexp USERID=SYSDBA/SYSDBA FILE=db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/dm/backup/dexp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.2.2用户备份
OWNER-用户
OWNER 方式导出一个或多个用户拥有的所有对象。
例如,设置 OWNER=cs,导出用户 cs 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_cs.dmp LOG=db_cs.log OWNER=cs DIRECTORY=/dm/backup/dexp
在这里插入图片描述
在这里插入图片描述
1.2.3SCHEMAS模式备份
SCHEMAS 方式的导出一个或多个模式下的所有对象。
例如,设置 SCHEMAS=DM,导出模式 DM模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_dm.dmp LOG=db_dm.log SCHEMAS=DM DIRECTORY=/dm/backup/dexp
在这里插入图片描述
在这里插入图片描述
1.2.4表备份
TABLES-表名
TABLES 方式导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。
例如,设置 TABLES=dm.city,导出 ctiy表的所有数据和信息。
./dexp USERID=SYSDBA/SYSDBA FILE=db_city.dmp LOG=db_city.log TABLES=dm.city DIRECTORY=/dm/backup/dexp
在这里插入图片描述
1.2.5压缩备份
使用dexp导出备份时,可以将备份进行压缩导出,导出时需要添加COMPRESS参数
COMPRESS 说明:
COMPRESS 指定是否压缩导出文件。可选参数。缺省为不压缩。
可设置COMPRESS=Y/N Y:压缩 N 或缺省参数:不压缩
例如,设置COMPRESS=Y,并进行全库导出
不设置压缩的全备
./dexp USERID=SYSDBA/‘“Hn@dameng123”’ FILE=db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/dm/backup/dexp
在这里插入图片描述
文件已生成
在这里插入图片描述
设置压缩的全备
./dexp USERID=SYSDBA/‘“Hn@dameng123”’ FILE=db_full_c.dmp LOG=db_full_c.log FULL=Y COMPRESS=Y DIRECTORY=/dm/backup/dexp
在这里插入图片描述
文件对比,发现变小了一半,这里数据量小,效果不是特别明显
在这里插入图片描述

1.3还原数据

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。
逻辑还原工具使用dimp,有四种级别的导入方式:
数据库级(FULL):导入整个数据库中的所有对象。
用户级(OWNER):导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS):导入一个或多个模式下的所有对象。
表级(TABLES):导入一个或多个指定的表或表分区。
1.3.1全库还原
FULL-全库
FULL 方式导入整个数据库。
例如,设置 FULL=Y,导入整个数据库,导入的数据库文件在 /dm/backup/dexp,即将生成的日志文件放在 /dm/backup/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE= /dm/backup/dexp/db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/dm/backup/dimp
先做下数据破坏
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还原备份
./dimp USERID=SYSDBA/SYSDBA FILE= /dm/backup/dexp/db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/dm/backup/dimp
在这里插入图片描述
在这里插入图片描述
查看数据是否恢复,还原成功
在这里插入图片描述
1.3.2用户还原
OWNER-用户
OWNER 方式导入一个或多个用户拥有的所有对象。
例如,设置 OWNER=cs,导入用户cs所拥有的对象全部导出。导入的数据库文件在/dm/backup/dexp,即将生成的日志文件放在/dm/backup/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE= /dm/backup/dexp/db_cs.dmp LOG=db_cs.log OWNER=cs DIRECTORY=/dm/backup/dimp
删除用户失败
在这里插入图片描述
删除用户说明:
(1)用户没有相关数据:
drop user cs
(2)用户下有数据
drop user cs cascade
注意:在删除用户时,会删除用户底下所有的模式,所以在达梦数据库中,
如果一个用户有多个模式,在删除一个模式时,千万注意不能使用drop user的方式,要用drop schema删除。
drop schema cs;
删除成功
在这里插入图片描述
还原备份
./dimp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/db_cs.dmp LOG=db_cs.log OWNER=cs DIRECTORY=/dm/backup/dimp
在这里插入图片描述
查看表数据已经回来了
在这里插入图片描述
1.3.3SCHEMAS模式还原
SCHEMAS-模式名
SCHEMAS 方式的导入一个或多个模式下的所有对象。
例如,设置 SCHEMAS=DM,导入模式DM模式下的所有对象。导入的数据库文件在/dm/backup/dexp/,即将生成的日志文件放在/dm/backup/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/db_dm.dmp LOG=db_dm.log SCHEMAS=DM DIRECTORY=/dm/backup/dimp
注意:在新的实例中导入,一定要有导入文件对应的模式名
删除模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原因:
不能直接删除与用户名同名的模式,否则会报错误“[-2506]:视图删除用户[XX]的默认模式”。要想删除与用户名同名的模式,需删除用户,删除用户时,会同时将用户及用户下模式删除。
删除模式:
如果我们不再使用某个模式,可以删除该模式;使用如下语句删除模式,默认为RESTRICT方式(如果模式下存在对象则不能直接删除,可以使用CASCADE级联删除模式及模式下的所有对象)。
DROP SCHEMA [RESTRICT | CASCADE];
案例:TEST01模式下没有对象,可以直接删除;TEST02模式下创建有T_TEST表,所以可以删除该表,再删除模式;或者直接使用CASCADE级联删除。
在生产环境,建议慎用CASCADE关键字。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行drop user test; 可以删除用户及用户下的模式。
在这里插入图片描述
所以此处直接删除用户
在这里插入图片描述
还原模式
./dimp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/db_dm.dmp LOG=db_dm.log SCHEMAS=DM DIRECTORY=/dm/backup/dimp
在这里插入图片描述
数据还原成功
在这里插入图片描述
不同模式间的还原
如模式A的数据还原到模式B,需要用到参数REMAP_SCHEMA
REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)
将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
查看有哪些模式
SELECT DISTINCT object_name FROM ALL_OBJECTS WHERE OBJECT_TYPE = ‘SCH’;
在这里插入图片描述
此处想把DMHR模式下的数据导入DM模式下
设置 SCHEMAS=DMHR,导出模式 DM模式下的所有对象。
./dexp USERID=SYSDBA/‘“Hn@dameng123”’ FILE=db_dmhr.dmp LOG=db_dmhr.log SCHEMAS=DMHR DIRECTORY=/dm/backup/dexp
在这里插入图片描述
文件已生成
在这里插入图片描述
把DMHR模式下的数据导入DM模式下
./dimp USERID=SYSDBA/‘“Hn@dameng123”’ FILE=/dm/backup/dexp/db_dmhr.dmp LOG=db_dmhr.log REMAP_SCHEMA=DMHR:DM DIRECTORY=/dm/backup/dimp
在这里插入图片描述
对比数据表数量
在这里插入图片描述
表内容
在这里插入图片描述
1.3.4表还原
TABLES-表名
TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。
例如,设置 TABLES=dm.city ,导入 dm.city表的所有数据和信息。导入的数据库文件在 /dm/backup/dexp,即将生成的日志文件放在 /dm/backup/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/dm/backup/dexp/db_city.dmp LOG=db_city.log TABLES=dm.city DIRECTORY=/dm/backup/dimp
和 TABLES 导入有关的参数还有 EXCLUDE,用来指定导入时过滤掉某类对象。
注意:在导出时如果有模式名,新实例导入时也要有模式名,新实例就会生成对应的模式名
删除表
在这里插入图片描述
恢复表
在这里插入图片描述
在这里插入图片描述

2物理备份

达梦数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对达梦数据库的操作,归根结底都是对某个数据文件页的读写操作。
因此,达梦备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原与恢复是备份的逆过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由达梦数据库自动进行回滚
物理备份简单来说就是直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。

2.1联机备份

注意:
热备需要数据库打开,需要数据库开启归档模式,DmAP 服务需要开启
查看dmap进程
在这里插入图片描述
备份需要开启归档,不然报错
在这里插入图片描述
归档说明
备份与恢复过程都依赖归档日志,归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。
归档分为:本地归档和远程归档
本地归档 :Redo 日志本地归档(LOCAL),就是将 Redo 日志写入到本地归档日志文件的过程。
配置本地归档情况下,Redo 日志刷盘线程将 Redo 日志写入联机 Redo 日志文件后,对应的 RLOG_PKG 由专门的归档线程负责写入本地归档日志文件中。
远程归档:所谓远程归档(REMOTE ARCHIVE),顾名思义就是将归档目录配置在远程节点上。远程归档专门用于 DMDSC 环境中。远程归档采用双向配置的方式,双向配置远程归档就是两个节点将自己的远程归档相互配置在对方机器上。集群中所有的节点,都拥有一套包括所有节点的,完整的归档日志文件。
开启本地归档
在这里插入图片描述
全备
mkdir -p /dm/backup/dmbak
BACKUP DATABASE FULL BACKUPSET ‘/dm/backup/dmbak/db_full_20220725’;
在这里插入图片描述
备份已生成
在这里插入图片描述

2.2还原联机备份

删除表,用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除物理文件
在这里插入图片描述
拿全备恢复
还原数据库。启动 DMRMAN,执行以下命令:
RESTORE DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_20220725’;
在这里插入图片描述
还原需要脱机
在这里插入图片描述
在这里插入图片描述
恢复数据库。启动 DMRMAN,执行以下命令:
RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_20220725’;
在这里插入图片描述
恢复 db_magic,执行以下命令:
RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ UPDATE DB_MAGIC;
在这里插入图片描述
查询数据是否恢复
在这里插入图片描述
物理文件已恢复
在这里插入图片描述

2.3脱机备份

全备
BACKUP DATABASE ‘/dm/data/DAMENG/dm.ini’ FULL BACKUPSET ‘/dm/backup/dmbak/db_full_rman_20220725’;
脱机备份需要关闭数据库
在这里插入图片描述
在这里插入图片描述
备份文件已生成
在这里插入图片描述
2.4还原脱机备份
删除表,用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除物理文件
在这里插入图片描述
拿全备恢复
还原数据库。启动 DMRMAN,执行以下命令:
RESTORE DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_rman_20220725’;
在这里插入图片描述
恢复数据库。启动 DMRMAN,执行以下命令:
RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_rman_20220725’;
在这里插入图片描述
恢复 db_magic,执行以下命令:
RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ UPDATE DB_MAGIC;
在这里插入图片描述
查询数据是否恢复
在这里插入图片描述

2.5压缩备份

达梦也支持对物理备份数据进行压缩,用户在执行备份时,可以指定不同的压缩级别,以获得不同的数据压缩比。默认情况下,备份是不进行压缩和加密处理的。
达梦共支持 9 个级别(1~9 级)的压缩处理,级别越高压缩比越高,但相应的压缩速度越慢、CPU 开销越大。
进行压缩备份需要添加参数COMPRESSED
COMPRESSED:是否对备份数据进行压缩处理。
LEVEL 表示压缩等级,取值范围 0~9:
0 表示不压缩;1 表示 1 级压缩;9 表示 9 级压缩。压缩级别越高,压缩速度越慢,但压缩比越高。若指定 COMPRESSED,但未指定 LEVEL,则压缩等级默认 1;若未指定 COMPRESSED,则默认不进行压缩处理。
全备
BACKUP DATABASE FULL BACKUPSET ‘/dm/backup/dmbak/db_full_20220921’;
在这里插入图片描述
备份文件已生成
在这里插入图片描述
执行备份压缩,压缩级别设置为 5,执行以下命令:
BACKUP DATABASE FULL BACKUPSET ‘/dm/backup/dmbak/db_full_20220921_c’ COMPRESSED LEVEL 5;
在这里插入图片描述
备份文件对比
在这里插入图片描述
在这里插入图片描述
压缩成功了,压缩效果还是很明显的

2.6还原压缩备份

删除物理文件
在这里插入图片描述
拿压缩全备恢复
还原数据库。启动 DMRMAN,执行以下命令:
RESTORE DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_20220921_c’;
在这里插入图片描述
恢复数据库。启动 DMRMAN,执行以下命令:
RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/backup/dmbak/db_full_20220921_c’;
在这里插入图片描述
恢复 db_magic,执行以下命令:
RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ UPDATE DB_MAGIC;
在这里插入图片描述
物理文件已恢复
在这里插入图片描述
查询正常
在这里插入图片描述
社区地址:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值