SQL Serverのデータベースのバックアップ/リストア方法について説明します。
SQL Serverデータベースのバックアップは以下の手順から構成されます。
同期処理の開始/再開(同期型バックアップを行う場合だけ)
データベースバックアップ
トランザクションログのバックアップ
同期処理の開始/再開(同期型バックアップを行う場合だけ)
同期型バックアップによる運用を行う場合、事前に同期処理(EC/REC)を開始または再開しておく必要があります。同期処理の開始は「12.4.2.1 swsrpstartsync(複製開始コマンド)」で行います。データベースが複数ボリューム構成である場合は、すべてのデータベースボリュームについて処理を実施する必要があります。
■実行例
すべてのデータベースボリュームの同期処理を開始/再開します。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstartsync g1d1p1 g1d11p1@BKUP-SVR FROM=g1d1p1@DB-SVR,TO=g1d11p1@BKUP-SVR swsrpstartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstartsync g1d2p1 g1d12p1@BKUP-SVR FROM=g1d2p1@DB-SVR,TO=g1d12p1@BKUP-SVR swsrpstartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstartsync g1d3p1 g1d13p1@BKUP-SVR FROM=g1d3p1@DB-SVR,TO=g1d13p1@BKUP-SVR swsrpstartsync completed C:\> |
データベースのバックアップ
データベースのバックアップは、「12.6.2.1 swsrpbackup_sql(SQL Serverバックアップ実行コマンド)」で行います。
注意
AdvancedCopy Managerを使用してデータベースバックアップを実施する場合、トランザクションログの切捨ては行われません。そのため、バックアップ運用をデータベースバックアップだけで構成する場合においても、トランザクションログの切捨てのためのログバックアップは定期的に実施してください。詳細は、『SQL Server Books Online』の「トランザクションログの切り捨て」を参照してください。
「12.6.2.1 swsrpbackup_sql(SQL Serverバックアップ実行コマンド)」が複数ボリューム構成のデータベースを「12.4.2.2 swsrpmake(複製作成コマンド)」によって処理している間にエラーが発生した場合は、その時点で処理を中断します。すでに複製処理がなされたボリュームに対しては、エラー原因への対処のあと、「12.4.2.1 swsrpstartsync(複製開始コマンド)」を使って、同期処理を再開してください。
■実行例
データベースDB01、DB02、DB03のバックアップを実施します。同期型バックアップの場合は、「12.4.2.3 swsrpstat(運用状況表示コマンド)」ですべてのデータベースボリュームの同期処理が等価性維持状態(Execute欄が“100%”)になっていることを確認してください。デバイスマップファイル名がG:\SQLADM\devmap.txtであるとして、業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpbackup_sql -Xserver VSERVER -Xdevmap G:\SQLADM\devmap.txt DB01 DB02 DB03 DB01 DB02 DB03 swsrpbackup_sql completed C:\> |
トランザクションログのバックアップ
トランザクションログのバックアップは、SQL ServerのEnterprise ManagerまたはTransact-SQLで行います。
SQL Serverのデータベースの復旧は、以下の手順から構成されます。
ログファイルのバックアップ(最新時点への復旧を行う場合だけ)
データベースのリストア
データベースのリカバリー(最新時点または特定時点への復旧を行う場合だけ)
ログファイルのバックアップ(最新時点への復旧を行う場合だけ)
最新時点への復旧を行う場合は、ログバックアップを実施してください(NO_TRUNCATE 句を指定した BACKUP LOG ステートメントを実行し、現在アクティブなトランザクション ログをバックアップします)。ログバックアップを実施しなかった場合、または、ログバックアップが実施できない障害の場合は、最新時点への復旧はできません。障害発生前の最新のログバックアップを使用してデータベースリカバリーを行ってください。
データベースのリストア
データベースのリストアは以下の2つの作業を実施することによって行われます。
ファイルの復元
データベースの再作成
注意
あるユーザー(ログイン)の既定のデータベースが、リストア対象のデータベースに設定されている場合は、上記作業を行う前にそのユーザーの既定のデータベースをmasterデータベースに変更する必要があります。この場合のリストア手順は以下のとおりです。
既定のデータベースをリストア対象データベースからmasterに変更する。
「ファイルの復元」作業を実施する。
「データベースの再作成」作業を実施する。
既定のデータベースをmasterからリストア対象データベースに変更する。
既定のデータベースはEnterprise Managerで変更できます。
サーバー グループを展開し、サーバーを展開します。
[セキュリティ] フォルダを展開し、[ログイン] をクリックします。
詳細ペインで、変更するログインを右クリックし、[プロパティ] をクリックします。
[全般] タブの [データベース] ボックスの一覧で、SQL Serverのインスタンスにログインしたあとにログインが接続する新しい既定のデータベースをクリックします。(上記の変更方法は、『SQL Server Books Online』の「SQL Serverの管理」→「セキュリティの管理」→「セキュリティ アカウントの管理」→「ログインの変更」の「ログインの既定のデータベースを変更するには」に記載されています)
ファイルの復元
全データベースファイル(データファイルとログファイル)を復元します。
注意
ログファイルだけの復元はできません。
全データベースファイルの復元は以下の手順で行います。
手順 | 手順名 | 説明 |
---|---|---|
1 | データベース削除 | Enterprise Managerでデータベースを削除します。ログの適用を行う場合、「データベースのバックアップと復元ヒストリ」は削除しないようにしてください。誤って削除すると、Enterprise Managerによるログの適用が不可能になります(その場合はTransact-SQLでログを適用してください)。 なお、リストア後のデータベースの所有者は、後述する「データベースの再作成」を実行したユーザーとなります。データベースの再作成を実行するユーザーとリストア前のデータベースの所有者が異なる場合は、データベースの再作成を実行したあと、所有者の変更作業を行う必要があります。そのため、データベースの削除を実施する前に、現在のデータベースの所有者を確認し、記録してください。 |
2 | 複製作成コマンドの実施 |
|
ポイント
データベースファイルとともにメタデータファイルも復元されます(ファイル識別番号1のデータベースファイルと同一のフォルダに復元されます)。
AdvancedCopy Managerのバックアップボリュームのデータをさらにテープ装置へ退避する運用を行っている場合、複製作成コマンドを使わずにテープ装置からデータベースボリュームへ直接ファイル復元を行うこともできます。
■実行例(筐体内バックアップの場合)
データベースを削除したあと、スナップショット型レプリケーション(OPC)を使用することによって、ファイル復元を行います。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d11p1@BKUP-SVR g1d1p1 FROM=g1d11p1@BKUP-SVR,TO=g1d1p1@DB-SVR swsrpmake completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d12p1@BKUP-SVR g1d2p1 FROM=g1d12p1@BKUP-SVR,TO=g1d2p1@DB-SVR swsrpmake completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d13p1@BKUP-SVR g1d3p1 FROM=g1d13p1@BKUP-SVR,TO=g1d3p1@DB-SVR swsrpmake completed C:\> |
■実行例(筐体間バックアップの場合)
データベースを削除したあと、同期型レプリケーション(REC)を使用することによって、ファイル復元を行います。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstartsync g1d11p1@BKUP-SVR g1d1p1 FROM=g1d11p1@BKUP-SVR,TO=g1d1p1@DB-SVR swsrpstartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstarsync g1d12p1@BKUP-SVR g1d2p1 FROM=g1d12p1@BKUP-SVR,TO=g1d2p1@DB-SVR swsrpstartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpstartsync g1d13p1@BKUP-SVR g1d3p1 FROM=g1d13p1@BKUP-SVR,TO=g1d3p1@DB-SVR swsrpstartsync completed (等価性維持状態になるまで待つ) C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d11p1@BKUP-SVR g1d1p1 FROM=g1d11p1@BKUP-SVR,TO=g1d1p1@DB-SVR swsrpmake completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d12p1@BKUP-SVR g1d2p1 FROM=g1d12p1@BKUP-SVR,TO=g1d2p1@DB-SVR swsrpmake completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpmake g1d13p1@BKUP-SVR g1d3p1 FROM=g1d13p1@BKUP-SVR,TO=g1d3p1@DB-SVR swsrpmake completed C:\> |
データベースの再作成
データベースの再作成は、「12.6.2.2 swsrprestore_sql(SQL Serverリストア実行コマンド)」で行います。以下のリストア方法を選択できます。
最新時点または特定時点までの復旧
バックアップ時点への復旧
注意
リストア後のデータベースの所有者は、データベースの再作成を実行したユーザーになります。データベースの再作成を実行したユーザーとリストア前のデータベースの所有者が異なる場合は、ストアド プロシージャ:sp_changedbownerを使用して所有者の変更を行ってください。
■実行例
ファイル復元を実施したあと、データベースを再作成します。メタデータファイルはD:\SQLSVR\DB01.swsrp-dmpなどに復元されるので、このファイル名を指定して、業務サーバ(DB-SVR)からコマンドを実行します。
以下の例は、データベースの再作成後、トランザクションログを適用することにより、最新時点または特定時点までデータベースを復元することを想定しているため、-Xnologオプションを指定していません。バックアップ時点の状態にデータベースを復元させる場合は、-Xnologオプションを指定してください。
C:\>C:\Win32App\AdvancedCopyManager\bin\swsrprestore_sql -Xserver VSERVER -Xmeta D:\SQLSVR\DB01.swsrp-dmp DB01 DB01 swsrprestore_sql completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrprestore_sql -Xserver VSERVER -Xmeta D:\SQLSVR\DB02.swsrp-dmp DB02 DB02 swsrprestore_sql completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrprestore_sql -Xserver VSERVER -Xmeta D:\SQLSVR\DB03.swsrp-dmp DB03 DB03 swsrprestore_sql completed C:\> |
ポイント
SQL Serverリストア実行コマンドが正常に終了すると、メタデータファイルは自動的に削除されます。
データベースのリカバリー(最新時点または特定時点への復旧を行う場合だけ)
最新または特定の時点まで復旧する場合、Enterprise Managerからログを適用してください。操作方法は、『SQL Server Books Online』の「トランザクションログバックアップを適用する方法(Enterprise Manager)」を参照してください。
また、msdbのバックアップ履歴が消失した場合などEnterprise Managerからログ適用を実施できない場合は、Transact-SQLにより、ログ適用を実施してください。操作方法は、『SQL Server Books Online』の「トランザクションログバックアップを適用する方法(Transact-SQL)」を参照してください。
コピー状況の確認は「12.4.2.3 swsrpstat(運用状況表示コマンド)」で行います。また、データベースバックアップの履歴はmsdbデータベースに記録されています。最新バックアップ時刻は、Enterprise Managerのツリー画面で対象データベースを右クリック後、「プロパティ」を選択することにより参照できます。
実行中のコピー処理を停止する場合は、「12.4.2.4 swsrpcancel(複製解除コマンド)」を使用します。
■実行例
実行中の同期処理を停止します。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpcancel g1d1p1 g1d11p1@BKUP-SVR FROM=g1d1p1@DB-SVR,TO=g1d11p1@BKUP-SVR swsrpcancel completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpcancel g1d2p1 g1d12p1@BKUP-SVR FROM=g1d2p1@DB-SVR,TO=g1d12p1@BKUP-SVR swsrpcancel completed C:\>C:\Win32App\AdvancedCopyManager\bin\swsrpcancel g1d3p1 g1d13p1@BKUP-SVR FROM=g1d3p1@DB-SVR,TO=g1d13p1@BK-SVR swsrpcancel completed C:\> |
AdvancedCopy Managerでは、Microsoft Clustering Service(MSCS)またはWindows Server(R) Failover Clustering(WSFC)によるクラスタシステム運用をサポートしています。AdvancedCopy Managerにおけるクラスタ運用に関する一般的な情報は、「13.1.5 クラスタ運用時の注意事項」を参照してください。