第9章 关键数据文件备份与恢复

本章以备份、在线重做日志、归档重做日志没有丢失为前提

什么是关键数据文件?

  • SYSTEM表空间的数据文件
  • undo_tablespace表空间的数据文件

关键数据文件必须在数据库mount状态下进行。

CKPT进程会因为关键数据文件头部损坏而终止实例,不会因为普通数据文件头部损坏而终止实例

# 查询数据库中的关键数据文件
select file_id,file_name from dba_data_files 
where 
tablespace_name in 
('SYSTEM',
 (select value from v$parameter where name = 'undo_tablespace')
);

# 查询撤销段信息,并发事务越多撤销段就越多
# 任意一个撤销段损坏都会导致实例启动失败
select name from v$rollname where name<>'SYSTEM';
dd if=/dev/zero of=undotbs01.dbf count=1 bs=8192 conv=notrunc

# if=/dev/zero 表示输入来自全零设备。
# of=undotbs01.dbf 是目标数据文件的路径。
# count=1 指定只写入一个块。
# bs=8192 设置块大小为8KB,这通常是Oracle数据文件头的大小。
# conv=notrunc 保证不会截断文件,只是覆盖指定的部分。

备份

# 备份整个数据库
run{
allocate channel c1 device type disk to destination '/backup';
allocate channel c2 device type disk to destination '/backup';
allocate channel c3 device type disk to destination '/backup';
backup as copy database;
}

# 备份关键数据表空间
run{
allocate channel c1 device type disk to destination '/backup';
allocate channel c2 device type disk to destination '/backup';
backup as backupset
(tablespace system channel c1)
(tablespace undotbs1 channel c2);
}

# 备份关键数据数据文件
run{
allocate channel c1 device type disk to destination '/backup';
allocate channel c2 device type disk to destination '/backup';
backup as copy
(datafile '/u01/data/TESTDB/system01.dbf' channel c1)
(datafile '/u01/data/TESTDB/undotbs01.dbf' channel c2);
}

恢复

  1. 启动数据库到mount状态(如果正常途径无法进入则使用操作系统命令kill进程然后startup mount)
  2. 从备份还原(restore或switch)
  3. 使用增量备份或重做日志恢复(recover)
  4. open数据库
rman target /

#恢复3号数据文件
startup mount;
restore datafile 3;
recover database;
alter database open;

#恢复undo表空间
startup mount;
restore tablespace undotbs1;
recover database;
alter database open;
rman target /

# 查询镜像复制信息
list datafilecopy all;

# 使用镜像复制还原,节省恢复时间
run{
switch datafile 1 to datafilecopy
'backup/system01.dbf';
recover database;
alter database open;
}

第1章 重做日志(Redo Log)

第2章 控制文件(Control File)

第3章 补充日志(Supplemental Logging)

第4章 恢复管理器(RMAN)

第5章 恢复编录(Recovery Catalog)

第6章 数据泵(Data Pump)

第7章 参数文件的备份与还原

第8章 控制文件的备份与恢复

第9章 关键数据文件备份与恢复

第10章 普通数据文件备份与恢复

第11章 只读数据文件备份与恢复

第12章 不完全数据库恢复

第13章 无备份情况下的恢复

第14章 闪回技术(Flashback)

第15章 恢复受损的数据块