2.7.1 drmsqlbackup(SQL Serverデータベースを副ボリュームにバックアップする)

書式

バックアップする場合

drmsqlbackup { インスタンス名 | DEFAULT }
              [ -system | -target データベース名 | -f 一括定義ファイル名 ]
              [ -rc [ 世代識別名 ]]
              [ -pf コピーパラメーター定義ファイル ]
              [ -comment バックアップコメント ]
              [ -script ユーザースクリプトファイル名 ]
              [ -s バックアップサーバ名
                [ -auto_import
                  [ -auto_mount [ マウントポイントディレクトリ名 ]]
                ]
                [ -svol_check ]
              ]

バックアップカタログを作成する場合

drmsqlbackup { インスタンス名 | DEFAULT }
              [ -system | -target データベース名 | -f 一括定義ファイル名 ]
              -template
              [ -comment バックアップコメント ]

説明

指定したインスタンスが記憶されているボリュームを副ボリュームにバックアップします。指定したインスタンスのデータファイルや各種のデータベースなどのオブジェクトが,複数のボリュームで構成されている場合,すべての正ボリュームが副ボリュームにバックアップされます。

SQL Serverインスタンスをバックアップするときは,オンラインバックアップになります。コマンドを実行するときに,起動していないインスタンスを指定すると,コマンドはエラーになります。

コマンドを実行すると,インスタンス内のデータベースに対して,SQL ServerのVDIによって,スナップショットが作成されます。

スナップショットのデータ(メタファイル)は,次のディレクトリに格納されます。

メタファイル格納先ディレクトリが空の場合,バックアップが終了すると正ボリュームにメタファイルは存在しなくなり,副ボリュームにだけ存在します。

プライマリデータファイルと同一パスにあるデータファイルやトランザクションログファイルの名前に「META_データベースID.dmp」という名前のファイルを使わないでください。この名前のファイルがある場合,バックアップは失敗します。

メタファイルに使用されるバックアップIDは,コマンド実行時に割り当てられる10けたの数値です。また,データベースIDはSQL Serverで割り当てられるデータベースを識別するための10けたの数値です。

稼働していないインスタンスを指定した場合は,コマンドはエラーになります。また,インスタンス名だけ指定して実行した場合,インスタンスに含まれるすべてのユーザーデータベースがバックアップ対象になります。SQL Serverのシステムデータベース(master,model,msdb)は含まれません。システムデータベースをバックアップする方法は,次のとおりです。

コマンドを実行する直前には,副ボリュームのシステムキャッシュをクリアしておく必要があります。システムキャッシュをクリアするには,バックアップサーバで副ボリュームをマウントしてから,アンマウントしてください。

PAIR」状態のコピーグループに対してこのコマンドを実行した場合,コピーグループの状態が「PSUS」に変更されます。

ローカルサイトでdrmsqlbackupコマンドを実行する場合,ペア状態が「SMPL」のときは自動ペア生成を実行しません。この場合,RAID Manager用連携定義ファイル(DEFAULT.dat)のPAIR_CREATEパラメーターにENABLEを設定したときには自動ペア生成を実行します。

インストール後,drmsqldisplayコマンドに-refreshオプションを指定して実行しないで,ディクショナリマップファイルが作成していない状態でdrmsqlbackupコマンドを実行した場合,drmsqlbackupコマンドでディクショナリマップファイルが作成されます。この場合,ディクショナリマップファイルの作成する処理時間の分,バックアップコマンド実行時間が長くなります。したがって,drmsqlbackupコマンドの実行前には-refreshオプションを指定したdrmsqldisplayコマンドを実行し,必ずディクショナリマップファイルを作成しておいてください。

コマンドを実行した場合,一度にバックアップできるデータベースの最大数は64です。65個以上のデータベースをバックアップしたい場合は,コマンドを複数回に分けて実行してください。

バックアップの対象となるのは,次の表に示すファイルです。

表2-19 SQL Serverデータベースのバックアップの対象となるファイル

対象データベース※1対象となるファイルの種類バックアップファイル名バックアップファイル格納先
masterデータファイルバックアップ元のファイル名と同じ副ボリューム
トランザクションログファイルバックアップ元のファイル名と同じ副ボリューム
メタファイル※2drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3
modelデータファイルバックアップ元のファイル名と同じ副ボリューム
トランザクションログファイルバックアップ元のファイル名と同じ副ボリューム
メタファイル※2drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3
msdbデータファイルバックアップ元のファイル名と同じ副ボリューム
トランザクションログファイルバックアップ元のファイル名と同じ副ボリューム
メタファイル※2drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3
ユーザーデータベースデータファイルバックアップ元のファイル名と同じ副ボリューム
トランザクションログファイルバックアップ元のファイル名と同じ副ボリューム
メタファイル※2drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3
ディストリビューションデータベースデータファイルバックアップ元のファイル名と同じ副ボリューム
トランザクションログファイルバックアップ元のファイル名と同じ副ボリューム
メタファイル※2drmsqlinitコマンドで指定したVDIメタファイル格納ディレクトリに依存する※3
注※1
-systemオプションを指定しない場合,バックアップの対象となるデータベースはユーザーデータベースだけです。
注※2
drmsqlbackupコマンド実行時に生成されます。
注※3
drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録した場合は,登録したディレクトリにファイル名「<バックアップID>_<データベースID>.dmp」で格納します。
drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録しなかった場合は,データベースファイルのSQL Serverでの管理番号(file_id)が最小値のファイルと同一ディレクトリにファイル名「<META_データベースID>.dmp」で格納します。

引数

インスタンス名

バックアップ対象のデータベースインスタンスを指定します。バックアップ対象がSQL Serverで既定のインスタンスの場合,「DEFAULT」と指定します。

-system

tempdbを除くシステムデータベース(master,model,msdb)とすべてのユーザーデータベースをバックアップする場合に指定します。このオプションを使用した場合,リストアするときにSQL Serverを停止します。

-targetデータベース名

指定したインスタンスに含まれる特定のデータベースをバックアップする場合に指定します。

複数のデータベースをバックアップする場合は,1つのデータベース名ごとにコンマで区切って指定します。空白文字を含んだデータベース名を指定する場合,「"」で囲んで指定します。このオプションには,インスタンス名で指定したインスタンス上に存在するデータベースを必ず指定してください。別のインスタンス上のデータベースを指定した場合,そのデータベースに対するバックアップは行われません。

このオプションで指定したデータベース名は,バックアップカタログに登録され,drmsqlcatコマンドで確認できます。

システムデータベース(master,model,msdb)だけをバックアップする場合は,システムデータベース(master,model,msdb)を指定してコマンドを実行してください。

-f一括定義ファイル名

このオプションは,-targetオプションと同様に,指定したインスタンスに含まれる特定のデータベースをバックアップする場合に指定します。-targetオプションと異なり,データベース名の一覧を記述した定義ファイルをあらかじめ作成しておき,そのファイルの名称を指定することで,データベース名を一度に指定できます。一括定義ファイル名は,絶対パスで指定します。空白文字を含んだ一括定義ファイル名を指定する場合,「"」で囲んで指定します。

一括定義ファイルに指定するデータベースは,指定したインスタンス上にあることが前提です。指定のデータベースが別のインスタンス上にある場合,そのデータベースに対するバックアップは行われません。

システムデータベース(master,model,msdb)だけをバックアップする場合は,システムデータベース(master,model,msdb)を指定してコマンドを実行してください。

-rc世代識別名

バックアップするコピーグループの世代識別名を指定します。drmsqldisplayコマンドに-cfオプションを付けて実行し,表示された「GEN-NAME」の値を指定してください。単体ボリュームの場合は,「-」が表示されます。この場合,-rcオプションは指定できません。

リモート側の副ボリュームへバックアップする場合,このオプションを必ず指定してください。このオプションを省略すると,ローカル側の副ボリュームにバックアップされます。

世代識別名を省略した場合は,リモート側の世代番号の中で,最小の値を持つ副ボリュームがバックアップ先となります。この場合,世代番号はremote_nnは最小の世代番号)となります。

-pfコピーパラメーター定義ファイル

コピーパラメーター定義ファイルに定義したリトライ回数とリトライ間隔を使用する場合に指定します。指定する場合は,パスではなくファイル名だけを指定してください。

このオプションを省略した場合は,RAID Manager用連携定義ファイル(DEFAULT.dat)の値が使用されます。コピーパラメーター定義ファイルに記述されていないパラメーターについても,DEFAULT.datの値が使用されます。

コピーパラメーター定義ファイルは,次の場所に任意の名前で作成します。ファイル名は,64バイト以内の半角英数字で指定してください。

<Application Agentのインストール先>¥DRM¥conf¥raid

-commentバックアップコメント

バックアップカタログにバックアップコメントを登録する場合に指定します。

バックアップコメントには,64バイトまでの任意の文字列(英数字,記号,半角スペースおよびマルチバイト文字)が指定できます。バックアップコメントは大文字と小文字を区別します。記号,半角スペースを指定する場合は,バックアップコメントを引用符(")で囲みます。記号を引用符(")で囲まない場合は,特殊記号と認識しバックアップコメントの文字列として正しく解釈できません。

バックアップコメントに使用できない記号は次のとおりです。

「¥」,「/」,「`」,「|」,「<」,「>」,「"」,「*」,「?」,「&」,「;」,「(」,「)」,「$」

先頭文字には「-」は指定できません。-commentオプションに「""」(引用符だけ)が指定された場合は,バックアップカタログにバックアップコメントは登録しません。

-scriptユーザースクリプトファイル名

ユーザースクリプトを実行する場合に指定します。ユーザースクリプトファイル名は絶対パスで指定します。ユーザースクリプトファイル名を指定するときの条件は次のとおりです。

ユーザースクリプトファイルの記述内容については,マニュアル「Hitachi Command Suite Replication Manager Software Application Agent CLI ユーザーズガイド」の,ユーザースクリプトを作成する方法についての記述を参照してください。

ユーザースクリプトファイルに「LOCATION=REMOTE」を指定した場合は,-sオプションをあわせて指定する必要があります。

-sバックアップサーバ名

リモートのバックアップサーバに接続してバックアップを実行する場合に指定します。バックアップサーバのホスト名またはIPアドレスを,255バイト以内の文字列で指定してください。IPアドレスはIPv4またはIPv6形式で指定できます。

-auto_import

ボリュームのバックアップが完了したあと,バックアップカタログをバックアップサーバに自動転送する場合に指定します。このオプションは,-sオプションと同時に指定する必要があります。

-auto_mountマウントポイントディレクトリ名

ボリュームのバックアップが完了したあと,バックアップサーバで副ボリュームを自動マウントする場合に指定します。このオプションは,-sオプションおよび-auto_importオプションと同時に指定する必要があります。

マウントポイントディレクトリ名は,64バイト以内の文字列で指定してください。

マウントポイントディレクトリ名を省略した場合は,副ボリュームのマウント先が自動的に設定されます。設定規則は,drmmountコマンドでマウントポイントを明示的に指定しなかった場合と同じです。

マウントした副ボリュームは,drmumountコマンドを使用してアンマウントしてください。

-svol_check

バックアップサーバでの副ボリュームの状態をチェックしたい場合に指定します。このオプションは,-sオプションと同時に指定する必要があります。副ボリュームの状態をチェックすることで,バックアップの失敗,またはリストアの失敗を防ぐことができます。チェック内容(項目,対象,条件)は次のとおりです。

表2-20 副ボリュームの状態チェック

チェック項目チェック対象のボリュームチェックの条件
副ボリュームがバックアップサーバから隠ぺいされていることバックアップ対象の正ボリュームに対して定義されたすべての副ボリューム正ボリュームが複数世代の副ボリュームとペア定義されている場合で,かつ,次のどちらかに該当する場合にチェックされる。
  • 正ボリュームがクラスタリソースである。
  • 正ボリュームがダイナミックディスクである。
副ボリュームがバックアップサーバにマウントされていないこと今回,バックアップ先となる副ボリューム常にチェックされる。

-template

ペア再同期,分割およびデータベース静止化を行わないで,バックアップカタログだけを作成する場合に指定します。

-templateオプションを指定してテンプレートカタログを作成しても,古いメタファイルは削除されます。

例えば,2世代環境で次のコマンドを実行したとします。

  1. drmsqlbackup default 実行
  2. drmsqlbackup default 実行
  3. drmsqlbackup default -template 実行

この場合,手順3.を実行後は,手順1.で取得されたメタファイルとカタログは削除されます。

このバックアップカタログは,リモートでバックアップしたデータをリストアするときだけ使用できます。

注意事項

戻り値

0:正常終了した場合

0以外:エラーが発生した場合

使用例