Finished Control File and SPFILE Autobackup at 26-FEB-08 Starting restore at 26-FEB-08 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backupset restore channel ORA_DISK_1: restoring SPFILE output filename=+DSKGRP1/spfile channel ORA_DISK_1: reading from backup piece /oracle1/flasharea/ora10g/ORA10G/autobackup/2008_02_26/o1_mf_s_647726466_3w7zw2yj_.bkp channel ORA_DISK_1: restored backup piece 1 piece handle=/oracle1/flasharea/ora10g/ORA10G/autobackup/2008_02_26/o1_mf_s_647726466_3w7zw2yj_.bkp tag=TAG20080226T200106 channel ORA_DISK_1: restore complete, elapsed time: 00:00:04 Finished restore at 26-FEB-08
6.3.3 备份控制文件
RMAN> run { 2> BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/oracle1/rmanbak/pre-ASM-controfile.cf'; 3> } Starting backup at 26-FEB-08 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=139 devtype=DISK channel ORA_DISK_1: starting datafile copy copying current control file output filename=/oracle1/rmanbak/pre-ASM-controfile.cf tag=TAG20080226T201631 recid=13 stamp=647727393 - 21 -
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03 Finished backup at 26-FEB-08 Starting Control File and SPFILE Autobackup at 26-FEB-08 piece handle=/oracle1/flasharea/ora10g/ORA10G/autobackup/2008_02_26/o1_mf_s_647727395_3w80s4r4_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 26-FEB-08
6.4 修改参数文件启动数据库
[oracle1@server ora10g]$ cat /tmp/pfile.ora SPFILE=+DSKGRP1/spfile SQL>shutdown immediate SQL>startup nomount PFILE=\SQL> alter system set control_files='+DSKGRP1/ct1.f','+DSKGRP1/ct2.f' scope=spfile sid='*'; 6.5 恢复数据库
[oracle1@server ~]$ rman target / nocatalog; Recovery Manager: Release 10.2.0.2.0 - Production on Tue Feb 26 20:20:46 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database (not started) RMAN> startup nomount PFILE=\
- 22 -
Oracle instance started Total System Global Area 314572800 bytes Fixed Size 1260588 bytes Variable Size 138413012 bytes Database Buffers 171966464 bytes Redo Buffers 2932736 bytes RMAN> restore controlfile from '/oracle1/oradata/ora10g/control01.ctl'; Starting restore at 26-FEB-08 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=156 devtype=DISK channel ORA_DISK_1: copied control file copy output filename=+DSKGRP1/ct1.f output filename=+DSKGRP1/ct2.f Finished restore at 26-FEB-08 RMAN> alter database mount; database mounted released channel: ORA_DISK_1 RMAN> switch database to copy; datafile 1 switched to datafile copy \ datafile 2 switched to datafile copy \ datafile 3 switched to datafile copy \ datafile 4 switched to datafile copy \ datafile 5 switched to datafile copy \ datafile 6 switched to datafile copy \ RMAN> recover database;
- 23 -
Starting recover at 26-FEB-08 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=156 devtype=DISK starting media recovery media recovery complete, elapsed time: 00:00:06 Finished recover at 26-FEB-08 RMAN> run { set newname for tempfile 1 to '+DSKGRP1'; switch tempfile all; } 6.6 打开数据库
SQL> alter database disable block change tracking; SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DSKGRP1'; SQL> ALTER DATABASE OPEN; 6.7 添加新的日志文件
SQL> alter database add logfile '+DSKGRP1' size 50M; SQL> alter database add logfile '+DSKGRP1' size 50M; SQL> alter database add logfile '+DSKGRP1' size 50M; 7 ASM数据分布的一个例子
在很多文档里提到过ASM可以实现数据平均分布,尽量避免数据热块。在这里做一个例子说明。
- 24 -
7.1 查看ASM实例的参数设置
SQL> show parameter asm NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_diskgroups string DSKGRP1 asm_diskstring string /dev/sdd*, /dev/sde*, /dev/sdf* asm_power_limit integer 0 注意这里我已经将asm_power_limit参数设置为0,这样屏蔽了ASM自动重新分布数据的功能。
7.2 查看所有磁盘状态
添加两块磁盘
SQL> ALTER DISKGROUP DSKGRP1 ADD FAILGROUP controller1 DISK '/dev/sdd1' NAME sdd1; SQL> ALTER DISKGROUP DSKGRP1 ADD FAILGROUP controller2 DISK '/dev/sdd2' NAME sdd2; SQL> select name,path,state,total_mb,free_mb,failgroup from v$asm_disk NAME PATH TOTAL_MB FREE_MB FAILGROUP SDD1 /dev/sdd1 109 107 CONTROLLER1 SDD2 /dev/sdd2 109 107 CONTROLLER2 DSKGRP1_0000 /dev/sde1 980 638 CONTROLLER1 DSKGRP1_0001 /dev/sde2 980 636 CONTROLLER1 DSKGRP1_0002 /dev/sde3 980 632 CONTROLLER1 DSKGRP1_0003 /dev/sde4 980 632 CONTROLLER1 DSKGRP1_0004 /dev/sdf1 980 628 CONTROLLER2 DSKGRP1_0005 /dev/sdf2 980 638 CONTROLLER2 DSKGRP1_0006 /dev/sdf3 980 636 CONTROLLER2 - 25 -