OSコマンドによるバックアップ手順

本ページではOSコマンドを用いたオンライン、オフラインバックアップ手順をそれぞれ記載します。


オフラインバックアップの場合

1 DBをabort以外のオプションで停止します。
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2 OSコマンドで以下のファイルをコピーします。
- データファイル
- 制御ファイル
- redoログ
$ cp /app/oracle/oradata/ORCL102/system01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/undotbs01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/sysaux01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/users01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/control.ctl /bk/
$ cp /app/oracle/oradata/ORCL102/redo01.log /bk/
$ cp /app/oracle/oradata/ORCL102/redo02.log /bk/
$ cp /app/oracle/oradata/ORCL102/redo03.log /bk/
上記のファイルパスは以下のSQLの結果で確認することができます。
SQL> SELECT NAME FROM V$DATAFILE;
SQL> SELECT NAME FROM V$CONTROLFILE;
SQL> SELECT NAME FROM V$TEMPFILE;
SQL> SELECT MEMBER FROM V$LOGFILE;

オンラインバックアップの場合

1 オンラインバックアップモードに変更します。
 以下の例ではデータベース全体をバックアップモードに変更していますが表領域の単位でも可能です。
SQL> alter database begin backup;

Database altered.
2 OSコマンド(Windowsの場合はocopyツール)で以下のファイルをコピーします。
- データファイル
- redoログ
$ cp /app/oracle/oradata/ORCL102/system01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/undotbs01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/sysaux01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/users01.dbf /bk/
$ cp /app/oracle/oradata/ORCL102/redo01.log /bk/
$ cp /app/oracle/oradata/ORCL102/redo02.log /bk/
$ cp /app/oracle/oradata/ORCL102/redo03.log /bk/
- 制御ファイル
ALTER DATABASE BACKUP CONTROLFILEコマンドでバックアップするほか、念のため TO TRACE 指定で取得できる制御ファイルの作成文も取得しておいたほうが望ましいです。 なお、TO TRACEで出力される制御ファイルの作成文はSQLを実行したサーバプロセスのトレースに出力されます。
SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/bk/control.ctl';
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
3 オンラインバックアップモードを解除します
SQL>  alter database end backup;

Database altered.
※表領域単位でオンラインバックアップモードに変更する場合は最初に制御ファイルのバックアップを取得し、1と3のalter database をalter tablespace に読み替えて各表領域毎に1~3を繰り返します。
SQL> alter tablespace <表領域名> begin backup;

Database altered.
SQL> alter tablespace <表領域名> end backup;

Tablespace altered.
★ORACLE案件承ります