备份和还原原理

1. 逻辑备份和物理备份

逻辑备份:利用dexp工具将指定对象的数据导出针对数据内容,不关心这些数据在什么位置

逻辑还原:使用dimp工具,把dexp导出的备份数 据重新导入到目标数据库

物理备份:扫描数据库文件,找到使 用过的数据页拷贝保存到备份集中

针对数据页的描述,不关心数据内容

物理还原:把备份集中的数据内容重新拷贝、写入目标文件

2. 联机备份和脱机备份

联机备份:数据库运行状态的备份,要求配置本地归档并开启本地归档

联机还原:通过 SQL 语句执行还原操作(表空间还原必须要求目标表空间不是online)

脱机备份:数据库关闭状态的备份,要求配置本地归档,并且数据库在关闭状态下

脱机还原:通过DMRMAN工具在数据库关闭状态下进行

总结:脱机的意思是指在数据库关闭的情况下进行操作,可以保证库的一致性。联机的意思是指数据库在运行的情况下。

3. 数据备份和归档日志备份

数据备份:针对数据文件内容包括库备份、表空间备份和表备份

数据还原:库还原必须是关闭状态,表空间无所谓,表还原必须联机执行

归档日志备份:是专门针对归档日志文件进行操作,不涉及任何数据文件内容(在备份开始到结束所产生的REDO日志)

归档日志还原:则将归档日志备份集中的归档日志内容,重新生成到指定目录中。

归档

1. 本地归档

Redo日志写入到本地归档日志文件的过程

不可被覆盖,永久保留,可以配置归档空间上限,自动删除,腾出空间

为了最大限度地保护数据,当磁盘空间不足导致归档写入失败时,系统会挂 起等待,直到用户释放出足够的磁盘空间。 当磁盘损坏导致归档日志写入失败时,系统会强制HALT

2. 远程归档

将本地归档的REDO日志信息,发送到远程节点写入远程节点的指定归档目录中

远程归档必须双向配置,单向配置时目标实例上不会接收归档日志,归档状态将会变成无效状态

3. 归档切换

将没有写入归档日志文件的REDO日志,写入到归档日志文件中,选择一条即可

冷备:备份时需要将数据库实例关闭,否则会造成数据丢失 

./DmServiceTEST stop     ---关闭数据库实例服务器

[dmdba@localhost bin]$ ./DmAPService restart     ---重启DmAP服务器

./dmrman     ---冷备

RMAN> backup database '/dm8/data/PROD/dm.ini' full backupset '/dm8/backup/20210414_bak';     ---备份

RMAN> exit

./DmServiceTEST start     ---开启数据库实例服务

热备:热备份就是指数据库服务是启动状态  

开启归档

cd /dm8/dmdbms/bin

[dmdba@localhost bin]$ ./DmAPService restart     ---重启DmAP服务器

./disql SYSDBA/Dameng123     ---切换到数据库里面

alter database mount;     ---切换到mount状态才能修改(mount:配置状态)

alter database add archivelog 'DEST=/dm8/arch,TYPE=LOCAL,FILE_SIZE=2048,SPACE_LIMIT=20480';    

alter database archivelog;      ---修改归档模式

alter database open;       ---切换到open状态(数据库可以提供正常服务,可以读取表、数据等信息)

alter system switch logfile;     ---生成日志文件

checkpoint(100);   --刷新数据落盘

------如果遇到归档不连续的问题,重启下数据库服务器,或者切换日志,或者重新打开一个窗口

---select name,arch_mode from v$database;     ---可以查看归档模式

---alter system switch logfile;     ---可以切换日志(如果遇到日志不存在的错误,可能需要切换一下日志,再执行add archivelog)

---alter database noarchivelog;     ---如果想要删除归档配置,需要改为不归档模式才能删除,再执行以下语句

---alter database delete archivelog 'DEST=/dm8/arch';

./disql SYSDBA/Dameng123

backup database full backupset '/dm8/backup/db_full_bak_20210415';     ---热备

Exit

总结

1.冷备 (DmAPService服务打开的状态下,数据库实例服务是关闭的)
2.热备 (DmAPService服务是打开的,数据库实例服务是打开的,数据库实例要开归档)

全备(要修改时间和备份日期)     ---备份数据库

./manager

call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('JOB1');

call SP_ADD_JOB_STEP('JOB1', 'JOB1', 5, '01000/dm8/backup', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('JOB1', 'JOB1', 1, 2, 1, 1, 0, '23:00:00', NULL, '2020-07-15 12:45:38', NULL, '');

call SP_JOB_CONFIG_COMMIT('JOB1');

增量备份(要修改时间和备份日期)基于基备份的基础上进行增量备份     ---备份数据库

call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('JOB2');

call SP_ADD_JOB_STEP('JOB2', 'JOB2', 5, '11000/dm8/backup|/dm8/backup', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('JOB2', 'JOB2', 1, 2, 1, 126, 0, '23:00:00', NULL, '2020-07-15 12:50:50', NULL, '');

call SP_JOB_CONFIG_COMMIT('JOB2');

还原数据库

cd /dm8/dmdbms/bin

./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/PROD/dm.ini' FROM BACKUPSET '/dm8/backup/'"     ---还原

./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/PROD/dm.ini' FROM BACKUPSET '/dm8/backup/'"     ---恢复

./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/PROD/dm.ini' UPDATE DB_MAGIC"     ---恢复  更新魔数

更多资讯请上达梦技术社区了解: https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值