生产环境Oracle undo表空间管理实践


当前第2页 返回上一页

根据您的数据库要求创建一个相同大小(更大或更小)的新撤消表空间。

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的状态,判断old undo tablespace中的segment是否都处于offline状态。

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

如果表空间中有状态不是OFFLINEUndo段要被删除,我们需要等到它们变为OFFLINE。您可能必须等待tuned_undoretention 的持续时间(来自v$undostat)以确保所有撤消段都已变为OFFLINE。

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状态,则删除该表空间。

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;?

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

对于增加/调整撤消表空间的大小,有两个选项:

  • 调整现有撤销数据文件的大小
  • 将新的撤销数据文件添加到表空间。

调整现有撤销数据文件的大小:

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;?

添加新数据文件的步骤:

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 中撤消表空间/撤消管理的最佳实践

以下建议列表将帮助您管理撤销空间以发挥最大优势。

  • 除非您的系统具有闪回或 LOB 保留要求,否则您无需为UNDO_RETENTION 参数设置值。
  • 在撤销表空间中留出 10% 到 20% 的额外空间,以应对工作负载的一些波动。
  • 正确设置撤消表空间警报的警告和严重警报阈值。
  • 要调整 SQL 查询或检查失控查询,请使用长查询或V$UNDOSTAT WRH$_UNDOSTAT 视图中提供的 SQLID 列的值从 V$SQL 视图检索 SQL 文本和有关 SQL 的其他详细信息。

 到此这篇关于生产环境Oracle undo表空间管理实践的文章就介绍到这了,更多相关Oracle undo表空间管理内容请搜索


打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...