SQL Serverのデータベースのバックアップ/リストア方法について説明します。
バックアップは以下の手順で実施します。
同期処理の開始(同期型バックアップを行う場合だけ)
データベースのバックアップ
トランザクションログのバックアップ
同期処理の開始(同期型バックアップを行う場合だけ)
同期型バックアップによる運用を行う場合、事前に同期処理(EC/REC)を開始しておく必要があります。同期処理の開始は「12.2.2.8 swststartsync(バックアップ同期処理開始コマンド)」で行います。データベースが複数ボリューム構成である場合は、すべてのデータベースボリュームについて処理を実施する必要があります。
■実行例
すべてのデータベースボリュームの同期処理を開始します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swststartsync g1d1p1 g1d1p1 swststartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swststartsync g1d2p1 g1d2p1 swststartsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swststartsync g1d3p1 g1d3p1 swststartsync completed C:\> |
データベースのバックアップ
SQL Serverのデータベースバックアップは、「12.6.1.1 swstbackup_sqlsvr(SQL Serverバックアップ実行コマンド)」で行います。
注意
スナップショットバックアップでは、トランザクションログの切捨ては行われません。そのため、バックアップ運用をデータベースバックアップだけで構成する場合においても、トランザクションログの切捨てのためのログバックアップは定期的に実施してください。詳細は、『SQL Server Books Online』の「トランザクションログの切り捨て」の項を参照してください。
「12.6.1.1 swstbackup_sqlsvr(SQL Serverバックアップ実行コマンド)」が複数ボリューム構成のデータベースを「12.2.2.1 swstbackup(バックアップ実行コマンド)」によって処理している間にエラーが発生すると、その時点で処理を中断し、AdvancedCopy Managerのバックアップ履歴情報が不揃いになる可能性があります。そのような不整合状態を解消するには、「12.2.2.7 swsthistdel(履歴情報削除コマンド)」を使用して不要な履歴情報を削除してください。すでに複製処理がなされたボリュームに対しては、エラー原因への対処のあと、「12.2.2.8 swststartsync(バックアップ同期処理開始コマンド)」を使って、同期処理を再開してください。
■実行例
データベースDB01、DB02、DB03のバックアップを実施します。同期型バックアップの場合は、「12.2.2.10 swstsyncstat(バックアップ同期処理実行状況表示コマンド)」で全データベースボリュームの同期処理が等価性維持状態(Execute欄が“100%”)になっていることを確認してください。デバイスマップファイル名がG:\SQLADM\devmap.txtであるとして、業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swstbackup_sqlsvr -Xserver VSERVER -Xdevmap G:\SQLADM\devmap.txt DB01 DB02 DB03 DB01 DB02 DB03 swstbackup_sqlsvr completed C:\> |
ポイント
「12.6.1.1 swstbackup_sqlsvr(SQL Serverバックアップ実行コマンド)」をサスペンド指定で実施すると、Suspend/Resume機能により、等価性維持状態を一時停止(サスペンド)してバックアップを行います。Suspend/Resume機能は、「第5章 Suspend/Resume機能によるバックアップ運用」を参照してください。
トランザクションログのバックアップ
トランザクションログのバックアップは、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 | リストア実行コマンドの実施 | 全ファイルが配置されている業務ボリュームについて、「12.2.2.3 swstrestore(リストア実行コマンド)」を実行します。 |
ポイント
データベースファイルとともにメタデータファイルも復元されます。ファイル識別番号1のデータベースファイルと同一のフォルダに復元されます。
AdvancedCopy Managerのバックアップボリュームのデータをさらにテープ装置へ退避する運用を行っている場合、リストア実行コマンドを使わずにテープ装置からデータベースボリュームへ直接ファイル復元を行うこともできます。
■実行例
データベースを削除したあと、「12.2.2.3 swstrestore(リストア実行コマンド)」を使用することによって、ファイル復元を行います。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore g1d1p1 g1d1p1 swstrestore completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore g1d2p1 g1d2p1 swstrestore completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore g1d3p1 g1d3p1 swstrestore completed C:\> |
データベースの再作成
データベースの再作成は、「12.6.1.2 swstrestore_sqlsvr(SQL Serverリストア実行コマンド)」で行います。以下のリストア方法を選択できます。
最新時点または特定時点までの復旧
バックアップ時点への復旧
注意
リストア後のデータベースの所有者は、データベースの再作成を実行したユーザーになります。データベースの再作成を実行したユーザーとリストア前のデータベースの所有者が異なる場合は、ストアド プロシージャ:sp_changedbownerを使用して所有者の変更を行ってください。
■実行例
ファイル復元を実施したあと、データベースを再作成します。メタデータファイルはD:\SQLSVR\DB01.swst-dmpなどに復元されるので、このファイルを指定してコマンドを実行します。
以下の例は、データベースの再作成後、トランザクションログを適用することにより、最新時点または特定時点までデータベースを復元することを想定しているため、-Xnologオプションを指定していません。バックアップ時点の状態にデータベースを復元させる場合は、-Xnologオプションを指定してください。
C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore_sqlsvr -Xserver VSERVER -Xmeta D:\SQLSVR\DB01.swst-dmp DB01 DB01 swstrestore_sqlsvr completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore_sqlsvr -Xserver VSERVER -Xmeta D:\SQLSVR\DB02.swst-dmp DB02 DB02 swstrestore_sqlsvr completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore_sqlsvr -Xserver VSERVER -Xmeta D:\SQLSVR\DB03.swst-dmp DB03 DB03 swstrestore_sqlsvr completed C:\> |
ポイント
SQL Serverリストア実行コマンドが正常に終了すると、メタデータファイルは自動的に削除されます。
データベースのリカバリー(最新時点または特定時点への復旧を行う場合だけ)
最新時点または特定時点までの復旧を行う場合、Enterprise Managerからログを適用してください。操作方法は、『SQL Server Books Online』の「トランザクションログバックアップを適用する方法(Enterprise Manager)」を参照してください。
また、msdbのバックアップ履歴が消失した場合などEnterprise Managerからログ適用を実施できない場合は、Transact-SQLにより、ログ適用を実施してください。操作方法は、『SQL Server Books Online』の「トランザクションログバックアップを適用する方法(Transact-SQL)」を参照してください。
コピー状況の確認は「12.2.2.10 swstsyncstat(バックアップ同期処理実行状況表示コマンド)」、「12.2.2.2 swstbackstat(バックアップ実行状況表示コマンド)」、「12.2.2.5 swstreststat(リストア実行状況表示コマンド)」で行います。また、データベースバックアップの履歴はmsdbデータベースに記録されています。最新バックアップ時刻は、Enterprise Managerのツリー画面で対象データベースを右クリック後、「プロパティ」を選択することにより参照できます。
実行中のコピー処理を停止する場合は、「12.2.2.9 swstcancelsync(バックアップ同期処理キャンセルコマンド)」、「12.2.2.7 swsthistdel(履歴情報削除コマンド)」、「12.2.2.4 swstcancelrest(リストアキャンセルコマンド)」を使用します。
■実行例
実行中のバックアップ同期処理を停止します。
C:\>set SWSTGNODE=nodeAGT C:\>C:\Win32App\AdvancedCopyManager\bin\swstcancelsync g1d1p1 g1d1p1 swstcancelsync completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstcancelsync g1d2p1 g1d2p1 swsrpcancel completed C:\>C:\Win32App\AdvancedCopyManager\bin\swstcancelsync g1d3p1 g1d3p1 swstcancelsync completed C:\> |
AdvancedCopy Managerでは、Microsoft Clustering Service(MSCS)またはWindows Server(R) Failover Clustering(WSFC)によるクラスタシステム運用をサポートしています。AdvancedCopy Managerにおけるクラスタ運用に関する一般的な情報は、「13.1.5 クラスタ運用時の注意事項」を参照してください。