rman的一些常用小结。
1 备份
rman target sys/sys@demo nocataglog
rman>run {
configure channel device type disk maxpiecesize 400M;
configure device type disk parallelism 3;(3通道)
backup database format='d:\xxxx\xxx\%d_%s_%p.pak';
}
list backup;
rman>report schema;(查看方案)
备份表空间:
backup tablespace users format='d:\backup\rman\%N_%s.bak';
列出情况:
list backup of tablespace users;
显示备份配置
show all;
备份数据文件和控制文件:
backup datafile 5 format='d:\xxx\xxx.dbf' include current controlfile;
压缩备份:
backup as compressed backupset tablespace users format='d:\xxxx.dbf';
2 恢复
恢复的路数其实和不用rman的真的差不多的,参加oracle 学习小结 7中,比如:
A 恢复数据库
startup force mount
run
{
restore database;
recover databse;
sql 'alter database open';
}
如果所在磁盘故障,则对数据库的每个数据文件都用
set newname for datafile 1 to 'c:\xxxx.dbf';
.........
restore database;
switch datafile all;
recover databse;
sql 'alter database open';
}
B 恢复SYSTEM
如果被删除
run
{
restore datafile 1;
recover datafile 1;
sql 'alter database open';
}
如果介质坏了的话
startup force mount
run
{
set newname for datafile 1 to 'c:\xxxx.dbf';
restore datafile 1;
switch datafile 1;
recover datafile 1;
sql 'alter database open';
}
C 其他表空间的数据文件损坏
如果被删除
startup force mount
run
{
sql 'alter database datafile 1 offline'
sql 'alter database open';
restore datafile 1;
recover datafile 1;
sql 'alter database datafile 1 online';
}
如果介质坏了的话
startup force mount
run
{
sql 'alter database datafile 1 offline'
sql 'alter database open';
set newname for datafile 1 to 'c:\xxxx.dbf';
restore datafile 1;
switch datafile 1;
recover datafile 1;
sql 'alter database datafile 1 online';
}
如果是表空间被删除或介质损坏,原理和上面的差不多
改为sql 'alter tablespace users offline for recover';
3 常用操作
list backup of controlfile;
list backup of archivelog all;
list backup of spfile;
核对所有备份集
crosscheck backup;
list backupset 备份集id;
核对所有数据文件备份集:
crosscheck backup of database;
crosscheck backup of tablespace users;
crosscheck backup of datafile 4;
crosscheck backup of controlfile;
删除陈旧备份:
delete obsolete;