author by :shawnloong
环境:windows 2008 r2 sp1 db:oracle 11g r2
做之前记得做个完整备份
ONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
脚本如下
run {
delete noprompt obsolete;
allocate channel cha1 type disk;
allocate channel cha2 type disk;
backup database format "c:\bak\full_%d_%T_%s"
plus archivelog
format "c:\bak\arch_%d_%T_%s"
delete all input;
release channel cha1;
release channel cha2;
}
exit
保存为 rman.txt
windows 脚本
rman target / nocatalog CMDFILE 'e:/rman/rmanfull.txt' LOG 'e:/rman/rman_backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log'
linux 一样的用shell脚本调用
1.数据文件误删除恢复
shutdown immediate;
删除user01.dbf
启动数据库会报一个错误,实例已经启来了mount状态,但是数据库未打开
先将数据文件offline
SQL> alter database datafile 4 offline;
数据库已更改。
restore datafile 4;
recover datafile 4
最后数据库open
记得将数据文件online,不然会出现以下错误
alter database datafile 4 online
2.参数文件丢失
删除参数文件(路径C:\app\oracle\product\11.2.0\dbhome_1\dbs\)init.ora 注意做之前记得备份 操作之前还得记下dbid
SQL> select dbid from v$database;
DBID
----------
944333900
C:\app\oracle\product\11.2.0\dbhome_1\database
记得将pfile 和spfile都删除
这里涉及到pfile spfile 顺序
spfilesid 〉 spfile 〉 initsid
启动到nomount
还原参数文件 注意这里非autobackup
数据库已经启动
如果启动不了,设置一下dbid
set dbid
3.控制文件丢失
注意控制文件一般做了冗余了。
一般都有两个文件,默认安装在同一个文件下
如果删除时候删除一个可以用另外一个重建一下
测试将这两个控制文件都删除掉
关闭数据库后删除
报错
如果路径一致记得将catalog start with
恢复的时候记得resetlog
关于密码文件解释
位置及命名方式windows 下以PWD实例名
linux orapwd实例名
如果删除密码文件本地as sysdba可以登录
但是远程无法登录,会出现以下错误
重新密码文件