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