10gr2自動擴充套件控制檔案中的設定
從10g的R2版本開始,控制檔案中設定的最大值,不再是資料庫中的限制,當資料庫的實際值超過了控制檔案中的設定,控制檔案中的值會自動擴充套件。
在9i和10.1的時候,Oracle的控制檔案中設定的引數確定了資料庫的一些限制,比如資料庫可以開啟的最大資料檔案數,資料庫使用的最大日誌組個數,每個日誌組最大成員數等等。這個限制是資料庫所能達到的最大值,如果超過了這個限制,則資料庫會報錯:
SQL> select type, record_size, records_total, records_used
2 from v$controlfile_record_section
3 where type = 'REDO LOG';
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
-------------------- ----------- ------------- ------------
REDO LOG 72 5 3
SQL> select group#, thread#, sequence#, bytes
2 from v$log;
GROUP# THREAD# SEQUENCE# BYTES
---------- ---------- ---------- ----------
1 1 41 536870912
2 1 43 536870912
3 1 42 536870912
SQL> select group#, member from v$logfile;
GROUP# MEMBER
---------- ----------------------------------------
1 /data/oradata/bjtest/redo01.log
2 /data/oradata/bjtest/redo02.log
3 /data/oradata/bjtest/redo03.log
SQL> alter database add logfile group 4 '/data/oradata/bjtest/redo04.log' size 512m;
資料庫已更改。
SQL> alter database add logfile group 5 '/data/oradata/bjtest/redo05.log' size 512m;
資料庫已更改。
SQL> alter database add logfile group 6 '/data/oradata/bjtest/redo06.log' size 512m;
alter database add logfile group 6 '/data/oradata/bjtest/redo06.log' size 512m
*
ERROR 位於第 1 行:
ORA-01185: 日誌檔案組號6無效
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
可以看到在9i中,是不能超過控制檔案中設定的最大值的,如果要解決這個問題,唯一的方法就是重建控制檔案。
而在10.2中Oracle做出了改進,當資料庫的相容性初始化引數COMPATIBLE設定為10.2.0.1.0以上時,這個值會隨著實際的使用情況而擴大,而如果COMPATIBLE設定的值是10.1.0.1.0以下時,即使是10.2版本的資料庫,也不會自動擴充套件控制檔案的限制條件:
SQL> select * from v$version;
BANNER
-------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ------------------------------ ---------------------
compatible string 10.1.0.0.0
這是一個10.2.0.3的資料庫,不過資料庫相容性設定為10.1,下面看看這個資料庫的表現:
SQL> select type, record_size, records_total, records_used
2 from v$controlfile_record_section
3 where type = 'REDO LOG';
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
------------------------------ ----------- ------------- ------------
REDO LOG 72 5 3
SQL> select group#, thread#, sequence#, bytes
2 from v$log;
GROUP# THREAD# SEQUENCE# BYTES
---------- ---------- ---------- ----------
1 1 1 104857600
2 1 0 104857600
3 1 0 104857600
SQL> col member format a60
SQL> select group#, member from v$logfile;
GROUP# MEMBER
---------- ------------------------------------------------------------
1 /data/oradata/test102/redo01.log
2 /data/oradata/test102/redo02.log
3 /data/oradata/test102/redo03.log
SQL> alter database add logfile group 4 '/data/oradata/test102/redo04.log' size 100m;
Database altered.
SQL> alter database add logfile group 5 '/data/oradata/test102/redo05.log' size 100m;
Database altered.
SQL> alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m;
alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
*
ERROR at line 1:
ORA-01185: logfile group number 6 is invalid
錯誤資訊和9i中一致,下面將相容性設定改為10.2:
SQL> alter system set compatible = '10.2.0.1.0' scope = spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 851443712 bytes
Fixed Size 2076496 bytes
Variable Size 226492592 bytes
Database Buffers 616562688 bytes
Redo Buffers 6311936 bytes
Database mounted.
Database opened.
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ------------------------------ -------------------
compatible string 10.2.0.1.0
SQL> alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m;
Database altered.
SQL> alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m;
Database altered.
SQL> select type, record_size, records_total, records_used
2 from v$controlfile_record_section
3 where type = 'REDO LOG';
TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED
------------------------------ ----------- ------------- ------------
REDO LOG 72 21 7
啟動後在alert檔案中可以看到Oracle改變了重做日誌的結構:
ALTER DATABASE OPEN
Switching redo format version from 10.1.0.0.0 to 10.2.0.1.0 at change 13841
而在執行了新增日誌組6的操作後,在alert檔案中記錄了控制檔案的自動擴充套件:
alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
Sun May 17 06:34:27 2009
Expanded controlfile section 3 from 5 to 21 records
The number of logical blocks in section 3 remains the same
Completed: alter database add logfile group 6 '/data/oradata/test102/redo06.log' size 100m
Sun May 17 06:35:02 2009
alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m
Sun May 17 06:35:04 2009
Completed: alter database add logfile group 7 '/data/oradata/test102/redo07.log' size 100m
在10.2中,控制檔案中的限制不再是資料庫必須滿足的限制條件了,如果資料庫中配置的數量超過控制檔案中的數量,控制檔案會自動進行擴充套件,10gr2的這個功能,減少了控制檔案重建的可能性。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-598377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MAXDATAFILES,DB_FILES及控制檔案的自動擴充套件套件
- 設定maxsize的自動擴充套件資料檔案在達到maxsize後是否會繼續擴充套件套件
- 10g R2 中控制檔案自動擴充套件 - Expanded controlfile section套件
- 【實驗】修改資料庫檔案為自動擴充套件以達到表空間自動擴充套件的目的資料庫套件
- SQL Server資料庫檔案不滿足擴充套件條件時不再自動擴充套件SQLServer資料庫套件
- 表空間自動擴充套件 AUTOALLOCATE 的擴充套件規律套件
- oracle 新增儲存自動擴充套件資料檔案流程(auto)Oracle套件
- aix擴充套件檔案系統AI套件
- aix 擴充套件檔案系統AI套件
- 擴充套件資料檔案大小套件
- 設定路徑找到自動備份的控制檔案
- 自動化擴充套件挑戰:ROI套件
- win10擴充套件螢幕怎麼設定_win10擴充套件螢幕的設定方法Win10套件
- Linux 檔案系統擴充套件Linux套件
- LVM : 擴充套件檔案系統的容量LVM套件
- oracle 關閉資料檔案的擴充套件Oracle套件
- 關於控制檔案的擴充套件問題 (全面) - Expanded controlfile section套件
- 使用瀏覽器擴充套件篡改網頁中的 JS 檔案瀏覽器套件網頁JS
- sqlplus與shell自動提取資料檔案的邏輯卷lv並開啟自動擴充套件SQL套件
- 大檔案表空間受作業系統限制無法自動擴充套件作業系統套件
- hyperf oss/cos 檔案上傳擴充套件套件
- macOS 探尋檔案擴充套件屬性Mac套件
- 回滾段擴充套件資料檔案套件
- python擴充套件檔案import失敗Python套件Import
- win10擴充套件顯示器怎樣設定_win10設定擴充套件顯示器的步驟Win10套件
- 微服務架構:自動擴充套件簡介微服務架構套件
- 「擴充套件推薦」Laravel Auto Routes 自動路由套件Laravel路由
- jQueryautocomplete自擴充套件外掛、自動補全示例jQuery套件
- shell中擴充套件命令套件
- ORA-01659錯誤,主要是表空間不夠,設定自動擴充套件套件
- nginx配置檔案語法高亮的Sublime Text擴充套件Nginx套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- Oracle資料檔案自動擴充套件會充分利用最後剩餘空間Oracle套件
- sql中的擴充套件學習SQL套件
- MAXLOGFILES應該以前的版本就能自動擴充套件套件
- 獲取表空間是否可自動擴充套件的SQL套件SQL
- Sentinel 原理-如何為系統設定擴充套件點套件
- Reporting Services 擴充套件裝置資訊設定套件