UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

アーカイブログモードの設定と解除の方法

アーカイブログモードの設定と解除の方法


0.改訂履歴

  • 2002.10.12 新規作成

1.はじめに

 このドキュメントでは,Oracleをアーカイブログモードに設定したり,ノーアーカイブログモードに設定する手順を説明する.

 なお,利用しているのは,Oracle8i 8.1.6 Workgroup Server for Windowsである.

2.init.oraファイルの設定

  • init.oraファイルをテキストエディタで開く.
    • $ORACLE_BASE/admin/$ORACLE_SID/pfile/initXXX.ora
  • ファイルの中ほどに,次のような記述がある.
#audit_trail = true  # if you want auditing
#timed_statistics = true  # if you want timed statistics
max_dump_file_size = 10240  # limit trace file size to 5M each

# Uncommenting the line below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
# log_archive_start = true
# log_archive_dest_1 = "location=D:\Oracle\oradata\testdb\archive"
# log_archive_format = %%ORACLE_SID%%T%TS%S.ARC

# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
rollback_segments = ( R01, R02, R03, R04, R05, R06, R07, R08 )
  • この3行のコメント文字を削除して,パラメータを有効にすると,アーカイブログモードに設定される.
#audit_trail = true  # if you want auditing
#timed_statistics = true  # if you want timed statistics
max_dump_file_size = 10240  # limit trace file size to 5M each

# Uncommenting the line below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG.
log_archive_start = true
log_archive_dest = "D:\Oracle\oradata\testdb\archive"
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC

# If using private rollback segments, place lines of the following
# form in each of your instance-specific init.ora files:
rollback_segments = ( R01, R02, R03, R04, R05, R06, R07, R08 )
  • 逆に,パラメータをコメントアウトすると,ノーアーカイブログモードに変更される.
  • それぞれのパラメータは,次のような意味を持つ.
パラメータ 説明
log_archive_start true  archiveログモードを有効にする. 自動アーカイブモードにはならない.
log_archive_dest D:\oracle\oradata\testdb\archive  アーカイブログを書き出す先のディレクトリへのパスを指定する.
 なお,こんかい試したのはWorkgroup Serverなので,Enterprise Editionでサポートされる以下のパラメータは使えない
  • log_archive_dest_n
  • "location=

 これは,DB Assistantを用いてデータベースを作成した時に,ツール側でEditionを判別しないので,このパラメータに設定されてしまう,バグというか仕様である.(KNOWN14665)

log_archive_format %%ORACLE_SID%%T%TS%S.ARC  アーカイブログファイルの命名規則.
  • %t スレッドの番号
  • %s ログ順序番号
  • 左を0で埋める場合は,大文字%T,%Sを使う.
  • 変更したらinit.oraファイルを保存する.

3.Oracleに接続する

  • コマンドプロンプトを起動して,環境変数ORACLE_SIDを設定する.
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:\Documents and Settings\Administrator>cd /d c:\

C:\>set ORACLE_SID=testdb

C:\>
  • アイドルインスタンスに接続する.
C:\>sqlplus /nolog

SQL*Plus: Release 8.1.6.0.0 - Production on 土 Oct 12 17:52:21 2002

(c) Copyright 1999 Oracle Corporation.  All rights reserved.

アイドル・インスタンスに接続しました。
SQL>

4.アーカイブログモードに変更する

  • ここでは,ノーアーカイブログモードから,アーカイブログモードに変更する.
  • まず,接続を行う.
  • mountでOracleインスタンスを起動する.
SQL> shutdown;
ORA-01034: ORACLE not available
SQL> startup mount
ORACLEインスタンスが起動しました。

Total System Global Area  797098972 bytes
Fixed Size                    70620 bytes
Variable Size             227356672 bytes
Database Buffers          569499648 bytes
Redo Buffers                 172032 bytes
データベースがマウントされました。
SQL>
  • 現在のデータベースのログモードを確認する.
SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL>
  • 現在はノーアーカイブログモードだと確認できた.
  • アーカイブログモードに変更する.
SQL> alter database archivelog;

データベースが変更されました。

SQL>
  • データベースのログモードが変更されたか確認する.
SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL>
  • アーカイブログモードに変更されている.
  • データベースをオープンする.
SQL> alter database open;

データベースが変更されました。

SQL>
  • 現在のインスタンスのアーカイブログモードの状態を確認する.
SQL>  select archiver from v$instance;

ARCHIVE
-------
STOPPED

SQL>
  • アーカイブログを開始する.
SQL> alter system archive log start;

システムが変更されました。

SQL>
  • インスタンスのアーカイブログモードの状態を確認する.
SQL> select archiver from v$instance;

ARCHIVE
-------
STARTED

SQL>
  • 開始された事が確認できた.

5.アーカイブログモードを解除する

  • ここでは,アーカイブログモードから,ノーアーカイブログモードに変更する.
  • まず,接続を行う.
SQL> shutdown;
データベースがクローズされました。
データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> 
  • mountでOracleインスタンスを起動する.
SQL> startup mount;
ORACLEインスタンスが起動しました。

Total System Global Area  797098972 bytes
Fixed Size                    70620 bytes
Variable Size             227356672 bytes
Database Buffers          569499648 bytes
Redo Buffers                 172032 bytes
データベースがマウントされました。
SQL>
  • データベースをノーアーカイブログモードに変更する.
SQL> alter database noarchivelog;

データベースが変更されました。

SQL>
  • データベースをオープンする.
SQL> alter database open;

データベースが変更されました。

SQL>
  • データベースのアーカイブログモードを確認する.
SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL>
  • ノーアーカイブログモードに設定されている.
  • 次に,インスタンスをノーアーカイブログモードに変更する.
SQL> alter system archive log stop;

システムが変更されました。

SQL>
  • 確認してみる.
SQL> select archiver from v$instance;

ARCHIVE
-------
STOPPED

SQL>
  • 自動アーカイブも停止された.

6.アーカイブログモード関連の状態を確認する

6.1.REDOログの状態確認

  • REDOログファイルと,その状態を確認する.
  • まず,カラムの表示設定を行う.
SQL> col group# format 99999
SQL> col archived format a3
SQL> col status format a10
SQL> col member format a40
SQL>
  • v$logとv$logfileをジョインしてステータスを表示させるSQL文は次の通り.
select a.group#,b.archived,b.status,a.member from v$logfile a,v$log b 2
where a.group# = b.group#; 
  • 実行してみる.
SQL> select a.group#,b.archived,b.status,a.member from v$logfile a,v$log b
  2  where a.group# = b.group#;

GROUP# ARC STATUS     MEMBER
------ --- ---------- ----------------------------------------
     5 YES INACTIVE   D:\ORACLE\ORADATA\TESTDB\REDO05.LOG
     5 YES INACTIVE   D:\ORACLE\ORADATA\TESTDB\REDO06.LOG
     5 NO  CURRENT    D:\ORACLE\ORADATA\TESTDB\REDO07.LOG


SQL>
  • 強制的にログスイッチを発行して,REDOログファイルの状態を確認する.
SQL> alter system switch logfile;

システムが変更されました。

SQL> select a.group#,b.archived,b.status,a.member from v$logfile a,v$log b
  2  where a.group# = b.group#;

GROUP# ARC STATUS     MEMBER
------ --- ---------- ----------------------------------------
     5 NO  CURRENT    D:\ORACLE\ORADATA\TESTDB\REDO05.LOG
     5 YES INACTIVE   D:\ORACLE\ORADATA\TESTDB\REDO06.LOG
     5 YES INACTIVE   D:\ORACLE\ORADATA\TESTDB\REDO07.LOG

SQL>
  • ARCHIVEDの示す位置が変更された事が判る.

6.2.アーカイブログの状態の確認

  • アーカイブログの状態を確認する.
SQL> archive log list;
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 使用可能
アーカイブ先                    D:\Oracle\Ora81\RDBMS
最も古いオンライン・ログ順序 726
アーカイブする次のログ順序 728
カレント・ログ順序 728
SQL>
  • 強制的にログスイッチを発行する.
SQL> alter system switch logfile;

システムが変更されました。

SQL>
  • 再度アーカイブログの状態を確認する.
SQL> archive log list;
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 使用可能
アーカイブ先                    D:\Oracle\Ora81\RDBMS
最も古いオンライン・ログ順序 727
アーカイブする次のログ順序 729
カレント・ログ順序 729
SQL>
  • ログの番号が進んでいる事が判る.
  • "アーカイブ先"で指定されているパスを確認してみる.
D:\Oracle\Ora81\rdbms>dir
 ドライブ D のボリューム ラベルは Data です
 ボリューム シリアル番号は 10FA-3BA1 です

 D:\Oracle\Ora81\rdbms のディレクトリ

2002/10/12  20:39       <DIR>          .
2002/10/12  20:39       <DIR>          ..
2002/10/03  12:23       <DIR>          admin
2002/10/12  17:55                1,024 ARC00725.001
2002/10/12  17:55               79,360 ARC00726.001
2002/10/12  19:01               26,624 ARC00727.001
2002/10/12  19:06                1,024 ARC00728.001
2002/10/12  19:27                1,024 ARC00729.001
2002/10/12  19:28                1,024 ARC00730.001
2002/10/12  19:28                1,024 ARC00731.001
2002/10/12  20:39              154,624 ARC00732.001
2002/10/12  20:39                1,024 ARC00733.001
2002/10/12  20:39                1,024 ARC00734.001
2002/10/12  20:39                1,024 ARC00735.001
2002/10/03  12:17       <DIR>          demo
2002/10/03  12:23       <DIR>          EXTPROC
2002/10/03  12:22       <DIR>          jlib
2002/10/03  12:17       <DIR>          mesg
2002/10/03  12:25       <DIR>          trace
2002/10/03  12:21       <DIR>          XA
              11 個のファイル             268,800 バイト
               9 個のディレクトリ  66,456,150,016 バイトの空き領域

D:\Oracle\Ora81\rdbms>
  • アーカイブログが作成されている事が判る.


広告スペース
Google