ASM執行個體目前無論是在rac還是單一實例資料庫環境下都被廣泛的採用,本文主要介紹Oracle 11.2.0.3環境下ASM執行個體的管理,主要包含以下內容:
1:ASM磁碟及磁碟組的狀態查看
2:建立external 冗餘磁碟組,添加,刪除磁碟
3:建立normal redundancy磁碟組
4:normal redundancy下的failgroup測試
5:刪除ASM磁碟組
6:其他asm執行個體初始化參數含義
一:查看ASM磁碟及磁碟組狀態
SQL> select * from v$asm_disk;
SQL> select * from v$asm_diskgroup;
二:建立external 冗餘磁碟組,添加,刪除磁碟,刪除磁碟的時候需要指定磁碟的name而不是path
- SQL> create diskgroup FRA external redundancy disk '/dev/asm-disk4';
- Diskgroup created.
- SQL> alter diskgroup fra add disk '/dev/asm-disk5' rebalance power 10;
- Diskgroup altered.
- SQL> select name,failgroup,path from v$asm_disk;
- NAME FAILGROUP PATH
- -------------------- -------------------- --------------------
- DATA_0000 DATA_0000 /dev/asm-disk1
- DATA_0001 DATA_0001 /dev/asm-disk3
- DATA_0002 DATA_0002 /dev/asm-disk2
- FRA_0000 FRA_0000 /dev/asm-disk4
- FRA_0001 FRA_0001 /dev/asm-disk5
- /dev/asm-disk6
- /dev/asm-disk7
- SQL> alter diskgroup fra drop disk '/dev/asm-disk4' rebalance power 10;
- alter diskgroup fra drop disk '/dev/asm-disk4' rebalance power 10
- *
- ERROR at line 1:
- ORA-15032: not all alterations performed
- ORA-15054: disk "/DEV/ASM-DISK4" does not exist in diskgroup "FRA"
- SQL> alter diskgroup fra drop disk 'FRA_0000' rebalance power 10;
- Diskgroup altered.
三:建立normal redundancy磁碟組
- SQL> conn /as sysasm
- Connected.
- SQL> create diskgroup fra normal redundancy
- failgroup fg1 disk '/dev/asm-disk4','/dev/asm-disk5'
- failgroup fg2 disk '/dev/asm-disk6','/dev/asm-disk7'
- attribute 'compatible.rdbms'='11.2','compatible.asm'='11.2';
- Diskgroup created.
- SQL> select name, total_mb,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
- NAME TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
- ---------- ---------- ---------- ----------------------- --------------
- DATA 61440 54873 0 18291
- FRA 81920 81592 20480 30556
四:failgroup測試;FAILGROUP是用於將磁碟分組,以保證丟失任何一組FAILGROUP磁碟,資料還是完整的,多用於多陣列,通過ASM來完成冗餘的環境!
1:查看FRA磁碟組中failgroup資訊及磁碟狀態
- SQL> select name,path,failgroup,mount_status from v$asm_disk where group_number=2;
- NAME PATH FAILGROUP MOUNT_STATUS
- -------------------- -------------------- ---------- ---------------------
- FRA_0003 /dev/asm-disk7 FG2 CACHED
- FRA_0002 /dev/asm-disk6 FG2 CACHED
- FRA_0000 /dev/asm-disk4 FG1 CACHED
- FRA_0001 /dev/asm-disk5 FG1 CACHED
2:在rdbms執行個體中建立資料表空間,建表並插入資料,收集表統計資訊
- SQL> create tablespace test01 datafile '+FRA';
- Tablespace created.
- ASMCMD> pwd
- +fra/db/datafile
- ASMCMD> ls
- TEST01.256.800622493
- SQL> create table t1 tablespace test01 as select * from dba_objects;
- Table created.
- SQL> exec dbms_stats.gather_table_stats('SYS','T1');
- PL/SQL procedure successfully completed.
- SQL> select count(*) from t1;
- COUNT(*)
- ----------
- 74501
3:刪除udev相關規則,重啟資料庫執行個體和ASM執行個體,驗證資料是否存在
- SQL> conn /as sysasm
- Connected.
- SQL> alter diskgroup fra mount;
- alter diskgroup fra mount
- *
- ERROR at line 1:
- ORA-15032: not all alterations performed
- ORA-15040: diskgroup is incomplete
- ORA-15042: ASM disk "1" is missing from group number "2"
- ORA-15042: ASM disk "0" is missing from group number "2"
- SQL> alter diskgroup fra mount force;
- Diskgroup altered.
- SQL> select name,path,failgroup,mount_status from v$asm_disk;
- NAME PATH FAILGROUP MOUNT_STATUS
- ---------- -------------------- -------------------- ---------------------
- FRA_0000 FG1 MISSING
- FRA_0001 FG1 MISSING
- FRA_0002 /dev/asm-disk6 FG2 CACHED
- FRA_0003 /dev/asm-disk7 FG2 CACHED
- DATA_0000 /dev/asm-disk1 DATA_0000 CACHED
- DATA_0002 /dev/asm-disk2 DATA_0002 CACHED
- DATA_0001 /dev/asm-disk3 DATA_0001 CACHED
- 7 rows selected.
- SQL> conn /as sysdba
- Connected.
- SQL> select count(*) from t1;
- COUNT(*)
- ----------
- 74501