asm 查看 数据文件 修改 时间_Oracle的ASM介绍及管理
Oracle的ASM介紹及管理
Oracle經歷過的文件系統歷史
操作系統--邏輯卷管理器(LVM):管理文件相對容易,性能較差
裸設備:管理文件相對困難,性能好
OCFS(Oracle Cluster File System):是ORACLE數據庫文件系統
ASM(Automatic Storage Management):ASM是ORACLE數據庫文件支持的卷管理,ASM磁盤組里面只能存放Oracle數據庫文件:數據文件、聯機重做日志文件、控制文件、歸檔日志、RMAN備份集等
何時引入
ASM是Oracle 10g R2中為了簡化Oracle數據庫的管理而推出來的一項新功能,這是Oracle自己提供的卷管理器,主要用于替代操作系統所提供的LVM,它不僅支持單 實例,同時對RAC的支持也是非常好。ASM可以自動管理磁盤組并提供有效的數據冗余功能。使用ASM(自動存儲管理)后,數據庫管理員不再需要對 ORACLE中成千上萬的數據文件進行管理和分類,從而簡化了DBA的工作量,可以使得工作效率大大提高。
ASM的體系結構與后臺進程
每個使用了ASM存儲的數據庫實例也有兩個新的進程
1、RBAL:用來打開磁盤組里的磁盤,然后通過DBWn進程將數據寫入到這些打開的磁盤里去
2、ASMB:當數據庫實例要向某個磁盤組里寫入數據時,ASMB會訪問Group Services,從中獲取有關ASM實例所管理的磁盤組的信息,并通過RBAL進程打開磁盤組,于是就可以將數據寫入磁盤組。
Group Services用來注冊ASM實例所管理的磁盤組,以及連接磁盤組的信息。
數據庫?I/O不通過ASM實例來傳輸,而是通過RBAL直接根據ASM文件執行I/O操作。
數據庫實例只能與其所在的同一臺主機上的ASM實例通信,如果當前主機上存在多個數據庫,則這些數據庫可以共享同一個ASM實例。
ASM實例與數據庫實例進行通信的橋梁是ASMB進程,此進程運行在每個數據庫實例上,是兩個實例間信息交換的通道。ASMB進程先利用磁盤組名稱通過CSS獲得管理該磁盤組的ASM實例連接串,然后建立一個到ASM的持久連接,這樣兩個實例之間就可以通過這條連接定期交換信息,同時這也是一種心跳監控機制。
另外,在ASM實例中還存在另外一個新的進程,即RBAL,此進程負責規劃和協調磁盤組的重新平衡活動。除此之外,ASM實例還有一些與數據庫實例中的進程相同的后臺進程,例如LGWR、SMON、PMON、DBWR?、CKPT等。?
ASM主要的三個后臺進程
1、RBAL:負責協調組內不同磁盤組之間的rebalance工作,reblance工作指的是數據在不同的磁盤之間轉移
2、ARBn:用來實際完成rebalance工作,可以由多個進程并發完成rebalance的工作
3、GMON:用來監控磁盤組內有關元數據的維護操作
ASM優點
1、ASM是跨平臺的,主流的硬件平臺都能使用、且管理方式一致;
2、內在的支持大文件,支持BIGFILE文件;
3、數據均勻的分布在磁盤組里所有的磁盤上,實現了文件級別的條帶化,減少熱點,提高了讀取和寫入數據的性能
4、提供多重冗余級別,保證數據不丟失;
5、支持在線的磁盤更換,添加或刪除磁盤以后,自動重分布數據,這個過程叫做rebalance。
ASM提供了3種冗余方法
外部冗余(external redundancy):
表示Oracle不幫你管理鏡像,功能由外部存儲系統實現,比如通過RAID技術;有效磁盤空間是所有磁盤設備空間的大小之和。
外部冗余時ASM不提供冗余,由存儲的機制提供冗余。現在的硬件提供了很多種的冗余,比如RAID。好處在于充分利用現有的磁盤,ASM不再劃出其余的空間來做冗余,最大的利用磁盤空間。
常規冗余(normal redundancy):
(默認方式)表示Oracle提供2路鏡像來保護數據,會損失一部分磁盤空間用于數據冗余。這是在ASM層面上提供冗余,也就是將ASM磁盤里面的數據再備份一份,和共享存儲無關。
高冗余(high redundancy):
Oracle提供3路鏡像來保護數據,會損失更多磁盤空間用于數據冗余。
現在都使用底層的自身的存儲冗余,比如RAID,在ASM面做冗余太浪費了,所以在ASM上面一般使用外部冗余即可。
SYSASM權限和OSASM(asmadmin)系統組
為了使管理更加有針對性,Oracle 11gR2將管理權限進行細化,管理ASM的操作系統組叫做OSASM(asmadmin),凡是屬于該組的用戶都可以以sysasm的身份登錄ASM實例。sysasm權限是管理ASM的最高權限,可以執行所有的ASM實例管理操作;另外還保留了sysdba權限,被賦予該權限的ASM用戶只能執行普通的管理操作。SYSASM、SYSDBA是ASM實例用戶具有的權限,asmadmin是操作系統組。
[grid@xddb-01 ~]$ id griduid=502(grid) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),504(asmadmin),505(asmoper),506(asmdba)[grid@xddb-01 ~]$ sqlplus / as sysasm 可直接登陸可創建管理用戶并授權SQL> create user check_user identified by check_user;SQL> grant sysasm to check_user;[grid@xddb-01 ~]$ sqlplus check_user/ check_user as sysasmSQL> show userUSER is "SYS"????管理ASM
ASM查看磁盤組狀態
查看磁盤組當前兼容性屬性
修改磁盤組兼容性屬性
SQL> ALTER DISKGROUP data SET ATTRIBUTE 'compatible.rdbms' = '11.1';
磁盤組的屬性只能增大,不能減小,如果增大過程出現錯誤,那么只能通過重建磁盤組來調整兼容性屬性值。
快速鏡像重新同步功能。
在一個故障組短暫的磁盤失敗期間,ASM記錄改變區間的軌跡,以便在磁盤恢復正常后能夠快速的同步改變的區間,而不是將整個磁盤的數據重新覆蓋一遍,這能夠大幅度的提高數據重新同步的過程。
該功能要求磁盤組的兼容性屬性必須設置為11.1或者更高。
另外,該功能只對Normal和High冗余級別的磁盤組有用,因為External冗余級別的磁盤脫機會導致寫失敗。
SQL> CREATE DISKGROUP DATADG NORMAL REDUNDANCY 2 FAILGROUP A disk '/dev/mapper/datadg1' name datadg01 3 FAILGROUP B disk '/dev/mapper/datadg2' name datadg02 4 ATTRIBUTE 'compatible.rdbms'='11.2','compatible.asm'='11.2','compatible.advm'='11.2';SQL> select name,value from v$asm_attribute where name like 'compatible.%' and group_number=(select group_number from v$asm_diskgroup where name='DATADG');磁盤默認的可脫機時間為3.6小時,可以通過修改磁盤組的disk_repair_time屬性來調整這個值(H或者h表示小時,M或者m表示分鐘):
SQL> col name for a20SQL> col value for a20SQL>?select?name,value?from?v$asm_attribute?where?name='disk_repair_time'?and?group_number=(select?group_number?from?v$asm_diskgroup?where?name='DATADG');NAME VALUE-------------------- --------------------disk_repair_time 3.6hSQL> alter diskgroup data set attribute 'disk_repair_time'='4.5h';SQL>?select?name,value?from?v$asm_attribute?where?name='disk_repair_time'?and?group_number=(select?group_number?from?v$asm_diskgroup?where?name='DATADG');NAME VALUE-------------------- --------------------disk_repair_time 4.5h可以使用ALTER DISKGROUP的DROP AFTER子句來覆蓋磁盤組的disk_repair_time屬性:
SQL> select name,group_number from v$asm_diskgroup where name='DATA';NAME GROUP_NUMBER------------------------------ ------------DATADG??????????????????????????????????????2SQL> select group_number,name,state from v$asm_disk where group_number=2;GROUP_NUMBER NAME STATE------------ ------------------------------ ---------------- 2 DATADG02 NORMAL???????????2?DATADG01?????????????????????????NORMALSQL>?alter?diskgroup?datadg?offline?disk?datadg02;SQL> alter diskgroup datadg online disk datadg02;SQL> alter diskgroup datadg offline disk datadg02 drop after 20m;SQL> alter diskgroup datadg online disk datadg02;AU_SIZE大小設置
對于磁盤組來說,除了上面講到了compatible.*和disk_repair_time屬性外,還有一個重要的屬性au_size。該屬性是設置磁盤組的分配單元大小,可配置的范圍包括:1、2、4、8、16、32、64MB。ASM文件也是以區間的形式存儲在ASM磁盤組中,在10g每個區間直接映射到AU,從11g開始區間能夠映射到1個或多個AU。
當磁盤組兼容性屬性設置為11.1或者更高,區間大小將自動增長,在11.1的版本,前20000個區間匹配AU大小,接下來的20000個區間匹配8個AU大小,大于40000的區間匹配64個AU大小,在11.2,這個增長比例從1:8:64變成了1:4:16。
執行以下的命令使用CREATE DISKGROUP語句的ATTRIBUTE子句控制AU的大小:
SQL> CREATE DISKGROUP disk_group_2 2 EXTERNAL REDUNDANCY 3 DISK '/dev/mapper/datadg3' 4 ATTRIBUTE 'compatible.rdbms'='11.1','compatible.asm'='11.1','au_size' = '32M';如果au_size設置較大,需要和compatible.rdbms,compatible.asm兩個屬性一起設置。
可擴展的區間大小和大AU的組合能夠增加非常大的數據庫的IO性能。
AU_SIZE只能在創建磁盤組的時候設置,之后只能查看不能調整。
ASMCMD命令及選項
1、直接使用“asmcmd”或“asmcmd -p”(-p選項可以在命令提示符中給出當前的路徑信息)便可連接到對應的ASM。
[grid@xddb-01 ~]$ asmcmd -p
2、ASMCMD [+] > help lsdg
help [command]將顯示命令的詳細幫助信息
3、使用cp命令在ASM和本地、遠程操作系統文件系統之間直接拷貝數據。下面是該命令的用法:
cp [-i][-f][connect_str:]src_file [connect_str:]tgt_file
ASMCMD [+datadg/xddb/archivelog/2020_08_10] > cp thread_2_seq_123620.892.1048113419 /tmp/archive_thread_2_seq_123620.892.1048113419
4、md_backup命令針對一個或更多磁盤組創建元數據拷貝,下面是該命令的用法:
md_backup backup_file [-G diskgroup [,diskgroup,...]]
結果文件包含需要重建ASM磁盤的所有元數據。
ASMCMD [+datadg/xddb] >? md_backup /tmp/backup.txt -G datadg???
5、md_restore命令允許從使用md_backup命令創建的元數據中還原磁盤組,下面是該命令的用法:
md_restore backup_file [--silent][--full|--nodg|--newdg -o 'old_diskgroup:new_diskgroup [,...]'][-S sql_script_file] [-G 'diskgroup [,diskgroup...]']
ASMCMD [+] > md_restore /tmp/backup.txt --full -G datadg
恢復磁盤組元數據信息磁盤組不能處于MOUNT狀態,md_restore命令只恢復元數據信息,但磁盤組的數據是無法恢復的。
6、remap命令修復磁盤一個范圍的物理塊,不驗證每個塊的內容,只有讀錯誤的塊能被修復,下面是該命令的用法:
remap diskgroup disk block_range
ASMCMD [+] > remap datadg datadg01 1000-2000
7、全部命令參考
實例管理命令
dsget?????? 返回discovery diskstring
dsset?????? 設置discovery diskstring
lsct? ? ? ? ?顯示當前oracle ASM的客戶端,一般指數據庫實例和ASM實例,數據來源于V$ASM_CLIENT視圖
lsop??????? ???顯示當前磁盤組或ASM實例的操作,數據來源于V$ASM_OPERATION視圖
lspwusr???? 顯示ASM密碼文件中的用戶
orapwusr??? 增加,刪除,修改ASM密碼文件用戶
shutdown??? 關閉ASM實例
startup???? 啟動ASM實例
spbackup??? 備份ASM SPFILE,不影響GPnP profile;備份文件不能識別成SPFILE,不能用spcopy拷貝。為了識別備份文件為SPFILE必須用cp命令
spcopy????? 拷貝ASM SPFILE,在同一個磁盤組不能拷貝多份。為了更新GPnP profile,則用-u選項或用spset命令
spget?????? 返回ASM SPFILE的位置從GPnP profile
spmove????? 移動ASM SPFILE,自動更新GPnP profile.當SPFILE被ASM實例打開時不能被移動
spset?????? 設置ASM SPFILE的位置
文件管理命令
cd??????? 切換目錄,可使用通配符
cp??????? 在磁盤組之間,磁盤組與操作系統之間拷貝文件。不能在兩個遠程實例間拷貝。OCR和OCR備份類型的文件不能用cp,要用spbackup,spcopy,spmove
??????????? 如果是遠程拷貝,則連接串樣式為:user@host[.port_number].SID。port_number默認為1521
du??????? 顯示已經使用的磁盤空間在指定的目錄(包括子目錄)
find????? 查找,注意要區分大小寫
ls??????? 顯示ASM目錄下的內容
lsof????? 顯示本地客戶端已打開的文件
mkalias?? 創建一個系統產生的文件的別名。別名和對應的文件必須在同一磁盤組且每個ASM文件只能有一個別名
mkdir???? 創建ASM目錄
pwd?????? 顯示當前目錄的路徑
rm??????? 刪除指定的文件或目錄,如果是別名,會刪除別名和別名對應的文件
rmalias?? 刪除指定的別名
磁盤組管理命令
chdg????????? 修改磁盤組(增加磁盤,刪除磁盤,調整磁盤大小,重新平衡磁盤組,基于XML配置文件的)
chkdg???????? 檢查或修復磁盤組
dropdg??????? 刪除磁盤組
iostat??????? 顯示磁盤IO統計,信息來源于V$ASM_DISK_IOSTAT視圖
lsattr??????? 顯示磁盤組屬性,信息來源于V$ASM_ATTRIBUTE視圖
lsdg????????? 顯示已掛載的磁盤組和他們的信息,與ls -ls輸出結果一樣,信息來源于V$ASM_DISKGROUP_STAT視圖,如果指定了--discovery,則查詢V$ASM_DISKGROUP
lsdsk???????? 顯示ASM磁盤,信息來源于V$ASM_DISK_STAT視圖;連接模式查詢V$ASM_DISK_STAT and V$ASM_DISK返回信息;非連接模式通過掃描磁盤頭來返回信息
lsod????????? 顯示已打開的設備
md_backup???? 創建已掛載的磁盤組元數據備份
md_restore??? 恢復磁盤組元數據備份
mkdg????????? 創建磁盤組,基于XML配置文件創建。注意:mkdg創建的磁盤組只掛載在本地節點
mount???????? 掛載磁盤組
offline?????? 使磁盤或失效磁盤組離線
online??????? 使磁盤或失效磁盤組上線
rebal???????? 重新平衡磁盤組
remap???????? 重定位數據在磁盤上的物理塊的范圍內
setattr?????? 設置磁盤組屬性
umount??????? 卸載磁盤組
模板管理命令
chtmpl???? 修改模板屬性
lstmpl???? 顯示模板屬性
mktmpl???? 增加模板到磁盤組
rmtmpl???? 從磁盤組刪除模板
文件訪問管理命令
chgrp????? 修改文件或文件列表的用戶組
chmod????? 修改文件或文件列表的權限
chown????? 修改文件或文件列表的擁有者
groups???? 顯示用戶所屬用戶組
grpmod???? 增加或刪除操作系統用戶到/從已存在的用戶組
lsgrp????? 顯示用戶組
lsusr????? 顯示磁盤組中的用戶
mkgrp????? 創建一個用戶組
mkusr????? 添加操作系統用戶到磁盤組
passwd???? 修改用戶的密碼
rmgrp????? 刪除一個用戶組
rmusr????? 刪除一個用戶
總結
以上是生活随笔為你收集整理的asm 查看 数据文件 修改 时间_Oracle的ASM介绍及管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学业水平考试网登录_江西学业水平考试成绩
- 下一篇: Oracle数据库空间突然增大,Orac