1. 新建一个期望属性的新磁盘组
[root@Oracle-LAB~]# su - grid
[grid@Oracle-LAB ~]$ asmca
或者用命令:
[grid@Oracle-LAB~]$ sqlplus / as sysasm
SQL > CREATE DISKGROUP DATA NORMAL REDUNDANCY DISK '/dev/raw/raw1'SIZE 5120 M DISK '/dev/raw/raw2'SIZE 5120 M DISK '/dev/raw/raw3' SIZE 5120 M;
2. 检查磁盘组
[grid@Oracle-LAB~]$ sqlplus / as sysasm
SQL> select state,name,type from v$asm_diskgroup;
STATE NAME TYPE
----------- ------------------------------ ------
MOUNTED DATA EXTERN
MOUNTED FRA EXTERN
MOUNTED DATA01 NORMAL
3. 备份现有的数据库
[oracle@Oracle-LAB ~]$ sqlplus /nolog
SQL> conn /as sysdba
SQL> show parameter db_name
NAME TYPE VALUE
--------------------------- ---------------
db_name string ORCL
查看当前控制文件的Value:
SQL> show parameter control
NAME TYPE VALUE
----------------------------------------------- ------------------------------
control_file_record_keep_time integer 7
control_files string +DATA/orcl/controlfile/current
.260.833734379
control_management_pack_access string DIAGNOSTIC+TUNING
在新磁盘组生成新控制文件有两种方法(推荐方法二):
方法一:通过备份现有控制文件来生成:
备份控制文件到新磁盘组
SQL> alter database backup controlfile to '+DATA01';
Database altered.
查看备份后的控制文件:
[root@Oracle-LABsoftware]# su - grid
[grid@Oracle-LAB ~]$ asmcmd
ASMCMD> ls +DATA01/ORCL/CONTROLFILE/
Backup.256.833381229
设定初始化参数:
SQL> alter system setcontrol_files='+DATA01/ORCL/CONTROLFILE/Backup.256.833381229' scope=spfile;
System altered.
关闭数据库并启动至nomount状态(用SQL或RAMAN)
[oracle@Oracle-LAB ~]$ rman target /
RMAN> shutdown immediate #如果是RAC,需要到另外的节点执行SHUTDOWN命令
using targetdatabase control file instead of recovery catalog
database closed
databasedismounted
Oracle instance shut down
RMAN> startup nomount
connected totarget database (not started)
Oracle instancestarted
Total SystemGlobal Area 1653518336 bytes
Fixed Size 2228904 bytes
VariableSize 973081944 bytes
DatabaseBuffers 671088640 bytes
Redo Buffers 7118848 bytes
从原控制文件生成现有控制文件:
RMAN> restore controlfile from'+DATA/orcl/controlfile/current.259.833372337';
Starting restoreat 05-DEC-13
allocatedchannel: ORA_DISK_1
channelORA_DISK_1: SID=13 device type=DISK
channelORA_DISK_1: copied control file copy
output file name=+DATA01/orcl/controlfile/backup.256.833381229
Finished restore at 05-DEC-13
方法二:使用添加控制文件的方法:
SQL> alter system set control_files='+DATA/orcl/controlfile/current.260.833734379','+DATA01'scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instanceshut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2228904 bytes
Variable Size 973081944 bytes
Database Buffers 671088640 bytes
Redo Buffers 7118848 bytes
SQL> quit
[oracle@Oracle-LAB~]$ rman target/
RMAN> restore controlfile from '+DATA/orcl/controlfile/current.260.833734379';
Starting restore at 09-DEC-13
using target database control file instead of recoverycatalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=135 device type=DISK
channel ORA_DISK_1: copied control file copy
output file name=+DATA/orcl/controlfile/current.260.833734379
output filename=+DATA01/orcl/controlfile/current.256.833744103
Finished restore at 09-DEC-13
RMAN> quit
Recovery Manager complete.
[oracle@Oracle-LAB~]$ sqlplus /nolog
SQL> conn /as sysdba
Connected.
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
SQL> show parameter control;
NAME TYPE VALUE
--