通过迁移的方式修改ASM磁盘组的冗余属性

      Oracle使用ASM存储,建库时磁盘组的冗余属性使用了EXTERN,现在想将磁盘组改为NORMAL,以下是具体步骤:

  1. 新建一个期望属性的新磁盘组

  [root@Oracle~]# su - grid

  [grid@Oracle ~]$ asmca

  或者用命令:

  [grid@Oracle~]$ sqlplus / as sysasm

  SQL >CREATE DISK GROUP DATA NORMAL REDUNDANCY DISK '/dev/raw/raw1' SIZE 2 G DISK '/dev/raw/raw2' SIZE 2 G  DISK '/dev/raw/raw3' SIZE 2 G;


  2. 检查磁盘组

  [grid@Oracle~]$ 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 ~]$ 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~]# su - grid

  [grid@Oracle~]$ 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~]$rman target /

  RMAN> shutdown immediate #如果是RAC,需要到另外的节点执行SHUTDOWN命令

  using target database control file instead of recovery catalog

  database closed

  database dismounted

  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 16-Jul-15

  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 16-Jul-15

  方法二:使用添加控制文件的方法:

  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~]$rman target/

  RMAN> restore controlfile from '+DATA/orcl/controlfile/current.260.833734379';

  Starting restore at 16-Jul-15

  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 16-Jul-15

  RMAN> quit

  Recovery Manager complete.

  [oracle@Oracle~]$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

  ------------------------------------ -----------------------------------------

  control_file_record_keep_time integer 7

  control_files string +DATA/orcl/controlfile/current.260.833734379,+DATA01/orcl/controlfile/current.256.833744103

  control_management_pack_access string DIAGNOSTIC+TUNING

  SQL> alter system setcontrol_files='+DATA01/orcl/controlfile/current.256.833744103' scope=spfile;

  System altered.

  SQL> shutdown immediate

  Database closed.

  Database dismounted.

  ORACLE instance shut down.

  SQL> startup

  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

  Database mounted.

  Database opened.

  SQL> show parameter control;

  NAME TYPE VALUE

  ------------------------------------ -----------------------------------------

  control_file_record_keep_time integer 7

  control_files string +DATA01/orcl/controlfile/current.256.833744103

  control_management_pack_access string DIAGNOSTIC+TUNING

  将数据库启动到mount状态:

  RMAN> shutdown immediate

  RMAN> startup nomount

  RMAN> alter database mount ;

  database mounted

  released channel: ORA_DISK_1

  启用RAMN工具,将数据库镜像备份到新磁盘组:

  RMAN>backup as copy database format '+DATA01';

  Starting backupat 16-Jul-15

  allocatedchannel: ORA_DISK_1

  channelORA_DISK_1: SID=13 device type=DISK

  channelORA_DISK_1: starting datafile copy

  input datafilefile number=00001 name=+DATA/orcl/datafile/system.264.833372265

  output filename=+DATA01/orcl/datafile/system.257.833384045 tag=TAG20131205T153405 RECID=3STAMP=833384056

  channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

  channelORA_DISK_1: starting datafile copy

  input datafilefile number=00002 name=+DATA/orcl/datafile/sysaux.263.833372265

  output filename=+DATA01/orcl/datafile/sysaux.258.833384061 tag=TAG20131205T153405 RECID=4STAMP=833384069

  channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

  channelORA_DISK_1: starting datafile copy

  input datafilefile number=00005 name=+DATA/orcl/datafile/example.268.833372347

  output filename=+DATA01/orcl/datafile/example.259.833384075 tag=TAG20131205T153405 RECID=5STAMP=833384080

  channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:08

  channelORA_DISK_1: starting datafile copy

  input datafilefile number=00003 name=+DATA/orcl/datafile/undotbs1.267.833372265

  output filename=+DATA01/orcl/datafile/undotbs1.260.833384083 tag=TAG20131205T153405RECID=6 STAMP=833384084

  channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

  channelORA_DISK_1: starting datafile copy

  copying currentcontrol file

  output filename=+DATA01/orcl/controlfile/backup.261.833384087 tag=TAG20131205T153405RECID=7 STAMP=833384086

  channel ORA_DISK_1:datafile copy complete, elapsed time: 00:00:01

  channelORA_DISK_1: starting datafile copy

  input datafilefile number=00004 name=+DATA/orcl/datafile/users.269.833372265

  output filename=+DATA01/orcl/datafile/users.262.833384087 tag=TAG20131205T153405 RECID=8STAMP=833384087

  channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

  channelORA_DISK_1: starting full datafile backup set

  channelORA_DISK_1: specifying datafile(s) in backup set

  including currentSPFILE in backup set

  channel ORA_DISK_1:starting piece 1 at 16-Jul-15

  channelORA_DISK_1: finished piece 1 at 16-Jul-15

  piecehandle=+DATA01/orcl/backupset/2015_07_16/nnsnf0_tag20150716t153405_0.263.833384089tag=TAG20150716T153405 comment=NONE

  channelORA_DISK_1: backup set complete, elapsed time: 00:00:01

  Finished backup at 16-Jul-15

  检查备份的数据库镜像

  RMAN> list copy of database;

  4. 切换到备份的数据库

  RMAN> switch database to copy;

  datafile 1switched to datafile copy"+DATA01/orcl/datafile/system.257.833384045"

  datafile 2switched to datafile copy"+DATA01/orcl/datafile/sysaux.258.833384061"

  datafile 3switched to datafile copy"+DATA01/orcl/datafile/undotbs1.260.833384083"

  datafile 4switched to datafile copy "+DATA01/orcl/datafile/users.262.833384087"

  datafile 5switched to datafile copy"+DATA01/orcl/datafile/example.259.833384075"

  RMAN> alter database open;

  database opened

  修改数据库新建文件的目标磁盘组

  [Oracle@Oracle ~]$ sqlplus "/as sysdba"

  SQL> alter system set db_create_file_dest='+DATA01';

  System altered.

  5. 在新数据库内建立新的TEMP表空间(TEMP表空间不会从旧的磁盘组中移到新磁盘组)

  SQL> select name from v$tempfile; #查看现有的temp文件名

  SQL>create bigfile temporary tablespace temp01 tempfile size 2M;

  Tablespace created.

  SQL>alter database default temporary tablespace temp01;

  Database altered.

  SQL> drop tablespace temp;

  Tablespace dropped.

  6. 修改重做日志组

  SQL> select * from v$log; #查看有几个组

  或:SQL>select group#,status from v$log;

  GROUP# STATUS

  --------------------------

  1 CURRENT

  2 INACTIVE

  3 INACTIVE

  SQL> alter database add logfile member '+data01' to group 1;

  Database altered.

  SQL> alter database add logfile member '+data01' to group 2;

  Database altered.

  SQL>alter database add logfile member '+data01' to group 3;

  Database altered.

  SQL>select member from v$logfile; #查找logfile文件:

  MEMBER

  --------------------------------------------------------------------------------

  +DATA/orcl/onlinelog/group_3.256.833372341

  +DATA/orcl/onlinelog/group_2.257.833372341

  +DATA/orcl/onlinelog/group_1.258.833372341

  +DATA01/orcl/onlinelog/group_1.265.833386551

  +DATA01/orcl/onlinelog/group_2.266.833386565

  +DATA01/orcl/onlinelog/group_3.267.833386569

  6 rows selected.

  SQL>alter system switch logfile; #多用几次切换命令,切换一个循环

  SQL>select group#,status from v$log; #查看结果,找到INACTIVE的组。

  GROUP# STATUS

  --------------------------

  1 INACTIVE

  2 INACTIVE

  3 CURRENT

  SQL>alter database drop logfile member'+DATA/orcl/onlinelog/group_1.258.833372341';

  Database altered.

  SQL> alter database drop logfile member'+DATA/orcl/onlinelog/group_2.257.833372341';

  Database altered.

  SQL>select group#,status from v$log;

  再次切换,释放Group_3,然后删除:

  SQL>alter system switch logfile;

  SQL> alter database drop logfile member'+DATA/orcl/onlinelog/group_3.256.833372341';

  Database altered.

  SQL> select * from v$logfile; #检查结果

  7. 迁移参数配置

  迁移数据库配置:

  [oracle@Oracle ~]$ sqlplus /nolog

  SQL> conn /assysdba

  Connected.

  SQL> create pfile='$ORACLE_HOME/dbs/init_ORCL.ora' from spfile;

  File created.

  SQL> shutdown immediate;

  Database closed.

  Databasedismounted.

  ORACLE instanceshut down.

  SQL>startup pfile='$ORACLE_HOME/dbs/init_ORCL.ora';

  ORACLE instancestarted.

  Total SystemGlobal Area 1653518336 bytes

  Fixed Size 2228904 bytes

  Variable Size 989859160 bytes

  Database Buffers 654311424 bytes

  Redo Buffers 7118848 bytes

  Database mounted.

  Database opened.

  SQL>create spfile='+DATA01/orcl/spfileORCL.ora' frompfile='$ORACLE_HOME/dbs/init_ORCL.ora';

  File created.

  SQL>shutdown immediate;

  Database closed.

  Databasedismounted.

  ORACLE instanceshut down.

  [oracle@Oracle-LABdbs]$vi initORCL.ora

  将SPFILE='+DATA/ORCL/spfileORCL.ora'改为SPFILE='+DATA01/ORCL/spfileORCL.ora',并保存退出。

  SQL> startup

  迁移ASM配置:

  [grid@Oracle ~]$ sqlplus / assysasm

  SQL>create pfile='$ORACLE_HOME/dbs/init_ORCL.ora' from spfile;

  File created.

  SQL> shutdown immediate;

  SQL>startup pfile='$ORACLE_HOME/dbs/init_ORCL.ora';

  ASM instancestarted

  Total SystemGlobal Area 283930624 bytes

  Fixed Size 2227664 bytes

  Variable Size 256537136 bytes

  ASM Cache 25165824 bytes

  ASM diskgroupsmounted

  SQL>create spfile='+DATA01' from pfile='$ORACLE_HOME/dbs/init_ORCL.ora';

  `File created.

  SQL>shutdown immediate;

  SQL> startup

  8. 全面检查

  SQL> show parameter pfile;(分别在GRID和ORACLE帐号下查看)

  SQL> select name from v$controlfile

  SQL>select name from v$datafile

  SQL> select name from v$tempfile

  SQL>select member from v$logfile

  SQL> select filename from v$block_change_tracking

  SQL> select name from v$flashback_database_logfile;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12798004/viewspace-1735278/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12798004/viewspace-1735278/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值