欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

生產環(huán)境Oracle undo表空間管理實踐

 更新時間:2022年03月28日 16:29:05   作者:雪竹聊運維  
這篇文章主要介紹了生產環(huán)境Oracle undo表空間管理實踐,Oracle 數(shù)據(jù)庫有一種維護信息的方法,用于回滾或撤消對數(shù)據(jù)庫的更改,下面文章分享更多的相關資料需要的小伙伴可以參考一下

一、什么是撤銷以及為什么在oracle中撤銷?

Oracle 數(shù)據(jù)庫有一種維護信息的方法,用于回滾或撤消對數(shù)據(jù)庫的更改。Oracle 數(shù)據(jù)庫在事務提交之前保留事務操作的記錄,Oracle 需要此信息來回滾或撤消對數(shù)據(jù)庫的更改。這些記錄稱為回滾或撤銷記錄。

這些記錄用于:

  • 回滾事務 - 發(fā)出 ROLLBACK 語句時,撤銷記錄用于撤消未提交事務對數(shù)據(jù)庫所做的更改。
  • 恢復數(shù)據(jù)庫 - 在數(shù)據(jù)庫恢復期間,撤銷記錄用于撤消從重做日志應用到數(shù)據(jù)文件的任何未提交的更改。
  • 提供讀取一致性 - 撤消記錄通過為正在訪問數(shù)據(jù)同時另一個用戶正在更改數(shù)據(jù)的用戶維護數(shù)據(jù)的前映像來提供讀取一致性。
  • 使用Flashback Query分析較早時間點的數(shù)據(jù)。
  • 使用閃回功能從邏輯損壞中恢復。

在Oracle 8i之前,Oracle使用回滾段來管理撤銷數(shù)據(jù)。Oracle9i引入了自動撤消管理,它允許 dba 對撤消信息的保留時間施加更多控制,簡化撤消空間管理并消除管理回滾段的復雜性。Oracle 強烈建議您使用 undo 表空間來管理 undo 而不是回滾段。

undo段的空間是動態(tài)分配、使用、釋放和重用的--所有這些都在Oracle數(shù)據(jù)庫的控制下,而不是由DBA控制。

從Oracle 9i開始,回滾段方法稱為“手動撤銷管理模式”,新的撤銷表空間的方法稱為“自動撤銷管理模式”。

說明:

  • 盡管支持回滾段和撤消表空間,但這兩種模式不能在同一個數(shù)據(jù)庫實例中使用,盡管出于遷移目的,可以在使用回滾段的數(shù)據(jù)庫中創(chuàng)建撤消表空間,或刪除回滾段在使用撤消表空間的數(shù)據(jù)庫中。但是,您必須退回數(shù)據(jù)庫才能切換到另一種管理撤銷的方法。
  • 兩種模式都存在系統(tǒng)回滾段。
  • 在自動撤消管理模式下運行時,任何手動撤消管理 SQL 語句和初始化參數(shù)都將被忽略,并且不會發(fā)出錯誤消息,例如 ALTER ROLLBACK SEGMENT 語句將被忽略。

二、管理undo表空間

2.1 創(chuàng)建undo表空間

有兩種創(chuàng)建撤消表空間的方法:

第一種方法:在發(fā)出CREATE DATABASE 語句時創(chuàng)建撤消表空間。這發(fā)生在您創(chuàng)建新數(shù)據(jù)庫并且實例以自動撤銷管理模式 (UNDO_MANAGEMENT = AUTO) 啟動時。

第二種方法:用于現(xiàn)有數(shù)據(jù)庫。它使用 CREATE UNDO TABLESPACE 語句。

我們不能在撤銷表空間中創(chuàng)建數(shù)據(jù)庫對象。它保留用于系統(tǒng)管理的撤銷數(shù)據(jù)。Oracle 數(shù)據(jù)庫使我們能夠創(chuàng)建單文件撤銷表空間。

以下語句說明了在CREATE DATABASE 語句中使用 UNDO TABLESPACE 子句。undo 表空間名為 undotbs_01,并為其分配了一個數(shù)據(jù)文件

SQL>?CREATE?DATABASE?...?
UNDO?TABLESPACE?undotbs_01?DATAFILE?'/path/undo01.dbf'?RETENTION?GUARANTEE;?

 如果在CREATE DATABASE 期間無法成功創(chuàng)建 undo 表空間,則整個操作將失敗。CREATE UNDO TABLESPACE 語句與 CREATE TABLESPACE 語句相同,但指定了 UNDO 關鍵字。數(shù)據(jù)庫決定了撤銷表空間的大部分屬性,但您可以指定 DATAFILE 子句。

此示例創(chuàng)建 undotbs_02 撤銷表空間:

SQL>?CREATE?UNDO?TABLESPACE?undotbs_02?DATAFILE?'/path/undo02.dbf'?SIZE?2M?REUSE?AUTOEXTEND?ON?RETENTION?NOGUARANTEE?;?

2.2 調整 Undo 表空間大小

方法一:縮小撤消表空間大小

分配后的撤銷空間將可供重用,但不會重新分配給操作系統(tǒng)??s小 Undo 表空間的最佳方法是切換到新的 Undo 表空間并刪除舊的 Undo 表空間。、

步驟是:

根據(jù)您的數(shù)據(jù)庫要求創(chuàng)建一個相同大小(更大或更小)的新撤消表空間。

SQL>?create?undo?tablespace?UNDOTBS2?datafile?'D:\ORACLE\PRODUCT\11.2.0\ORADATA\ORCL\UNDOTBS02.DBF'?size?5000M;?

切換到新的 Undo 表空間:

SQL>?ALTER?SYSTEM?SET?UNDO_TABLESPACE?=?UNDOTBS2?SCOPE=BOTH;?

查看undo segment的狀態(tài),判斷old undo tablespace中的segment是否都處于offline狀態(tài)。

sql>?select?tablespace_name,?status,?count(*)?from?dba_rollback_segs?group?by?tablespace_name,?status;?

如果表空間中有狀態(tài)不是OFFLINEUndo段要被刪除,我們需要等到它們變?yōu)镺FFLINE。您可能必須等待tuned_undoretention 的持續(xù)時間(來自v$undostat)以確保所有撤消段都已變?yōu)镺FFLINE。

sql>?select?status,segment_name?from?dba_rollback_segs?where?status?not?in?("OFFLINE')?and?tablespace_name=[undo?tablespace?to?be?dropped];?

例如:

sql>?select?status,segment_name?from?dba_rollback_segs?where?status?not?in?("OFFLINE')?and?tablespace_name='UNDOTBS1';?

如果舊Undo表空間中的所有Undo段都處于OFFLINE狀態(tài),則刪除該表空間。

sql>?select?tablespace_name,?status,?count(*)?from?dba_rollback_segs?group?by?tablespace_name,?status;?

驗證然后丟棄:

sql>?drop?tablespace?[tablespace_name]?including?contents?and?datafiles;?

例如:

sql>?drop?tablespace?UNDOTBS1?including?contents?and?datafiles;?

方法二:向撤消表空間添加空間

對于增加/調整撤消表空間的大小,有兩個選項:

  • 調整現(xiàn)有撤銷數(shù)據(jù)文件的大小
  • 將新的撤銷數(shù)據(jù)文件添加到表空間。

調整現(xiàn)有撤銷數(shù)據(jù)文件的大?。?/strong>

col?T_NAME?for?a23?
col?FILE_NAME?for?a65?
select?tablespace_name?T_NAME,file_name,?bytes/1024/1024?MB?from?dba_data_files?where?tablespace_name?=(SELECT?UPPER(value)?FROM?v$parameter?WHERE?name?=?'undo_tablespace')?order?by?file_name;?
?
alter?database?datafile?'[COMPLETE_PATH_OF_UNDO_DBF_FILE]'?resize?[SIZE]M;?

 例如:

sql>?alter?database?datafile?'D:\ORACLE_DB\TESTDB\TESTDB\UNDOTBS01.DBF'?resize?1500M;?

添加新數(shù)據(jù)文件的步驟:

sql>?alter?tablespace?[UNDO?tbs?name]?ADD?DATAFILE?'[COMPLETE_PATH_OF_UNDO_DBF_FILE]'?size?20M;?

例如:

sql>?alter?tablespace?UNDOTBS1?ADD?DATAFILE?'D:\ORACLE_DB\TESTDB\TESTDB\UNDOTBS02.DBF'?size?20M;?

三、Oracle 中撤消表空間/撤消管理的最佳實踐

以下建議列表將幫助您管理撤銷空間以發(fā)揮最大優(yōu)勢。

  • 除非您的系統(tǒng)具有閃回或 LOB 保留要求,否則您無需為UNDO_RETENTION 參數(shù)設置值。
  • 在撤銷表空間中留出 10% 到 20% 的額外空間,以應對工作負載的一些波動。
  • 正確設置撤消表空間警報的警告和嚴重警報閾值。
  • 要調整 SQL 查詢或檢查失控查詢,請使用長查詢或V$UNDOSTAT WRH$_UNDOSTAT 視圖中提供的 SQLID 列的值從 V$SQL 視圖檢索 SQL 文本和有關 SQL 的其他詳細信息。

 到此這篇關于生產環(huán)境Oracle undo表空間管理實踐的文章就介紹到這了,更多相關Oracle undo表空間管理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論