Oracle 11 g RMANを使用したデータベースのバックアップ
Oracle独自のバックアップ・リカバリ・ツールRMAN(Recovery Manager)の使用には、次のようなメリットがあります.インクリメンタルバックアップ をサポートバックアップファイルを自動的に管理できる バックアップ/リカバリの自動化 バックアップファイル有効性チェック フラッシュ・リカバリ領域の構成(flash recovery area)
フラッシュ・リカバリ領域は、データ・ファイルのバックアップとリカバリ、および関連情報を格納するストレージ領域です.2つのパラメータを設定する必要があります:db_recovery_file_dest_size(フラッシュリカバリ領域の最大容量)、db_recovery_file_dest(フラッシュリカバリ領域が存在するパス).
フラッシュ・リカバリ領域の情報を表示するには、次の手順に従います.
フラッシュ・リカバリ領域のサイズを変更するには、次の手順に従います.
使用状況の表示:
使用されていないことを示します.
このコマンドを使用して詳細を表示することもできます.
RMANのデータベースへの接続の確立
rmanユーザーを作成し、次の権限を付与します.
rmanユーザーを使用してRMANにログインするには:
次の方法でログインすることもできます.
OS認証接続RMANも使用できます.
RMANの構成
RMANの構成パラメータを表示するには:
パラメータの意味:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1
1つのデータ・ファイルのコピーのみが保持され、最新のバックアップ・コピーが保持されていることを示すバックアップ・コピーの数.
CONFIGURE DEFAULT DEVICE TYPE TO DISK
データファイルはデフォルトでディスクにバックアップされます.テープ(sbt)などの他のデバイスでも構いません.
CONFIGURE BACKUP OPTIMIZATION OFF
バックアップ最適化を使用しないで、バックアップ最適化を有効にすることは、ファイルの同じバージョンがバックアップされている場合、ファイルをバックアップしないことです.バックアップファイルは1つだけ保持されます.
CONFIGURE CONTROLFILE AUTOBACKUP OFF
制御ファイルの自動バックアップを開始せず、ONに変更すると、データベース構造が変化したり、データベースのバックアップ中に指定したディレクトリに自動的に再バックアップされます.
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET
バックアップ・チャネル数は1で、デフォルトではバックアップ・セットが使用されます.チャネル数が多いほど、タスクの実行時間が短くなります.
パラメータを変更する場合は、次のコマンドを実行します.
バックアップの最適化をオンにします.
バックアップ・タイプをCopy、つまりイメージ・モードに設定します.
フラッシュ・リカバリ領域への制御ファイルのバックアップ:
フラッシュ・リカバリ領域が指定されていない場合は、手動でパスを指定することもできます.
フラッシュリカバリ領域をtestディレクトリに変更
制御ファイルバックアップのディスクタイプとバックアップディレクトリを設定します.パスは%Fで終わります.
RMANオフラインバックアップ
RMANオフラインバックアップはデータベースを閉じ、mount状態にデータベースを起動する必要があります.
RMANに入り、データをバックアップする:
まず、データバックアップのデフォルトパラメータ、バックアップ方法(copyまたはbackupset)、バックアップフォーマット(diskまたはその他)を表示します.
バックアップコマンドを実行するには、copy方式を使用して、イメージをライブラリ全体にコピーします.
デフォルトのbackupsetモードを使用する場合は、次の操作を行います.
バックアップが完了したら、データベースを開きます.
RMANはオンラインでデータベース全体をバックアップする
オンラインバックアップでは、フラッシュ・リカバリ領域を設定する必要があります.フラッシュ・リカバリ領域は十分大きく、データベースはアーカイブ・モードにします.データベースのバックアップと同時にDML操作を行うことができ、正常に読み取ることができ、新しいDML操作記録はREDOログファイルに記録され、バックアップ時間が長く、その間に大量のデータ変化が発生した場合、REDOログは切り替えられ、これらの変化したデータをアーカイブログファイルに書き込む.ここでのアーカイブログはmysqlのbinlogに似ており、メディア障害が発生した場合、バックアップログとアーカイブログを使用してデータのすべてのリカバリを記録し、完了します.
データベース・アーカイブ・モードがオンになっているかどうかを確認します.現在はオフです.
ログのアーカイブを有効にするには:
ログアーカイブはmountモードで、データベースを閉じてmountモードに起動し、アーカイブモードをオンにする必要があります.
RMANを使用してデータベースをオンラインでバックアップするには:
バックアップセットフォーマットを使用してバックアップを行い、圧縮方式を採用し、圧縮割合は約5:1である.データファイルをバックアップし、アーカイブログファイルもバックアップします.バックアップが完了すると、バックアップしたアーカイブログファイルがストレージディレクトリから削除され、アーカイブスペースが消去されます.
バックアップ表領域:
圧縮の使用:
RMANを使用してデータファイルをバックアップし、%Uは一意の名前を自動的に割り当てます.
命令をクリアする
古いバックアップファイルsetフォーマットをクリアします.
古いバックアップファイルとすべてのバックアップ、copyモードを明確にします.
フラッシュ・リカバリ領域の容量が制限されている場合は、フラッシュ・リカバリ領域のパスと容量を変更できます.
RMANインクリメンタルバックアップ
backup databaseを使用すると、フルライブラリバックアップになります.バックアップに時間がかかるたびにディスク領域が消費され、RMANのインクリメンタルバックアップでこれらの問題を解決できます.
ここには2つのバックアップレベルがあり、レベル0のバックアップはフルライブラリバックアップ、レベル1のバックアップはインクリメンタルバックアップであり、一般的にはデータに対して0レベルのバックアップを行った後、レベル1のインクリメンタルバックアップを行う必要がある.
レベル1の差分インクリメンタルバックアップ:
イメージコピーのインクリメンタルバックアップ
このコマンドを実行するたびに、イメージを使用してデータベースをインクリメンタルバックアップできます.
フラッシュ・リカバリ領域は、データ・ファイルのバックアップとリカバリ、および関連情報を格納するストレージ領域です.2つのパラメータを設定する必要があります:db_recovery_file_dest_size(フラッシュリカバリ領域の最大容量)、db_recovery_file_dest(フラッシュリカバリ領域が存在するパス).
フラッシュ・リカバリ領域の情報を表示するには、次の手順に従います.
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/app/oracle/recovery_area
db_recovery_file_dest_size big integer 3882M
フラッシュ・リカバリ領域のサイズを変更するには、次の手順に従います.
SQL> alter system set db_recovery_file_dest_size=2g;
System altered.
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/app/oracle/recovery_area
db_recovery_file_dest_size big integer 2G
使用状況の表示:
SQL> select name,space_limit,space_used,number_of_files from v$recovery_file_dest;
NAME
--------------------------------------------------------------------------------
SPACE_LIMIT SPACE_USED NUMBER_OF_FILES
----------- ---------- ---------------
/data/app/oracle/recovery_area
2147483648 0 0
使用されていないことを示します.
このコマンドを使用して詳細を表示することもできます.
SQL> select file_type,percent_space_used,percent_space_reclaimable,number_of_files from v$flash_recovery_area_usage;
RMANのデータベースへの接続の確立
rmanユーザーを作成し、次の権限を付与します.
[oracle@temp-test oracle]$ sqlplus /nolog
SQL> connect/as sysdba
Connected.
SQL> create user rman identified by oracle;
User created.
SQL> grant resource,connect,dba to rman;
Grant succeeded.
SQL> quit
rmanユーザーを使用してRMANにログインするには:
[oracle@temp-test oracle]$ rman target rman/oracle
Recovery Manager: Release 11.2.0.1.0 - Production on Fri Nov 3 16:59:27 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1486802665)
RMAN>
次の方法でログインすることもできます.
[oracle@temp-test oracle]$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Fri Nov 3 17:00:35 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target system/rman
connected to target database: ORCL (DBID=1486802665)
RMAN> connect target rman/oracle
OS認証接続RMANも使用できます.
[oracle@temp-test oracle]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Fri Nov 3 17:02:52 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1486802665)
RMAN>
RMANの構成
RMANの構成パラメータを表示するには:
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default
パラメータの意味:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1
1つのデータ・ファイルのコピーのみが保持され、最新のバックアップ・コピーが保持されていることを示すバックアップ・コピーの数.
CONFIGURE DEFAULT DEVICE TYPE TO DISK
データファイルはデフォルトでディスクにバックアップされます.テープ(sbt)などの他のデバイスでも構いません.
CONFIGURE BACKUP OPTIMIZATION OFF
バックアップ最適化を使用しないで、バックアップ最適化を有効にすることは、ファイルの同じバージョンがバックアップされている場合、ファイルをバックアップしないことです.バックアップファイルは1つだけ保持されます.
CONFIGURE CONTROLFILE AUTOBACKUP OFF
制御ファイルの自動バックアップを開始せず、ONに変更すると、データベース構造が変化したり、データベースのバックアップ中に指定したディレクトリに自動的に再バックアップされます.
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET
バックアップ・チャネル数は1で、デフォルトではバックアップ・セットが使用されます.チャネル数が多いほど、タスクの実行時間が短くなります.
パラメータを変更する場合は、次のコマンドを実行します.
バックアップの最適化をオンにします.
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored
バックアップ・タイプをCopy、つまりイメージ・モードに設定します.
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY PARALLELISM 1;
new RMAN configuration parameters are successfully stored
フラッシュ・リカバリ領域への制御ファイルのバックアップ:
RMAN> backup current controlfile;
Starting backup at 03-NOV-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/data/app/oracle/recovery_area/ORCL/controlfile/o1_mf_TAG20171103T180113_dzrhm9vk_.ctl tag=TAG20171103T180113 RECID=3 STAMP=959104874
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 03-NOV-17
フラッシュ・リカバリ領域が指定されていない場合は、手動でパスを指定することもできます.
フラッシュリカバリ領域をtestディレクトリに変更
SQL> connect/as sysdba
Connected.
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/app/oracle/recovery_area
db_recovery_file_dest_size big integer 2G
SQL> alter system set db_recovery_file_dest='/data/app/oracle/test';
System altered.
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/app/oracle/test
db_recovery_file_dest_size big integer 2G
制御ファイルバックアップのディスクタイプとバックアップディレクトリを設定します.パスは%Fで終わります.
RMAN> configure controlfile autobackup format for device type disk to '/data/app/oracle/test/%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/data/app/oracle/test/%F';
new RMAN configuration parameters are successfully stored
RMANオフラインバックアップ
RMANオフラインバックアップはデータベースを閉じ、mount状態にデータベースを起動する必要があります.
[oracle@temp-test oracle]$ sqlplus /nolog
SQL> connect/as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 939526296 bytes
Database Buffers 637534208 bytes
Redo Buffers 7434240 bytes
Database mounted.
SQL> quit
RMANに入り、データをバックアップする:
まず、データバックアップのデフォルトパラメータ、バックアップ方法(copyまたはbackupset)、バックアップフォーマット(diskまたはその他)を表示します.
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default
バックアップコマンドを実行するには、copy方式を使用して、イメージをライブラリ全体にコピーします.
RMAN> backup as copy database;
デフォルトのbackupsetモードを使用する場合は、次の操作を行います.
RMAN> backup as compressed backupset database;
バックアップが完了したら、データベースを開きます.
RMAN> sql 'alter database open';
sql statement: alter database open
RMANはオンラインでデータベース全体をバックアップする
オンラインバックアップでは、フラッシュ・リカバリ領域を設定する必要があります.フラッシュ・リカバリ領域は十分大きく、データベースはアーカイブ・モードにします.データベースのバックアップと同時にDML操作を行うことができ、正常に読み取ることができ、新しいDML操作記録はREDOログファイルに記録され、バックアップ時間が長く、その間に大量のデータ変化が発生した場合、REDOログは切り替えられ、これらの変化したデータをアーカイブログファイルに書き込む.ここでのアーカイブログはmysqlのbinlogに似ており、メディア障害が発生した場合、バックアップログとアーカイブログを使用してデータのすべてのリカバリを記録し、完了します.
データベース・アーカイブ・モードがオンになっているかどうかを確認します.現在はオフです.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 22
Current log sequence 24
ログのアーカイブを有効にするには:
SQL> alter database archivelog;
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance
ログアーカイブはmountモードで、データベースを閉じてmountモードに起動し、アーカイブモードをオンにする必要があります.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 1040189592 bytes
Database Buffers 536870912 bytes
Redo Buffers 7434240 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 22
Next log sequence to archive 24
Current log sequence 24
RMANを使用してデータベースをオンラインでバックアップするには:
RMAN> backup as compressed backupset database plus archivelog delete all input;
バックアップセットフォーマットを使用してバックアップを行い、圧縮方式を採用し、圧縮割合は約5:1である.データファイルをバックアップし、アーカイブログファイルもバックアップします.バックアップが完了すると、バックアップしたアーカイブログファイルがストレージディレクトリから削除され、アーカイブスペースが消去されます.
バックアップ表領域:
RMAN> backup tablespace users;
Starting backup at 06-NOV-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/data/app/oracle/oradata/orcl/users01.dbf
output file name=/data/app/oracle/test/ORCL/datafile/o1_mf_users_dzzxzmxv_.dbf tag=TAG20171106T134939 RECID=12 STAMP=959348980
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 06-NOV-17
圧縮の使用:
RMAN> backup as compressed backupset tablespace users;
RMANを使用してデータファイルをバックアップし、%Uは一意の名前を自動的に割り当てます.
RMAN> backup as backupset datafile 1 format '/data/app/backup/datafile_1_%U';
命令をクリアする
古いバックアップファイルsetフォーマットをクリアします.
RMAN> delete obsolete;
RMAN> crosscheck backupset;
RMAN> delete expired backupset;
古いバックアップファイルとすべてのバックアップ、copyモードを明確にします.
RMAN> list datafilecopy all;
RMAN> delete expired backupcopy;
RMAN> crosscheck datafilecopy all;
RMAN> delete expired backupcopy;
フラッシュ・リカバリ領域の容量が制限されている場合は、フラッシュ・リカバリ領域のパスと容量を変更できます.
SQL> alter system set db_recovery_file_dest='/data/app/oracle/test';
SQL> alter system set db_recovery_file_dest_size=10g;
RMANインクリメンタルバックアップ
backup databaseを使用すると、フルライブラリバックアップになります.バックアップに時間がかかるたびにディスク領域が消費され、RMANのインクリメンタルバックアップでこれらの問題を解決できます.
ここには2つのバックアップレベルがあり、レベル0のバックアップはフルライブラリバックアップ、レベル1のバックアップはインクリメンタルバックアップであり、一般的にはデータに対して0レベルのバックアップを行った後、レベル1のインクリメンタルバックアップを行う必要がある.
RMAN> backup incremental level 0 database;
レベル1の差分インクリメンタルバックアップ:
RMAN> backup incremental level 1 database;
イメージコピーのインクリメンタルバックアップ
RMAN> run {
2> backup incremental level 1 for recover of copy with tag 'incr_copy_backup' database;
3> recover copy of database with tag 'incr_copy_backup';
4> }
このコマンドを実行するたびに、イメージを使用してデータベースをインクリメンタルバックアップできます.