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