Oracle その他

自動UNDO管理から手動UNDO管理モードへ変更する方法|Oracle

自動・手動UNDO管理モードとは

今となっては手動UNDO管理モードを使うことはほとんどないと思うが、Oracle9i 以前の自動UNDO管理モードが存在しない頃、ロールバックセグメントを管理する必要があった。需要があるかは不明だが、手動UNDO管理モードで運用することも可能なのでその手順を記す。

手動UNDO管理モードへ切り替える手順

パラメタの変更

alter system set undo_management=manual scope=spfile;

制限モードで起動

設定を反映させるため再起動し、反映されていることを確認

startup restrict;

実行例
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
temp_undo_enabled                    boolean     FALSE
undo_management                      string      MANUAL
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1

ロールバック用表領域を作成

ロールバックセグメント用の表領域を作成し、そのローグバックセグメントをONLINEにする

実行例
SQL> create tablespace rbs datafile '/u01/app/oracle/oradata/orcl/rbs01.dbf' size 1G  segment space management manual;

Tablespace created.

SQL> create rollback segment rbs01 tablespace rbs;

Rollback segment created.

SQL> alter rollback segment rbs01 online;

Rollback segment altered.

制限モードを解除しDBをオープン

RBSがONLINEとなっていることを確認

実行例
SQL> alter system disable restricted session;

System altered.

SQL>  select  SEGMENT_NAME,TABLESPACE_NAME,STATUS from dba_rollback_segs;

SEGMENT_NAME                   TABLESPACE_NAME                STATUS
------------------------------ ------------------------------ ----------------
SYSTEM                         SYSTEM                         ONLINE
_SYSSMU10_4090121400$        UNDOTBS1                       OFFLINE
_SYSSMU9_2129201490$           UNDOTBS1                       OFFLINE
_SYSSMU0_1492919291$           UNDOTBS1                       OFFLINE
_SYSSMU1_2429491291$           UNDOTBS1                       OFFLINE
_SYSSMU9_2191999909$           UNDOTBS1                       OFFLINE
_SYSSMU9_190002412$            UNDOTBS1                       OFFLINE
_SYSSMU4_4290244921$           UNDOTBS1                       OFFLINE
_SYSSMU2_2209411214$           UNDOTBS1                       OFFLINE
_SYSSMU2_1902004090$           UNDOTBS1                       OFFLINE
_SYSSMU1_2229119099$           UNDOTBS1                       OFFLINE
RBS01                          RBS                            ONLINE

UNDOTBS1 は今まで自動UNDO管理モードで使っていたUNDO表領域のこと

システムに反映させる

alter system set rollback_segments=rbs01 scope=spfile;

再起動しても問題ないことを確認

インスタンスが問題なく起動し、またロールバックセグメントのパラメタがきちんと設定されていることが確認できる

SQL> show parameter rollback_segments

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
rollback_segments                    string      RBS01

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-Oracle, その他
-,