NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7 control_files string
/oradata/orcl/control01.ctl, /oradata/orcl/control02.ctl, /oradata/orcl/control03.ctl SQL> shutdown immediate; SQL> startup nomount;
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ control_files string +DSKSYSGRP1/orcl/controlfile/c urrent.256.667654799 SQL> alter database mount; SQL> alter database open;
9.2 Duplicating a controlfile into file system when original
controlfile is stored on ASM
SQL> select name from v$controlfile; NAME
-------------------------------------------------------------------------------- +DSKSYSGRP1/orcl/controlfile/current.256.667654799 +DSKSYSGRP1/orcl/controlfile/current.257.667656389
SQL> alter system set control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl ', '/oradata/orcl/control03.ctl' scope=spfile sid='*'; SQL> shutdown immediate; SQL> startup nomount;
- 31 -
SQL> show parameter contro
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7
control_files string /oradata/orcl/control01.ctl, / oradata/orcl/control02.ctl , / oradata/orcl/control03.ctl [oracle@server1 ~]$ rman nocatalog RMAN> connect target
RMAN> restore controlfile from '+DSKSYSGRP1/orcl/controlfile/current.256.667654799'; Starting restore at 02-NOV-08 using channel ORA_DISK_1
channel ORA_DISK_1: copied control file copy output filename=/oradata/orcl/control01.ctl output filename=/oradata/orcl/control02.ctl output filename=/oradata/orcl/control03.ctl Finished restore at 02-NOV-08
RMAN> sql 'alter database mount'; RMAN> sql 'alter database open'; SQL> select name from v$controlfile; NAME
-------------------------------------------------------------------------------- /oradata/orcl/control01.ctl /oradata/orcl/control02.ctl /oradata/orcl/control03.ctl SQL> shutdown immediate; SQL> startup
- 32 -
9.3 Duplicating a controlfile into ASM when original controlfile
is stored on ASM
SQL> select name from v$controlfile; NAME
-------------------------------------------------------------------------------- +DSKSYSGRP1/orcl/controlfile/current.256.667654799 SQL>
alter
system
set
control_files='+DSKSYSGRP1/orcl/controlfile/current.256.667654799','+DSKSYSGRP1' scope=spfile sid='*';
SQL> shutdown immediate; SQL> startup nomount;
[oracle@server1 ~]$ rman nocatalog RMAN> connect target
RMAN> restore controlfile from '+DSKSYSGRP1/orcl/controlfile/current.256.667654799'; Starting restore at 09-OCT-08 allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=150 instance=orcl1 devtype=DISK channel ORA_DISK_1: copied control file copy
output filename=+DSKSYSGRP1/orcl/controlfile/current.256.667654799 output filename=+DSKSYSGRP1/orcl/controlfile/current.257.667656389 Finished restore at 09-OCT-08 RMAN> sql 'alter database mount'; RMAN> sql 'alter database open; SQL> select name from v$controlfile; NAME
-------------------------------------------------------------------------------- +DSKSYSGRP1/orcl/controlfile/current.256.667654799 +DSKSYSGRP1/orcl/controlfile/current.257.667656389
- 33 -
sql>
alter
system
set
control_files='+DSKSYSGRP1/orcl/controlfile/current.256.667654799','+DSKSYSGRP1/orcl/controlfile/current.257.667656389' scope=spfile sid='*'; SQL> shutdown immediate; SQL> startup
10 ASMCMD
理解如何使用asmcmd
11 磁盘组损坏模拟
11.1 假设创建一个磁盘组
CREATE DISKGROUP DSKGRP1 EXTERNAL REDUNDANCY DISK '/dev/sdc', '/dev/sdd';
SQL> select name,total_mb,free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB ------------------------------ ---------- ---------- DSKGRP1 4096 4044
SQL> select name,path,total_mb,free_mb,failgroup from v$asm_disk
NAME PATH TOTAL_MB FREE_MB FAILGROUP /dev/sde 2048 0 /dev/sdf 2048 0 /dev/sdg 2048 0 /dev/sdh 2048 0 /dev/sdi 2048 0 /dev/sdl 2048 0
- 34 -
/dev/sdj 2048 0 /dev/sdk 2048 0
DSKGRP1_0000 /dev/sdc 2048 2021 DSKGRP1_0000 DSKGRP1_0001 /dev/sdd 2048 2023 DSKGRP1_0001
11.2 配置数据库为归档模式
SQL> alter system set db_recovery_file_dest_size=4096M;
SQL> alter system set db_recovery_file_dest='/oradata/flashbackarea'; SQL> shutdown immediate; SQL> startup mount;
SQL> alter database archivelog; SQL> alter database open;
11.3 创建一个表空间
SQL> create tablespace asmtest datafile '+DSKGRP1' size 200M autoextend off;
查看磁盘组使用情况
NAME PATH TOTAL_MB FREE_MB FAILGROUP /dev/sde 2048 0 /dev/sdf 2048 0 /dev/sdg 2048 0 /dev/sdh 2048 0 /dev/sdi 2048 0 /dev/sdl 2048 0 /dev/sdj 2048 0 /dev/sdk 2048 0
DSKGRP1_0000 /dev/sdc 2048 1919 DSKGRP1_0000 DSKGRP1_0001 /dev/sdd 2048 1922 DSKGRP1_0001
- 35 -