成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

生產環境Oracle undo表空間管理的優秀實踐

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

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

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

這些記錄用于:

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

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

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

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

說明:

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

二、管理undo表空間

2.1 創建undo表空間

有兩種創建撤消表空間的方法:

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

第二種方法:用于現有數據庫。它使用 CREATE UNDO TABLESPACE 語句。

您不能在撤銷表空間中創建數據庫對象。它保留用于系統管理的撤銷數據。Oracle 數據庫使您能夠創建單文件撤銷表空間。

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

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

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

此示例創建 undotbs_02 撤銷表空間:

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

2.2 調整 Undo 表空間大小

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

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

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

  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的狀態,判斷old undo tablespace中的segment是否都處于offline狀態。

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

如果表空間中有狀態不是OFFLINE的Undo段要被刪除,我們需要等到它們變為OFFLINE。您可能必須等待tuned_undoretention 的持續時間(來自v$undostat)以確保所有撤消段都已變為OFFLINE。

  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狀態,則刪除該表空間。

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

驗證然后丟棄:

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

例如:

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

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

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

  • 調整現有撤銷數據文件的大小
  • 將新的撤銷數據文件添加到表空間。

調整現有撤銷數據文件的大小:

  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; 

添加新數據文件的步驟:

  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 中撤消表空間/撤消管理的最佳實踐

以下建議列表將幫助您管理撤銷空間以發揮最大優勢。

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

 

責任編輯:姜華 來源: 今日頭條
相關推薦

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數據的作用UNDO表空間

2020-02-07 10:46:43

多云云計算混合云

2011-08-24 14:21:44

Oracle 10gUNDO表空間

2020-12-25 09:00:00

Kubernetes容器開發

2019-07-11 10:44:23

Oracle表空間數據庫

2022-04-06 11:18:46

SpringBoot代碼實踐

2010-11-16 11:32:54

ORACLE增加表空間

2010-11-16 10:32:01

Oracle創建表空間

2010-11-19 15:53:28

oracle管理表空間

2019-11-22 15:27:07

技術漏洞管理網絡

2019-11-24 23:39:01

漏洞管理漏洞風險

2009-10-26 17:07:17

VB.NET UNDO

2022-07-13 08:00:29

安全風險管理IT

2022-09-02 08:41:20

Spring項目微服務

2010-05-04 16:57:45

Oracle空間管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91传媒在线观看 | 午夜一级大片 | 亚洲人精品午夜 | 国产一区二区免费 | 亚洲精品视频免费观看 | 亚洲精品电影在线观看 | 天天拍夜夜爽 | 国产成人99久久亚洲综合精品 | 色狠狠一区 | 国产91在线播放 | 国产精品美女www爽爽爽 | 99久久精品免费看国产免费软件 | 天堂在线免费视频 | 亚洲国产在 | 成人午夜电影网 | 中文字幕国产精品 | 欧美激情久久久 | 国产毛片av | 狠狠视频 | a在线免费观看 | 中国三级黄色录像 | 少妇精品久久久久久久久久 | 精品日韩一区二区三区 | 91久久精品国产91久久性色tv | 精品无码久久久久国产 | 日韩精品一区二区三区中文在线 | 亚洲国产精品成人久久久 | av在线免费看网址 | 国产精品国产成人国产三级 | 久久久久无码国产精品一区 | 天天爽夜夜爽精品视频婷婷 | 久久综合99| 日韩中出| av天天操 | 欧美精品一区久久 | 夜夜操天天艹 | 久久人人爽人人爽 | 国产97在线视频 | h视频免费观看 | 国产日韩一区二区三区 | 亚洲一在线 |