自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

生產(chǎn)環(huán)境Oracle undo表空間管理的優(yōu)秀實(shí)踐

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

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

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

這些記錄用于:

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

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

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

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

說明:

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

二、管理undo表空間

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

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

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

第二種方法:用于現(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ù)文件

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

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

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

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

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

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

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

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

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

切換到新的 Undo 表空間:

  1. SQL> ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2 SCOPE=BOTH; 

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

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

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

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

例如:

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

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

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

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

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

例如:

  1. sql> drop tablespace UNDOTBS1 including contents and datafiles; 

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

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

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

調(diào)整現(xiàn)有撤銷數(shù)據(jù)文件的大小:

  1. col T_NAME for a23 
  2. col FILE_NAME for a65 
  3. 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; 
  4.  
  5. alter database datafile '[COMPLETE_PATH_OF_UNDO_DBF_FILE]' resize [SIZE]M; 

 例如:

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

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

  1. sql> alter tablespace [UNDO tbs nameADD DATAFILE '[COMPLETE_PATH_OF_UNDO_DBF_FILE]' size 20M; 

例如:

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

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

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

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

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2009-10-26 16:13:29

Oracle使用UND

2022-09-01 08:50:22

kubernetes容器

2009-10-22 16:25:53

Oracle UNDO

2010-04-08 15:59:50

Oracle undo

2010-05-10 18:05:15

Oracle釋放und

2011-08-24 14:42:14

Oracle 10gUNDO數(shù)據(jù)的作用UNDO表空間

2020-02-07 10:46:43

多云云計(jì)算混合云

2011-08-24 14:21:44

Oracle 10gUNDO表空間

2020-12-25 09:00:00

Kubernetes容器開發(fā)

2019-07-11 10:44:23

Oracle表空間數(shù)據(jù)庫

2022-04-06 11:18:46

SpringBoot代碼實(shí)踐

2010-11-16 11:32:54

ORACLE增加表空間

2010-11-16 10:32:01

Oracle創(chuàng)建表空間

2009-10-26 17:07:17

VB.NET UNDO

2010-11-19 15:53:28

oracle管理表空間

2022-09-02 08:41:20

Spring項(xiàng)目微服務(wù)

2019-11-22 15:27:07

技術(shù)漏洞管理網(wǎng)絡(luò)

2019-11-24 23:39:01

漏洞管理漏洞風(fēng)險(xiǎn)

2022-07-13 08:00:29

安全風(fēng)險(xiǎn)管理IT

2010-05-04 16:57:45

Oracle空間管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號