欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
oracle11g新特性-自動(dòng)存儲管理

自動(dòng)存儲管理

用于管理 ASM 實(shí)例的新的 SYSASM 角色、用于降低共享池使用的可變的區大小,以及實(shí)例能夠讀取磁盤(pán)組的特定磁盤(pán),這些都是 Oracle 數據庫 11g ASM 中引入的一些重要新特性。

下載 Oracle 數據庫 11g

SYSASM 角色

自動(dòng)存儲管理 (ASM) 是在 Oracle 數據庫 10g 中引入的,它在某種程度上打破了 DBA和系統管理員之間在存儲分配功能上的界限。ASM 實(shí)例由 DBA 管理,正如常規的 DBA 工作需要以 SYSDBA角色進(jìn)行連接一樣。但是隨著(zhù)時(shí)間的推移,角色變得更加清楚,我們看到發(fā)生了基本的分工。因此,一些 ASM操作返還給系統管理員。在某些情況下,會(huì )出現單獨的一類(lèi)“ASM 管理員”,他們只進(jìn)行 ASM 管理,并不涉及數據庫管理。

然而,這個(gè)新角色的出現引發(fā)了一個(gè)沖突:需要用 SYSDBA 角色來(lái)管理 ASM 實(shí)例,但運行在同一臺服務(wù)器上的生產(chǎn)數據庫的許多 DBA 感覺(jué)很難共享該角色。

Oracle 數據庫 11g 消除了這個(gè)沖突。有一個(gè)新角色 SYSASM,只用于管理 ASM 實(shí)例。這類(lèi)似于針對 ASM 實(shí)例的 SYSDBA 角色。下面將演示如何連接到 ASM 實(shí)例:

$ sqlplus / as sysasmSQL*Plus: Release 11.1.0.6.0 - Production on Fri Sep 28 20:37:39 2007Copyright (c) 1982, 2007, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Miningand Real Application Testing optionsSQL>
注意連接子句“as sysasm”。在 Oracle 數據庫 11g 第 1 版中,該 SYSASM角色被授予具有 SYSDBA 權限的操作系統組(大多數情況下為“dba”)。換言之,Unix 中屬于 dba 組的用戶(hù)也可以作為 SYSASM進(jìn)行連接。(今后的版本會(huì )更改這種安排;sysdba 和 sysasm 角色將分成不同的 OS 組。)

以 sys 用戶(hù)身份連接到 ASM 實(shí)例后,您可以更新在口令文件中更新的 SYS 口令:

SQL> alter user sys identified by oracle2  /User altered.
盡管這個(gè) ASM 實(shí)例不帶數據庫,您仍然可以創(chuàng )建用戶(hù):
SQL> create user asmoper identified by dumboper2  /User created.
現在,您可以將 SYSASM 角色授予該用戶(hù):
SQL> grant sysasm to asmoper;Grant succeeded.
進(jìn)行授權之后,asmoper 用戶(hù)(而非 SYS 用戶(hù))可以執行所有 ASM 管理功能。該用戶(hù)可以通過(guò)子句 as sysasm 進(jìn)行連接,該子句類(lèi)似于常規數據庫中的“as sysdba”子句。
$ sqlplus asmoper/dumboper as sysasm
這個(gè)特性實(shí)現了迫切需要的 ASM 和 DBA 職權分離。

可變的區大小

ASM 存儲中結構最小的元素是分配單元 (AU),與 Oracle 數據庫塊的概念類(lèi)似。創(chuàng )建表和索引之類(lèi)的數據庫段時(shí),分配的最小單元不是一個(gè)塊,而是一個(gè)包含多個(gè)塊的區。您可以更改段的區大小。

ASM 中有一個(gè)非常類(lèi)似的概念:在 ASM 磁盤(pán)組上創(chuàng )建文件時(shí),最小的可尋址單元是區,而不是 AU。在 Oracle 數據庫 10g 中,AU 和區是可互換的;一個(gè)區只包含一個(gè) AU。

10g 兼容的磁盤(pán)組需要共享池為每個(gè)區提供內存。對于大型數據庫,這又需要大量?jì)却?。因此,如?AU 大小為 1MB(默認值),1TB 的數據庫需要在共享池中管理超過(guò)一百萬(wàn)個(gè)區。

在 Oracle 數據庫 11g 中,區大小不再等于 AU 大小。創(chuàng )建文件時(shí),區大小從 1MB開(kāi)始。文件達到某個(gè)閾值時(shí),區大小增加至 4MB,然后是 16MB,最后當達到某個(gè)閾值后,區大小為 64MB。您不必擔心大??;ASM實(shí)例會(huì )自動(dòng)分配合適的區大小。由于較少數量的區即可容納大量數據,因此可以大大減少共享池中的區總數,從而將性能提高數倍。

當文件急劇擴大和縮小時(shí),可變的區大小可能會(huì )產(chǎn)生一些碎片。如果需要進(jìn)行碎片整理,ASM 將自動(dòng)解決該問(wèn)題。

可變的 AU 大小

正如我在前面提到的,AU 的默認大小為 1MB。對許多數據庫而言,這可能足夠大了,但請考慮一個(gè)大小超過(guò) 10TB 的大型數據庫。對象可能超過(guò) 1MB,因此您可能希望擴大 AU 大小以減少 AU 數量。在 Oracle 數據庫 10g 中,您可以設置一個(gè)底線(xiàn)參數來(lái)更改 AU 大小。然而,這會(huì )影響這之后創(chuàng )建的所有磁盤(pán)組,而且還需要一個(gè) ASM 實(shí)例周期來(lái)設置該參數。

在 Oracle 數據庫 11g 中,只需在創(chuàng )建 DG 期間設置一個(gè)磁盤(pán)組屬性 au_size 即可輕松完成此任務(wù),如下所示:

create diskgroup dg6external redundancydisk‘/dev/raw/raw13‘a(chǎn)ttribute ‘a(chǎn)u_size‘ = ‘2M‘
AU_SIZE 應為 1M、2M、4M、8M、16M、32M 或 64M(M 代表 MB)。您還可以將該值設成一個(gè)絕對值(單位為字節):
attribute ‘a(chǎn)u_size‘ = ‘ 2097152‘
創(chuàng )建磁盤(pán)組之后,您可以通過(guò)以下查詢(xún)來(lái)查看 AU 大?。?pre>select name, allocation_unit_sizefrom v$asm_diskgroup/NAME ALLOCATION_UNIT_SIZE------- --------------------DG1 1048576DG3 1048576DG6 2097152DG5 1048576DG4 1048576DG2 1048576注意各個(gè)磁盤(pán)組名稱(chēng)的 AU 大小?,F在,您可以創(chuàng )建具有合適 AU 大小的磁盤(pán)組,以滿(mǎn)足每個(gè)應用程序的需要。

 

磁盤(pán)組屬性

ASM 是一個(gè)適用于從 10g 到當前版本的 Oracle 數據庫的存儲平臺。因此,11g 上的 ASM 實(shí)例可以保存 10g 第 1 版、10g 第 2 版以及 11g 第 1 版(以及更高版本)的數據庫。只要 ASM 版本與 RDBMS 的版本相同或者更高,就可以在該 ASM 實(shí)例上創(chuàng )建數據庫。如果 ASM 和 RDBMS 實(shí)例的版本不同,它們將如何通信呢?很簡(jiǎn)單:ASM 將消息轉換成適合 RDBMS 的版本。

默認情況下,ASM 實(shí)例可以支持 10g 數據庫。但如果您希望在該 ASM 實(shí)例上僅放置 11g RDBMS,該怎么辦?無(wú)需進(jìn)行消息轉換來(lái)支持版本差異。但如果可以告訴 ASM 實(shí)例唯一支持的數據庫是 11g 第 1 版,該怎么辦?這將消除,至少可以減少消息轉換。在 Oracle 數據庫 11g 中,可以使用 ASM 兼容性和 RDBMS 兼容性磁盤(pán)組屬性實(shí)現。

首先,我們將檢查磁盤(pán)組的當前屬性:

SQL> select compatibility, database_compatibility2  from  v$asm_diskgroup3  where name = ‘DG1‘4  /COMPATIBILITY          DATABASE_COMPATIBILITY---------------------- ----------------------10.1.0.0.0             10.1.0.0.0
如您所見(jiàn),ASM 兼容性(由 COMPATIBILITY 顯示)設置為 10.1.0.0.0,這意味著(zhù)該磁盤(pán)組最高可支持 10.1ASM 結構。因此,該磁盤(pán)組可以具有任意 RDBMS 結構。另一列 DATABASE_COMPATIBILITY 顯示 RDBMS兼容性設置為 10.1。這意味著(zhù),ASM 磁盤(pán)組 DG1 可用于 10.1 版的任何 RDBMS。

由于您只希望創(chuàng )建 11g ASM 和 RDBMS 結構,因此無(wú)需擁有 10g 元素。要將該磁盤(pán)組的 ASM 兼容性屬性設置為 11.1,您可以執行以下語(yǔ)句(在 ASM 實(shí)例中):

SQL> alter diskgroup dg1 set attribute ‘compatible.asm‘=‘11.1‘;
現在,如果您檢查磁盤(pán)組的屬性:
COMPATIBILITY          DATABASE_COMPATIBILITY---------------------- ----------------------11.1.0.0.0             10.1.0.0.0
ASM 兼容性設置為 11.1;但 RDBMS 兼容性仍然設置為 10.1。要將它也更改為 11.1,請使用:
SQL> alter diskgroup dg1 set attribute ‘compatible.rdbms‘=‘11.1‘;
需要特別注意的是:兼容性是針對磁盤(pán)組設置的,而不是針對整個(gè) ASM 實(shí)例。使用該特性,您只需使用一個(gè) ASM 實(shí)例即可滿(mǎn)足所有數據庫版本類(lèi)型的需要。根據所使用的版本,您可以相應地設置屬性,從而減少版本間通信。

 

首選的鏡像讀取

在 Oracle RAC 數據庫中,多個(gè)節點(diǎn)可能指向同一個(gè) ASM 實(shí)例。如果您在一個(gè) ASM 磁盤(pán)組中使用正常鏡像,訪(fǎng)問(wèn)磁盤(pán)的行為可能并不像您預想的那樣。

假設您有一個(gè)名為 DG2 的磁盤(pán)組,它包含兩個(gè) failgroup(DG2_0000 和 DG2_0001),每個(gè)具有一個(gè)單獨的磁盤(pán),如下圖所示:

 

 

向磁盤(pán)組 DG2 寫(xiě)入某些內容時(shí),會(huì )以循環(huán)方式寫(xiě)入區中:第一個(gè)進(jìn)入 DG2_0000,副本進(jìn)入 DG2_0001,第二個(gè)進(jìn)入DG2_0001,副本在 DG2_0000 上,第三個(gè)進(jìn)入 DG2_0000,副本在 DG2_0001 上,依此類(lèi)推。ASM以這種方式在一個(gè)磁盤(pán)上維護另一個(gè)磁盤(pán)的備份。

但是在讀取這些區時(shí),始終從主 failgroup(在本例中為 DG2_0000)中讀取,而不是從輔助 failgroup (DG2_0001) 中讀取。僅當主 failgroup 不可用時(shí)才讀取輔助 failgroup。

這在大多數情況下可以正常工作,但有時(shí)可能不是所希望的。在 Oracle 數據庫 11g中,您可以將一個(gè)節點(diǎn)配置為從特定 failgroup 中讀取。例如,在上面的示例中,如果您希望將實(shí)例 1 配置為從 failgroupDG2_0000 中讀取,將實(shí)例 2 配置為從 DG2_0001 中讀取,您可以設置這些磁盤(pán)組的首選讀取組。在實(shí)例 1中執行的以下命令導致磁盤(pán)組 DG2 和 DG3 中的 failgroup DG2_0000 和 DG3_0000 分別是實(shí)例 1上的首選磁盤(pán):
SQL> alter system set asm_preferred_read_failure_groups = ‘DG2.DG2_0000‘,‘DG3.DG3_0000‘
同樣,在另一個(gè)實(shí)例上,您可以執行以下命令使其他 failgroup 成為首選磁盤(pán):
SQL> alter system set asm_preferred_read_failure_groups = ‘DG2.DG2_0001‘,‘DG3.DG3_0001‘
執行這些語(yǔ)句后,當來(lái)自實(shí)例 1 的某個(gè)會(huì )話(huà)希望從磁盤(pán)組 DG2 中讀取時(shí),將讀取磁盤(pán) DG2_0000。如果該磁盤(pán)不可用,則讀取另一個(gè)磁盤(pán) DG2_0001。同樣,當某個(gè)連接到實(shí)例 2 的會(huì )話(huà)讀取數據時(shí),將讀取磁盤(pán) DG2_0001。

如果您要檢查磁盤(pán)組中不同磁盤(pán)的使用情況,可以參考一個(gè)新的字典視圖 V$ASM_DISK_IOSTAT,它模擬了 UNIX 系統中的 IOSTAT 實(shí)用程序:

selectinstname,dbname,group_number,failgroup,disk_number,reads,writesfrom v$asm_disk_iostatorder by 1,2,3,4,5,6/
示例輸出如下:
INSTNAM DBNAME   GROUP_NUMBER FAILGROUP  DISK_NUMBER      READS     WRITES------- -------- ------------ ---------- ----------- ---------- ----------PRONE31  PRONE3             2 DG2_0000             0       4450        910PRONE32  PRONE3             2 DG2_0001             1       2256        910PRONE31  PRONE3             3 DG3_0000             0        300         29PRONE32  PRONE3             3 DG3_0001             1        560         29
該輸出顯示了實(shí)例 PRONE31 和 PRONE32 的首選 failgroup 分別為 DG2_0000 和DG2_0001。注意 WRITES 列;它們在 910 處相同。這是因為統一寫(xiě)入到兩個(gè)磁盤(pán)中?,F在,注意 READS 列。針對實(shí)例PRONE31 和 PRONE32 分別為 4450 和 2256。為什么?因為實(shí)例 PRONE3 發(fā)出多次讀取命令,這些讀取均來(lái)自于其首選failgroup DG2_0000。對于磁盤(pán)組 DG3,實(shí)例 PRONE32 發(fā)出多次來(lái)自于其首選 failgroup (DG3_0001)的讀取命令,因此該磁盤(pán)顯示更多讀取。

首選讀取在“拉伸”集群(節點(diǎn)之間地理距離較遠的集群)中尤為有用。首選讀取通過(guò)將讀取隔離到特定磁盤(pán),加快了讀取速度。

Drop Diskgroup Force

當一個(gè)磁盤(pán)不再可用時(shí)(損壞到無(wú)法修復的程度)會(huì )發(fā)生什么?您希望完全刪除該磁盤(pán)組然后重新創(chuàng )建,或者將該磁盤(pán)組的磁盤(pán)添加到其他磁盤(pán)組。該磁盤(pán)組尚未掛載。由于其中一個(gè)磁盤(pán)缺少,您甚至無(wú)法掛載它。要刪除該磁盤(pán)組,您必須掛載它,但由于缺少磁盤(pán),您無(wú)法進(jìn)行掛載 —絕對是一個(gè)“無(wú)法擺脫的困境”。您應該做些什么?

在 Oracle 數據庫 10g 中,您可以使用一種變通方法 — 使用 dd 命令擦除磁盤(pán)表頭:
$ dd if=/dev/zero of=/dev/raw/raw13 bs=1024 count=4
這將在磁盤(pán) /dev/raw/raw13 的表頭中放入零,擦除所有信息。如果該方法生效,它將完全擦除磁盤(pán)表頭的信息,并刪除用作磁盤(pán)組一部分的磁盤(pán)。

在 Oracle 數據庫 11g 中,您不必求助于該變通方法。您只需執行帶 force 選項的 drop 命令:

SQL> drop diskgroup dg7 force including contents;
使用該命令,即使沒(méi)有掛載磁盤(pán),也可以刪除磁盤(pán)組??捎玫拇疟P(pán)顯示為 FORMER;即,它們用作某個(gè)磁盤(pán)組的一部分。(注:您必須使用“including contents”子句。)

元數據備份和恢復

許多人將 ASM 看作一個(gè)具有自己的存儲的數據庫。事實(shí)并非如此,ASM 并不存儲數據,而是由數據庫進(jìn)行存儲。但 ASM 實(shí)例需要維護磁盤(pán)組名稱(chēng)、其中的磁盤(pán)、目錄等元數據。這些元數據存儲在磁盤(pán)表頭中。

假設所有磁盤(pán)都損壞且表頭信息消失,您該怎么辦?當然,您已經(jīng)使用 RMAN 對數據庫進(jìn)行了備份,因此可以恢復。但您只有在創(chuàng )建了所有磁盤(pán)組和目錄后才能進(jìn)行恢復。希望您保留了所有記錄。(對嗎?)即使您進(jìn)行了備份,這個(gè)過(guò)程也需要時(shí)間。

如果您進(jìn)行了備份,該怎么辦呢?在 Oracle 數據庫 11g 中,您可以使用 md_backup 命令通過(guò) ASM 命令行選項 (ASMCMD) 備份 ASM 實(shí)例的元數據。

$ asmcmd -pASMCMD [+] > md_backup
該命令將創(chuàng )建一個(gè)名為 ambr_backup_intermediate_file 的文件。以下是該文件從頂部開(kāi)始的一部分:
@diskgroup_set = ({‘DISKSINFO‘ => {‘DG1_0000‘ => {‘DG1_0000‘ => {‘TOTAL_MB‘ => ‘103‘,‘FAILGROUP‘ => ‘DG1_0000‘,‘NAME‘ => ‘DG1_0000‘,‘DGNAME‘ => ‘DG1‘,‘PATH‘ => ‘/dev/raw/raw5‘}}},‘DGINFO‘ => {‘DGTORESTORE‘ => 0,‘DGCOMPAT‘ => ‘10.1.0.0.0‘,‘DGNAME‘ => ‘DG1‘,‘DGDBCOMPAT‘ => ‘10.1.0.0.0‘,‘DGTYPE‘ => ‘EXTERN‘,‘DGAUSZ‘ => ‘1048576‘},‘ALIASINFO‘ => {},‘TEMPLATEINFO‘ => {‘6‘ => {‘DGNAME‘ => ‘DG1‘,‘STRIPE‘ => ‘COARSE‘,‘TEMPNAME‘ => ‘ASM_STALE‘,‘REDUNDANCY‘ => ‘UNPROT‘,‘SYSTEM‘ => ‘Y‘... and more ...
為了節省空間,此處沒(méi)有顯示整個(gè)文件。它記錄了所有磁盤(pán)組、磁盤(pán)、目錄、磁盤(pán)屬性,等等。默認情況下,該文件會(huì )記錄所有磁盤(pán)組。如果您希望僅備份特定磁盤(pán)組,可以使用 -g 選項。此外,您還可以使用 -b 選項創(chuàng )建特定的命名文件。
ASMCMD [+] > md_backup -g dg1 -b prolin3_asm.backup
這會(huì )將磁盤(pán)組 DG1 的元數據備份到一個(gè)名為 prolin3_asm.backup 的文件,而不是默認的 ambr_backup_intermediate_file。該文件必須是新建的,如果在生成前該文件已存在,您必須刪除它。

現在,讓我們看看恢復操作是如何工作的?;謴陀胁煌念?lèi)型。最簡(jiǎn)單的用法是恢復一個(gè)以前刪除的磁盤(pán)組及其目錄。首選,在磁盤(pán)組上創(chuàng )建一個(gè)目錄:

ASMCMD [+] > cd DG7ASMCMD [+DG7] > mkdir TESTASMCMD [+DG7] > lsTEST/
該磁盤(pán)組有一個(gè)名為 TEST 的目錄?,F在,備份該磁盤(pán)組:
ASMCMD [+] > md_backup -g dg7 -b g7.backup
備份之后,假設您刪除該磁盤(pán)組來(lái)模擬一次意外刪除:
SQL> drop diskgroup dg7;Diskgroup dropped.
現在,磁盤(pán)組 DG7 已從 ASM 實(shí)例刪除,您希望使用以前的備份恢復它??梢允褂?md_restore 命令恢復它:
$ asmcmd md_restore -b dg7.backup -t fullCurrent Diskgroup being restored: DG7Diskgroup DG7 created!System template TEMPFILE modified!System template FLASHBACK modified!System template ARCHIVELOG modified!System template BACKUPSET modified!System template XTRANSPORT modified!System template DATAGUARDCONFIG modified!System template CONTROLFILE modified!System template AUTOBACKUP modified!System template DUMPSET modified!System template ONLINELOG modified!System template PARAMETERFILE modified!System template ASM_STALE modified!System template CHANGETRACKING modified!System template DATAFILE modified!Directory +DG7/TEST re-created!
看看輸出;它創(chuàng )建了該磁盤(pán)組以及模板和目錄。如果以前有任何數據,當然,這些數據將丟失。md_backup 不是數據的備份,而是 ASM 實(shí)例元數據的備份。表面上,數據是由 RMAN 備份的。創(chuàng )建磁盤(pán)組和所有目錄之后,您可以將 RMAN 備份恢復到該磁盤(pán)組。

另一個(gè)選項 -f 使您可以將命令放在一個(gè)腳本文件中,而不是執行這些命令:

ASMCMD [+] > md_restore -b dg7.backup -t full -f cr_dg7.sql
它會(huì )創(chuàng )建一個(gè)名為 cr_dg7.sql 的 SQL 腳本,該腳本用于創(chuàng )建磁盤(pán)組以及所有其他對象。您可以在 ASM 實(shí)例中手動(dòng)運行該腳本。該文件如下所示:
create diskgroup DG7 EXTERNAL redundancy  disk ‘/dev/raw/raw14‘ name DG7_0000 size 100M ;alter diskgroup /*ASMCMD AMBR*/DG7 alter template TEMPFILE attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template FLASHBACK attributes (UNPROTECTED FINE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template ARCHIVELOG attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template BACKUPSET attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template XTRANSPORT attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template DATAGUARDCONFIG attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template CONTROLFILE attributes (UNPROTECTED FINE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template AUTOBACKUP attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template DUMPSET attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template ONLINELOG attributes (UNPROTECTED FINE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template PARAMETERFILE attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template ASM_STALE attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template CHANGETRACKING attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR*/DG7 alter template DATAFILE attributes (UNPROTECTED COARSE);alter diskgroup /*ASMCMD AMBR */ DG7 add directory ‘+DG7/TEST‘;
該特性最有用的應用之一是記錄 ASM 實(shí)例的元數據。您可以定期進(jìn)行備份,也可以在一些重大更改(如添加磁盤(pán)組,添加/刪除磁盤(pán),或者創(chuàng )建目錄)后進(jìn)行備份。

檢查磁盤(pán)

ASM 用戶(hù)對傳統卷管理器最大的抱怨之一是其通過(guò)命令行進(jìn)行諸多檢查的能力。ASM 命令行選項 (ASMCMD) 在很大程度上彌補了這個(gè)空白。在 Oracle 數據庫 11g 中,ASMCMD 提示符中的一些其他命令可以使 ASM 實(shí)例的管理變得極其簡(jiǎn)單。示例之一就是您在前面看到的元數據備份。另一點(diǎn)值得關(guān)注的是用于檢查實(shí)例管理的磁盤(pán)的命令。該命令為 lsdsk。

ASMCMD> lsdskPath/dev/raw/raw10/dev/raw/raw11/dev/raw/raw13... snipped ...
沒(méi)有任何標志,該命令僅列出實(shí)例所有可用的磁盤(pán)。有幾個(gè)可以對輸出進(jìn)行修改的標志。最常用的是 -k,如下所示:
ASMCMD> lsdsk -kTotal_MB  Free_MB  OS_MB  Name      Failgroup  Library  Label  UDID  Product  Redund   Path103       41    103  DG4_0000  DG4_0000   System                         UNKNOWN  /dev/raw/raw10103       41    103  DG5_0000  DG5_0000   System                         UNKNOWN  /dev/raw/raw11... snipped ...
另一個(gè)標志 -s 顯示了磁盤(pán)與 I/O 有關(guān)的各種統計信息:
ASMCMD> lsdsk -sReads   Write  Read_Errs  Write_Errs   Read_time  Write_Time  Bytes_Read  Bytes_Written  Path207485  207916          0           0  245.820323  159.634398   851251200                 /dev/raw/raw10207481  207912          0           0  229.996931   144.73954   851234816                 /dev/raw/raw11
要快速檢查磁盤(pán)的狀態(tài),使用 -p 標志:
ASMCMD> lsdsk -pGroup_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path4         0  3915926174  CACHED      MEMBER       ONLINE     NORMAL  /dev/raw/raw105         0  3915926175  CACHED      MEMBER       ONLINE     NORMAL  /dev/raw/raw116         0  3915926193  CACHED      MEMBER       ONLINE     NORMAL  /dev/raw/raw13
最后,-t 標志顯示與修復相關(guān)的信息(將在本文后面進(jìn)行介紹):
ASMCMD> lsdsk -tCreate_Date  Mount_Date  Repair_Timer  Path27-SEP-07    28-SEP-07   0             /dev/raw/raw1027-SEP-07    28-SEP-07   0             /dev/raw/raw1128-SEP-07    28-SEP-07   0             /dev/raw/raw13
目前為止,ASMCMD 選項提取了 ASM 實(shí)例中各個(gè) V$ 視圖的值。但元數據存儲在磁盤(pán)中。如果實(shí)例不可用,應該有一種方法可以從磁盤(pán)中提取這些信息。在 Oracle 數據庫 11g 中,lsdsk 命令有一個(gè)標志“I”(大寫(xiě)的“I”,不是小寫(xiě)的“L”),它可以提取磁盤(pán)表頭(而非 V$ 視圖)的信息。以下是 -k 標志從磁盤(pán)表頭提取信息的一個(gè)示例。
ASMCMD> lsdsk -IkTotal_MB  Name      Failgroup  Path103  DG4_0000  DG4_0000   /dev/raw/raw10103  DG5_0000  DG5_0000   /dev/raw/raw11102  DG6_0000  DG6_0000   /dev/raw/raw13
要列出特定磁盤(pán)組(例如,DG1)中的磁盤(pán),您可以使用 -d 標志,如下所示:
ASMCMD> lsdsk -t -d dg1Create_Date  Mount_Date  Repair_Timer  Path28-SEP-07    28-SEP-07   0             /dev/raw/raw5
也可以為磁盤(pán)提供一個(gè)模式:
ASMCMD> lsdsk -t /dev/raw/raw1*Create_Date  Mount_Date  Repair_Timer  Path27-SEP-07    28-SEP-07   0             /dev/raw/raw1027-SEP-07    28-SEP-07   0             /dev/raw/raw1128-SEP-07    28-SEP-07   0             /dev/raw/raw1328-SEP-07    05-OCT-07   0             /dev/raw/raw14
該命令僅顯示與該模式匹配的磁盤(pán)。最后,無(wú)需記住這些選項;help 命令可以顯示所有選項:
ASMCMD> help lsdsklsdsk [-ksptcgHI] [-d <diskgroup_name>] [pattern]
lsdsk 命令為 ASM 領(lǐng)域提供了更高級的卷管理(如功能)。

受限制的掛載

假設您向某個(gè)磁盤(pán)組添加了一個(gè)磁盤(pán)。ASM 會(huì )立即啟動(dòng)重新均衡操作。該操作聯(lián)機進(jìn)行,因此 ASM 必須通過(guò)一個(gè)復雜的鎖定系統與塊訪(fǎng)問(wèn)和更改的 RDBMS 實(shí)例協(xié)調。在 RAC 數據庫中,該過(guò)程很棘手,因為不僅要在數據庫中管理鎖定,還要跨多個(gè)實(shí)例管理鎖定。

如果將磁盤(pán)添加到一個(gè)現在無(wú)人使用的磁盤(pán)組,將會(huì )怎樣呢?如果 ASM 可以通過(guò)某種方式了解到該情況,它可以消除鎖定機制,從而加快該過(guò)程。

在 Oracle 數據庫 11g 中,一種新的磁盤(pán)組掛載方式使得這一切得以實(shí)現??梢允褂?RESTRICT 子句掛載磁盤(pán)組,如下所示:

alter diskgroup dg7 mount restricted;
以這種方式掛載磁盤(pán)組之后,ASM 實(shí)例可以知道底層磁盤(pán)上操作的互斥性,從而可以將鎖定機制的影響降至最小。這反過(guò)來(lái)又會(huì )影響磁盤(pán)操作,例如,可以加快重新均衡的速度。

快速故障修復

考慮一個(gè)具有兩個(gè) failgroup 的磁盤(pán)組 DG2,每個(gè) failgroup有一個(gè)磁盤(pán)。當其中一個(gè)磁盤(pán)的某個(gè)區域損壞時(shí),對該磁盤(pán)組而言并不是致命的打擊。由于進(jìn)行了鏡像,因此可以從另一個(gè)磁盤(pán)讀取損壞的區,從而使磁盤(pán)和操作能夠繼續進(jìn)行。但是磁盤(pán)損壞的部分發(fā)生了什么?

在 Oracle 數據庫 10g 中,損壞的磁盤(pán)會(huì )脫機,它或另一個(gè)磁盤(pán)必須出現在磁盤(pán)組中。如果添加了新磁盤(pán),必須要從用作鏡像的其余磁盤(pán)完全克隆。但如果只有幾個(gè)塊損壞,復制(例如)34GB 磁盤(pán)的內容并不是一個(gè)高效的方法。

因此,在 Oracle 數據庫 11g 中,修復磁盤(pán)損壞的部分,而不是復制整個(gè)磁盤(pán)。該特性使用磁盤(pán)組的一個(gè)新屬性 disk_repair_time,該屬性指定 ASM 實(shí)例容許出錯的磁盤(pán)在多長(cháng)時(shí)間內從磁盤(pán)組中刪除。下面演示了如何將磁盤(pán)組 DG2 的屬性設為兩個(gè)小時(shí):

 

SQL> alter diskgroup dg2 set attribute ‘disk_repair_time‘=‘2H‘;
假設 DG2 有兩個(gè)磁盤(pán) DISK1 和 DISK2,DISK2 上的幾個(gè)塊突然損壞了。由于修復時(shí)間為兩小時(shí),因此 ASM 實(shí)例不會(huì )立即刪除該磁盤(pán),而是等待。如果您修復了 DISK2 上的問(wèn)題并再次將其聯(lián)機,這些故障磁盤(pán)將通過(guò)其余磁盤(pán)進(jìn)行修復。

讓我們來(lái)看一個(gè)示例。假設磁盤(pán)組 DG2 有兩個(gè) failgroup。首先,檢查磁盤(pán)組配置:

ASMCMD [+dg2] > lsdg dg2State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  NameMOUNTED  NORMAL  N         512   4096  1048576       206       78                0              39              0  DG2/
您也可以使用 du 命令進(jìn)行確認:
ASMCMD [+dg2] > duUsed_MB      Mirror_used_MB11                  22
du 命令將確認該磁盤(pán)組有 22MB,但只有 11MB 有用?,F在,檢查磁盤(pán)組 dg2 的磁盤(pán):
ASMCMD [+dg2] > lsdsk -d dg2Path/dev/raw/raw6/dev/raw/raw7
您也可以通過(guò)以下方式確認以及獲得磁盤(pán)的名稱(chēng):
SQL> select name, path2  from v$asm_disk3  where group_number = 24  /NAME     PATH-------- -----------------------------DG2_0000 /dev/raw/raw7DG2_0001 /dev/raw/raw6
這將顯示該磁盤(pán)組有兩個(gè)磁盤(pán),并顯示其名稱(chēng)?,F在,模擬一次塊損壞,并將一些字符放在設備中間:

 

$ dd if=/dev/zero of=/dev/raw/raw7 bs=1024 skip=10 count=1
這將使磁盤(pán)組中的一個(gè)磁盤(pán)損壞?,F在,使用新命令 ALTER DISKGROUP ...CHECK 對磁盤(pán)組進(jìn)行檢查。
SQL> alter diskgroup dg2 check
如果您檢查 ASM 實(shí)例的警報日志,除其他幾行外,您還會(huì )注意到以下內容:
...NOTE: starting check of diskgroup DG2WARNING: cache read a corrupted block gn=2 fn=3 indblk=1 from disk 0...NOTE: cache successfully reads gn 2 fn 3 indblk 1 count 15 from one mirror sidekfdp_checkDsk(): 89...NOTE: cache initiating offline of disk 0  group 2WARNING: initiating offline of disk 0.3915926170 (DG2_0000) with mask 0x7e...WARNING: Disk (DG2_0000) will be dropped in: (7200) secs on ASM inst: (1)...
最后一行說(shuō)明了一切。剛剛損壞的磁盤(pán)將在 7200 秒內從磁盤(pán)組中刪除,這符合您之前在修復計時(shí)器中設置的兩個(gè)小時(shí)。在刪除時(shí),該消息將在警報日志中重復顯示:
...WARNING: Disk (DG2_0000) will be dropped in: (5550) secs on ASM inst: (1)GMON SlaveB: Deferred DG Ops completed.Sat Oct 06 00:25:52 2007WARNING: Disk (DG2_0000) will be dropped in: (5366) secs on ASM inst: (1)GMON SlaveB: Deferred DG Ops completed.Sat Oct 06 00:28:55 2007WARNING: Disk (DG2_0000) will be dropped in: (5183) secs on ASM inst: (1)GMON SlaveB: Deferred DG Ops completed.Sat Oct 06 00:31:59 2007WARNING: Disk (DG2_0000) will be dropped in: (5000) secs on ASM inst: (1)GMON SlaveB: Deferred DG Ops completed....
最后,當計時(shí)為 0 時(shí),磁盤(pán)將被刪除,除非您修復了問(wèn)題并且磁盤(pán)經(jīng)過(guò)了快速故障修復。如果您知道磁盤(pán)不可修復,則應盡快刪除,您可以執行以下命令來(lái)加速磁盤(pán)的淘汰:
SQL> alter diskgroup dg2 offline disks in failgroup dg2_0000 drop after 1m
這將在 1 分鐘后刪除 failgroup dg2_0000,從而允許您以物理方式將其取出或者將其他磁盤(pán)移到磁盤(pán)組中。強制刪除磁盤(pán):
SQL> alter diskgroup dg2 drop disks in failgroup dg2_0001 force;
磁盤(pán)故障解決后,您可以通過(guò)執行以下命令來(lái)啟動(dòng)快速修復:
SQL> alter diskgroup dg2 online disks in failgroup dg2_0001;
這將啟動(dòng)將 failgroup DG2_0001 磁盤(pán)上損壞和更改的塊與其他磁盤(pán)組同步的過(guò)程。由于只復制幾個(gè)塊而非整個(gè)磁盤(pán),這將大大減少發(fā)生小故障后同步磁盤(pán)所需的時(shí)間。

結論

Oracle 數據庫 11g ASM 更強大、更靈活并且更易于管理?,F在,您可以確保從 RAC 數據庫的所有節點(diǎn)讀取磁盤(pán)組,即使在磁盤(pán)不完整的情況下也可以進(jìn)行刪除,更快速地修復故障,只需在共享池中分配更少的區即可管理較大的存儲,等等。

返回到“Oracle 數據庫 11g:面向 DBA 和開(kāi)發(fā)人員的重要特性”主頁(yè)


Arup Nanda (arup@proligence.com)擔任專(zhuān)職 Oracle DBA 已愈 12 年,他擁有 Oracle 數據庫技術(shù)各個(gè)領(lǐng)域的經(jīng)驗,2003 年被 Oracle 雜志授予“年度DBA”稱(chēng)號。Arup 經(jīng)常在 Oracle 相關(guān)的活動(dòng)中發(fā)表演講并為 Oracle 相關(guān)刊物撰寫(xiě)文章,他還是一位 Oracle ACE 總監。他與其他人合作編寫(xiě)了四本書(shū),其中包括《RMAN Recipes for Oracle Database 11g:A Problem Solution Approach》。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
oracle ASM 管理
asm 實(shí)例的管理
深入內核:從Oracle ASM自動(dòng)備份頭塊到ASMFD
oracle數據庫的導入導出實(shí)例
Oracle rac架構和原理
[Oracle集群軟件全解析] Oracle OCR/OLR管理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久