标签:run 备份 丢失 rman delete backup _% 物理
前提是有 rman 备份。
rman 全备 run 块:
run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup as compressed backupset Database Format '/u01/backup/rman/20211220/bak_all_db_%s_%p_%T' filesperset=4; #归档当前的重做日志(redolog)文件 sql 'alter system archive log current'; #备份归档日志 backup archivelog all format '/u01/backup/rman/20211220/bak_arch_%s_%p_%T' delete input; #备份控制文件 backup current controlfile format '/u01/backup/rman/20211220/bak_ctl_%s_%p_%T'; #备份 spfile backup spfile format '/u01/backup/rman/20211220/bak_sp_%s_%p_%T'; crosscheck backup; #检查备份是否存在于备份介质 crosscheck archivelog all; #删除过期备份 delete noprompt obsolete; #删除不在备份介质的备份记录 delete noprompt expired backup; delete noprompt backup of database completed before 'sysdate -15'; delete noprompt backup of archivelog all completed before 'sysdate -5'; delete noprompt expired archivelog all; #释放通道 release channel c1; release channel c2; release channel c3; }
rman 恢复 run 块:
run{restore database;recover database;}
rman 恢复到某时间点 run 块:
run{set until time "to_date('2021-12-20 11:32:01','yyyy-mm-dd hh24:mi:ss')";restore database;recover database;}
测试情形 1 ,数据文件 (HCP.dbf) 被物理删除
可以看到,靶场环境,HCP 用户下有一张 test 表:
物理删除数据文件:
整个数据库已经无法 shutdown immediate:
shutdown abort;并启动到 mount 进行数据恢复:
open 数据库,发现 test 表已恢复:
查看物理文件,发现表空间物理文件也已恢复:
测试情形 2,数据文件 (HCP.dbf) 被手工误删除删除
在 test 表中新插入 666 后,进行全备:
手工删除表空间及物理文件,test 表已不存在:
重启数据库到 mount,进行 rman 恢复:
open 数据库,查询 test 表,发现依然不存在:
基于时间点进行恢复:
open 数据库,查看 test 表:
依然没有恢复,原因是什么
标签:run,备份,丢失,rman,delete,backup,_%,物理 来源: https://www.cnblogs.com/niuyourou/p/15710394.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。