星期三, 1月 11, 2012

Oracle 9i Set Large Transaction Rollback "XXX" Failed

資料庫在8i 升級到 9i 之後 在alert log 看到以下訊息:

Set Large Transaction Rollback "XXX" Failed

9i 的undo management 是auto的
相較於8i , 8i使用rollback segment 來管理交易的rollback...

由於舊程式連到9i db還在嘗試使用rollback segment , 遇到了9i DB undo 自動管理便會無法執行
如要不停機就線上修改 , 設定參數undo_suppress_errors=true;(可線上修改)

SQL>alter system set undo_suppress_errors=true;

System altered.

SQL>create rollback segment XXX tablespace UNDOTBS1;

Rollback segment created.

Ref.
http://docs.oracle.com/cd/B10500_01/server.920/a96536/ch1217.htm#1025160

UNDO_SUPPRESS_ERRORS



Parameter type

Boolean

Default value

false

Parameter class

Dynamic: ALTER SESSIONALTER SYSTEM

Range of values

true | false

UNDO_SUPPRESS_ERRORS enables users to suppress errors while executing manual undo management mode operations (for example, ALTER ROLLBACK SEGMENT ONLINE) in automatic undo management mode. Setting this parameter enables users to use the undo tablespace feature before all application programs and scripts are converted to automatic undo management mode. For example, if you have a tool that uses SET TRANSACTION USE ROLLBACK SEGMENT statement, you can add the statement "ALTER SESSION SET UNDO_SUPPRESS_ERRORS = true" to the tool to suppress the ORA-30019 error.

If you want to run in automatic undo management mode, ensure that your tools or applications are updated to run in automatic undo management mode.

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...