2.6 SQL Serverデータベースの条件と注意事項
SQL Serverデータベースでバックアップ対象となるデータの種類を次の表に示します。バックアップコマンド(drmsqlbackupまたはEX_DRM_SQL_BACKUPコマンド)で指定するオプションによって,対象となるデータベースが異なります。
表2-1 SQL Serverデータベースでバックアップ対象となるデータの種類
対象データベース※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」で格納されます。
Application Agentでは物理ボリューム単位にバックアップやリストアをするため,SQL Serverデータベースのオブジェクト構成には次に示す前提条件があります。
- 1つの物理ボリューム上に置くデータベース構成ファイルは,1つのインスタンスを構成するものにしてください。複数のインスタンスを構成するデータベース構成ファイルは置かないでください。
- 次に示すディレクトリおよびファイルは,データベース構成ファイル(*.mdf,*.ndfおよび*.ldf)とは別の物理ボリュームに置く必要があります。
- メタファイル格納ディレクトリ(ただし,メタファイル格納ディレクトリの設定が空の場合を除く)
- トランザクションログのバックアップ
これらを別ボリュームに置く(対象外にする)ことで,リストアしてもメタデータやトランザクションログファイルはバックアップ時の状態に戻らないので,ロールフォワードによるリカバリができます。
Application Agentのバックアップでは,この条件に合っているかがチェックされ,合っていない場合はバックアップ処理がエラー終了します。
- データベース名には,次の文字が使用できます。
- ASCII文字
- 1文字が2バイト以内のデータで表現されるマルチバイト文字
ただし,次の文字は使用できません。
¥ / : , ; * ? < > |
- データベースのデータファイル,またはトランザクションログファイルに「META_<データベースID>(10けた).dmp」という名前のファイルを使わないでください。
- drmsqlinitコマンドの実行時に,UNDOファイル格納ディレクトリを登録しなかった場合,バックアップしたデータは,-undoオプションを指定してリストアおよびリカバリできません。
- drmsqlinitコマンドの実行時に,トランザクションログバックアップファイル格納ディレクトリを登録しなかった場合,トランザクションログのバックアップができません。
- システムデータベース(master,model,msdb)をバックアップ対象とする場合は,SQL Serverのエラーログファイルの出力先をシステムデータベースとは別のボリュームに設定してください。
- tempdbはバックアップ対象のユーザーデータベースとは別の物理ボリュームに格納してください。
同じ物理ボリュームに格納されている場合,ユーザーデータベースだけをリストアする際に,tempdbはオンライン状態のまま副ボリュームからリストアしたデータに書き換えられます。これによって,SQL Serverが不正な状態になることがあります。
SQL Serverを再起動後に,tempdbをバックアップ対象のユーザーデータベースとは別のボリュームに変更してから,リストアを再実行してください。リストアを再実行する際には,「6.1.10 コマンドを実行するためのSQL Serverデータベースの条件」を参照して,データベースをリストア実行可能な状態か確認してください。
- SQL Serverのバージョンが異なる場合,バックアップしたデータベースをリストアできません。例えば,SQL Server 2005が動作するデータベースサーバからバックアップしたデータベースは,SQL Server 2008が動作するデータベースサーバへリストアできません。
- HUS100シリーズ,Hitachi AMS2000シリーズ,またはHitachi AMS/WMSシリーズでCopy-on-Write Snapshot機能を使用し,かつSQL Serverのメタデータを正ボリュームに格納する方法では,drmsqlbackupまたはEX_DRM_SQL_BACKUPコマンドを使用してバックアップを取得する運用はできません。
- drmsqlbackupコマンドで,一度にバックアップできるデータベースの最大数は64です。65個以上のデータベースをバックアップしたい場合は,drmsqlbackupコマンドを複数回に分けて実行してください。
SQL Serverを使用する場合,次の注意事項があります。
- Application Agentでは,データベーススナップショットを対象としたバックアップ,リストアができません。インスタンス全体をバックアップする場合,データベーススナップショットを削除してください。データベーススナップショットをバックアップ対象に含めるとバックアップが失敗します。
- 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データベースのデータベース構成ファイルは同じ場所に格納されます。Application Agentでは,resourceデータベースをバックアップ対象とした静止化処理,およびバックアップ情報の表示をしません。resourceデータベースのデータベース構成ファイルは,システムデータベースをバックアップ・リストアする際に,masterデータベースのデータベース構成ファイルとともにバックアップ・リストアされます。
- SQL Server 2008の場合,データの圧縮機能はサポートしていません。
- SQL Server 2008およびSQL Server 2012の場合,次の機能はサポートしていません。
- FILESTREAMデータ
- 変更データキャプチャ
- 変更の追跡
- バックアップ(データベースおよびトランザクションログ)の圧縮
- SQL Server 2012の場合,次のデータ圧縮機能をサポートしています。
- SQL Server 2012でAlwaysOn可用性グループ構成を使用する場合,アクティブノードでのユーザーデータベースをバックアップおよびリストアする運用をサポートしています。AlwaysOn可用性グループの構成を使用した,次の運用はサポートしていません。
- システムデータベースをバックアップおよびリストアする運用
- パッシブノードでのユーザーデータベースをバックアップおよびリストアする運用
- SQL Server 2012の場合,Server Coreはサポートしていません。また,AlwaysOnフェールオーバークラスタインスタンスのうち,次の構成による運用はサポートしていません。
- ネットワーク上の共有フォルダにデータベースを配置
- ローカルディスクにtempdbを配置
- 複数のサブネットにまたがったクラスタを構成
- この節の構成
- 2.6.1 データベースを構成するファイルの配置
- 2.6.2 1つのボリュームに複数のデータベース構成ファイルが配置されている場合
- 2.6.3 メタファイルの配置
- 2.6.4 ダイナミックディスク構成の場合
- 2.6.5 クラスタ構成の場合