Oracle ASM(自動存儲管理器)是一種為Oracle數(shù)據(jù)庫提供數(shù)據(jù)存儲的技術。雖然它有很多優(yōu)點,比如減少存儲空間的浪費,提高I/O性能等,但它也有它的風險。下面我們來具體分析一下。
首先,ASM有一點風險就是由于其自動化管理方式,導致過于依賴ASM的管理,一旦ASM出現(xiàn)問題,整個數(shù)據(jù)庫的運作都將出現(xiàn)大的問題。如下所示:
SQL> ALTER DISKGROUP DATA OFFLINE DISK ‘/dev/oracleasm/data3’;
如果管理員不注意輸入錯誤或執(zhí)行了不當?shù)腟QL命令,誤操作可能會導致ASM癱瘓,甚至可能導致數(shù)據(jù)庫崩潰。
另外一個ASM風險是在多租戶環(huán)境中,因為ASM的權限管理很難針對不同的租戶分別設置,所以可能出現(xiàn)租戶之間的數(shù)據(jù)泄露或者不當?shù)臄?shù)據(jù)訪問問題。比如下面這個例子:
SQL> GRANT SYSASM TO USER1;
如果管理員將SYSASM角色授權給了一個用戶,該用戶也許能夠訪問整個磁盤組,包括其他租戶的數(shù)據(jù),從而造成數(shù)據(jù)泄露或不當?shù)脑L問。
此外,ASM可能也會遇到回滾故障的問題,比如在回滾過程中因為ASM故障導致數(shù)據(jù)損壞或丟失。以下代碼是一個回滾的例子:
SQL> ALTER DISKGROUP fradg ADD VOLUME fra_vol5 SIZE 10G; SQL> CREATE TABLESPACE fra_data DATAFILE '+fradg/fra_data.dbf' SIZE 2G; SQL> DROP TABLESPACE fra_data INCLUDING CONTENTS; SQL> ALTER DISKGROUP fradg DROP VOLUME fra_vol5;
在上述代碼執(zhí)行的過程中,如果ASM發(fā)生故障,可能會導致fra_vol5上的數(shù)據(jù)無法回滾,從而引起數(shù)據(jù)庫的異常和數(shù)據(jù)的丟失。
總而言之,雖然ASM有它的優(yōu)點,但也需要管理員仔細考慮其帶來的風險并做好相應的管理和控制。管理員在實際應用中應該注意操作的規(guī)范性和安全性以避免ASM風險的出現(xiàn)。