ETERNUS SF AdvancedCopy Manager 運用手引書 13.0 -Microsoft(R) Windows(R) 2000- -Microsoft(R) Windows Server(TM) 2003- |
目次
索引
![]() ![]() |
本章では、AdvancedCopy Managerのバックアップ管理機能またはレプリケーション管理機能を使用してSQL Server 2000/2005データベースのバックアップ・リストアを実施する手順について説明します。
なお、SQL Server 2000/2005は、米国マイクロソフトコーポレーションの米国及び、その他の国における登録商標または商標です。
SQL Server 2000/2005は、Microsoft(R).NET Enterprise Serversファミリーの中核となる企業向けデータベースソフトウェアです。
AdvancedCopy Managerは、SQL Server 2000/2005と連携することによって、ETERNUS ディスクアレイ上に構築されたSQL Server 2000/2005のデータベースの高速バックアップ・高速リストアを行います。
AdvancedCopy Managerは、SQL Server 2000/2005データベースバックアップとリストアを高速に実施する機能(コマンド)を提供します。
SQL Server バックアップ実行コマンド
SQL Server リストア実行コマンド
SQL Serverバックアップ実行コマンドおよびSQL Serverリストア実行コマンドについては、バックアップ管理機能用とレプリケーション管理機能用の2種類が提供されています。バックアップ管理機能による運用を行う場合は、swstbackup_sqlsvr、swstrestore_sqlsvr、レプリケーション管理機能による運用を行う場合はswsrpbackup_sql、swsrprestore_sqlを使用します。
バックアップ管理機能用
レプリケーション管理機能用
SQL Serverバックアップ実行コマンド
swstbackup_sqlsvr
swsrpbackup_sql
SQL Serverリストア実行コマンド
swstrestore_sqlsvr
swsrprestore_sql
SQL Server 2000/2005のデータベースは、以下の物理ファイル(データベースファイル)から構成されます。
プライマリデータファイル(1つのデータベースに1つ必要です)
セカンダリデータファイル(ない場合と複数ある場合があります)
トランザクションログファイル(1つのデータベースに少なくとも1つ必要です)
データベースファイル全てをバックアップすることを「データベースバックアップ」または「完全バックアップ」と呼びます。また、ログのみをバックアップすることを「ログバックアップ」と呼びます。
SQL Serverバックアップ実行コマンドでは、データベースバックアップを高速に実施します。
データベースファイル(プライマリデータファイル、セカンダリデータファイル、トランザクションログファイル)をバックアップボリュームにコピーします。
アドバンスト・コピー機能によって、サーバCPUに負担をかけず、瞬時にデータコピーを実施します。
SQL Server 2000/2005のVDI(Virtual Device Interface)機構と連携することによって、オンラインバックアップを実現します。
なお、SQL Server 2000/2005のバックアップ運用では、「データベースバックアップ」と「ログバックアップ」を併用することが一般的です。
以下は、AdvancedCopy ManagerによるデータベースバックアップとSQL Serverによるログバックアップを併用するバックアップ運用例です。この運用例では、運用サイクルを一週間とし、日曜日にデータベースバックアップ、平日にログバックアップを実施しています。
AdvancedCopy Managerは、「データベースのバックアップ」機能を提供します。トランザクションログのバックアップ・リストア(リカバリ)については、SQL Server 2000/2005のEnterprise Manager、Transact-SQL等を用いて実施する必要があります。
また、Sofek AdvancedCopy Managerでバックアップ可能なデータベースはユーザーデータベースのみです。したがって、システムデータベース(master、msdb、model、distribution)をAdvancedCopy Managerでバックアップすることはできません。システムデータベースのバックアップ運用については、SQL Server 2000/2005で実施する必要があります。
|
SQL Server 2000/2005 |
AdvancedCopy Manager |
|
システムデータベース |
○ |
− |
|
ユーザーデータベース |
データベースバックアップ |
○ |
○ |
ログバックアップ |
○ |
− |
○:機能を提供します。
−:機能を提供しません。
本章では、データベースを、データベースバックアップ時点の状態に戻すことを「データベースリストア」と呼び、データベースリストアされたデータベースにログを適用することによって、データベースバックアップ後の特定時点または最新時点へ復元することを「データベースリカバリ」と呼びます。
SQL Serverリストア実行コマンドでは、データベースバックアップから復元されたデータベースファイルからデータベースの再作成を実施します。アドバンスト・コピー機能のOPC(One Point Copy)を使用することにより、1.データベースファイル復元、2.DB再作成、3.トランザクションログ適用までの一連の処理を短時間に完了させることができます。
図 10.2の運用例において、金曜日のログバックアップ前に障害が発生した場合に、最新時点までリストアを実施する様子を以下に示します。
SQL Server 2000/2005のバックアップ運用を行う前に、以下のバックアップ運用設計を行ってください。
データベースのバックアップ運用設計を行います。「SQL Server Books Online」の「バックアップと復元の計画の立案」を参考にして設計を行ってください。
さらに、以下のデータベースファイルの配置に関する制限事項を守って設計を行ってください。
AdvancedCopy Managerはロウパーティション上に構築されたデータベースはサポートしません。データベースはファイルシステム上に構築してください。
AdvancedCopy Managerは、ボリューム単位(パーティション単位)でコピー処理を実施します。そのため、データベースファイルの配置ボリュームには、対象となるデータベースファイル以外のファイルは置かないでください。
バックアップ対象のデータベースファイルとは無関係なファイルを置いた場合、そのファイルのデータだけでなく、ファイルシステム全体を破壊する恐れがあります。
特に、データベースファイルをシステムドライブに配置することや、SQL Server 2000/2005とAdvancedCopy Managerの実行ファイル・管理ファイルが存在するボリュームにデータベースを配置しないでください。
1個のボリューム上にN(>2)個のデータベースのファイルを配置すること、および、M(>2)個のボリューム上にN(>2)個のデータベースのファイルを混在配置することは可能ですが、これらN個のデータベースは同一インスタンス配下のデータベースである必要があります。
このような構成のデータベースのバックアップを行う場合、ボリューム上に存在する全てのデータベースを指定して実行してください。SQL Server 2000/2005が指定された全てのデータベースを凍結させることによりデータ整合性を確保した後、AdvancedCopy Managerが、ファイルが配置されている全てのボリュームに対してコピー処理を実施します。全てのデータベースを指定せずにバックアップを実施した場合は、データベースバックアップを正常に採取できません(バックアップボリュームのファイルシステムが損傷する恐れがあります)。
上記のデータベース構成は、ドライブ文字が不足しているシステムや小規模なデータベースが多数存在しているシステムにおいて、見受けられますが、バックアップ運用上、以下のような問題があります。
複数のデータベースを同時にバックアップすると、処理が完了するまで、指定した全てのデータベースがSQL Server 2000/2005によって凍結されます。データベースの凍結時間が長くなると、バックアップを正常に完了にできない場合があります。なるべくバックアップ対象となるデータベース数が少なくなるようにデータベース設計を行ってください。
特定のデータベースだけをリストアする場合、アドバンスト・コピーを使用したファイル復元処理を実施することができません。この場合、COPYコマンド、FTP等の手段でリストア対象のデータベースファイルのみを復元する必要があります。アドバンスト・コピーは全てのデータベースをリストアする場合のファイル復元にしか利用できません。
図 10.7に示すように、データベースファイルを複数のボリュームに分散配置することは可能です。AdvancedCopy Managerはデータベースファイルが配置された全てのボリュームに対して、処理を行います。
バックアップ運用を行うサーバを決定します。
バックアップ運用を行うサーバには、次のものがあります。
複数のStorageサーバを一元管理、集中操作します。AdvancedCopy Managerマネージャー機能をインストールする必要があります。Storage管理サーバは、Storageサーバを兼ねることができます。
SQL Server 2000/2005の運用を行うサーバです。AdvancedCopy Managerエージェント機能をインストールする必要があります。データベースのバックアップ・リストアはこのサーバより実行します。
バックアップサーバ運用を行うサーバです。AdvancedCopy Managerエージェント機能をインストールする必要があります。データベースボリュームのバックアップ先となるボリューム(バックアップボリューム)が接続されています。バックアップサーバ運用はレプリケーション管理機能を使用する場合のみ実施可能です。バックアップ管理機能では実施できません。
バックアップ対象となるデータベース、および、データベースファイルが配置されているボリューム(データベースボリューム)を決定します。
全てのデータベースボリュームは、ETERNUS ディスクアレイ上に配置されている必要があります。
バックアップ方式を決定します。
バックアップ方式としては以下の2つが選択可能です。
ディスクアレイ装置(ETERNUS ディスクアレイ)のOPC/ROPC機能を用いたバックアップ方式です。バックアップはOPC/ROPCを起動することにより採取されます。
QuickOPC機能に対応したディスクアレイ装置の場合は、差分スナップショット型バックアップを行うことができます。差分スナップショット型バックアップについては、本マニュアルの『QuickOPC機能によるバックアップ運用』を参照してください。
ディスクアレイ装置(ETERNUS ディスクアレイ)のEC/REC機能を用いたバックアップ方式です。バックアップは、等価維持状態のEC/RECを停止またはサスペンド(バックアップ管理機能使用時)、およびサスペンド(レプリケーション管理機能使用時)することにより採取されます。
バックアップ管理機能使用時は、等価維持状態のEC/RECを停止またはサスペンドすることによりバックアップが作成されます。SQL Serverバックアップ実行コマンド(swstbackup_sqlsvr)をサスペンド指定で実施すると、Suspend/Resume機能により、等価維持状態を一時停止(サスペンド)してバックアップを行います。Suspend/Resume機能については、本マニュアルの『Suspend/Resume機能によるバックアップ運用』を参照してください。
バックアップボリュームを準備します。
データベースボリュームのバックアップ先となるボリュームをバックアップボリュームと呼びます。バックアップボリュームは、ETERNUS ディスクアレイ上に配置されている必要があります。
SQL Server 2000/2005のバックアップ運用を開始する前に以下の事前準備を行ってください。
SQL Serverの環境設定
一般的な事前準備の実施
バックアップ用業務ボリュームロック動作指定ファイルの作成
デバイスマップファイルの準備(出力先を指定する場合のみ)
メタデータファイルの出力パスの記録
バックアップの自動運用の準備
なお、以降の章では、以下の例を使用して説明を行います。
【サーバ構成】
サーバ種別 |
サーバ名 |
備考 |
---|---|---|
Storage管理サーバ |
MGR-SVR |
|
Storageサーバ |
DB-SVR |
|
【データベース構成】
データベース名 |
データベースファイル名 |
データベースファイル種別 |
---|---|---|
DB01 |
D:\SQLSVR\DB01.mdf |
プライマリデータファイル |
E:\SQLSVR\DB01.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB01.ldf |
トランザクションログファイル |
|
DB02 |
D:\SQLSVR\DB02.mdf |
プライマリデータファイル |
E:\SQLSVR\DB02.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB02.ldf |
トランザクションログファイル |
|
DB03 |
D:\SQLSVR\DB03.mdf |
プライマリデータファイル |
E:\SQLSVR\DB03.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB03.ldf |
トランザクションログファイル |
【データベースボリューム構成】
ドライブ名 |
AdvancedCopy Managerデバイス名 |
---|---|
D: |
g1d1p1 |
E: |
g1d2p1 |
F: |
g1d3p1 |
データベースのバックアップ運用設計の結果に基づいて、SQL Serverの設定を行ってください。特に、リストアにおいて、ログの適用を行う場合は、データベースの「復旧モデル」を「フル」または「一括ログ記録」に設定してください。詳細については、「SQL Server Books Online」の「バックアップと復元の計画の立案」を参照してください。
以下の点に留意して、本マニュアルの『事前準備』に記載されている作業を行ってください。
業務ボリュームを登録する際は、データベースファイルが配置されている全てのボリュームを登録してください。
また、データベースファイルが配置されている全ボリュームに対して、バックアップポリシーを同一にしてください。同一にしなくてもバックアップは実施可能ですが、バックアップポリシーを同一にすることでバックアップ履歴情報の管理が容易になります。
■実行例
対象データベースボリューム全てを、業務ボリュームとしてAdvancedCopy Managerに登録し、バックアップポリシーを設定します。
C:\>set SWSTGNODE=nodeAGT |
バックアップボリュームをAdvancedCopy Managerに登録します。
C:\>set SWSTGNODE=nodeAGT |
標準のバックアップ前後処理では業務ボリュームのロックとロック解除が行われます。この処理によって、ファイルシステムの整合性を保った状態でコピー処理が行われます。
しかし、SQL Server 2000/2005のデータベースのバックアップを行う場合は、データベースファイルをSQL Server 2000/2005が使用しているため、バックアップ前処理で業務ボリュームをロックすることができません。
そこで、SQL Serverのデータベースボリュームに対してはバックアップ用業務ボリュームロック動作指定ファイルを作成し、データベースファイルが配置されている業務ボリュームに対してロックを行わず、ファイルシステムバッファのフラッシュのみを実施するように設定してください。データベースの構成ファイルの整合性はSQL Server 2000/2005が保証するため、ボリュームロックを実施しなくても問題ありません。
バックアップ用業務ボリュームロック動作指定ファイルの詳細は、本マニュアルの『バックアップ用業務ボリュームロック動作指定ファイル』を参照してください。
変更は注意して行ってください。変更を誤った場合は、バックアップコマンドがエラーとなります。
ロック処理を行わないため、データベースファイルが配置された業務ボリュームには、データベースファイル以外のファイルを置かないでください。
出力先バックアップボリュームを指定する場合は、本マニュアル『デバイスマップファイルの準備』を参照してデバイスマップファイルを作成してください。
バックアップ実行時に、SQL Server 2000/2005からバックアップ対象データベースのデータベースファイルのパス名、サイズ、ファイル種別等の情報を含んだ「メタデータ」が出力されます。AdvancedCopy Managerは、メタデータファイルをバックアップボリュームに保存します。
メタデータファイルはデータベースファイルの復元時にデータベースボリュームに復元されます。メタデータファイルはSQL Serverリストア実行コマンド(swstrestore_sqlsvr)を実行する際に必須となりますので、事前にメタデータファイルの絶対パスを記録しておく必要があります。
メタデータファイルは、ファイル識別番号(FILE_ID)が1のデータベースファイルが存在するフォルダに「”DB名”.swst-dmp」という名前で保存されます。例えば、データベースDB01のファイル識別番号1のデータベースファイルの絶対パスが「D:\SQLSVR\DB01_data.mdf」だとすると、メタデータファイルの絶対パスは「D:\SQLSVR\DB01.swst-dmp」となります。通常、ファイル識別番号1のデータベースファイルはプライマリデータファイルですが、念のため以下の手順で確認してください。
Transact-SQL「USE データベース名 EXEC SP_HELPFILE」を実行してください。
実行結果から、列「fileid」が1となっているレコードを探してください。そのレコードの列「filename」の内容がファイル識別番号1のデータベースファイルの絶対パスになります。
業務ボリュームにメタデータファイルを保存するための容量を確保しておくことが厳密には必要ですが、メタデータファイルのサイズは小さいので、考慮の必要はほとんどありません。(メタデータファイルのサイズは、データベースのファイル数に依存し、10ファイル構成のデータベースで約20KB程度です)。
AdvancedCopy Managerのバックアップ運用は、SQL Server 2000/2005のジョブ作成ウィザードやSystemWalker OperationMGRを利用して自動化することができます。自動化をするためには、AdvancedCopy Managerが提供する各種コマンドを利用します。
SQL Serverのデータベースのバックアップ・リストア方法について説明します。
バックアップは以下の手順で実施します。
同期処理の開始(同期型バックアップを行う場合のみ)
データベースのバックアップ
トランザクションログのバックアップ
同期型バックアップによる運用を行う場合、事前に同期処理(EC/REC)を開始しておく必要があります。同期処理の開始はバックアップ同期処理開始コマンド(swststartsync)で行います。データベースが複数ボリューム構成である場合は、全てのデータベースボリュームについて処理を実施する必要があります。
■実行例
全てのデータベースボリュームの同期処理を開始します。
C:\>set SWSTGNODE=nodeAGT |
SQL Serverのデータベースバックアップは、SQL Serverバックアップ実行コマンド(swstbackup_sqlsvr)で行います。
スナップショットバックアップでは、トランザクションログの切り捨ては行われません。そのため、バックアップ運用をデータベースバックアップのみで構成する場合においても、トランザクションログの切り捨てのためのログバックアップは定期的に実施してください。詳細は、「SQL Server Books Online」の「トランザクションログの切り捨て」の項を参照して下さい。
SQL Serverバックアップ実行コマンド(swstbackup_sqlsvr)が複数ボリューム構成のデータベースをバックアップ実行コマンド(swstbackup)によって処理している間にエラーが発生すると、その時点で処理を中断し、AdvancedCopy Managerのバックアップ履歴情報が不揃いになる可能性があります。そのような不整合状態を解消するには、履歴情報削除コマンド(swsthistdel)を使用して不要な履歴情報を削除してください。既に複製処理がなされたボリュームに対しては、エラー原因への対処の後、同期処理開始コマンド(swststartsync)を使って、同期処理を再開してください。
■実行例
データベースDB01、DB02、DB03のバックアップを実施します。同期型バックアップの場合は、バックアップ同期処理実行状況表示コマンド(swstsyncstat)で全データベースボリュームの同期処理が等価性維持状態(Execute欄が“100%”)になっていることを確認してください。デバイスマップファイル名がG:\SQLADM\devmap.txtであるとして、業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
SQL Serverバックアップ実行コマンド(swstbackup_sqlsvr)をサスペンド指定で実施すると、Suspend/Resume機能により、等価性維持状態を一時停止(サスペンド)してバックアップを行います。Suspend/Resume機能については、本マニュアルの『Suspend/Resume機能によるバックアップ運用』を参照してください。
トランザクションログのバックアップは、SQL Server 2000/2005のEnterprise ManagerまたはTransact-SQLで行います。
SQL Server 2000/2005のデータベースの復旧は、以下の手順から構成されます。
トランザクションログのバックアップ(最新時点への復旧を行う場合のみ)
データベースのリストア
データベースのリカバリ(最新時点または特定時点への復旧を行う場合のみ)
最新時点への復旧を行う場合は、ログバックアップを実施してください(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 |
リストア実行コマンドの実施 |
全ファイルが配置されている業務ボリュームについて、リストア実行コマンド(swstrestore)を実行します。 |
データベースファイルとともにメタデータファイルも復元されます(ファイル識別番号1のデータベースファイルと同一のフォルダに復元されます)。
AdvancedCopy Managerのバックアップボリュームのデータをさらにテープ装置へ退避する運用を行っている場合、リストア実行コマンドを使わずにテープ装置からデータベースボリュームへ直接ファイル復元を行うこともできます。
■実行例
データベースを削除した後、リストア実行コマンド(swstrestore)を使用することによって、ファイル復元を行います。
C:\>set SWSTGNODE=nodeAGT |
データベースの再作成は、SQL Serverリストア実行コマンド(swstrestore_sqlsvr)で行います。以下のリストア方法を選択できます。
最新時点または特定時点までの復旧
バックアップ時点への復旧
リストア後のデータベースの所有者は、データベースの再作成を実行したユーザーになります。データベースの再作成を実行したユーザーとリストア前のデータベースの所有者が異なる場合は、ストアド プロシージャ:sp_changedbownerを使用して所有者の変更を行ってください。
■実行例
ファイル復元を実施した後、データベースを再作成します。メタデータファイルはD:\SQLSVR\DB01.swst-dmp等に復元されますので、このファイルを指定してコマンドを実行します。
C:\>C:\Win32App\AdvancedCopyManager\bin\swstrestore_sqlsvr -Xserver VSERVER -Xmeta D:\SQLSVR\DB01.swst-dmp DB01 |
最新時点または特定時点までの復旧を行う場合、Enterprise Managerからログを適用してください。操作方法については、「SQL Server Books Online」の「トランザクションログバックアップを適用する方法(Enterprise Manager)」を参照してください。
また、msdbのバックアップ履歴が消失した場合などEnterprise Managerからログ適用を実施できない場合は、Transact-SQLにより、ログ適用を実施してください。操作方法は、「SQL Server Books Online」の「トランザクションログバックアップを適用する方法(Transact-SQL)」を参照してください。
コピー状況の確認はバックアップ同期処理実行状況表示コマンド(swstsyncstat)、バックアップ実行状況表示コマンド(swstbackstat)、リストア実行状況表示コマンド(swstreststat)で行います。また、データベースバックアップの履歴はmsdbデータベースに記録されています。最新バックアップ時刻は、Enterprise Managerのツリー画面で対象データベースを右クリック後、「プロパティ」を選択することにより参照できます。
実行中のコピー処理を停止する場合は、バックアップ同期処理キャンセルコマンド(swstcancelsync)、履歴情報削除コマンド(swsthistdel)、リストアキャンセルコマンド(swstcancelrest)を使用します。
■実行例
実行中のバックアップ同期処理を停止します。
C:\>set SWSTGNODE=nodeAGT |
AdvancedCopy Managerでは、Microsoft Clustering Service(MSCS)によるクラスタシステム運用をサポートしています。AdvancedCopy Managerにおけるクラスタ運用に関する一般的な情報は、『クラスタ運用時の注意事項』を参照してください。
SQL Server 2000/2005のバックアップ運用を開始する前に以下の事前準備を行ってください。
SQL Serverの環境設定
一般的な事前準備の実施
デバイスマップファイルの準備
メタデータファイルの出力パスの記録
バックアップの自動運用の準備
なお、以降の章では、以下の例を使用して説明を行います。
【サーバ構成】
サーバ種別 |
サーバ名 |
備考 |
---|---|---|
Storage管理サーバ |
MGR-SVR |
|
Storageサーバ |
DB-SVR |
|
Storageサーバ |
BKUP-SVR |
|
【データベース構成】
データベース名 |
データベースファイル名 |
データベースファイル種別 |
---|---|---|
DB01 |
D:\SQLSVR\DB01.mdf |
プライマリデータファイル |
E:\SQLSVR\DB01.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB01.ldf |
トランザクションログファイル |
|
DB02 |
D:\SQLSVR\DB02.mdf |
プライマリデータファイル |
E:\SQLSVR\DB02.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB02.ldf |
トランザクションログファイル |
|
DB03 |
D:\SQLSVR\DB03.mdf |
プライマリデータファイル |
E:\SQLSVR\DB03.ndf |
セカンダリデータファイル |
|
F:\SQLSVR\DB03.ldf |
トランザクションログファイル |
【データベースボリューム構成】
ドライブ名 |
AdvancedCopy Managerデバイス名 |
---|---|
D: |
g1d1p1@DB-SVR |
E: |
g1d2p1@DB-SVR |
F: |
g1d3p1@DB-SVR |
データベースのバックアップ運用設計の結果に基づいて、SQL Serverの設定を行ってください。特に、リストアにおいて、ログの適用を行う場合は、データベースの「復旧モデル」を「フル」または「一括ログ記録」に設定してください。詳細については、「SQL Server Books Online」の「バックアップと復元の計画の立案」を参照してください。
以下の点に留意して、本マニュアルの『事前準備』に記載されている作業を行ってください。
データベースボリュームとそのコピー先となるバックアップボリュームを全て登録してください。
データベースボリュームを複製元ボリューム、バックアップボリュームを複製先ボリュームにしてください(複製元ボリューム、複製先ボリュームを逆にしてはいけません)。
バックアップサーバ運用を行う場合は、データベースを運用するサーバ(複製元サーバ)を操作サーバにしてください(複製ボリューム情報設定コマンドでoオプションの引数に「ORG」を指定してください)。
ファイル復元処理にアドバンスト・コピーを使用しない場合は、uオプションを指定してください。実施できるコピー方向を複製元ボリューム(データベースボリューム)から複製先ボリューム(バックアップボリューム)への一方向に制限できます。
■実行例
対象データベースボリューム全てに対して、複製ボリューム情報を設定します。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
SQL Serverバックアップ実行コマンドで使用されるデータベースボリュームとバックアップボリュームの対応関係を記述したファイル(デバイスマップファイル)を作成します。SQL Serverバックアップ実行コマンドは、デバイスマップファイルに指定されたバックアップボリュームに、データをコピーします。
デバイスマップファイルは、データベースを運用するサーバ(複製元サーバ)上の任意の場所に配置します。このファイルをバックアップ実行時に指定する事で、データベースボリュームのバックアップ先が決まります。
デバイスマップファイルの記述例を以下に示します。
■デバイスマップファイルの記述例
デバイスマップファイル作成時の規則を以下に示します。
1行にデータベースボリュームとコピー先となるバックアップボリュームを記述します。データベースボリュームとバックアップボリュームの間を1個以上の「半角空白またはタブ文字」で区切ってください。また、行頭からデータベースボリューム名の間、および、バックアップボリュームの後ろから行末(改行記号)の間には1個以上の「半角空白またはタブ文字」が含まれていても構いません。
バックアップサーバのバックアップボリュームは、「ボリューム名@サーバ名」の形式で指定してください。なお、データベースボリュームについては「ボリューム名」の形式のみ使用できます。「ボリューム名@データベースサーバ名」の形式は使用できないので注意してください。
空白行(「半角空白またはタブ文字」)がファイルに含まれていても構いません。
記号「#」から行末まではコメントとみなされます。
1つのデバイスマップファイルの中で1つのデータベースボリュームに対してバックアップボリュームを複数指定することはできません。このような場合は、最初に見つかった行の情報が有効になります。デバイスマップファイルからの読みこみ処理では、このような重複行の検出は行いません。複数世代運用を行う場合は、デバイスマップファイルを複数用意してください。
デバイスマップファイルには、処理対象データベース以外のデータベースボリュームの記述があっても構いません(冒頭に示した記述例を参照してください)。
複数ボリューム構成のデータベースの場合は、1つのデバイスマップファイル内に全てのデータベースボリュームに関する記述をしなければなりません。(複数ファイルに記述がまたがっていてはいけません。)
デバイスマップファイルを保存する際の文字コード系はSJISにしてください。
バックアップ実行時に、SQL Server2000/2005からバックアップ対象データベースのデータベースファイルのパス名、サイズ、ファイル種別等の情報を含んだ「メタデータ」が出力されます。AdvancedCopy Managerは、メタデータファイルをバックアップボリュームに保存します。
メタデータファイルはデータベースファイルの復元時にデータベースボリュームに復元されます。メタデータファイルはSQL Serverリストア実行コマンド(swsrprestore_sql)を実行する際に必須となりますので、事前にメタデータファイルの絶対パスを記録しておく必要があります。
メタデータファイルは、ファイル識別番号(FILE_ID)が1のデータベースファイルが存在するフォルダに「”DB名”.swsrp-dmp」という名前で保存されます。例えば、データベースDB01のファイル識別番号1のデータベースファイルの絶対パスが「D:\SQLSVR\DB01_data.mdf」だとすると、メタデータファイルの絶対パスは「D:\SQLSVR\DB01.swsrp-dmp」となります。通常、ファイル識別番号1のデータベースファイルはプライマリデータファイルですが、念のため以下の手順で確認してください。
Transact-SQL「USE データベース名 EXEC SP_HELPFILE」を実行してください。
実行結果から、列「fileid」が1となっているレコードを探してください。そのレコードの列「filename」の内容がファイル識別番号1のデータベースファイルの絶対パスになります。
業務ボリュームにメタデータファイルを保存するための容量を確保しておくことが厳密には必要ですが、メタデータファイルのサイズは小さいので、考慮の必要はほとんどありません。(メタデータファイルのサイズは、データベースのファイル数に依存し、10ファイル構成のデータベースで約20KB程度です)。
AdvancedCopy Managerのバックアップ運用は、SQL Server 2000/2005のジョブ作成ウィザードやSystemWalker OperationMGRを利用して自動化することができます。自動化をするためには、AdvancedCopy Managerが提供する各種コマンドを利用します。
SQL Serverのデータベースのバックアップ・リストア方法について説明します。
SQL Serverデータベースのバックアップは以下の手順から構成されます。
同期処理の開始/再開(同期型バックアップを行う場合のみ)
データベースバックアップ
トランザクションログのバックアップ
同期型バックアップによる運用を行う場合、事前に同期処理(EC/REC)を開始または再開しておく必要があります。同期処理の開始は複製開始コマンド(swsrpstartsync)で行います。データベースが複数ボリューム構成である場合は、全てのデータベースボリュームについて処理を実施する必要があります。
■実行例
全てのデータベースボリュームの同期処理を開始/再開します。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
データベースのバックアップは、SQL Serverバックアップ実行コマンド(swsrpbackup_sql)で行います。
AdvancedCopy Managerを使用してデータベースバックアップを実施する場合、トランザクションログの切り捨ては行われません。そのため、バックアップ運用をデータベースバックアップのみで構成する場合においても、トランザクションログの切り捨てのためのログバックアップは定期的に実施してください。詳しくは、「SQL Server Books Online」の「トランザクションログの切り捨て」の項を参照して下さい。
SQL Serverバックアップ実行コマンド(swsrpbackup_sql)が複数ボリューム構成のデータベースを複製作成コマンド(swsrpmake)によって処理している間にエラーが発生した場合は、その時点で処理を中断します。既に複製処理がなされたボリュームに対しては、エラー原因への対処の後、複製開始コマンド(swsrpstartsync)を使って、同期処理を再開してください。
■実行例
データベースDB01、DB02、DB03のバックアップを実施します。同期型バックアップの場合は、運用状況表示コマンド(swsrpstat)で全てデータベースボリュームの同期処理が等価性維持状態(Execute欄が“100%”)になっていることを確認してください。デバイスマップファイル名がG:\SQLADM\devmap.txtであるとして、業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
トランザクションログのバックアップは、SQL Server 2000/2005のEnterprise ManagerまたはTransact-SQLで行います。
SQL Server 2000/2005のデータベースの復旧は、以下の手順から構成されます。
ログファイルのバックアップ(最新時点への復旧を行う場合のみ)
データベースのリストア
データベースのリカバリ(最新時点または特定時点への復旧を行う場合のみ)
最新時点への復旧を行う場合は、ログバックアップを実施してください(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 |
複製作成コマンドの実施 |
複製作成コマンド(swsrpmake)を使用して、バックアップボリュームからデータベースボリュームへ全てのデータベースファイルをコピーします。 |
データベースファイルとともにメタデータファイルも復元されます(ファイル識別番号1のデータベースファイルと同一のフォルダに復元されます)。
AdvancedCopy Managerのバックアップボリュームのデータをさらにテープ装置へ退避する運用を行っている場合、リストア実行コマンドを使わずにテープ装置からデータベースボリュームへ直接ファイル復元を行うこともできます。
■実行例
データベースを削除した後、スナップショット型レプリケーション(OPC)を使用することによって、ファイル復元を行います。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
データベースの再作成は、SQL Serverリストア実行コマンド(swsrprestore_sql)で行います。以下のリストア方法を選択できます。
最新時点または特定時点までの復旧
バックアップ時点への復旧
リストア後のデータベースの所有者は、データベースの再作成を実行したユーザーになります。データベースの再作成を実行したユーザーとリストア前のデータベースの所有者が異なる場合は、ストアド プロシージャ:sp_changedbownerを使用して所有者の変更を行ってください。
■実行例
ファイル復元を実施した後、データベースを再作成します。メタデータファイルはD:\SQLSVR\DB01.swsrp-dmp等に復元されますので、このファイル名を指定して、業務サーバ(DB-SVR)からコマンドを実行します。
C:\>C:\Win32App\AdvancedCopyManager\bin\swsrprestore_sql -Xserver VSERVER -Xmeta D:\SQLSVR\DB01.swsrp-dmp DB01 |
最新時点または特定時点までの復旧を行う場合、Enterprise Managerからログを適用してください。操作方法については、「SQL Server Books Online」の「トランザクションログバックアップを適用する方法(Enterprise Manager)」を参照してください。
また、msdbのバックアップ履歴が消失した場合などEnterprise Managerからログ適用を実施できない場合は、Transact-SQLにより、ログ適用を実施してください。操作方法は、「SQL Server Books Online」の「トランザクションログバックアップを適用する方法(Transact-SQL)」を参照してください。
コピー状況の確認は運用状況表示コマンド(swsrpstat)で行います。また、データベースバックアップの履歴はmsdbデータベースに記録されています。最新バックアップ時刻は、Enterprise Managerのツリー画面で対象データベースを右クリック後、「プロパティ」を選択することにより参照できます。
実行中のコピー処理を停止する場合は、複製解除コマンド(swsrpcancel)を使用します。
■実行例
実行中の同期処理を停止します。業務サーバ(DB-SVR)からコマンドを実行します。
C:\>set SWSTGNODE=nodeAGT |
AdvancedCopy Managerでは、Microsoft Clustering Service(MSCS)によるクラスタシステム運用をサポートしています。AdvancedCopy Managerにおけるクラスタ運用に関する一般的な情報は、『クラスタ運用時の注意事項』を参照してください。
目次
索引
![]() ![]() |