RMAN-00571:
=========================================================== RMAN-00569: ==ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571:
=========================================================== RMAN-03002: failure of alter db command at 11/28/2011 06:56:12 ORA-00338: log 1 of thread 1 is more recent than control file ORA-00312: online log 1 thread 1: '/oracle/orcl/redo01.log'
通过查询v$log,v$logfile找到当前日志文件:
SQL> recover database using backup controlfile;
ORA-00279: change 734485 generated at 11/28/2011 05:39:19 needed for thread 1
ORA-00289: suggestion : /oradata/arch/1_5_768349956.dbf ORA-00280: change 734485 for thread 1 is in sequence #5
Specify log: {
Media recovery complete. SQL> alter database open; alter database open *
ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs; Database altered.
ASM磁盘组管理
相关说明:
ASM将文件划分成1MB extents分布在磁盘组内的各个disk上。
当新增disk或者删除disk时,ASM进行自动重新平衡,将数据分布在各个盘上。一个正常的drop操作(不带force参数),disk不会马上从磁盘组释放,直到数据通过重新平衡从磁盘移出到其他磁盘上。所以同时新增或者drop多个磁盘是比较好的,因为rebalance作为单一的动作完成。执行一个DROP操作,当rebalance完成时,ASM将disk offline,然后drop,设置header_status为FORMER(v$asm_disk)。Add或者drop disk不需要shutdown 数据库,但是IO性能会受到影响。
当drop disk时,磁盘组通过移动file extents从dropped disk到磁盘组内
21
其他磁盘来完成rebalance。由于其他磁盘上的空间不够,Drop操作可能失效,最好确认空间足够或者先增加空间,最好的办法是在一个ALTER DISKGROUP 语句中来完成组内成员的增加和删除,这样减少rebalance的时间。
ALTER DISKGROUP...DROP DISK语句(REBALANCE NOWAIT), 由于rebalance需要较长时间,所以默认是REBALANCE NOWAIT,即不需要等到rebalance完成才返回结果,而是直接返回终端,可以执行其他操作。如果想要等到rebalance完成才返回终端,可以指定REBALANCE WAIT,在等待期间,可以CTRL-C打断运行,显示
ORA-01013: user requested cancel of current operation, and to continue the operation asynchronously.
实际上CTRL-C不会取消rebalance operation or any disk add, drop, or resize operations.
故在采用默认方式drop disk时,不要马上reuse,remove or disconnect the dropped disk直到v$asm_disk视图的header_status显示为FORMER,可以通过查询V$ASM_OPERATION查看drop/rebalance还需要的时间。
根据磁盘组的redundancy level和failure group的定义,一个或者多个disk失效可能导致以下结果:
1.Disk offline自动drop,由于mirror的关系,磁盘组仍然mount,数据可以访问。ASM利用redundancy的数据完成rebalance。 2.整个磁盘组自动dismount数据不可访问。
normal redundancy 磁盘组能容忍一个failure group的失效。 high redundancy 磁盘组能容忍2个failure group的失效。 external redundancy磁盘组不能接受组内任何成员的失效。
Disk由于故障被ASM drop disk,disk修复完成后不会自动加回到磁盘组,必须执行ALTER DISKGROUP...ADD DISK来加入磁盘组。同理ASM自动dismount一个磁盘组,必须执行ALTER DISKGROUP...MOUNT来mount磁盘组。
新增磁盘组:
CREATE DISKGROUP dgroup1 NORMAL REDUNDANCY FAILGROUP controller1 DISK '/dev/raw/raw2' name dg_disk1, '/dev/raw/raw3' name dg_disk2 FAILGROUP controller2 DISK '/dev/raw/raw4' name dg_disk3, '/dev/raw/raw5' name dg_disk4;
创建一个NORMAL REDUNDANCY磁盘组默认为2路镜像,当使用dgroup1存放数据文件是分别写入controller1和controller2实现数据的冗余。
22
新增failure group:
alter diskgroup dgroup1 add failgroup fg1 disk '/dev/raw/raw11' name disk11;
alter diskgroup dgroup1 add failgroup fg1 disk '/dev/raw/raw10' name disk10;
删除磁盘组成员
alter diskgroup asmdg drop disk RAWDISK1;
alter diskgroup asmdg drop disk RAWDISK1 rebalance wait; alter diskgroup dgroup1 drop disk DG_DISK4,dg_disk5;
alter diskgroup dgroup1 drop disks in failgroup controller1; 如果当前为NORMAL REDUNDANCY,failure group为controller1和controller2,删除controller1,则v$asm_disk中controller1对应disk的state=HUNG,此时可能无法继续对dgroup1新增或者drop disk,提示ORA-15032: not all alterations performed,因为默认2路镜像,必须保证有2个failure group。通过alter diskgroup dgroup1 undrop disks;来恢复controller1。
如果failuregroup有3个的话是则可以继续新增或者drop disk。
数据库表空间删除文件: Alter tablespace asm_tab drop '+DGROUP1/orcl/datafile/asm_tab.257.768701503';
datafile
同时drop和add:
alter diskgroup asmdg drop disk DISK01 add disk '/dev/raw/raw1' name rawdisk1;
alter diskgroup dgroup1 drop disk disk5 add failgroup fg2 disk '/dev/raw/raw5' name disk05;
磁盘组的挂载:
ALTER DISKGROUP ALL DISMOUNT; ALTER DISKGROUP dgroup1 MOUNT;
删除磁盘组:
drop diskgroup DGROUP1;
//磁盘组内有文件的话是不能删除的,默认 EXCLUDING CONTENTS
drop diskgroup DGROUP1 INCLUDING CONTENTS;//删除磁盘组包括文件
关于磁盘组空间的计算:
SQL> select name, type, total_mb, free_mb,
required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
23
------------------------------ ------ ---------- ---------- ----------------------- --------------
ASMDG EXTERN 6144 4237 0 4237
DGROUP1 NORMAL 2208 1238 1024 107
TYPE为EXTERN FREE_MB= USABLE_FILE_MB TYPE为NORMAL FREE_MB - REQUIRED_MIRROR_FREE_MB = 2 * USABLE_FILE_MB REQUIRED_MIRROR_FREE_MB表示当disk失效时1GB额外空间必须可用,相当于预留。
select group_number,file_number,bytes,space from v$asm_file, BYTES是数据文件实际的大小,SPACE是数据文件占用的ASM空间的大小,而ASM磁盘有三种冗余方式,分别是EXTERNAL/NORMAL/HIGH,这三种情况下,SPACE分别应该是BYTES的1倍、两倍和三倍。
V$ASM_FILE的redundancy分别为UNPROT(external redundancy),MIRROR(normal/high redundancy)
STRIPED分别为COARSE(文件条带化为1M),FINE(文件条带化为128K)
24