oracle 常见恢复

时间:2023-03-08 16:49:57
oracle 常见恢复

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状态,但是数据库未打开

oracle 常见恢复

先将数据文件offline

SQL> alter database datafile 4 offline;
数据库已更改。

restore datafile 4;

oracle 常见恢复

recover datafile 4

oracle 常见恢复

最后数据库open

oracle 常见恢复

记得将数据文件online,不然会出现以下错误

oracle 常见恢复

alter database datafile 4 online

oracle 常见恢复

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

oracle 常见恢复

记得将pfile 和spfile都删除

这里涉及到pfile spfile 顺序

spfilesid 〉 spfile 〉 initsid

oracle 常见恢复

启动到nomount

oracle 常见恢复

还原参数文件 注意这里非autobackup

oracle 常见恢复

oracle 常见恢复

数据库已经启动

oracle 常见恢复

如果启动不了,设置一下dbid

set dbid

3.控制文件丢失

注意控制文件一般做了冗余了。

一般都有两个文件,默认安装在同一个文件下

oracle 常见恢复

如果删除时候删除一个可以用另外一个重建一下

oracle 常见恢复

oracle 常见恢复

测试将这两个控制文件都删除掉

关闭数据库后删除

oracle 常见恢复

oracle 常见恢复

报错

oracle 常见恢复

oracle 常见恢复

oracle 常见恢复

如果路径一致记得将catalog start with

oracle 常见恢复

oracle 常见恢复

恢复的时候记得resetlog

oracle 常见恢复

关于密码文件解释

oracle 常见恢复

位置及命名方式windows 下以PWD实例名

linux orapwd实例名

如果删除密码文件本地as sysdba可以登录

但是远程无法登录,会出现以下错误

oracle 常见恢复

重新密码文件

oracle 常见恢复