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

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

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

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

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

這些記錄用于:

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

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

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

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

說(shuō)明:

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

二、管理undo表空間

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

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

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

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

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

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

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

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

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

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

2.2 調(diào)整 Undo 表空間大小

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

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

步驟是:

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

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ù)時(shí)間(來(lái)自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;?

驗(yàn)證然后丟棄:

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

例如:

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

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

對(duì)于增加/調(diào)整撤消表空間的大小,有兩個(gè)選項(xiàng):

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

調(diào)整現(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 中撤消表空間/撤消管理的最佳實(shí)踐

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

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

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

相關(guān)文章

最新評(píng)論