Oracle备份恢复技术实践
2020-08-31 16:20:03 0 举报
AI智能生成
Oracle 备份与恢复
作者其他创作
大纲/内容
数据库故障类型
语句失败
无效数据
应用程序中的逻辑错误
表空间的不足导致无法扩展导致语句执行失败
SQL 语句缺少权限导致执行失败
网络故障
终端的重新启动,导致地址违规的程序
监听错误,可以配置备份侦听器和连接时间故障转移
用户错误
编程的时候由于编写不够规范产生的逻辑错误,常常由于用户的失误导致
介质失败
磁盘受到损坏,因此磁盘上的文件也会受到损坏,这将导致我们的数据库关闭
实例失败
实例的无序关闭
通常称为崩溃,断电、关闭或重启服务器以及许多至关重要的硬件问题都会导致实例失败
Oracle_备份恢复技术实践
RMAN 备份
备份方法
冷备份
干净的关闭数据库使用RMAN 进行一致性备份
热备份
数据库处于打开状态,进行备份
备份类型
备份集(Backup set)
映像拷贝(Image copies)
备份对象
数据库副本
backup as copy database;
表空间
backup as copy tablespace users;
数据文件
backup as copy datafile 1 ( '/oracle/system01.dbf’);
控制文件副本
backup current controlfile;
Archivelog 映像副本
backup as copy archivelog all;
备份模式
全量备份
分支主题
增量备份
更少的使用磁带或磁盘,降低网络带宽要求,节约备份时间
启用块跟踪
alter database enable block change tracking using file '/u01/test.file’;
RMAN 还原和恢复
概述
还原(restore):数据文件备份的位置
恢复(recovery):利用归档重做日志追到最新的位置
最终的目标:保持数据库一致性,控制文件和数据文件头中的SCN号相同
数据恢复顾问
list failure 命令查看故障问题
advise failure 命令出故障建议恢复脚本
repair failure 命令执行恢复脚本
change failure 命令更改故障优先级或关闭一个或多个故障
Restore和
Recover命令
restore 命令
查找最近的备份来进行还原。
recover 命令
执行数据库的完全恢复或者时间点恢复,也用于判断是否存在可用的增量备份映像。
实例恢复
实例启动(数据文件不一致)
前滚(redo)
文件中已提交和未提交的数据
数据库已打开
回滚(undo)
文件中提交的数据
数据库完整恢复
使受损的数据文件脱机
还原受损文件
恢复受损文件
使恢复的文件联机
RMAN 还原和恢复
数据库完整恢复
使受损的数据文件脱机
还原受损文件
恢复受损文件
使恢复的文件联机
数据库不完全恢复
加载数据库
还原所有数据文件
恢复数据库至某个点
用重置日志打开数据库
控制文件的还原
使用RMAN(不使用FRA)从自动备份中恢复控制文件
restore controlfile from autobackup;
使用RMAN和FRA从自动备份中恢复控制文件
restore controlfile from autobackup;
恢复较早的控制文件备份
restore controlfile from autobackup until time "to_date('12/09/2005 13:00:00','MM/DD/YYYY HH24:MI:SS’)”;
从备份集中恢复控制文件
restore controlfile from '/oracle/备份片名’;
使用恢复目录恢复控制文件
rman target xxx/xxx catalog xxx/xxx@xxx
restore controlfile from autobackup;
使用映像副本恢复
如果备份策略包含映像副本以及备份集,那么可以用映像副本恢复
恢复案例
SET NEWNAME FOR DATAFILE 1 to '/u01/app/oracle/datafile01.dbf';
SWITCH DATAFILE ALL;
recover database;
块恢复
使用场景是在文件还可用,但是损坏的范围只是一小部分块,文件还是保持联机状态,终端用户可能不知道存在问题,只有在尝试读取受损块时才会知晓
受损块的检测
RMAN 在执行备份操作时检测受损块,如果没有特别提示,在命中受损块时将立即终止备份操作
块介质恢复
RMAN 将从备份集或映像副本中提取受损的块的备份并写入数据文件
使用 BLOCK RECOVER 命令恢复
Block recover datafile 7 block 5;
闪回技术
基于UNDO 数据的闪回技术
闪回查询:查询一张表在过去时间的数据状态
闪回表:把一张表闪回到过去的时间点
闪回版本查询:一段时间多个食物操作对应表中数据状态
闪回事务查询:查询事务对应的UNDO Sql;闪回数据归档
基于FDA 数据的
闪回数据归档技术
闪回数据归档:因为UNDO 数据有一个保留期限,在超过保留时间后数据可能被覆盖,使用闪回归档实现闪回查询和闪回表在时间上的延续
步骤
创建一个供闪回数据库使用的表空间
在表空间创建一个保留时间为7年的闪回数据归档
创建一个用户并授予DBA 的角色
授予用户操作的必要权限
登录创建一个表启用闪回数据归档
执行查询来确定归档创建的对象
基于Recyclebin 的闪回删除技术
针对非 system 表空间,通过drop 操作和非purge 的方式删除的对象,可以在recyclebin 使用闪回删除操作还原删除的对象
当删除对象时,Oracle不只是重命名删除对象,所有相关的对象也会移动到回收站中
通过数据字典视图快速查看:USER_RECYCLEBIN 和 DBA_RECYCLEBIN。
基于闪回数据库日志的闪回数据库技术
闪回数据库:把数据库闪回到过去的时间点,针对逻辑故障
需要的步骤
确保数据库处于归档日志模式:Select log_mode from v$database;
创建闪回恢复区
Alter system set db_recovery_file_dest=‘flash_recover_area’;
Alter system set db_recovery_dest_size=8g;
设置闪回保留目标时间:Alter system set db_flashback_rectention_target=240;
干净的关闭并加载数据库:Shutdown immediate; startup mount;
启用闪回日志记录:Alter database flashback on;
打开数据库:Alter database open;
收藏
收藏
0 条评论
下一页