RMAN异机恢复步骤及故障处理(八)

2014-11-24 14:36:06 · 作者: · 浏览: 9
2% /data
很不幸,用作存放数据文件的磁盘是挂在/下面的,正好碰到磁盘空间不足,只剩13M了,导致无法创建之后的redo日志把备份集删除,释放部分磁盘空间
[oracle@bak ~]$ cd /oracle/backupsets
[oracle@bak backupsets]$ rm -f * rm: cannot remove `ora10g-4175411955_20141012_860776699_315.arc': Permission denied rm: cannot remove `ora10g-4175411955_20141012_860776704_316.db': Permission denied rm: cannot remove `ora10g-4175411955_20141012_860776830_317.arc': Permission denied rm: cannot remove `ora10g-c-4175411955-20141012-00.ctl': Permission denied [oracle@bak backupsets]$ exit logout [root@bak oradata]# cd /oracle/backupsets/ [root@bak backupsets]# ll total 181172 -rw-r----- 1 oracle oinstall 4440064 Oct 12 16:46 ora10g-4175411955_20141012_860776699_315.arc -rw-r----- 1 oracle oinstall 172843008 Oct 12 16:47 ora10g-4175411955_20141012_860776704_316.db -rw-r----- 1 oracle oinstall 427520 Oct 12 16:47 ora10g-4175411955_20141012_860776830_317.arc -rw-r----- 1 oracle oinstall 7602176 Oct 12 16:47 ora10g-c-4175411955-20141012-00.ctl [root@bak backupsets]# rm -f * [root@bak backupsets]# ll total 0 [root@bak backupsets]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 7.7G 7.1G 240M 97% / /dev/sda1 99M 12M 82M 13% /boot tmpfs 506M 0 506M 0% /dev/shm /dev/sdb1 5.0G 541M 4.2G 12% /data
[root@bak backupsets]# su - oracle [oracle@bak ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Oct 12 19:21:27 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount ORACLE instance started.
Total System Global Area 1073741824 bytes Fixed Size 1223512 bytes Variable Size 264242344 bytes Database Buffers 805306368 bytes Redo Buffers 2969600 bytes Database mounted. SQL> alter database add logfile '/oradata/ora10g/redo01.log' size 50m;
Database altered.
SQL> alter database add logfile '/oradata/ora10g/redo02.log' size 50m;
Database altered.
SQL> alter database add logfile '/oradata/ora10g/redo03.log' size 50m;
Database altered.
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00344: unable to re-create online log '/u01/app/oracle/oradata/ora10g/redo01.log' ORA-27040: file create error, unable to create file Linux Error: 2: No such file or directory
由于控制文件中记录的redo日志是在/u01/app/oracle/oradata/ora10g下面的,而由于测试机改到/oradata/ora10g下面,因此要修改控制文件中的内容,我们来重建一下控制文件
SQL> oradebug setmypid Statement processed. SQL> alter database backup controlfile to trace;
Database altered.
SQL> oradebug tracefile_name /oracle/admin/ora10g/udump/ora10g_ora_30187.trc SQL> !
查看ora10g_ora_30187.trc,复制其中resetlog部分的重建控制文件的SQL语句出来
CREATE CONTROLFILE REUSE DATABASE "ORA10G" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u01/app/oracle/oradata/ora10g/redo01.log' SIZE 50M, GROUP 2 '/u01/app/oracle/oradata/ora10g/redo02.log' SIZE 50M, GROUP 3 '/u01/app/oracle/oradata/ora10g/redo03.log' SIZE 50M, GROUP 4 '/oradata/ora10g/redo01.log' SIZE 50M, GROUP 5 '/oradata/ora10g/redo02.log' SIZE 50M, GROUP 6 '/oradata/ora10g/redo03.log' SIZE 50M -- STANDBY LOGFILE DATAFILE '/oradata/ora10g/system01.dbf', '/oradata/ora10g/undotbs01.dbf', '/oradata/ora10g/sysaux01.dbf', '/oradata/ora10g/users01.dbf', '/oradata/ora10g/example01.dbf', '/oradata/ora10g/zlm01.dbf' CHARACTER SET ZHS16GBK ;
可以看到,刚才创建控制redo log