Oracle 12c ASM|專題配額組的配額真的管用嗎?
原文連結
譯者 沃趣科技 周天鵬
本專題的上一部分中,我介紹了Flex ASM Diskgroup的兩個相關概念,配額組和檔案組。但配額組的配額是否真的寫多少就是多少呢?(還是超出個百分之多少也沒關係)我對此非常好奇。
幸運的是,我又發現了12c ASM相關的值得寫部落格跟大家分享的一些點,所以:
-
這並不是本專題的最後一章
-
這篇文章可能比前兩篇稍短(因為把這篇文章和我想寫的下一篇文章結合在一起真的太長了......)
配額組的配額是強制的嗎?
其實配額組的目的就是限制磁碟組的配額,就像檔案系統那樣。這非常有意思,因為對於存放在某磁碟組中的某CDB/PDB(即使是non-CDB),你都可以給一個硬的限制來限制這個庫在這個磁碟組上可使用的儲存空間。
我將要回答的問題是:這個配額真的管用嗎?如果你看了前兩部分,你應該知道,我在Flex ASM Diskgroup上建立了兩個資料庫:ORCL和CDB,都是容器資料庫。
我的檔案組當前狀態是醬紫的:
ASMCMD> lsfg
File Group Disk Group Quota Group Used Quota MB Client Name Client Type
DEFAULT_FILEGROUP FLEX GENERIC 2488
CDB_CDB$ROOT FLEX QG_CDB 6744 CDB_CDB$ROOT DATABASE
CDB_PDB$SEED FLEX QG_CDB 1656 CDB_PDB$SEED DATABASE
PDB1 FLEX QG_CDB 1784 PDB1 DATABASE
ORCL_CDB$ROOT FLEX GENERIC 9104 ORCL_CDB$ROOT DATABASE
ORCL_PDB$SEED FLEX GENERIC 1616 ORCL_PDB$SEED DATABASE
PDB1_0001 FLEX GENERIC 9424 PDB1 DATABASE
名為CDB的資料庫用的是叫做QG_CDB的配額組,ORCL那個庫沒指定配額組,所以還用的預設配額組。我想讓這個庫使用新建的QG_ORCL這個配額組,因為我想讓不同的庫用不同的配額組。
ASMCMD> mkqg -G FLEX QG_ORCL quota 20G
Diskgroup altered.
ASMCMD> lsqg
Group_Num Quotagroup_Num Quotagroup_Name Incarnation Used_Quota_MB Quota_Limit_MB
2 1 GENERIC 1 22632 0
2 2 QG_ORCL 7 0 20480
2 3 QG_CDB 1 10184 20480
ASMCMD>
如果你看過前兩部分,應該還記得名為Flex的Flex Diskgroup的磁碟組號原本是5,但重啟機器後,磁碟組號從5變成了2。
SQL> select group_number, name, state, type from v$asm_diskgroup
2 where group_number = 2;GROUP_NUMBER NAME STATE TYPE
------------ ------------------------------ ----------- ------
2 FLEX CONNECTED FLEX
不要為此困擾。
回到剛才的例子:檔案組ORCL_CDB$ROOT, ORCL_PDB$SEED和PDB1_0001還不屬於QG_ORCL。這可以透過ASMCMD使用3個簡單的mvfg命令來修改,或者使用sql也可以。移動命令完成後,配額組仍然後空間剩餘(雖然已經不多了)。
ASMCMD> mvfg -G flex --filegroup PDB1_0001 QG_ORCL
Diskgroup altered.
ASMCMD> mvfg -G flex --filegroup ORCL_PDB$SEED QG_ORCL
Diskgroup altered.
ASMCMD> mvfg -G flex --filegroup ORCL_CDB$ROOT QG_ORCL
Diskgroup altered.
ASMCMD> lsfg
File Group Disk Group Quota Group Used Quota MB Client Name Client Type
DEFAULT_FILEGROUP FLEX GENERIC 2488
CDB_CDB$ROOT FLEX QG_CDB 6744 CDB_CDB$ROOT DATABASE
CDB_PDB$SEED FLEX QG_CDB 1656 CDB_PDB$SEED DATABASE
PDB1 FLEX QG_CDB 1784 PDB1 DATABASE
ORCL_CDB$ROOT FLEX QG_ORCL 9104 ORCL_CDB$ROOT DATABASE
ORCL_PDB$SEED FLEX QG_ORCL 1616 ORCL_PDB$SEED DATABASE
PDB1_0001 FLEX QG_ORCL 9424 PDB1 DATABASE
ASMCMD> lsqg
Group_Num Quotagroup_Num Quotagroup_Name Incarnation Used_Quota_MB Quota_Limit_MB
2 1 GENERIC 1 2488 0
2 2 QG_ORCL 7 20144 20480
2 3 QG_CDB 1 10184 20480
ASMCMD>
現在我要把它佔用的儲存空間撐到配額組的配額極限,來看下配額組是不是真的靠譜。方法當然很簡單:在ORCL庫中建立一個表空間嘛。
SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL> create tablespace userdata datafile size 500m;
create tablespace userdata datafile size 500m
*
ERROR at line 1:
ORA-01119: error in creating database file '+FLEX'
ORA-17502: ksfdcre:4 Failed to create file +FLEX
ORA-15437: Not enough quota available in quota group QG_ORCL.
SQL>
這報錯和我們之前建立pdb時指定storage子句的時候非常類似。但是,對於ASM上的非資料檔案(例如引數檔案,日誌檔案等)來說會怎樣呢?
SQL> get /tmp/non_data_files
1 SELECT
2 f.group_number as DG_NUMBER,
3 f.file_number,
4 f.incarnation as file_incarnation,
5 f.type,
6 fg.name as filegroup_name,
7 a.name as file_name
8 FROM
9 v$asm_alias a,
10 v$asm_file f,
11 v$asm_filegroup fg
12 WHERE
13 a.group_number = f.group_number
14 AND
15 a.file_number = f.file_number
16 AND
17 a.file_incarnation = f.incarnation
18 AND
19 fg.group_number = f.group_number
20 AND
21 fg.filegroup_number = f.filegroup_number
22 AND
23* f.type 'DATAFILE';
SQL> start /tmp/non_data_files
DG_NUMBER FILE_NUMBER FILE_INCARNATION TYPE FILEGROUP_NAME FILE_NAME
---------- ----------- ---------------- --------------- -------------------- ------------------------------
2 282 948453843 PASSWORD DEFAULT_FILEGROUP pwdorcl.282.948453843
2 287 948462715 PASSWORD DEFAULT_FILEGROUP pwdorcl.287.948462715
2 293 948462849 CONTROLFILE ORCL_CDB$ROOT Current.293.948462849
2 292 948462849 CONTROLFILE ORCL_CDB$ROOT Current.292.948462849
2 294 948462855 ONLINELOG ORCL_CDB$ROOT group_2.294.948462855
2 295 948462855 ONLINELOG ORCL_CDB$ROOT group_1.295.948462855
2 296 948462861 ONLINELOG ORCL_CDB$ROOT group_1.296.948462861
2 297 948462861 ONLINELOG ORCL_CDB$ROOT group_2.297.948462861
2 304 948463227 ONLINELOG ORCL_CDB$ROOT group_3.304.948463227
2 305 948463231 ONLINELOG ORCL_CDB$ROOT group_3.305.948463231
2 306 948463239 ONLINELOG ORCL_CDB$ROOT group_4.306.948463239
2 307 948463243 ONLINELOG ORCL_CDB$ROOT group_4.307.948463243
2 298 948462891 TEMPFILE ORCL_CDB$ROOT TEMP.298.948462891
2 302 948462937 TEMPFILE ORCL_PDB$SEED TEMP.302.948462937
2 308 948463249 PARAMETERFILE ORCL_CDB$ROOT spfile.308.948463249
2 312 948464283 TEMPFILE PDB1_0001 TEMP.312.948464283
16 rows selected.
新建一個online redo log試試:
SQL> alter database add logfile thread 1 size 1g;
alter database add logfile thread 1 size 1g
*
ERROR at line 1:
ORA-00301: error in adding log file '+FLEX' - file cannot be created
ORA-17502: ksfdcre:4 Failed to create file +FLEX
ORA-15437: Not enough quota available in quota group QG_ORCL.
這些都證明了配額組確實是強制的。至少對於上面的例子來說是的。
小 結
對於配額組來說,確實還有很多東中西值得探索,例如:自動擴充套件的資料檔案、歸檔日誌、臨時檔案以及undo檔案等等。但是初步看來,配額組確實還不錯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2144402/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 配額協議協議
- LVM與磁碟配額(包含磁碟配額與驗證實操)LVM
- ceph的配額功能分析
- LVM與磁碟配額LVM
- Linux磁碟配額配置Linux
- Linux的LVM與磁碟配額(理論+配寫)LinuxLVM
- hadoop queue的配額調整Hadoop
- Linux下的磁碟配額quotaLinux
- Linux磁碟配額Quota配置Linux
- Linux磁碟配額(Quota)(轉)Linux
- ★Linux磁碟配額的使用 ★——牛刀小試Linux
- Oracle 使用者對錶空間配額quota說明Oracle
- K8S-磁碟配額管理-整理K8S
- unlimited tablespace許可權和quota 配額MIT
- linux新增硬碟並編輯配額Linux硬碟
- 在Linux中,如何管理磁碟配額?Linux
- 解決overlay2儲存驅動的磁碟配額問題
- kubernetes排程之資源配額示例
- JuiceFS 目錄配額功能設計詳解UI
- 安裝及使用quota管理磁碟配額(轉)
- Oracle 12c ASM專題|Flex磁碟組到底有多Fexible?OracleASMFlex
- LVM與磁碟配額管理 so easy come onLVM
- Linux—磁碟配額,管理LVM邏輯卷LinuxLVM
- 表空間配額和UNLIMITED TABLESPACE許可權MIT
- solaris11調整檔案系統配額
- RH AS3 上快速實現磁碟配額(轉)S3
- linux的分割槽的最佳化和 磁碟配額(轉)Linux
- 【Solaris】Solaris檔案系統管理6 磁碟配額管理
- 資料庫使用者表空間配額管理資料庫
- 【oracle 12c asm專題】flex diskgroup相關概念OracleASMFlex
- Oracle資料泵建立使用者避坑(表空間配額、許可權)Oracle
- 雲伺服器windows系統提示配額不足的解決方法伺服器Windows
- 【Linux】Linux檔案系統管理7 磁碟配額管理Linux
- Docker 新發布的 hub-tool 可直接檢視賬戶配額Docker
- mongodb需要配ssd卡嗎?MongoDBSD卡
- 使用 Admission Webhook 機制實現多叢集資源配額控制WebHook
- 【直播預告】Greenplum磁碟配額管理工具Diskquota內部實現
- 在Linux中,如何在Linux中進行資源配額管理?Linux