ASM管理 - 如何重新命名diskgroup

來源:互聯網
上載者:User

ASM管理 - 如何重新命名diskgroup

ASM 11.2.0.1 版本開始增加了diskgroup重新命名的新功能,通過renamedg命令重新命名已經建立的diskgroup,重新命名前需要先dismount diskgroup。

如果重新命名的diskgroup已經用於儲存資料庫的資料檔案,那麼需要手動同步資料檔案的位置。

--檢查ASM diskgroup當前名字為DGASMDB

$ su - grid

$ sqlplus / as sysasm

SQL> select GROUP_NUMBER,name,state,type, offline_disks, ALLOCATION_UNIT_SIZE,BLOCK_SIZE,TOTAL_MB,FREE_MB from v$asm_diskgroup;

GROUP_NUMBER NAME      STATE    TYPE  OFFLINE_DISKS ALLOCATION_UNIT_SIZE BLOCK_SIZE  TOTAL_MB    FREE_MB

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

1 DGASMDB    MOUNTED  EXTERN            0              1048576      4096      3992      1879

--檢查資料庫當前資訊(spfile/controlfile/datafile/redo)

su - Oracle

$ sqlplus / as sysdba

SQL> show parameter spfile;

NAME                                TYPE        VALUE

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

spfile                              string      +DGASMDB/asmdb/spfileasmdb.ora

SQL> show parameter control

NAME                                TYPE        VALUE

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

control_files                        string      +DGASMDB/asmdb/controlfile/current.256.856653049

SQL> select name from v$datafile;

NAME

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

+DGASMDB/asmdb/datafile/system.260.856653053

+DGASMDB/asmdb/datafile/sysaux.261.856653059

+DGASMDB/asmdb/datafile/undotbs1.262.856653061

+DGASMDB/asmdb/datafile/users.264.856653075

+DGASMDB/asmdb/datafile/asm_test.dbf

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

--dismount diskgroup dgasmdb

$ su - grid

$ asmcmd umount dgasmdb

--重命令diskgroup,新的diskgroup名為dgasmdb_new

$ renamedg phase=both dgname=dgasmdb newdgname=dgasmdb_new verbose=true

Parsing parameters..

Parameters in effect:

Old DG name      : DGASMDB

New DG name          : DGASMDB_NEW

Phases              :

Phase 1

Phase 2

Discovery str        : (null)

Clean              : TRUE

Raw only          : TRUE

renamedg operation: phase=both dgname=dgasmdb newdgname=dgasmdb_new verbose=true

Executing phase 1

Discovering the group

Performing discovery with string:

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:ASMDISK4G1 with disk number:0 and timestamp (33006423 142494720)

Checking for hearbeat...

Re-discovering the group

Performing discovery with string:

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:ASMDISK4G1 with disk number:0 and timestamp (33006423 142494720)

Checking if the diskgroup is mounted or used by CSS

Checking disk number:0

Generating configuration file..

Completed phase 1

Executing phase 2

Looking for ORCL:ASMDISK4G1

Modifying the header

Completed phase 2

Terminating kgfd context 0x7fa6c2bee0a0

--mount新的diksgroup dgasmdb_new

$ asmcmd mount dgasmdb_new

--查看新的diskgroup資訊

SQL> select GROUP_NUMBER,name,state,type, offline_disks, ALLOCATION_UNIT_SIZE,BLOCK_SIZE,TOTAL_MB,FREE_MB from v$asm_diskgroup;

GROUP_NUMBER NAME      STATE    TYPE  OFFLINE_DISKS ALLOCATION_UNIT_SIZE BLOCK_SIZE  TOTAL_MB    FREE_MB

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

1 DGASMDB_NEW MOUNTED  EXTERN            0              1048576      4096      3992      1879

--修改DB 初始化參數(/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initasmdb.ora)配置資訊

原來:SPFILE='+DGASMDB/asmdb/spfileasmdb.ora'

修改後:SPFILE='+DGASMDB_NEW/asmdb/spfileasmdb.ora'

--啟動資料庫nomount

su - oracle

sqlplus / as sysdba

startup nomount;

--修改control_files參數:

SQL> alter system set control_files='+DGASMDB_NEW/asmdb/controlfile/current.256.856653049' scope=spfile;

SQL> shutdown immediate;

SQL> startup mount;

SQL> show parameter control_files

NAME                                TYPE        VALUE

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

control_files                        string      +DGASMDB_NEW/asmdb/controlfile

/current.256.856653049

--確認目前記錄的datafile還是位於原來diskgroup DGASMDB

SQL> select FILE#,name from v$datafile;

FILE# NAME

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

1 +DGASMDB/asmdb/datafile/system.260.856653053

2 +DGASMDB/asmdb/datafile/sysaux.261.856653059

3 +DGASMDB/asmdb/datafile/undotbs1.262.856653061

4 +DGASMDB/asmdb/datafile/users.264.856653075

5 +DGASMDB/asmdb/datafile/asm_test.dbf

SQL> select file#, name from v$tempfile;

FILE# NAME

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

1 +DGASMDB/asmdb/tempfile/temp.263.856653061

--修改datafile/tempfile位置:

SQL> conn / as sysdba

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/datafile/system.260.856653053' TO '+DGASMDB_NEW/asmdb/datafile/system.260.856653053';

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/datafile/sysaux.261.856653059' TO '+DGASMDB_NEW/asmdb/datafile/sysaux.261.856653059';

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/datafile/undotbs1.262.856653061' TO '+DGASMDB_NEW/asmdb/datafile/undotbs1.262.856653061';

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/datafile/users.264.856653075' TO '+DGASMDB_NEW/asmdb/datafile/users.264.856653075';

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/datafile/asm_test.dbf' TO '+DGASMDB_NEW/asmdb/datafile/asm_test.dbf';

SQL> ALTER DATABASE RENAME FILE '+DGASMDB/asmdb/tempfile/temp.263.856653061' TO '+DGASMDB_NEW/asmdb/tempfile/temp.263.856653061';

--修改後確認:

SQL> select FILE#,name from v$datafile;

FILE# NAME

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

1 +DGASMDB_NEW/asmdb/datafile/system.260.856653053

2 +DGASMDB_NEW/asmdb/datafile/sysaux.261.856653059

3 +DGASMDB_NEW/asmdb/datafile/undotbs1.262.856653061

4 +DGASMDB_NEW/asmdb/datafile/users.264.856653075

5 +DGASMDB_NEW/asmdb/datafile/asm_test.dbf

--修改redo log位置

alter database rename file '+DGASMDB/asmdb/onlinelog/group_1.257.856653049' to '+DGASMDB_NEW/asmdb/onlinelog/group_1.257.856653049';

alter database rename file '+DGASMDB/asmdb/onlinelog/group_2.258.856653051' to '+DGASMDB_NEW/asmdb/onlinelog/group_2.258.856653051';

alter database rename file '+DGASMDB/asmdb/onlinelog/group_3.259.856653051' to '+DGASMDB_NEW/asmdb/onlinelog/group_3.259.856653051';

select * from v$logfile;

--啟動資料庫

SQL> alter database open; 

重新命名diskgroup後,對資料庫有什麼影響?如何同步資料?

重新命名diskgroup前,需要先手動dismount 這個磁碟組,因此重新命名過程不會有資料被修改,因此不需要額外的同步。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.