OCP課程27:管理Ⅰ之管理ASM例項

stonebox1122發表於2016-01-14

課程目標:

  • 管理ASM例項
  • 建立和刪除ASM磁碟組
  • 擴充套件ASM磁碟組
  • 獲取ASM後設資料

1、使用ASM帶來的好處

  • 不需要進行I/O效能調優,ASM的條帶化和映象策略以及自動重平衡操作就不需要在平衡磁碟使用以及消重磁碟熱點上進行I/O效能調優了
  • 不需要調整資料檔案的位置來滿足效能要求以及空間限制了
  • 不需要定義檔案命名策略了
  • 不需要進行邏輯卷,檔案系統,叢集檔案系統,裸裝置的管理了
  • 減少LUN管理
  • 減少對系統管理員的依賴
  • 減少人工維護帶來的的錯誤

2、ASM例項

ASM例項同樣也是由程式和記憶體組成。

clipboard

ASM的SGA包括:

  • Shared Pool:用於後設資料資訊
  • Large Pool:用於並行操作
  • ASM Cache:在重平衡操作中用於讀寫塊
  • Free Memory:未分配可用記憶體

ASM例項預設使用自動記憶體管理,動態調整SGA各個記憶體元件的大小,記憶體總大小取決於ASM管理的磁碟空間,最小推薦值為256MB。

ASM例項有很多程式,有的和資料庫例項的程式名稱一樣,但是可能功能不一樣。主要的程式如下:

clipboard[1]

  • RBAL:協調磁碟組的重平衡活動
  • ARBn:執行實際的重平衡資料區移動,可以有多個程式
  • GMON:磁碟組監控,維護磁碟組成員資訊,
  • MARK:標記分配單元不可用,在向離線磁碟寫入失敗後,MARK程式將ASM 分配單元標記為過期
  • Onnn:這組程式表示客戶機/伺服器連線的伺服器端。啟動例項時將出現這些程式,之後它們將消失,它們形成與ASM 例項的一組連線,用於交換訊息,僅在需要時才出現
  • PZ9n:表示一個或多個並行從屬程式,當ASM 同時在多臺計算機上以叢集配置執行時,可以使用該程式提取資料

3、ASM例項初始化引數

主要有以下引數:

INSTANCE_TYPE = ASM

ASM_POWER_LIMIT = 1

ASM_DISKSTRING = '/dev/sda1','/dev/sdb*'

ASM_DISKGROUPS = DATA2, FRA

ASM_PREFERRED_READ_FAILURE_GROUPS = DATA.FailGroup2

DIAGNOSTIC_DEST = /u01/app/oracle

LARGE_POOL_SIZE = 12M

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

ASM 例項由引數檔案控制,其方式與常規資料庫例項相同。通常設定的引數包括:

  • INSTANCE_TYPE:應該設定且必須為ASM,表示ASM 例項,標識要啟動的例項是ASM,而不是資料庫例項。這是唯一一個必須定義的引數。對於資料庫例項,該引數值設定為RDBMS
  • ASM_POWER_LIMIT:控制重平衡操作的速度。值的範圍從1 到11,11 表示最快。如果省略,該值預設為1。指定的級別越高,則rebalance的操作就會越快被完成,當然這也意味著這個時間段內將佔用更多的資源,指定級別較低的話,隨人rebalance操作會耗時更久,但對當前系統的IO及負載影響會更少,這需要根據實際情況衡量。另外,這個引數指定的只是一個預設值,在操作過程中,即可以隨時動態更改,也可以在語句級命令列時指定power,覆蓋該預設值
  • ASM_DISKSTRING:是一個與作業系統相關的值,ASM 使用它來指定搜尋的磁碟,該選項可以同時指定多個值,並且支援萬用字元。比如只檢查/DEV/SD*。預設值為空字串,為空的話,表示ASM將查詢系統中所有ASM擁有讀寫許可權的裝置。這在大多數情況下就足夠了。如上所示的約束性更強的值可以減少ASM 執行搜尋所需的時間
  • ASM_DISKGROUPS:是ASM 例項啟動時或使用ALTER DISKGROUP ALL MOUNT命令時,ASM 例項要裝載的磁碟組的名稱列表。Oracle Restart 會裝載沒有與ASM_DISKGROUPS引數列在一起的從屬磁碟組。該引數沒有預設值
  • ASM_PREFERRED_READ_FAILURE_GROUPS:指定包含優先讀取磁碟的故障組。可以將效能好的磁碟放入某個故障組,並指定優先讀取
  • DIAGNOSTIC_DEST:指定自動診斷知識庫(ADR) 主目錄的位置。此目錄下有跟蹤檔案、告警日誌、核心檔案和意外事件檔案。此引數的預設值來源於ORACLE_BASE
  • LARGE_POOL_SIZE:指定大池的大小(以位元組表示)。大池用於共享伺服器系統中的會話記憶體,供訊息緩衝區的並行執行和磁碟I/O 緩衝區的備份程式使用
  • REMOTE_LOGIN_PASSWORDFILE:指定否檢查口令檔案。預設值為EXCLUSIVE

上面列出的八個引數是需要為ASM 例項建立的唯一幾個非預設引數。ASM 例項與資料庫例項不同,因為並不是所有的資料庫引數都對ASM 例項有效。在全部344 個資料庫例項引數中,大約有74 個引數可以用於ASM 例項。對於上面未列出的其它引數,雖然其預設值對於大多數安裝來說應該已經足夠了,但也可以根據需要進行設定。

ASM 例項預設啟用自動記憶體管理,即使未明確設定MEMORY_TARGET引數也是如此。Oracle強烈建議對ASM 例項使用自動記憶體管理。

例子:檢視ASM引數檔案的位置

SQL> show parameter spfile

NAME                                 TYPE                 VALUE

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

spfile                               string               +DATA/asm/asmparameterfile/reg

                                                          istry.253.893366739

例子:檢視引數檔案的內容

SQL> create pfile='/home/grid/pfile.ora' from spfile;

File created.

SQL> get /home/grid/pfile.ora

  1  +ASM.__oracle_base='/u01/app/grid'#ORACLE_BASE set from in memory value

  2  +ASM.asm_diskgroups='FRA'#Manual Mount

  3  *.asm_power_limit=1

  4  *.diagnostic_dest='/u01/app/grid'

  5  *.instance_type='asm'

  6  *.large_pool_size=12M

  7* *.remote_login_passwordfile='EXCLUSIVE'


4、資料庫例項和ASM之間的互動

clipboard[2]

檔案建立過程可以很好地說明資料庫例項與ASM 之間發生的互動。檔案建立過程如下所示:

1. 資料庫請求建立檔案。

2. ASM 前臺程式建立一個持續操作目錄(COD) 條目並在磁碟組中為新的檔案分配空間。

3. ASMB 資料庫程式接收新檔案的區對映。

4. 現在檔案處於開啟狀態,資料庫程式直接初始化該檔案。

5. 初始化後,資料庫程式請求提交檔案建立。這會導致ASM 前臺程式清除COD 條目並將檔案標記為已建立。

6. 檔案提交確認會隱式關閉該檔案。將來發生I/O 時,資料庫例項需要重新開啟該檔案。

此示例強調了關於ASM 體系結構的重要兩點:

  • 資料庫例項和ASM 例項協同工作。資料庫例項必須與ASM 互動,以便將資料庫檔案對映到ASM 區。資料庫例項還接收與ASM 操作(例如磁碟組重平衡)相關的連續訊息流,這類操作可能鎖定或移動ASM 區
  • 資料庫I/O 不透過ASM 例項來傳輸。實際上,資料庫直接對ASM 檔案執行I/O 操作,如步驟4 所示

5、ASM例項的動態效能檢視

ASM例項有許多專用的ASM相關檢視,透過SQL語句進行查詢。

常用動態效能檢視如下:

clipboard[3]

例子:檢視與ASM相關的動態效能檢視有哪些

SQL> col comments for a50;

SQL> conn / as sysdba

Connected.

SQL>  select * from dict where table_name like 'V$ASM_%';

TABLE_NAME                     COMMENTS

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

V$ASM_ACFSSNAPSHOTS            Synonym for V_$ASM_ACFSSNAPSHOTS

V$ASM_ACFSVOLUMES              Synonym for V_$ASM_ACFSVOLUMES

V$ASM_ACFS_ENCRYPTION_INFO     Synonym for V_$ASM_ACFS_ENCRYPTION_INFO

V$ASM_ACFS_SECURITY_INFO       Synonym for V_$ASM_ACFS_SECURITY_INFO

V$ASM_ALIAS                    Synonym for V_$ASM_ALIAS

V$ASM_ATTRIBUTE                Synonym for V_$ASM_ATTRIBUTE

V$ASM_CLIENT                   Synonym for V_$ASM_CLIENT

V$ASM_DISK                     Synonym for V_$ASM_DISK

V$ASM_DISKGROUP                Synonym for V_$ASM_DISKGROUP

V$ASM_DISKGROUP_STAT           Synonym for V_$ASM_DISKGROUP_STAT

V$ASM_DISK_IOSTAT              Synonym for V_$ASM_DISK_IOSTAT

TABLE_NAME                     COMMENTS

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

V$ASM_DISK_STAT                Synonym for V_$ASM_DISK_STAT

V$ASM_FILE                     Synonym for V_$ASM_FILE

V$ASM_FILESYSTEM               Synonym for V_$ASM_FILESYSTEM

V$ASM_OPERATION                Synonym for V_$ASM_OPERATION

V$ASM_TEMPLATE                 Synonym for V_$ASM_TEMPLATE

V$ASM_USER                     Synonym for V_$ASM_USER

V$ASM_USERGROUP                Synonym for V_$ASM_USERGROUP

V$ASM_USERGROUP_MEMBER         Synonym for V_$ASM_USERGROUP_MEMBER

V$ASM_VOLUME                   Synonym for V_$ASM_VOLUME

V$ASM_VOLUME_STAT              Synonym for V_$ASM_VOLUME_STAT

21 rows selected.

例子:檢視ASM檔案別名資訊

SQL> select name,group_number,file_number,alias_directory,system_created from v$asm_alias;

NAME                                               GROUP_NUMBER FILE_NUMBER A S

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

ASM                                                           1  4294967295 Y Y

ASMPARAMETERFILE                                              1  4294967295 Y Y

REGISTRY.253.893366739                                        1         253 N Y

STONE                                                         1  4294967295 Y Y

DATAFILE                                                      1  4294967295 Y Y

例子:檢視ASM磁碟組屬性

SQL> select name,value,group_number,system_created from v$asm_attribute;

NAME                                     VALUE                GROUP_NUMBER SYSTEM_

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

disk_repair_time                         3.6h                            1 Y

au_size                                  1048576                         1 Y

sector_size                              512                             1 Y

compatible.asm                           11.2.0.0.0                      1 Y

compatible.rdbms                         10.1.0.0.0                      1 Y

例子:檢視連線到ASM例項的客戶機資訊

SQL> select group_number,instance_name,db_name,status from v$asm_client;

GROUP_NUMBER INSTANCE_N DB_NAME  STATUS

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

           1 stone      stone    CONNECTED

           2 stone      stone    CONNECTED

           1 +ASM       +ASM     CONNECTED

例子:檢視ASM磁碟資訊

SQL> select group_number,disk_number,name,TOTAL_MB,FREE_MB from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME                                       TOTAL_MB    FREE_MB

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

           0           0                                                   0          0

           0           3                                                   0          0

           1           0 DATA_0000                                      2047        950

           1           1 DATA_0001                                      2047        948

           2           0 FRA_0000                                       2047       1147

           2           1 FRA_0001                                       2047       1152

6 rows selected.

例子:檢視ASM磁碟I/O情況

SQL> select instname,dbname,group_number,disk_number,reads,writes,hot_reads,hot_writes from v$asm_disk_iostat;

INSTNAME   DBNAME   GROUP_NUMBER DISK_NUMBER      READS     WRITES  HOT_READS HOT_WRITES

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

stone      stone               2           1         44        402          0          0

stone      stone               1           1       6233        731          0          0

stone      stone               1           0       5518        453          0          0

stone      stone               2           0         20        343          0          0

+ASM       +ASM                1           1          0          0          0          0

+ASM       +ASM                1           0          0          0          0          0

6 rows selected.

例子:檢視ASM磁碟狀態

SQL>  select group_number,disk_number,name,mount_status,create_date,mount_date from v$asm_disk_stat;

GROUP_NUMBER DISK_NUMBER NAME                                     MOUNT_S CREATE_DA MOUNT_DAT

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

           1           0 DATA_0000                                CACHED  17-OCT-15 15-DEC-15

           1           1 DATA_0001                                CACHED  17-OCT-15 15-DEC-15

           2           0 FRA_0000                                 CACHED  17-OCT-15 15-DEC-15

           2           1 FRA_0001                                 CACHED  17-OCT-15 15-DEC-15

例子:檢視ASM磁碟組資訊

SQL> select group_number,name,sector_size,block_size,allocation_unit_size,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME       SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE   TOTAL_MB    FREE_MB

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

           1 DATA               512       4096              1048576       4094       1898

           2 FRA                512       4096              1048576       4094       2299

例子:檢視ASM磁碟組狀態

SQL>  select group_number,name,sector_size,block_size,allocation_unit_size,total_mb,free_mb from v$asm_diskgroup_stat;

GROUP_NUMBER NAME       SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE   TOTAL_MB    FREE_MB

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

           1 DATA               512       4096              1048576       4094       1898

           2 FRA                512       4096              1048576       4094       2299

例子:檢視ASM檔案資訊

SQL> select group_number,file_number,block_size,blocks,bytes,space,type from v$asm_file;

GROUP_NUMBER FILE_NUMBER BLOCK_SIZE     BLOCKS      BYTES      SPACE TYPE

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

           1         253        512          3       1536    1048576 ASMPARAMETERFILE

           1         256       8192      97281  796925952  799014912 DATAFILE


6、ASM系統許可權

ASM 例項沒有資料字典,所以連線ASM 只能使用下列系統許可權:

clipboard[4]

  • SYSASM:該許可權提供對ASM例項的全部管理許可權
  • SYSDBA:該許可權授予對ASM中儲存的資料的訪問許可權,在當前版本中還授予SYSASM管理許可權
  • SYSOPER:該許可權授予使用一組非破壞性ALTER DISKGROUP命令以及啟動和停止ASM 例項的許可權。不允許使用CREATE DISKGROUP等其它命令

安裝ASM 時,使用作業系統組對SYSASM、SYSDBA和SYSOPER許可權進行驗證。Oracle Universal Installer (OUI)將這些組分別稱為OSASM、OSDBA和 OSOPER組,即OSASM組是授予了 SYSASM許可權的作業系統組。Oracle建議OSASM、OSDBA和OSOPER組名稱分別為asmadmin、asmdba和 asmoper。因此,SYSASM是資料庫使用的名稱,OSASM是OUI使用的名稱,而asmadmin是作業系統使用的名稱。它們都是指同一組使用者。當建立ASM例項時,只定義sys和asmsnmp這兩個ASM使用者。建立SYS使用者時,會自動為其分配SYSASM許可權。



7、使用EM管理ASM使用者

Enterprise Manager允許你管理透過遠端連線(使用口令檔案驗證)訪問ASM 例項的使用者。這些使用者是專門為ASM 例項保留的。

僅當你作為SYSASM使用者連線時才具有此功能。如果你作為SYSDBA或SYSOPER使用者連線,該功能將隱藏。

  • 單擊“Creat(建立)”按鈕時將顯示“Create User(建立使用者)”頁
  • 單擊“Edit(編輯)”按鈕時將顯示“Edit User(編輯使用者)”頁
  • 透過單擊“Delete(刪除)”按鈕可以刪除建立的使用者

要以SYSASM角色登入ASM,請單擊該頁頂部的“Preferences(首選項)”連結,然後單擊“Preferred Credentials(首選身份證明)”連結。此時你將在目標型別列表中看到ASM。單擊ASM目標型別旁邊的“Set Credentials(設定身份證明)”圖示,定義具有SYSASM許可權的帳戶和口令。你需要從Database Control 中登出並再次登入,更改才會生效。

例子:使用EM管理ASM使用者

clipboard[5]

clipboard[6]

clipboard[7]

clipboard[8]

clipboard[9]

clipboard[10]

例子:使用SQL*Plus管理ASM使用者

SQL> create user stone identified by stone;

User created.

SQL> grant sysasm,sysdba,sysoper to stone;

Grant succeeded.


8、使用SQL*Plus啟動和停止ASM例項

使用SQL*Plus 啟動和停止ASM 例項與啟動和停止資料庫例項的方式相似。

當啟動ASM 例項時,需注意以下幾點:

  • 要使用SQL*Plus 連線ASM 例項,請將ORACLE_SID環境變數設定為ASM SID。單例項資料庫的預設ASM SID為+ASM,Oracle RAC節點的預設ASM SID是+ASMnode_number,其中node_number是節點的編號。可以使用oraenv指令碼設定ORACLE_BASE、ORACLE_SID、ORACLE_HOME和 PATH變數。
  • 初始化引數檔案必須包含:INSTANCE_TYPE = ASM ,該引數指示正在啟動ASM 例項,而不是資料庫例項。
  • 執行STARTUP命令時,該命令嘗試裝載初始化引數ASM_DISKGROUPS指定的磁碟組,而不是嘗試裝載和開啟某個資料庫。如果尚未為 ASM_DISKGROUPS指定值,後面可以透過ALTER DISKGROUP...MOUNT命令裝載磁碟組。

與ASM相關的STARTUP命令引數:

  • FORCE:在重新啟動ASM 例項之前發出SHUTDOWN ABORT。
  • MOUNT或OPEN:裝載ASM_DISKGROUPS初始化引數中指定的磁碟組。這是未指定命令引數時的預設值。
  • NOMOUNT:啟動ASM例項而不裝載任何磁碟組。
  • RESTRICT:在受限模式下啟動例項。RESTRICT可以與MOUNT、NOMOUNT和OPEN組合使用。在受限模式下,資料庫例項不能使用磁碟組。即,資料庫無法開啟磁碟組中的檔案。另外,如果磁碟組是由某個例項在受限模式下裝載的,則該磁碟組無法由叢集中的任何其它例項裝載。透過受限模式,可以在磁碟組上執行維護任務,而不會受到客戶機的干擾。在磁碟組處於受限模式下時執行重平衡操作,就不再需要在叢集環境中的ASM 例項之間傳遞鎖定和取消鎖定區對映訊息。這樣可以提高重新平衡操作的整體吞吐量。在維護期間結束時,你必須顯式解除安裝該磁碟組並在正常模式下重新裝載該磁碟組。

在SQL*Plus 中執行SHUTDOWN命令將關閉ASM 程式。在執行此命令之前,確保已設定ORACLE_SID和 ORACLE_HOME環境變數,以便可以連線到ASM 例項。

Oracle 強烈建議在嘗試關閉ASM 例項之前關閉使用該ASM 例項的所有資料庫例項。

與ASM相關的SHUTDOWN命令引數:

  • NORMAL:ASM在解除安裝所有磁碟組並關閉ASM 例項之前,將等待任何正在進行的SQL完成執行。在關閉例項之前,ASM將等待所有當前連線的使用者從該例項斷開。如果任何資料庫例項與ASM例項連線,則SHUTDOWN命令將返回錯誤並保持ASM例項繼續執行。NORMAL是預設關閉模式。
  • IMMEDIATE或 TRANSACTIONAL:ASM在解除安裝所有磁碟組並關閉ASM 例項之前,將等待任何正在進行的SQL 完成執行。ASM不等待當前與例項連線的使用者斷開連線。如果任何資料庫例項與ASM例項連線,則SHUTDOWN命令將返回錯誤並保持ASM例項繼續執行。
  • ABORT:ASM 例項立即關閉,而不按順序解除安裝磁碟組。這將導致下次啟動ASM時進行恢復操作。如果有任何資料庫例項與ASM例項連線,則該資料庫例項也將中止。

ASM是依賴於CSS守護程式的,因此在啟動ASM例項前要確保CSS守護程式已經啟動。CSS(Cluster Synchronization Services) 守護程式用來維持ASM及客戶端資料庫例項間的一致性同步,如果是透過dbca建庫的話,那麼CSS守護程式預設即會啟動。

例子:連線到ASM例項,關閉並啟動ASM例項

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 15 16:30:39 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Automatic Storage Management option

SQL> shutdown

ORA-15097: cannot SHUTDOWN ASM instance with connected client (process 61836)

SQL> shutdown abort

ASM instance shutdown

SQL> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

ASM diskgroups mounted

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

+ASM             STARTED

SQL> select name,state from v$asm_diskgroup;

NAME                           STATE

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

DATA                           MOUNTED

FRA                            MOUNTED


9、使用srvctl啟動和停止ASM例項

可以使用Server Control實用程式(srvctl) 啟動和停止ASM例項以及由Grid Infrastructure管理的其它資源。srvctl實用程式位於Grid Infrastructure的ORACLE_HOME/bin位置下和資料庫安裝的 ORACLE_HOME/bin位置下。管理ASM、監聽程式或Oracle Restart 時,應該使用位於Grid Infrastructure ORACLE_HOME中的srvctl實用程式。

使用 srvctl實用程式來控制ASM:

  • 啟動ASM 例項。
    • srvctl start asm [-o ] ,是有效的例項啟動選項(FORCE、MOUNT、OPEN、NOMOUNT或RESTRICT)之一(可選)
  • 停止ASM 例項。
    • srvctl stop asm [-o ] -f ,是有效的例項關閉選項(NORMAL、IMMEDIATE、TRANSACTIONAL或 ABORT)之一(可選),–f表示強制。
  • 檢視ASM 例項的狀態。
    • srvctl status asm

例子:使用srvctl關閉和啟動asm例項並檢視狀態

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ srvctl stop asm -f

[ ~]$ srvctl status asm

ASM is not running.

[ ~]$ srvctl start asm -o mount

[ ~]$ srvctl status asm

ASM is running on oracletest1

[ ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 15 16:57:31 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

SQL> select status from v$instance;

STATUS

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

MOUNTED

SQL> alter database open;

Database altered.


10、使用asmcmd啟動和關閉ASM例項

asmcmd實用程式提供了一個訪問ASM的命令列介面,無需使用SQL語言。asmcmd實用程式提供了一個類似偽Shell的環境,可以接受UNIX格式的語法執行常用的ASM管理任務。

它可以用於管理Oracle ASM例項、磁碟組、磁碟組的檔案訪問控制、磁碟組內的檔案和目錄、磁碟組的模板以及卷。

可以使用 asmcmd實用程式啟動和關閉ASM例項。支援的啟動選項包括:

--nomount(在不裝載磁碟組的情況下啟動ASM例項)

--restrict(啟動ASM例項並限制資料庫使用)

--pfile (使用定製pfile啟動ASM例項)

支援的關閉選項包括:

--immediate(立即執行關閉)

--abort(中止所有現有操作)

例子:使用asmcmd關閉和啟動ASM例項

[ ~]$ . oraenv

ORACLE_SID = [+ASM] ?

The Oracle base remains unchanged with value /u01/app/grid

[ ~]$ asmcmd

ASMCMD> shutdown --abort

ASM instance shutdown

Connected to an idle instance.

ASMCMD> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size                  2260728 bytes

Variable Size            1108320520 bytes

ASM Cache                  25165824 bytes

ASM diskgroups mounted


11、磁碟組

磁碟組是一個或多個磁碟的邏輯分組,ASM將其作為一個集合來管理。每個磁碟組都包含與自身相關聯的後設資料。在概念上,ASM磁碟組類似於儲存區域網路中的邏輯卷。

從磁碟組內分配檔案空間。磁碟組中儲存的檔案的內容將在該磁碟組的磁碟中平均分佈或條帶化,以便消除熱點並在各磁碟上提供一致的效能。每個ASM 檔案都完全包含在一個磁碟組中。但是,一個磁碟組可以包含屬於多個資料庫的檔案,而一個資料庫可以使用來自多個磁碟組的不同檔案。

磁碟組的關鍵屬性是它的冗餘設定。有三種可能的磁碟組冗餘設定:

  • 外部冗餘,ASM不提供任何映象,磁碟都假設為高度可靠。
  • 正常冗餘,其中ASM預設支援映象,從而保證在較不可靠的儲存上實現資料完整性。
  • 高冗餘,其中ASM預設支援三重映象,從而更好地保證資料完整性。

ASM最多支援建立63 個磁碟組;但是,對於大多數安裝,你很少會需要很多磁碟組。

clipboard[11]


12、ASM磁碟

  • 是為ASM磁碟組預配的儲存裝置
  • 透過正常O/S介面來訪問
  • 必須可由ASM所有者讀取和寫入
  • 必須可由叢集中的所有節點訪問
  • 在不同的節點上可以有不同的O/S名稱或路徑
  • 可以是:

– 整個物理磁碟或物理磁碟的分割槽

– 儲存陣列中的磁碟或分割槽

– 邏輯卷(LV)或邏輯單元(LUN)

– 網路檔案(NFS)

ASM磁碟組包含一個或多個ASM磁碟。

ASM磁碟必須可由叢集中所有節點的ASM所有者讀取和寫入。

ASM磁碟可以是磁碟上的分割槽,但是Oracle強烈建議不要與其它應用程式程式共享ASM使用的物理磁碟。這是因為在應用ASM條帶化和映象策略時,磁碟組內的各個ASM磁碟的I/O效能必須相似且一致,才能獲得最佳效能。在ASM和其它應用程式之間共享裝置會難以確保磁碟效能相似且一致。

叢集中不同節點上的ASM磁碟的O/S裝置名稱不必相同。ASM透過讀取ASM磁碟的標頭來識別磁碟組的成員。

通常,ASM 磁碟是以儲存陣列中的裸LUN提供給ASM的。另外,ASM磁碟還可以是遠端NFS檔案。


13、分配單元

在ASM 磁碟內,空間劃分為分配單元(AU)。AU預設大小是1 MB,該大小足夠小,不會變為熱點,但又足夠大,能夠提供高效的連續訪問。建立磁碟組時可以設定AU大小。你無法更改磁碟組的AU大小。在超大型資料庫(VLDB) 中或使用專門的儲存硬體時,較大的AU大小可能會很有用。如果經常訪問某個AU,則資料庫核心會將其快取以便實現更高的訪問效率。

允許的AU 大小: 1、2、4、8、16、32 或64 MB 。


14、ASM檔案

  • ASM檔案是由AU組成的ASM區的集合,可變大小的區支援大型檔案
  • 對資料庫核心顯示為普通檔案
  • 每個ASM 檔案都具有唯一的系統生成的名稱,以“+”開頭,格式為:+diskgroup/dbname/file_type/file_type_tag.file.incarnation ,其中+diskgroup為磁碟組名稱;dbname為資料庫的DB_UNIQUE_NAME引數值;file_type為建立的檔案型別,比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBACK等等;file_type_tag為檔案型別的標籤,比如表空間對應的通常為該表空間名稱;file.incarnation 為檔案序號+incarnation,用來確保檔案的唯一;例如:+DATA/orcl/datafile/system.256.689832921
  • 可以與可選的檔名別名相關聯,例如,+DATA/dbfiles/mydb/system01.dbf
  • 在磁碟組中的磁碟中平均分佈
  • 根據磁碟組中定義的策略進行映象

以上顯示了一個完全限定的ASM檔名的示例。完全限定的ASM檔名錶示一個層次結構,其開頭是加號與磁碟組名稱的組合。磁碟組名稱後是資料庫名稱和檔案型別。最後的元素由標記名稱、檔案編號和原型編號組成。可以建立別名(可選),為管理員提供一種更友好的方式來使用ASM 檔案。

ASM 本身支援大多數與資料庫相關的檔案型別,例如資料檔案、日誌檔案、控制檔案、RMAN 備份及其它檔案。在11gR2之前,ASM 僅支援與Oracle資料庫相關的檔案,無法用於儲存和管理跟蹤檔案和告警日誌、Oracle二進位制檔案、Oracle叢集登錄檔(OCR) 和叢集表決磁碟。Oracle 11gR2提供在ASM上執行通用檔案系統的方式,從而消除了上述限制。

例子:檢視資料庫的表空間及對應的資料檔案

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME

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

USERS      +DATA/stone/datafile/users.259.893370691

UNDOTBS1   +DATA/stone/datafile/undotbs1.258.893370691

SYSAUX     +DATA/stone/datafile/sysaux.257.893370691

SYSTEM     +DATA/stone/datafile/system.256.893370691

EXAMPLE    +DATA/stone/datafile/example.265.893370807

TS01       +DATA/stone/datafile/ts01.dbf

6 rows selected.

例子:增加一個表空間及資料檔案

SQL> create tablespace ts02 datafile '+DATA';

Tablespace created.

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME

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

USERS      +DATA/stone/datafile/users.259.893370691

UNDOTBS1   +DATA/stone/datafile/undotbs1.258.893370691

SYSAUX     +DATA/stone/datafile/sysaux.257.893370691

SYSTEM     +DATA/stone/datafile/system.256.893370691

EXAMPLE    +DATA/stone/datafile/example.265.893370807

TS01       +DATA/stone/datafile/ts01.dbf

TS02       +DATA/stone/datafile/ts02.268.898602153

7 rows selected.


15、區對映

clipboard[12]

ASM透過稱為區對映的後設資料跟蹤檔案的分佈。區對映是一個表,將檔案中的資料區對映到磁碟上的分配單元。

檔案區與分配單元之間的關係如下所示。區包含:

  • 1個AU用於前20,000 個區(0-19999)
  • 4個AU用於接下來的20,000 個區(20000-39999)
  • 16個AU用於40,000 以上的區

將可變大小的區與大型分配單元結合使用,可滿足非常大的ASM 檔案的需要。


16、條帶粒度

在ASM 中,條帶化主要具有兩個目的:

  • 在磁碟組的所有磁碟中執行I/O負載平衡。
  • 改善I/O等待時間。

粗粒度條帶化

clipboard[13]

粗粒度條帶化在磁碟組的各磁碟中分佈分配單元。這用於為磁碟組提供負載平衡。分配檔案時,ASM 會在所有磁碟中平均分佈分配單元。有時分佈無法非常平均,但是隨著時間的流逝,會變得幾乎相等。上圖顯示了一個具有五個分配單元的檔案,這些分配單元在條帶化之後,分佈在一個外部冗餘磁碟組的五個磁碟中,該磁碟組共包含八個磁碟。

對於前20,000個區,區大小等於AU大小。從第20,001個區到第40,000個區,該區組總是一次分配8個區,區大小等於4 倍AU大小。如果AU大小為1MB,這意味著ASM檔案將一次增大32MB (8 * 4 * 1 MB)。如果檔案採用粗粒度條帶化,則它將在8個區中進行條帶化,條帶大小為1AU。條帶化始終在AU 級別進行,而不是在區級別。因此,無論檔案多大,粗粒度檔案的每個AU都與該檔案的前一個AU所在的磁碟不同。在第40,000個區之後,仍舊是每次分配8個區,但區大小等於16 倍AU大小。

細粒度條帶化

細粒度條帶化在分配單元組中放置128KB條帶單元來改善等待時間。

  • 磁碟組具有8個磁碟和外部冗餘
  • 使用預設的AU大小:1 MB
  • 第一個1 MB區在8個AU中以128 KB條帶形式寫入

clipboard[14]

細粒度條帶化將資料區拆分為128 KB的塊,然後在許多磁碟中分佈每個區的負載,從而改善特定型別檔案的等待時間。預設情況下,細粒度條帶化用於控制檔案和聯機重做日誌檔案。

上圖顯示了細粒度條帶化的工作原理。檔案的第一個1 MB區最終佔用8個不同分配單元中的第一個128 KB塊,這8個分配單元分佈在磁碟組的八個磁碟中。因此,1 MB的讀取或寫入分佈在八個磁碟(而不是一個磁碟)中。

clipboard[15]

繼續前面的示例,空間中的下一個1 MB區將分佈在相同分配單元組的每個單元的第二個128 KB塊中。這種模式將繼續,直到第一組分配單元寫滿,然後分配另一組。


17、ASM故障組

clipboard[16]

在磁碟組內,可以將一些磁碟歸到故障組中。故障組是儲存或資料庫管理員指定ASM映象操作的硬體邊界的一種方式。

可以將連線到一個磁碟控制器的所有磁碟指定在一個故障組內。這樣就可以將檔案區映象到其他控制器的磁碟上。另外,管理員可以配置ASM來選擇預設故障組策略。預設策略是每個磁碟位於自己的故障組中。

故障組可以用於避免單個磁碟、磁碟控制器、I/O網路元件以及甚至整個儲存系統的故障。通常,管理員將分析其儲存環境並對故障組進行組織來消除特定故障情況。


18、條帶化和映象示例

一個共含八個磁碟的正常冗餘磁碟組,其中的磁碟分佈在兩個故障組中。

clipboard[17]

紅塊表示一個包含五個區的檔案,這些區在條帶化後,分佈在磁碟組(共八個磁碟)的五個磁碟中。藍塊表示檔案區的映象副本。請注意,無論區在各個磁碟和故障組中如何分佈,每個區在一個故障組中僅有一個副本。

分配檔案時,主區的分配用於保證效能,輔助區的分配用於保證完整性。因此,預設情況下,所有資料庫讀取都針對主區進行。


19、故障示例

如果磁碟H發生故障,則將根據他的映象在正常磁碟上重新建立該磁碟包含的區。

clipboard[18]

假設磁碟H發生故障,無法再訪問其包含的資料。該故障要求恢復故障磁碟上的所有區並將這些區複製到另一磁碟。

區3和5的正常副本將複製到同一故障組中另一磁碟的空閒區域。在此示例中,區5將從磁碟B複製到磁碟F,區3將從磁碟C複製到磁碟G。

磁碟發生故障後的最後一步是ASM從磁碟組中刪除故障磁碟。

刪除磁碟基本上會觸發相同的過程;不過,在刪除磁碟時,要被刪除的磁碟上的區首先會複製到可用磁碟上。


20、管理磁碟組

clipboard[19]

ASM例項的主要目的是管理磁碟組和保護其資料。ASM例項還將檔案分佈傳送到資料庫例項。這樣,資料庫例項就可以直接訪問磁碟組中儲存的檔案。

有多個磁碟組管理命令。執行這些命令都需要SYSASM或SYSDBA許可權,且必須從ASM例項發出。

可以新增新磁碟組。還可以修改現有磁碟組來新增新磁碟、刪除現有磁碟以及執行許多其它操作。可以刪除現有磁碟組。

(1)使用SQL*Plus建立和刪除磁碟組

clipboard[20]

假設ASM磁碟搜尋在/dev目錄中找到了下列磁碟:A1、A2、B1和B2。另外,假設磁碟A1和A2的磁碟控制器不同於B1和B2的磁碟控制器。第一個示例說明如何配置名為DGROUPA的磁碟組,其包含兩個故障組:CONTROLLER1和ONTROLLER2。

該示例還對該磁碟組使用預設冗餘屬性NORMAL REDUNDANCY。你還可以提供磁碟名稱和磁碟的大小(可選)。如果你不提供此資訊,ASM會建立預設名稱並嘗試確定磁碟的大小。如果無法確定大小,將返回錯誤。FORCE指示指定的磁碟應該新增到指定的磁碟組,即使該磁碟已經格式化為某個ASM磁碟組的成員。對未格式化為某個ASM磁碟組的成員的磁碟使用FORCE選項將返回錯誤。

如第二個語句所示,你可以刪除磁碟組及其所有檔案。為了避免意外刪除,如果磁碟組除內部ASM後設資料外還包含任何其它檔案,則必須指定INCLUDING CONTENTS選項。必須先裝載磁碟組才能將其刪除。在確保未開啟任何磁碟組檔案後,將從磁碟組中刪除該組及其所有驅動器。然後,將覆蓋每個磁碟的標頭來清除ASM 格式資訊。

例子:建立磁碟組和刪除磁碟組

[ ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 16 17:17:25 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Automatic Storage Management option

SQL> create diskgroup dgroupA normal redundancy

  2  failgroup controller1 disk

  3    '/dev/raw/raw5' name diskA1 size 1G,

  4    '/dev/raw/raw6'

  5  failgroup controller2 disk

  6    '/dev/raw/raw7',

  7    '/dev/raw/raw8';

Diskgroup created.

SQL> drop diskgroup dgroupA including contents;

Diskgroup dropped.

(2)向磁碟組新增磁碟

clipboard[21]

此示例顯示如何向磁碟組新增磁碟。可以執行ALTER DISKGROUP ADD DISK命令來新增磁碟。上面第一個語句向DGROUPA磁碟組新增四個新磁碟。

第二個語句說明搜尋字串的相互影響。考慮下列配置:

/devices/A1是磁碟組DGROUPA的成員。

/devices/A2是磁碟組DGROUPA的成員。

/devices/A3是磁碟組DGROUPA的成員。

/devices/A4是候選磁碟。

第二個命令將A4新增到DGROUPA磁碟組。該命令將忽略其它磁碟,即使它們與搜尋字串相匹配,因為它們已經是DGROUPA磁碟組的一部分。上圖顯示當你向磁碟組新增磁碟時,ASM例項會確保該磁碟是可定址且可用的。然後會對該磁碟進行格式化和重新平衡。重新平衡過程比較耗費時間,因為該過程會將所有檔案的區移至新磁碟。

重新平衡不會阻止任何資料庫操作。重新平衡過程主要影響系統的I/O負載。重新平衡的能力越高,對系統施加的I/O負載越多,可用於資料庫I/O的I/O頻寬也就越少。

例子:建立一個磁碟組,然後向磁碟組中新增磁碟

SQL> create diskgroup dgroupA normal redundancy

  2  failgroup controller1 disk

  3    '/dev/raw/raw5' name diskA1 size 1G

  4  failgroup controller2 disk

  5    '/dev/raw/raw7';

Diskgroup created.

SQL> alter diskgroup dgroupA add disk '/dev/raw/raw8' name A8;

Diskgroup altered.

(3)其它ALTER命令

從dgroupA刪除磁碟:

ALTER DISKGROUP dgroupA DROP DISK A5;

在單個命令中新增和刪除磁碟:

ALTER DISKGROUP dgroupA

DROP DISKA6

ADD FAILGROUP controller3 DISK '/dev/sdi1' NAME A9;

取消磁碟刪除操作:

ALTER DISKGROUP dgroupA UNDROP DISKS;

第一個語句顯示如何從DGROUPA磁碟組中刪除一個磁碟。

第二個語句顯示如何在單個命令中新增和刪除磁碟。這種方式的一大優點就是在該命令完成後才開始重新平衡操作。

第三個語句顯示如何取消磁碟刪除操作。UNDROP命令僅對在刪除中的磁碟起作用;如果已經完成刪除,則不能UNDROP。

如果需要,可以使用下面的語句對DGROUPB磁碟組進行重新平衡:

ALTER DISKGROUP dgroupB REBALANCE POWER 5;

通常不需要執行這個命令,因為在新增、刪除磁碟或調整磁碟大小時會自動執行重平衡。但是如果你希望使用POWER子句覆蓋由初始化引數ASM_POWER_LIMIT定義的預設速度,此命令非常有用。透過重新輸入具有新級別的命令,可以更改正在進行的重平衡操作的能力級別。能力級別為零會導致重平衡操作中斷,直到隱式或顯式重新呼叫該命令。

下面的語句可以解除安裝DGROUPA:

ALTER DISKGROUP dgroupA DISMOUNT;

透過MOUNT和DISMOUNT選項,你可以使一個或多個磁碟組對資料庫例項可用或不可用。

在支援單例項的叢集ASM環境中,當該例項故障轉移到另一節點時,手動解除安裝和裝載功能非常有用。

例子:從磁碟組中刪除磁碟

SQL> alter diskgroup dgroupA drop disk A8;

Diskgroup altered.

例子:從磁碟組中刪除磁碟,並增加一個故障組,包含一個磁碟

SQL> alter diskgroup dgroupA

  2  drop disk diskA1

  3  add failgroup controler3 disk '/dev/raw/raw6' name A6;

Diskgroup altered.

例子:取消刪除磁碟組中的磁碟

SQL> alter diskgroup dgroupA undrop disks;

Diskgroup altered.

(4)管理目錄

ASM 磁碟組中檔案和目錄的管理自動化水平相當高,應該說基本上完全不需要DBA參與,當然,也是可以手動修改的。

  建立新目錄:

SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';

Diskgroup altered.

  修改目錄名:

SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1'

  2  to '+ASMDISK2/JSS2';

Diskgroup altered.

  刪除目錄名:

SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';

Diskgroup altered.

實際上,ASM中目錄和檔案的管理,也可以透過ASMCMD命令列方式進行,該命令列進入之後,是一個類似檔案系統的管理介面,ORACLE提供了一些最基礎的,如cd、ls、mkdir、rm等等幾個有限的操作命令。

(5)管理別名

當系統自動產生的名稱太過複雜不怎麼好記,DBA可以透過別名,為它建立一個簡單化的名稱,而又不會對其現有名稱造成任何影響。ASM中建立別名是透過alter diskgroup的alias子句實現,支援增加/修改/刪除等多項操作。V$ASM_ALIAS檢視中可以查詢到當前例項中建立的別名。

增加別名:

SQL> alter diskgroup asmdisk2 add alias '+ASMDISK2/repdb/datafile/temp01.dbf' for '+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831';

Diskgroup altered.

修改別名:

SQL> alter diskgroup asmdisk2 rename alias '+ASMDISK2/repdb/datafile/temp01.dbf' to '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';

Diskgroup altered.

刪除別名:

SQL> alter diskgroup asmdisk2 drop alias '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';

Diskgroup altered.

不管是新增/刪除或是修改別名,對原有檔案路徑均不會有影響。

(6)使用EM管理ASM

可以透過EM管理磁碟組,設定相關引數,管理使用者以及建立ASM叢集檔案系統。

clipboard[22]


21、ASM磁碟組相容性

每個磁碟組的相容性都可以分別控制:

– ASM相容性控制磁碟上ASM後設資料結構。

– RDBMS相容性控制最低使用者客戶機級別。

– ADVM相容性確定磁碟組是否可以包含Oracle ASM卷。

設定磁碟組相容性的操作是不可逆的。

clipboard[23]

適用於ASM磁碟組的相容性有三種:涉及描述磁碟組的永續性資料結構,客戶機(磁碟組的使用者)的功能,以及能否在磁碟組中包含卷。這些屬性分別稱為“ASM compatibility”、“RDBMS compatibility”和“ADVM compatibility”。每個磁碟組的相容性都可以獨立控制。這是支援包含Oracle Database 10g和Oracle Database 11g磁碟組的異構環境所必需的。

這三種相容性設定是每個ASM 磁碟組的屬性:

  • RDBMS相容性是指RDBMS例項的最低相容版本,此設定將允許該例項裝載磁碟組。該相容性確定了ASM例項與資料庫(RDBMS)例項間交換訊息的格式。ASM例項可以支援以不同相容性設定執行的不同RDBMS客戶機。每個例項的資料庫相容版本設定必須高於或等於該資料庫使用的所有磁碟組的RDBMS相容性。資料庫例項與ASM 例項通常在不同的Oracle主目錄中執行。這意味著資料庫例項可以執行與ASM例項不同的軟體版本。當資料庫例項第一次連線到ASM 例項時,系統會協定這兩個例項都支援的最高版本。資料庫的相容性引數設定、資料庫的軟體版本以及磁碟組的RDBMS相容性設定確定了資料庫例項能否裝載給定的磁碟組。
  • ASM相容性是指控制磁碟上ASM後設資料的資料結構格式的永續性相容性設定。磁碟組的ASM相容性級別必須始終高於或等於同一磁碟組的RDBMS相容性級別。ASM相容性只與ASM後設資料的格式相關。檔案內容的格式取決於資料庫例項。例如,可以將某個磁碟組的ASM相容性設定為11.0,而將該磁碟組的RDBMS相容性設定為10.1。這意味著該磁碟組只能由軟體版本為11.0或更高的ASM軟體管理,而軟體版本高於或等於10.1的任何資料庫客戶機都可以使用該磁碟組。
  • ADVM相容性屬性確定磁碟組能否包含Oracle ASM卷。該值必須設定為11.2或更高。設定該屬性前,必須確保COMPATIBLE.ASM的值為11.2或更高。此外,還必須載入ADVM卷驅動程式。

僅當永續性磁碟結構或訊息傳送協議發生更改時,才需要提高磁碟組的相容性。但是,提高磁碟組相容性是一個不可逆的操作。可以使用CREATE DISKGROUP命令或ALTER DISKGROUP命令來設定磁碟組相容性。

除了磁碟組相容性,相容引數compatibility(資料庫相容版本)確定了啟用的功能;該引數是適用於資料庫還是ASM例項取決於instance_type引數。例如,將該引數設定為10.1將禁止使用Oracle Database 11g中引入的任何新功能(磁碟聯機/離線、可變區等)。

clipboard[24]


22、ASM磁碟組屬性

clipboard[25]

當建立或更改ASM磁碟組時,都可以使用CREATE DISKGROUP和ALTER DISKGROUP命令新增的ATTRIBUTE子句更改其屬性。上圖中的表簡要概述了這些屬性:

  • ASM允許使用在建立磁碟組時指定的不同分配單元(AU)大小。AU 大小可以是1、2、4、8、16、32 或64 MB。
  • 可以用分鐘(M)、小時(H) 或天(D)為單位指定DISK_REPAIR_TIME。如果省略單位,則使用預設值H。如果省略此屬性,則使用預設值3.6H。可以使用ALTER DISKGROUP ... DISK OFFLINE語句覆蓋此屬性。
  • 還可以為指定的模板指定冗餘屬性。
  • 還可以為指定的模板指定條帶化屬性。

對於每個已定義的磁碟組,可以透過V$ASM_ATTRIBUTE檢視檢視所有已定義的屬性。

例子:透過v$asm_attribute檢視ASM磁碟組屬性

SQL> select name,value from v$asm_attribute;

NAME                                               VALUE

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

disk_repair_time                                   3.6h

au_size                                            1048576

sector_size                                        512

compatible.asm                                     11.2.0.0.0

compatible.rdbms                                   10.1.0.0.0


23、使用EM編輯磁碟組屬性

EM提供了一種簡便方式用於儲存和檢索與磁碟組相關的環境設定。

在“Create Disk Group(建立磁碟組)”頁和“Edit Advanced Attributes for Disk Group(編輯磁碟組的高階屬性)”頁中都可以設定相容屬性。

對於低於11g的ASM例項,預設ASM相容性和客戶機相容性都為10.1。對於11g的ASM 例項,預設ASM相容性為11.2,資料庫相容性為10.1。

clipboard[26]

clipboard[27]

clipboard[28]


24、檢索ASM後設資料

clipboard[29]

ASM例項有基於記憶體的後設資料表,這些表透過動態效能檢視呈現。可以使用SQL*Plus、asmcmd或Enterprise Manager查詢該資料。

第一個示例在v$asm_file和v$asm_alias之間建立了一個聯接,以便顯示關於資料庫資料檔案的後設資料。如果針對ASM例項執行此查詢,根據語法的定義方式,將檢索多個資料庫的資料檔案。需要使用附加過濾條件才能將輸出限定為單個資料庫。

asmcmd實用程式的優點在於不需要SQL語言知識就能連線到ASM例項並檢索後設資料。它使用與UNIX 表示法類似的樣式。第二個示例使用asmcmd命令來檢索SQL示例中的後設資料。另一個優點是輸出限制為單個資料庫的資料檔案,因為列出的路徑包含資料庫名稱orcl和檔案型別datafile。

在Oracle Enterprise Manager Database Control中,只需在各個ASM Web頁中瀏覽就能檢視大多數ASM 後設資料。

例子:使用SQL*Plus檢視ASM後設資料

SQL> select f.type,f.redundancy,f.striped,f.modification_date,a.system_created,a.name

  2  from v$asm_alias a,v$asm_file f

  3  where a.file_number=f.file_number and a.group_number=f.group_number and type='DATAFILE';

TYPE                 REDUND STRIPE MODIFICAT S NAME

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

DATAFILE             UNPROT COARSE 16-DEC-15 Y SYSTEM.256.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y SYSAUX.257.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y UNDOTBS1.258.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y USERS.259.893370691

DATAFILE             UNPROT COARSE 16-DEC-15 Y EXAMPLE.265.893370807

DATAFILE             UNPROT COARSE 16-DEC-15 N ts01.dbf

DATAFILE             UNPROT COARSE 16-DEC-15 Y TS01.267.895795017

7 rows selected.

例子:使用asmcmd檢視ASM後設資料

[ ~]$ asmcmd

ASMCMD> ls -l +DATA/STONE/DATAFILE

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    EXAMPLE.265.893370807

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    SYSAUX.257.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    SYSTEM.256.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    TS01.267.895795017

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    UNDOTBS1.258.893370691

DATAFILE  UNPROT  COARSE   DEC 16 07:00:00  Y    USERS.259.893370691

                                            N    ts01.dbf => +DATA/STONE/DATAFILE/TS01.267.895795017

例子:使用EM檢視ASM後設資料

clipboard[30]


25、ASM 快速映象重新同步概覽

clipboard[31]

ASM快速映象重新同步可以顯著減少重新同步臨時故障磁碟所需的時間。如果某個磁碟因臨時故障而離線,ASM將跟蹤在中斷期間發生修改的區。臨時故障被修復後,ASM可以快速地僅重新同步在中斷期間受影響的ASM 磁碟區。

此功能假設受影響的ASM磁碟的內容未被破壞或修改。

某個ASM磁碟路徑出現故障時,如果您已設定了相應磁碟組的DISK_REPAIR_TIME屬性,則ASM 磁碟會離線,但不會被刪除。此屬性的設定確定了ASM可容忍的磁碟中斷持續時間;如果中斷在此時間範圍內,則修復完成後仍可重新同步。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-1976259/,如需轉載,請註明出處,否則將追究法律責任。

相關文章