oracle asm自動儲存使用及管理說明(下)
六、檔案及tempate
1、資料檔案命名含義
SQL> select file_name from dba_data_files;
FILE_NAME
------------------------------------------------------------
+ASM_DISKGROUP/ora10g/datafile/system.259.712716453
+DG1/ora10g/datafile/undotbs1.259.712716475
+ASM_DISKGROUP/ora10g/datafile/sysaux.260.712716487
+ASM_DISKGROUP/ora10g/datafile/users.261.712716503
格式說明:
+DATA/yoda/datafile/tbs_name.asm_filenumber.incarnation_number
+DATA: diskgroup名
yoda: 該資料庫名
datafile: 檔案型別,表示是資料檔案
tbs_name: 表空間名
asm file#: 表示ASM file編號,$asm_file.file_number
incarnation number: 從時間戳提取,唯一值 。
2、在ASM例項中查詢檔案編號和大小
$export ORACLE_SID=+ASM
SQL>sqlplus '/as sysdba'
SQL> select file_number, bytes/1024/1024 from v$asm_file;
FILE_NUMBER BYTES/1024/1024
-------------------------- ---------------
259 500.007813
260 340.007813
261 5.0078125
259 340.007813
所查詢到的值,與dba_data_files相匹配。
3、資料檔案的模板(template)管理
檢視資料檔案屬性
SQL>select name, redundancy, striped
from v$asm_alias a, v$asm_file b
where a.file_number = b.file_number
and a.group_number = b.group_number
order by name;
NAME REDUND STRIPE
------------------------------------------------ ----------------- ------------
Current.256.712716441 HIGH FINE
Current.257.712716441 HIGH FINE
Current.258.712716441 HIGH FINE
SYSAUX.260.712716487 MIRROR COARSE
SYSTEM.259.712716453 MIRROR COARSE
TEMP.260.712716493 UNPROT COARSE
UNDOTBS1.259.712716475 UNPROT COARSE
USERS.261.712716503 MIRROR COARSE
control01.ctl HIGH FINE
control02.ctl HIGH FINE
control03.ctl HIGH FINE
group_1.256.712716443 UNPROT FINE
group_2.257.712716445 UNPROT FINE
group_3.258.712716447 UNPROT FINE
redo01.log UNPROT FINE
redo02.log UNPROT FINE
redo03.log UNPROT FINE
spfile.262.712718229 MIRROR COARSE
spfileora10g.ora MIRROR COARSE
系統管理人員能改變系統預設 template, 但不能刪除該刪除,管理員能增加自己的template,然後在該模板上建立資料檔案。
SQL> alter diskgroup dg1 add template noncritical_files attributes (unprotected);
SQL> create tablespace test datafile '+DG1/test.dbf(noncritical_files)' size 100M;
更改template屬性
SQL>alter diskgroup dg1 alter template noncritical_files attributes (coarse);
刪除template
SQL> alter diskgroup dg1 drop template noncritical_files;
以下是ASM 預設template資訊
檔案型別 預設模板 預設條帶化
------------------------------- ------------------------ ---------------------
archived redo logs ARCHIVELOG coarse
control files CONTROLFILE fine
control files autobackup AUTOBACK coarse
datafile DATAFILE coarse
datafile backup piece BACKUPSET coarse
DataGuard broker
configuration DATAGUARDCONFIG coarse
datapump Dumpset DUMPSET coarse
flashback logs FLASHBACK fine
Online Redo Logs ONLINELOG fine
spfile PARAMETERFILE coarse
tempfiles TEMPFILE coarse
檢視ASM template
SQL>select * from v$asm_template;
七、asm命令使用
1、進入ASMCMD
$asmcmd -p /* -p: 提示符顯示當前的目錄 */
2、列出目錄資訊
ASMCMD [+] > ls
ASMCMD [+] > ls -al
3、別名
ASMCMD [+ASM_DISKGROUP/ORA10G/DATAFILE] > ls -al
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE MAR 16 08:00:00 Y none => SYSAUX.260.712716487
DATAFILE MIRROR COARSE MAR 10 18:00:00 Y none => SYSTEM.259.712716453
DATAFILE MIRROR COARSE MAR 10 18:00:00 Y none => USERS.261.712716503
ASMCMD>mkalias SYSAUX.260.712716487 SYSAUX.dbf
ASMCMD>mkalias SYSTEM.259.712716453 SYSTEM.dbf
ASMCMD>mkalias USERS.261.712716503 USER.dbf
ASMCMD [+ASM_DISKGROUP/ORA10G/DATAFILE] > ls -al
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE MAR16 08:00:00 YSYSAUX.dbf => SYSAUX.260.712716487
DATAFILE MIRROR COARSE MAR10 18:00:00 YSYSTEM.dbf => SYSTEM.259.712716453
DATAFILE MIRROR COARSE MAR10 18:00:00 Y USER.dbf=> USERS.261.712716503
4、檢視空間
ASMCMD>du
ASMCMD> lsdg
5、顯示ASM和資料庫例項連線情況
ASMCMD>lsct
DB_Name Status Software_Version Compatible_version Instance_Name
ora10g CONNECTED 10.2.0.4.0 10.2.0.3.0 ora10g
ora10g CONNECTED 10.2.0.4.0 10.2.0.3.0 ora10g
6、當檔案關閉時候,可以使用rm 刪除ASM檔案
ASMCMD>rm 檔名
7、查詢檔案
ASMCMD> find +dg1 undo*
8、複製檔案
ASMCMD> cp /tmp/control.ctl +datadg/mytest1/control01.ctl
八、asm檔案遷移
--非ASM資料檔案轉發成ASM步驟:
1、建立測試表空間
SQL>create tablespace test datafile '/home/oracle/test.dbf' size 20M;
2、使用RMAN,將資料檔案offline
SQL>rman target system/password
RMAN>sql 'alter tablespace test offline';
3、使用backup as copy命令遷移
RMAN>backup as copy tablespace 'TEST' format 'ASM_DISKGROUP';
4、切換表空間
RMAN>switch tablespace 'TEST' to copy;
5、將表空間online
RMAN>sql 'alter tablespace test online';
6、檢視錶空間資訊
select file_name from dba_data_files where tablespace_name='TEST';
--將資料檔案從一個diskgroup遷移到另一個diskgroup
1、檢視需要遷移的資料檔案#
SQL> select file_id from dba_data_files where TABLESPACE_NAME='TEST';
FILE_ID
----------
5
2、備份資料檔案
RMAN> sql 'alter tablespace test offline';
RMAN>backup device type disk as copy datafile 5 format '+DG1';
3、切換
RMAN>switch datafile 5 to copy;
RMAN>recover datafile 5;
4、啟動
RMAN>sql 'alter tablespace test online';
--將ASM檔案轉發成OS檔案(除RMAN外的另一種方法)
1、檢視資料檔案
SQL> select file_name from dba_data_files
where tablespace_name='TEST';
FILE_NAME
--------------------------------------------------------------------------------
+DG1/ora10g/datafile/test.261.713925727
2、將表空間offline
SQL>alter tablespace test offline;
3、建立ASM目錄
SQL> create directory asmsrc as '+DG1/ora10g/datafile';
SQL> create directory osdesc as '/home/oracle';
4、執行轉化
SQL> begin
dbms_file_transfer.copy_file('ASMSRC',
'TEST.261.713925727',
'OSDESC',
'TEST.DBF');
END;
/
5、將資料檔案rename
SQL> alter database rename file
'+DG1/ora10g/datafile/test.261.713925727'
to '/home/oracle/TEST.DBF';
6、恢復資料檔案
SQL> recover datafile 5;
7、將表空間online,並檢視資料檔案
SQL> alter tablespace test online;
SQL> select file_name from dba_data_files
where tablespace_name='TEST';
8、進入ASMCMD,將test.261.713925727刪除
ASMCMD>rm test.261.713925727
九、asm操作原理
--資料庫針對ASM檔案操作原理
1、ASM檔案建立步驟:
a)10g版本,資料庫啟動前臺程式連線ASM例項中的NFG程式,11g版本,資料庫程式池(o0nn程式)連線NFG程式,然後傳送檔案建立請求,請求中包含以下資訊:diskgroup name,檔案型別,檔案塊大小,檔案大小,檔案標籤,還可包含templates名,別名。
b)ASM傳送extent map給資料庫例項,ASM建立COD(Continuing Operation Directory)記錄來跟蹤檔案的建立。
c)資料庫例項初始化檔案,選擇適宜的I/O,初始化完成,傳送並提交建立完成資訊給ASM。
d)ASM收到資訊後,其程式LGWR將更新ACD(Active Change Directory)記錄,DBWR程式將相關的分配表,檔案目錄,別名目錄記錄非同步寫到磁碟
e)如果建立過程中異常中斷,ASM例項利用COD回滾檔案的建立,回滾中相應刪除ACD中相關記錄。
2、ASM檔案open
a)資料庫透過程式(o0nn)傳送請求開啟的檔名.
b)ASM提取檔案目錄得到該檔案的extent map資訊回覆給資料庫例項。10g版本,ASM回覆整個資料檔案中的extent map,11g,初始化僅傳送60個direct extents,其餘的extents,存放在indirect extents,根據資料庫例項具體請求而傳送相應的extents。
c)開啟spfile檔案,是採用不同的開啟方式,在資料庫啟動過程中,透過ASMB程式來處理。
d)ASM跟蹤所有資料庫例項開啟的檔案,阻止開啟檔案的刪除,協同extent的分配
3、檔案I/O
資料庫例項透過檔案開啟過程中獲取的extent map,直接對ASM disk進行讀寫操作
4、檔案關閉
a)資料庫例項傳送資訊給ASM例項
b)ASM清除檔案內部狀態,關閉檔案不需要反饋資訊給ASM例項
5、檔案刪除
a)傳送請求給ASM例項。
b)ASM例項建立COD記錄檔案刪除過程
c)將分配表記錄標記為空閒,釋放檔案目錄記錄,刪除相關別名目錄資訊。如果刪除過程中失敗,COD負責回滾刪除動作。
--ASM檔案分配
1、extents大小分配原則
a)如果diskgroup中的compatible.rdbms版本在11.1以下,所有的extents分配1AU。
b)如果是11.1版本及以上,檔案中頭20000 extents分配1AU,下一個20000 extents是8AU,40000以上的extents分配8AU。
2、ASM條帶化(略)
3、ASM Redundancy
a)ASM是以extent進行映象
b)將不同的電源、HBA或控制卡組成不同的failure group,保證磁碟的丟失,至少還有一個extent 備份。
4、disk partners
a)extents備份存放在disk partners,disk partnership是相同diskgroup,不同failure groups的兩個磁碟
b)parnership資訊存放在PST(Parnership Status Table)中,使用者不能指定使用哪個partner,而是ASM基於failure group定義自動選擇
c)diskgroup配置的改變,disk partnership也可能發生改變,PST跟蹤先前的parnership直至rebanlance 完成。
d)因為PST空間限制,為更有效對diskgroup重配置,最好是批次進行,以避免頻繁diskgroup 重配置導致PST空間不足,導致ORA-15074 錯誤。
5、ASM映象檔案I/O讀寫
ASM並行寫所有映象的extents,從primary extent讀。
a)讀錯誤:
--如果不能獲取任何extent,則dismount磁碟組,如果不能從某個磁碟獲取extents,則將該磁碟offline;
--在10g版本中,對整個盤讀錯誤和某個扇區讀錯誤,認為是一樣的,將disk offline;而11g中如果是扇區錯誤,將觸發資料庫或ASM例項重新對映該扇區,ASM讀取好的extent映象資料,恢復讀錯誤的extent,如果成功認為正常,如果不成功,將把extent寫到報讀錯誤盤上的其他位置,如果寫成功,則將讀錯誤extent標記為不可用,如果還是寫失敗,則將整個disk offline,該過程會體現在alert.log中。
b)寫錯誤:
--資料庫碰到寫錯誤,將傳送disk offline資訊給ASM例項,如果資料庫能夠寫入其中一個extent並從ASM例項接受到disk offline,則認為寫成功,如果所有對extent的寫都失敗,則將採取適當行動,如表空間offline;
--ASM接受到資訊後,檢視PST看是否其他disk partner也offline,如果太多disk partner offline,則將diskgroup強制dismount,或者把相應的disk offline。
-- Disk offline是影響全域性操作,ASM例項將傳送訊息給叢集中其他ASM例項以及資料庫例項,在10g版本中(或compatible.rdbms <11.1),ASM立即強制刪除磁碟,但在11g(或compatible.rdbms >=11.1),磁碟不會立刻強制刪除,要等到管理員執行online命令或者DISK_REPAIR_TIME計時器過期。
c)映象過程中錯誤處理:
-- 在並行寫過程中,如果發生程式中斷或者節點當機,有可能一個extent寫完成,另一個沒有寫完成,mirror resilvering能夠確保其資料一致;
--確保手段是先檢查資料塊是否損壞,如果映象的資料塊其中一個損壞,則檢查並找出有效資料塊版本,使用該資料塊進行修復操作。資料塊版本可以用SCN來進行判斷。
6、Rebanlance (略)
7、Resync操作
當disk從offline變成online時候,將進行重新同步操作(Resync),只同步該磁碟offline期間,extents發生改變部分,具體實現機制如下:
--每個offline 盤ASM初始化SR(Saleness Registry) slot 給資料庫和ASM例項,slot中的每位表示offline disk中的一個AU,當對該offline disk寫extent失敗,對應設定slot的相應的位。
--當disk online時候,資料庫和ASM例項停止對SR slot設定,ASM重建磁碟的AT(分配表)和空閒空間表,透過與SR點陣圖的比較,恢復對應extent,當完成上述動作後,將去除SR slot。
8、Relocation操作
在ASM diskgroup中,將一個extent從一個位置移到另一個位置,通常是在resync操作和壞資料塊重對映上,他的操作是以extent為基礎,具體機制如下:
--ASM先校驗是否檔案被例項開啟,如果沒有,ASM就直接relocate該檔案,不需要傳送資訊給例項,讀源盤extent內容,寫到目標盤對應地方。
--如果檔案是開啟,則傳送訊息給所有叢集中ASM例項,表明將relocate extent,資料庫例項將延遲任何寫操作,直至新的extent可用。
十、其它操作
1、mount diskgroup
SQL>alter diskgroup dskgrp_name mount;
11g版本,mount restricted 使用於新的快速rebanlance特性
SQL>alter diskgroup dskgrp_name mount restricted;
如果部分disk發生offline,使用force強制mount磁碟組
SQL>alter diskgroup dskgrp_name mount force;
2、Diskmount diskgroup
SQL>alter diskgroup dskgrp_name dismount;
新增diskgroup 模板
SQL>alter diskgroup dskgrp_name add template file_noprot (fine unprotected)
3、新增/刪除ASM磁碟到diskgroup
SQL>alter diskgroup dskgrp_name add disk '/dev/raw/raw6';
或
SQL>alter diskgroup dskgrp_name add disk '/dev/raw/raw6' wait;
DBA選用該選項表示在rebalnace完全完成之後才使用新添磁碟空間
SQL>alter diskgroup dskgrp_name drop;
4、校驗diskgroup一致性
該命令校驗資料的一致性,不對錶空間標頭檔案和表資料內容進行校驗,11g增加校驗alias和template
SQL>alter diskgroup dskgrp_name check;
或
SQL>alter diskgroup dskgrp_name check repair;
5、更改rebanlance power level
SQL>alter diskgroup dskgrp_name rebanlance power 11;
6、刪除diskgroup
SQL>drop diskgroup dskgrp_name including contents;
SQL>drop diskgroup dskgrp_name;
SQL>drop diskgroup dskgrp_name force including contents;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1259097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle OCP(42):ASM 儲存結構簡介OracleASM
- oracle orapwd使用說明Oracle
- oracle10gR1 asm儲存簡單示例OracleASM
- 【ORACLE】Oracle常用SQL及重點功能說明OracleSQL
- Kibana安裝及使用說明
- Oracle Latch 說明Oracle
- 使用ORACLE ASMFD配置ORACLE儲存標準化OracleASM
- Oracle Linux 7使用syslog來管理Oracle ASM的審計檔案OracleLinuxASM
- python介面自動化(三十三)-python自動發郵件總結及例項說明番外篇下(詳解)Python
- oracle自帶指令碼說明(rdbms,ctx,sqlplus,javavm)Oracle指令碼SQLJava
- SingleFile 自動儲存設定
- oracle 新增儲存自動擴充套件資料檔案流程(auto)Oracle套件
- wps自動儲存時間設定在哪裡 WPS如何設定自動儲存
- 【ROWID】Oracle rowid說明Oracle
- vscode使用stylelint儲存自動格式化程式碼VSCode
- WPS異常關閉怎麼恢復檔案?Wps文件儲存及自動儲存方法
- 使用OpenFiler來模擬儲存配置RAC中ASM共享盤及多路徑(multipath)的測試ASM
- Oracle ASM AMDU工具的使用OracleASM
- 如何讓Notepad++自動儲存
- vue-cli@3.0 使用及配置說明Vue
- ELK 之 Kibana 安裝及使用說明
- 使用SpringBoot JPA進行自定義的儲存及批量儲存Spring Boot
- 儲存管理
- Oracle儲存過程Oracle儲存過程
- 使用說明
- 轉載:關於oracle無法啟動儲存,記錄一下Oracle
- Oracle Linux 7使用cron來管理Oracle ASM審計檔案目錄的增長OracleLinuxASM
- 使用SpringBoot-JPA進行自定義的儲存及批量儲存Spring Boot
- C++檔案說明及使用方法C++
- Qtum智慧合約使用方法及說明QT
- 簡要說明jquery+jcrop實現的圖片裁剪儲存jQuery
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 圖片管理ImageRanger入門級使用說明Ranger
- centos linux 下 crontab -e 命令插入及儲存CentOSLinux
- 前端meta標籤內容定義及使用說明,meta詳細說明,meta標籤使用前端
- Oracle Table建立引數說明Oracle
- Oracle 官方文件 結構說明Oracle
- Oracle儲存過程-1Oracle儲存過程
- Oracle 共享儲存掛載Oracle