2.17.2 バックアップ対象となるSQL Serverデータベースの条件と注意事項
Protection Manager for SQLは,次のSQL Serverデータベース製品を対象にしています。
- SQL Server 2000 Enterprise Edition
- SQL Server 2000 Standard Edition
- SQL Server 2005 Enterprise Edition
- SQL Server 2005 Standard Edition
- SQL Server 2005 Workgroup Edition
- SQL Server 2008 Enterprise Edition
- SQL Server 2008 Standard Edition
- SQL Server 2008 Workgroup Edition
Protection Manager for SQLでバックアップ対象となるデータの種類を次の表に示します。バックアップコマンド(drmsqlbackupまたはEX_DRM_SQL_BACKUPコマンド)で指定するオプションによって,対象となるデータベースが異なります。
表2-3 Protection Manager for SQLでバックアップ対象となるデータの種類
対象データベース※1 | 対象となる ファイルの種類 | バックアップファイル名 | バックアップファイル 格納先 |
---|
master | データファイル | バックアップ元のファイル名と同じ | 副ボリューム |
トランザクションログファイル | バックアップ元のファイル名と同じ | 副ボリューム |
メタファイル※2 | drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3 |
model | データファイル | バックアップ元のファイル名と同じ | 副ボリューム |
トランザクションログファイル | バックアップ元のファイル名と同じ | 副ボリューム |
メタファイル※2 | drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3 |
msdb | データファイル | バックアップ元のファイル名と同じ | 副ボリューム |
トランザクションログファイル | バックアップ元のファイル名と同じ | 副ボリューム |
メタファイル※2 | drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3 |
ユーザーデータベース | データファイル | バックアップ元のファイル名と同じ | 副ボリューム |
トランザクションログファイル | バックアップ元のファイル名と同じ | 副ボリューム |
メタファイル※2 | drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3 |
ディストリビューションデータベース | データファイル | バックアップ元のファイル名と同じ | 副ボリューム |
トランザクションログファイル | バックアップ元のファイル名と同じ | 副ボリューム |
メタファイル※2 | drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3 |
- 注※1
- -systemオプションを指定しない場合,バックアップの対象となるデータベースはユーザーデータベースだけです。
- 注※2
- バックアップコマンド実行時に生成されます。
- 注※3
- drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録した場合,登録したディレクトリにファイル名「<バックアップID>_<データベースID>.dmp」で格納されます。drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録しなかった場合,データベースファイルのSQL Serverでの管理番号(file_id)が最小値のファイルと同一ディレクトリにファイル名「META_<データベースID>.dmp」で格納されます。
Protection Manager for SQLでは物理ボリューム単位にバックアップやリストアをするため,SQL Serverデータベースのオブジェクト構成には次に示す前提条件があります。
- 一つの物理ボリューム上に置くデータベース構成ファイルは,一つのインスタンスを構成するものにしてください。複数のインスタンスを構成するデータベース構成ファイルは置かないでください。
- 次に示すディレクトリおよびファイルは,データベース構成ファイル(*.mdf,*.ndfおよび*.ldf)とは別の物理ボリュームに置く必要があります。
- メタファイル格納ディレクトリ(ただし,メタファイル格納ディレクトリの設定が空の場合を除く)
- トランザクションログのバックアップ
これらを別ボリュームに置く(対象外にする)ことで,リストアしてもメタデータやトランザクションログファイルはバックアップ時の状態に戻らないので,ロールフォワードによるリカバリができます。
Protection Managerのバックアップでは,この条件に適合しているかがチェックされ,適合していない場合はバックアップ処理がエラー終了します。
- データベース名には,次の文字が使用できます。
- ASCII文字
- 1文字が2バイト以内のデータで表現されるマルチバイト文字
ただし,次の文字は使用できません。
¥ / : , ; * ? < > |
- データベースのデータファイル,またはトランザクションログファイルに「META_<データベースID>(10けた).dmp」という名前のファイルを使わないでください。
- クラスタ環境の場合,バックアップ対象データベースの所有者は各ノードに存在するユーザーにしてください。ローカルユーザーは,ユーザー名およびパスワードが同じでも別のノードで同じユーザーと見なされません。このため,各ノードで共通のドメインユーザーを使用してください。所有者のユーザーが存在しないノードへフェールオーバーすると,データベースは所有者不明となりバックアップが失敗します。
- drmsqlinitコマンドの実行時に,UNDOファイル格納ディレクトリを登録しなかった場合,バックアップしたデータは,-undoオプションを指定してリストアおよびリカバリできません。
- drmsqlinitコマンドの実行時に,トランザクションログバックアップファイル格納ディレクトリを登録しなかった場合,トランザクションログのバックアップができません。
- システムデータベース(master,model,msdb)をバックアップ対象とする場合は,SQL Serverのエラーログファイルの出力先をシステムデータベースとは別のボリュームに設定してください。
- tempdbはバックアップ対象のユーザーデータベースとは別の物理ボリュームに格納してください。
同じ物理ボリュームに格納されている場合,ユーザーデータベースだけをリストアする際に,tempdbはオンライン状態のまま副ボリュームからリストアしたデータに書き換えられます。これによって,SQL Serverが不正な状態になります。
SQL Serverを再起動後に,tempdbをバックアップ対象のユーザーデータベースとは別のボリュームに変更してから,リストアを再実行してください。リストアを再実行する際には,「7.1.10 コマンドを実行するためのSQL Serverデータベースの条件」を参照して,データベースをリストア実行可能な状態か確認してください。
- SQL Serverのバージョンが異なる場合,バックアップしたデータベースをリストアできません。例えば,SQL Server 2000が動作するデータベースサーバからバックアップしたデータベースは,SQL Server 2005が動作するデータベースサーバへリストアできません。
- Hitachi AMS/WMSシリーズ,Hitachi AMS2000シリーズ,またはHitachi SMSシリーズでCopy-on-write SnapShot機能を使用し,かつSQL Serverのメタデータを主ボリュームに格納する方法では,drmsqlbackupまたはEX_DRM_SQL_BACKUPコマンドを使用してバックアップを取得する運用はできません。
- クラスタ環境の場合,フェールオーバークラスタとしてSQL Serverインスタンスをインストールしてください。
SQL Server 2005またはSQL Server 2008を使用する場合には,次の注意事項があります。
- Protection Managerでは,データベーススナップショットを対象としたバックアップ,リストアができません。インスタンス全体をバックアップする場合,データベーススナップショットを削除してください。データベーススナップショットをバックアップ対象に含めるとバックアップが失敗します。
- drmsqlrestoreコマンドでリストアしたデータベースは,サービスブローカーが無効の状態になっています。サービスブローカーを使用する場合は,リストア後に次のSQL文を実行しサービスブローカーを有効にしてください。
ALTER DATABASE [database nameデータベース名] SET ENABLE_BROKER
- データベースミラーリング機能を使用したデータベースに対して次のコマンドを実行する場合は,プリンシパルサーバで実行してください。
drmsqlbackup,drmsqllogbackup,drmsqldisplay -refresh
- データベースミラーリング機能を使用したデータベースをリストアする場合,リストア対象のデータベースのミラーリング設定を解除してリストアを実行してください。
- データベースミラーリング機能を使用したデータベースとともにシステムデータベース(master,model,msdb)をリストアする場合は,リストア対象のデータベースのミラーリング設定を解除し,システムデータベースをリストアしたあと,データベースミラーリング機能を使用したデータベースをリストアしてください。
- 次に示すコマンドを使用してバックアップ情報を削除すると,バックアップ時に作成されたVDIメタファイルも削除されます。バックアップ情報を削除する前に,エクスポートしたバックアップ情報とVDIメタファイルのバックアップを実行してください。
- drmresync
- drmappcat –delete
- EX_DRM_RESYNC
- SQL Server 2005の場合,resourceデータベースおよびmasterデータベースのデータベース構成ファイルは同じ場所に格納されます。Protection Managerでは,resourceデータベースをバックアップ対象とした静止化処理,およびバックアップ情報の表示をしません。resourceデータベースのデータベース構成ファイルは,システムデータベースをバックアップ・リストアする際に,masterデータベースのデータベース構成ファイルとともにバックアップ・リストアされます。
- この項の構成
- (1) データベースを構成するファイルの配置
- (2) 一つのボリュームに複数のデータベース構成ファイルが配置されている場合
- (3) メタファイルの配置
- (4) ダイナミックディスク構成の場合
- (5) クラスタ構成の場合
- (6) Veritas Cluster Server for Windows構成の場合
(1) データベースを構成するファイルの配置
Protection Managerでバックアップするデータベースのファイルは,バックアップしないファイルとは別のボリュームに配置してください。
Protection Managerでは,データベース構成ファイル(データファイル,トランザクションログファイル),およびメタファイルをバックアップ対象としています。メタファイルはバックアップコマンド実行時に生成されます。
バックアップ対象外のデータベース構成ファイルや一般のファイルに対しては,静止化処理をしません。このため,主ボリュームに静止化対象外のファイルがあると,ファイル書き込み中にペア分割が重なり,整合性が保てなくなることがあります。
主ボリュームには,静止化対象となるデータベース構成ファイル(データファイル(*.mdf,*.ndf)およびトランザクションログファイル(*.ldf))だけを配置してください。
データベース構成ファイルの配置を次の図に示します。
図2-36 データベース構成ファイルの配置
![[図]](graphics/jc021100.gif)
(2) 一つのボリュームに複数のデータベース構成ファイルが配置されている場合
一つのボリュームに複数のデータベース構成ファイルが配置されている場合,すべてのデータベースをまとめてバックアップまたはリストアする必要があります。
この場合のバックアップおよびリストアの様子を次の図に示します。
図2-37 一つのボリュームに複数のデータベース構成ファイルが配置されている場合
![[図]](graphics/jc021200.gif)
(3) メタファイルの配置
メタファイルは,バックアップ時にSQL Serverが出力するファイルです。メタファイルにはデータベース構成情報が保存されているため,リストア時に使用されます。
drmsqlinitコマンドでVDIメタファイル格納ディレクトリを指定した場合,副ボリュームのバックアップデータをテープにバックアップするときには,メタファイルもテープにバックアップする必要があります(メタファイルをデータベースファイルと同じディレクトリに格納するときは不要です)。
テープバックアップ時には,データベースサーバのメタファイル格納ディレクトリに作成されたメタファイルを,バックアップサーバにFTPなどで転送する必要があります。このとき,バックアップサーバ上のメタファイル格納ディレクトリと同じドライブ文字を割り当て,同じ名称のディレクトリに転送してください。
データベースサーバ,およびバックアップサーバでのメタファイルの配置を次の図に示します。
図2-38 メタファイルの配置
![[図]](graphics/jc021300.gif)
データベースサーバがMicrosoft Cluster Serviceを使用したクラスタ構成の場合,ストレージサブシステム上のボリュームにメタファイルを格納すると,クラスタサーバがフェールオーバーしたときにも副ボリュームからリストアできます。
SQL Serverのクラスタリソースがフェールオーバーしても,同時にフェールオーバーして使用することができるように,SQL Serverのリソースグループに所属しているボリュームにメタファイルを格納することをお勧めします。
運用待機型のクラスタ構成(Active-Passive)の場合のメタファイルの配置を次の図に示します。
図2-39 メタファイルの配置(クラスタ構成の場合)
![[図]](graphics/jc021400.gif)
(4) ダイナミックディスク構成の場合
- バックアップやリストア対象ディスクグループのファイルシステム(ドライブ)に複数のインスタンスを構成するデータファイルを配置しないでください。
- 次に示すディレクトリおよびファイルは,データファイル(*.mdfおよび*.ndf)とは別のディスクグループのファイルシステム(ドライブ)に配置してください。同じディスクグループのファイルシステム(ドライブ)に配置していると,バックアップ実行時にエラーになります。
- メタファイル格納ディレクトリ(drmsqlinitコマンドでVDIメタファイル格納ディレクトリを指定した場合)
- トランザクションログのバックアップ
- 複数のデータベースを構成するファイルを同じディスクグループのファイルシステム(ドライブ)に配置する場合は,すべてのデータベースを一括してバックアップおよびリストアする必要があります。Protection Manager のバックアップでは,この条件に適合していない場合はバックアップ処理がエラー終了します。
- データベースを個別にバックアップまたはリストアする場合には,異なるディスクグループのファイルシステム(ドライブ)にデータベースのデータファイルを配置してください。
- tempdbはバックアップ対象のユーザーデータベースとは別のディスクグループのファイルシステム(ドライブ)に格納してください。
同じディスクグループのファイルシステム(ドライブ)に格納されている場合,ユーザーデータベースをリストアする際に,tempdbはオンライン状態のまま副ボリュームからリストアしたデータに書き換えられます。これによって,SQL Serverが不正な状態になります。この場合,SQL Serverを再起動することでtempdbが再作成され不正な状態から回復できます。
SQL Serverを再起動後に,tempdbをバックアップ対象のユーザーデータベースとは別のディスクグループのファイルシステム(ドライブ)に変更してから,リストアを再実行してください。リストアを再実行する際には,「7.1.10 コマンドを実行するためのSQL Serverデータベースの条件」を参照して,データベースをリストア実行可能な状態か確認してください。
(5) クラスタ構成の場合
- 一つのクラスタグループに,複数のSQL Serverインスタンスのサービスリソースを登録しないでください。
(6) Veritas Cluster Server for Windows構成の場合
- レジストリレプリケーションデータの格納ファイルシステムは,Protection Manager for SQLのバックアップ対象ではありません。必ずバックアップ対象とは異なるディスクグループまたは物理ディスクに配置してください。
- Protection Managerでは,Veritas Cluster Server Enterprise Agent for SQL Server 2000を使用してSQL Server 2000サービスを制御します。Veritas Cluster Server Enterprise Agent for SQL Server 2000が標準提供しているリソースタイプ「SQLServer2000」については,名称を変更しないでデフォルトの名称で使用してください。Veritas Cluster Server Enterprise Agent for SQL Server 2000はVeritas Storage Foundation HA for Windowsに同梱されています。