6.3.1 レプリカの運用時の前提条件および注意事項(SQL Server)
SQL Serverのレプリカの運用時の前提条件および注意事項を示します。運用前に確認してください。
Exchange ServerおよびSQL Serverのレプリカ運用時に共通する注意事項については,「6.1.3 レプリカの運用時の注意事項(Exchange ServerおよびSQL Server)」を参照してください。
- この項の構成
- (1) レプリカの運用時の前提条件
- (2) レプリカの運用時の注意事項
- (3) 複数のデータベースに対するレプリカの運用時の注意事項
- (4) データベースサーバの構成変更時の注意事項
- (5) レプリカを管理するためのSQL Serverデータベースの条件
(1) レプリカの運用時の前提条件
レプリカの作成,リストアなど,レプリカを運用するときは,LDEV単位で実行するため,SQL Serverデータベースのオブジェクト構成には次の前提条件があります。
- 1つのディスクドライブには,1つのインスタンスのデータファイルを置いてください。異なるインスタンスに属するデータファイルを,同じディスクドライブに置かないでください。
- 次に示すディレクトリおよびファイルは,データベース構成ファイル(*.mdf,*.ndfおよび*.ldf)とは別の物理ボリュームに格納してください。
・VDIメタファイルの格納ディレクトリ(ただし,[VDIメタファイル所在]の[デフォルト]ラジオボタンを選択した場合を除く)
・トランザクションログのバックアップ
これらを別ボリュームに置く(対象外にする)ことで,リストアしてもVDIメタファイルやトランザクションログファイルはレプリカ作成時の状態に戻らないので,ロールフォワードによるリカバリができます。
Replication Managerでレプリカを作成した場合,この条件に合っているかどうかチェックされ,合っていないときはレプリカ作成処理がエラー終了します。
- SQLインスタンスを入力する際,SQL Serverをインストールしたときに標準で登録されるインスタンスについては,「DEFAULT」を入力してください。
また,インスタンス名は,次の条件をすべて満たすようにしてください。
・インスタンス名の重複がないようにする。
・16文字以下の文字列で指定する。
- データベース名には,次の文字が指定できます。
・ASCII文字
・1文字が2バイト以内のデータで表現されるマルチバイト文字
ただし,次の文字は指定できません。
¥ / : , ; * ? < > | "
- データベースのデータファイルに「META_<データベースID※>(10桁).dmp」という名前のファイルを使わないでください。
注※ データベースIDとは,SQL Serverでデータベースを一意に識別するIDです。
- クラスタ環境の場合,バックアップ対象データベースの所有者は各ノードのユーザーにしてください。ローカルユーザーは,ユーザー名およびパスワードが同じでも別のノードで同じユーザーと見なされません。このため,各ノードで共通のドメインユーザーを使用してください。所有者のユーザーがないノードへフェールオーバーすると,データベースは所有者不明となりバックアップが失敗します。
- Application Agentの設定で,UNDOログファイルの格納ディレクトリを登録しなかった場合,該当インスタンスのレプリカは,スタンバイ状態でデータをリストアできません。
- SQL Serverのエラーログファイルの出力先をレプリカ作成対象のデータベースを格納する物理ボリュームとは別の物理ボリュームに設定してください。
同じボリュームに設定している場合,データベースを副ボリュームからリストアする際に,SQL Serverのエラーログファイルも一緒にリストアされます。
これによって,SQL Serverのエラーログファイルがバックアップ時点に戻り,バックアップ以降のエラーログ情報が失われ,障害発生時の調査ができなくなるおそれがあります。
- tempdbはレプリカ作成対象のユーザーデータベースとは別の物理ボリュームに格納してください。
同じ物理ボリュームに格納すると,ユーザーデータベースだけリストアするときに,tempdbがオンライン状態のままで,副ボリュームからリストアしたデータに書き換えられるおそれがあります。このため,SQL Serverが不正な状態になります。
この場合は,次の手順を実行して対処してください。
- SQL Serverを再起動します。
tempdbが作成されて,SQL Serverを不正な状態から回復できます。
- tempdbをレプリカ作成対象のユーザーデータベースとは別のボリュームに変更します。
- リストアを再実行します。
- SQL Serverのバージョンが異なる場合,レプリカ作成したデータベースをリストアできません。例えば,SQL Server 2005が動作するデータベースサーバからレプリカ作成したデータベースは,SQL Server 2008が動作するデータベースサーバへリストアできません。
- HUS100シリーズ,Hitachi AMS2000,またはHitachi AMS/WMSでCopy-on-Write Snapshotを使用して,かつSQL ServerのVDIメタファイルを正ボリュームに格納する方法では,Replication Managerを使用してレプリカを作成する運用はできません。
- クラスタ環境の場合,フェールオーバークラスタとしてSQLインスタンスをインストールしてください。
- レプリカ作成するデータベースのファイルは,レプリカ作成しないファイルとは別のボリュームに配置してください。
- クラスタ構成の場合,1つのクラスタグループに,複数のSQLインスタンスのサービスリソースを登録しないでください。
- トランザクションログをバックアップする場合,Replication Managerを使用して運用するデータベースは,復旧モデルを「完全」または「一括ログ」のデータベースに設定してください。
(2) レプリカの運用時の注意事項
レプリカの作成,リストアなど,レプリカを運用する場合の注意事項を次に示します。
- データベーススナップショットは,Replication Managerではレプリカ作成,リストアできません。データベーススナップショットをレプリカ作成対象に含めるとレプリカ作成が失敗します。インスタンス全体をレプリカ作成する場合は,データベーススナップショットを削除してください。
- リストアレプリカウィザードでリストアしたデータベースは,サービスブローカーが無効の状態になっています。サービスブローカーを使用する場合は,リストア後に次のSQL文を実行してサービスブローカーを有効にしてください。
ALTER DATABASE [database name<データベース名>] SET ENABLE_BROKER
- データベースミラーリング機能を使用したデータベースに対して,レプリカ管理を実施する場合は,プリンシパルサーバで実行してください。
- データベースミラーリング機能を使用したデータベースをリストアする場合,リストア対象のデータベースのミラーリング設定を解除してリストアを実行してください。
- データベースミラーリング機能を使用したデータベースとともにシステムデータベース(master,model,msdb)をリストアする場合は,リストア対象のデータベースのミラーリング設定を解除して,システムデータベースをリストアしたあと,データベースミラーリング機能を使用したデータベースをリストアしてください。
- SQL Server 2005の場合,resourceデータベースはmasterデータベースと同じ場所にデータベース構成ファイルが格納されます。resourceデータベースは読み取り専用のデータベースであるため,Replication Managerではバックアップ対象として静止化処理およびバックアップ情報を表示しませんが,システムデータベースをレプリカ作成またはリストアする場合,masterデータベースとともにデータベース構成ファイルがレプリカ作成またはリストアされます。
- SQL Server 2008の場合,データの圧縮機能はサポートしていません。
- SQL Server 2012の場合,次のデータ圧縮機能をサポートしています。
- SQL Server 2008およびSQL Server 2012の場合,次の機能はサポートしていません。
- FILESTREAMデータ
- 変更データキャプチャ
- 変更の追跡
- バックアップ(データベースおよびトランザクションログ)の圧縮
- SQL Server 2012の場合,次の機能はサポートしていません。
- AlwaysOnフェールオーバークラスタインスタンス
- AlwaysOn可用性グループ
- Server Coreのサポート
(3) 複数のデータベースに対するレプリカの運用時の注意事項
複数のデータベースに対して,レプリカを運用する場合は,次の注意事項があります。
- レプリカの情報は,コピーペアをキーにして管理されています。レプリカの作成のしかたによっては,副ボリュームにバックアップデータがあってもリストアできなくなる場合があります。別々のボリュームに格納された次の2つのデータベースを例に説明します。
・データベースA
・データベースB
次のようにレプリカ作成を実施したとします。
1.データベースA,データベースBを一括してレプリカを作成する。
2.データベースAだけレプリカを作成する。
データベースBをリストアする場合,手順1で作成したレプリカからデータベースBをリストアしたあと,手順2で作成したレプリカからデータベースAのデータをリストアしてください。
- 1つのインスタンス中に複数のデータベースがある場合,各データベースが格納されている正ボリュームの構成によって,レプリカ作成またはリストアできるボリュームの単位が異なります。
・複数データベースが同じボリュームに格納されている場合
同じボリュームにある複数のデータベースに対して,同時にレプリカ作成またはリストアできます。
・複数データベースが複数のボリュームに格納されている場合
データベース名を指定して,インスタンス内の一部のユーザーデータベースのレプリカ作成またはリストアできます。
(4) データベースサーバの構成変更時の注意事項
次のどれかの操作を実施してアプリケーションの構成を変更した場合は,アプリケーションビューで該当するデータベースサーバを選択して[ホスト情報更新]ボタンをクリックし,情報を更新してください。レプリカの対象かどうかに関係なく,アプリケーションの構成変更時には,情報を更新する必要があります。
- Replication Manager以外のアプリケーションを使用してRAID Managerの構成定義ファイルを変更した場合
- データベースサーバ上のマウントポイント(ドライブ文字)を変更した場合
- ハードディスクを追加したり,取り外したりしてディスクの構成を変更した場合
- SQL Serverのデータベースの構成を変更した場合
- SQL Serverのインスタンスを構築または削除した場合
- SQL Serverのデータベースを追加または削除した場合
- SQL Serverのデータベースの名称を変更した場合
- SQL Serverのデータベースの構成ファイルを追加または削除した場合
- SQL Serverのデータベースの構成ファイルの名称を変更した場合
- SQL Serverのデータベースの構成ファイルを移動した場合
(5) レプリカを管理するためのSQL Serverデータベースの条件
レプリカ管理の操作を実行する場合,SQL Serverのサービスの状態,データベースの状態,データベースの種類を考慮する必要があります。
実行できる操作とSQL Serverサービスの状態について,次の表に示します。
表6-4 実行できる操作とSQL Serverサービスの状態
操作 | サービスの状態 |
---|
起動中 | 停止中 |
---|
レプリカの作成 | ○ | × |
タスク情報の更新 | ○ | ○ |
ホスト情報の更新 | ○ | × |
Application Agentの設定 | ○ | × |
システムデータベース(master,model,msdb)を含むデータベースのリストア | ○ | ○ |
システムデータベース(master,model,msdb)を含まないデータベースのリストア | ○ | × |
- (凡例)
- ○:操作を実行できる
- ×:操作を実行できない
実行できる操作とSQL Serverデータベースの状態について,次の表に示します。
表6-5 実行できる操作とSQL Serverデータベースの状態 1/2
操作 | データベースの状態 |
---|
オンライン | オフライン | 読み込み中 | 読み取り専用 | 未確認 |
---|
レプリカの作成 | ● | × | × | × | × |
タスク情報の更新 | ○ | ○ | ○ | ○ | ○ |
ホスト情報の更新 | ● | ● | ● | ● | ● |
Application Agentの設定 | ○ | ○ | ○ | ○ | ○ |
Point-in-timeリストア | ○ | × | ●※1 | ●※1 | × |
ロールフォワードリストア(スタンバイ状態でデータをリストアする)※2 | ● | ● | △※3 | ● | ●※4 |
ロールフォワードリストア(ローディング状態でデータをリストアする)※5 | ● | ● | △※3 | ● | ●※4 |
- (凡例)
- ●:データベースに影響のある操作を実行できる
- △:データベースに影響のある操作を条件によって実行できる
- ○:データベースに影響のない操作を実行できる
- ×:操作を実行できない
- 注※1
- 操作を実行したあと,データベースはオンラインになります。
- 注※2
- 操作を実行したあと,データベースは読み取り専用になります。
- 注※3
- システムデータベース(master,model,msdb)のリストアを含む場合は操作を実行できます。ユーザーデータベースだけをリストアする場合は,リストアコマンドを実行できない状態のデータベースを削除してからリストアを実行してください。
- 注※4
- 「未確認」状態のデータベースは,自動的に削除され,リストアされます。
- 注※5
- 操作を実行したあと,データベースは読み込み中になります。
表6-6 実行できる操作とSQL Serverデータベースの状態 2/2
操作 | データベースの状態 |
---|
オフラインかつ未確認 | 読み込み中かつ未確認 | 読み取り専用かつオフライン | 読み取り専用かつ未確認 | 読み取り専用かつオフラインかつ未確認 |
---|
レプリカの作成 | × | × | × | × | × |
タスク情報の更新 | ○ | ○ | ○ | ○ | ○ |
ホスト情報の更新 | ● | ● | ● | ● | ● |
Application Agentの設定 | × | × | × | × | × |
Point-in-timeリストア | × | × | × | × | × |
ロールフォワードリストア(スタンバイ状態でデータをリストアする)※1 | ●※2 | ●※2 | ● | ●※2 | ●※2 |
ロールフォワードリストア(ローディング状態でデータをリストアする)※3 | ●※2 | ●※2 | ● | ●※2 | ●※2 |
- (凡例)
- ●:データベースに影響のある操作を実行できる
- ○:データベースに影響のない操作を実行できる
- ×:操作を実行できない
- 注※1
- 操作を実行したあと,データベースは読み取り専用になります。
- 注※2
- 「未確認」状態のデータベースは,自動的に削除され,リストアされます。
- 注※3
- 操作を実行したあと,データベースは読み込み中になります。
実行できる操作とSQL Serverデータベースの種類について,次の表に示します。
表6-7 実行できる操作とSQL Serverデータベースの種類
操作 | SQL Serverデータベースの種類 |
---|
システムデータベース | ユーザーデータベース |
---|
master | msdb | model | tempdb |
---|
レプリカ作成 | ● | ● | ● | ▲※ | ● |
タスク情報の更新 | ○ | ○ | ○ | ○ | ○ |
ホスト情報の更新 | ○ | ○ | ○ | ○ | ○ |
Application Agentの設定 | ○ | ○ | ○ | ○ | ○ |
レプリカのリストア | ● | ● | ● | × | ● |
- (凡例)
- ○:操作を実行できる(データベースに対する操作あり)
- ●:操作を実行できる(データベースに対する操作なし)
- ▲:条件によって操作を実行できる(データベースに対する操作なし)
- ×:操作を実行できない
- 注※
- 次の場合は操作を実行できます。
- tempdbがほかのデータベースとボリュームを共有している場合
- tempdbに割り当てられたボリュームがペアである場合