Replication Manager Software Application Agent CLI リファレンスガイド
バックアップする場合
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によって,スナップショットが作成されます。
スナップショットのデータ(メタファイル)は,次のディレクトリに格納されます。
- drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録した場合
登録したディレクトリにファイル名「バックアップID_データベースID.dmp」で格納されます。- drmsqlinitコマンドでVDIメタファイル格納ディレクトリを登録しなかった場合
データベースファイルのSQL Serverでの管理番号(file_id)が最小値のファイルと同一のディレクトリにファイル名「META_データベースID.dmp」で格納されます。メタファイル格納先ディレクトリが空の場合,バックアップが終了すると正ボリュームにメタファイルは存在しなくなり,副ボリュームにだけ存在します。
プライマリデータファイルと同一パスにあるデータファイルやトランザクションログファイルの名前に「META_データベースID.dmp」という名前のファイルを使わないでください。この名前のファイルがある場合,バックアップは失敗します。
メタファイルに使用されるバックアップIDは,コマンド実行時に割り当てられる10けたの数値です。また,データベースIDはSQL Serverで割り当てられるデータベースを識別するための10けたの数値です。
稼働していないインスタンスを指定した場合は,コマンドはエラーになります。また,インスタンス名だけ指定して実行した場合,インスタンスに含まれるすべてのユーザーデータベースがバックアップ対象になります。SQL Serverのシステムデータベース(master,model,msdb)は含まれません。システムデータベースをバックアップする方法は,次のとおりです。
- tempdbを除くシステムデータベース(master,model,msdb)とすべてのユーザーデータベースをバックアップしたい場合,-systemオプションを指定してコマンドを実行する。
- システムデータベース(master,model,msdb)だけをバックアップしたい場合,-targetオプションまたは-fオプションにシステムデータベース(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 データファイル バックアップ元のファイル名と同じ 副ボリューム トランザクションログファイル バックアップ元のファイル名と同じ 副ボリューム メタファイル※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
- 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_n(nは最小の世代番号)となります。
-pfコピーパラメーター定義ファイル
コピーパラメーター定義ファイルに定義したリトライ回数とリトライ間隔を使用する場合に指定します。指定する場合は,パスではなくファイル名だけを指定してください。
このオプションを省略した場合は,RAID Manager用連携定義ファイル(DEFAULT.dat)の値が使用されます。コピーパラメーター定義ファイルに記述されていないパラメーターについても,DEFAULT.datの値が使用されます。
コピーパラメーター定義ファイルは,次の場所に任意の名前で作成します。ファイル名は,64バイト以内の半角英数字で指定してください。
<Application Agentのインストール先>\DRM\conf\raid-commentバックアップコメント
バックアップカタログにバックアップコメントを登録する場合に指定します。
バックアップコメントには,64バイトまでの任意の文字列(英数字,記号,半角スペースおよびマルチバイト文字)が指定できます。バックアップコメントは大文字と小文字を区別します。記号,半角スペースを指定する場合は,バックアップコメントを引用符(")で囲みます。記号を引用符(")で囲まない場合は,特殊記号と認識しバックアップコメントの文字列として正しく解釈できません。
バックアップコメントに使用できない記号は次のとおりです。
「\」,「/」,「`」,「|」,「<」,「>」,「"」,「*」,「?」,「&」,「;」,「(」,「)」,「$」
先頭文字には「-」は指定できません。-commentオプションに「""」(引用符だけ)が指定された場合は,バックアップカタログにバックアップコメントは登録しません。
-scriptユーザースクリプトファイル名
ユーザースクリプトを実行する場合に指定します。ユーザースクリプトファイル名は絶対パスで指定します。ユーザースクリプトファイル名を指定するときの条件は次のとおりです。
- 最大バイト数:255
- 使用できる文字:Windowsでファイル名として使用できる文字。空白を含む場合は「""」で囲んで指定します。
ユーザースクリプトファイルの記述内容については,マニュアル「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オプションと同時に指定する必要があります。副ボリュームの状態をチェックすることで,バックアップの失敗,またはリストアの失敗を防ぐことができます。チェック内容(項目,対象,条件)は次のとおりです。
チェック項目 チェック対象のボリューム チェックの条件 副ボリュームがバックアップサーバから隠ぺいされていること バックアップ対象の正ボリュームに対して定義されたすべての副ボリューム 正ボリュームが複数世代の副ボリュームとペア定義されている場合で,かつ,次のどちらかに該当する場合にチェックされる。
- 正ボリュームがクラスタリソースである。
- 正ボリュームがダイナミックディスクである。
副ボリュームがバックアップサーバにマウントされていないこと 今回,バックアップ先となる副ボリューム 常にチェックされる。 -template
ペア再同期,分割およびデータベース静止化を行わないで,バックアップカタログだけを作成する場合に指定します。
-templateオプションを指定してテンプレートカタログを作成しても,古いメタファイルは削除されます。
例えば,2世代環境で次のコマンドを実行したとします。
- drmsqlbackup default 実行
- drmsqlbackup default 実行
- drmsqlbackup default -template 実行
この場合,手順3.を実行後は,手順1.で取得されたメタファイルとカタログは削除されます。
このバックアップカタログは,リモートでバックアップしたデータをリストアするときだけ使用できます。
- -targetオプションまたは-fオプションを使用する場合,同じ論理ボリュームに含まれるすべてのデータベースを指定してください。指定しない場合はコマンドにエラーが発生します。
- バックアップカタログの個々のバックアップ情報は,コピーグループをキーに管理されています。バックアップの取り方によっては,副ボリュームにバックアップデータがあっても,リストアできなくなる場合があります。詳細については,マニュアル「Hitachi Command Suite Replication Manager Software Application Agent CLI ユーザーズガイド」の,Application Agentを実行するための注意事項についての記述を参照してください。
- -targetオプション,または-fオプションによって空白を含んだファイル名またはディレクトリ名をコマンドラインのオプションとして指定する場合,指定されるパス名は,引用符(")で囲む必要があります。
ただし,一括定義ファイル内で対象のファイル名またはディレクトリ名を記述する場合は,指定するパス名を引用符(")で囲む必要はありません。- -scriptオプションを使用した場合に,次のエラーが発生したときは,データベースの静止化を中断するため,ユーザースクリプトのエラー出力に続いてSQL Serverからのエラーメッセージも出力します。
- ユーザースクリプトファイルのEND_CODEにTERMINATE_NZが指定されている場合に,[SPLIT_PROC]に記述されたコマンドがエラーになったとき
0:正常終了した場合
0以外:エラーが発生した場合
- インスタンス「SQLDB」のデータベース全体をオンラインバックアップする。
PROMPT> drmsqlbackup SQLDB- インスタンス「SQLDB」のデータベース「DB01」,「DB02」をオンラインバックアップする。
PROMPT> drmsqlbackup SQLDB -target DB01,DB02- バックアップコメントを指定してバックアップする。
PROMPT> drmsqlbackup default -comment comment KAVX0001-I drmsqlbackupコマンドを開始します。 KAVX1017-I SQL Serverの情報を取得しています。 KAVX1207-I データベースのバックアップ中です。 KAVX0040-I バックアップは以下の内容で取得されています。 バックアップID = 0000000021 KAVX0002-I drmsqlbackupコマンドを終了します。- バックアップカタログのテンプレートを作成する。
PROMPT> drmsqlbackup default -template KAVX0001-I drmsqlbackupコマンドを開始します。 KAVX1017-I SQL Serverの情報を取得しています。 KAVX0085-I バックアップ情報を作成中です。 KAVX0086-I バックアップ情報は以下の内容で取得されています。 バックアップID = 0000000001 KAVX0002-I drmsqlbackupコマンドを終了します。- スクリプトを使用してローカルとリモート先にバックアップを取得する。
PROMPT> drmsqlbackup default -script C:\Uscript.txt KAVX0001-I drmsqlbackupコマンドを開始します。 KAVX1017-I SQL Serverの情報を取得しています。 KAVX1207-I データベースのバックアップ中です。 KAVX0210-I ユーザースクリプトを実行します。 処理セクション = RESYNC_PROC KAVX0212-I ユーザースクリプトのコマンドを実行します。 コマンドライン = C:\HORCM\etc\pairresync.exe -g TC01 -d sql01 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0212-I ユーザースクリプトのコマンドを実行します。 コマンドライン = C:\HORCM\etc\pairresync.exe -g TC01 -d sql02 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0211-I ユーザースクリプトの実行が終了しました。 KAVX0210-I ユーザースクリプトを実行します。 処理セクション = SPLIT_PROC KAVX0212-I ユーザースクリプトのコマンドを実行します コマンドライン = C:\HORCM\etc\pairsplit.exe -g TC01 -d sql01 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0212-I ユーザースクリプトのコマンドを実行します コマンドライン = C:\HORCM\etc\pairsplit.exe -g TC01 -d sql02 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0211-I ユーザースクリプトの実行が終了しました。 KAVX0040-I バックアップは以下の内容で取得されています。 バックアップID = 0000000001 KAVX0002-I drmsqlbackupコマンドを終了します。 PROMPT>- スクリプトを使用してリモート先だけにバックアップを取得する。
PROMPT> drmsqlbackup default -script C:\Uscript.txt KAVX0001-I drmsqlbackupコマンドを開始します。 KAVX1017-I SQL Serverの情報を取得しています。 KAVX1207-I データベースのバックアップ中です。 KAVX0210-I ユーザースクリプトを実行します。 処理セクション = RESYNC_PROC KAVX0212-I ユーザースクリプトのコマンドを実行します。 コマンドライン = C:\HORCM\etc\pairresync.exe -g TC01 -d sql01 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0212-I ユーザースクリプトのコマンドを実行します。 コマンドライン = C:\HORCM\etc\pairresync.exe -g TC01 -d sql02 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0211-I ユーザースクリプトの実行が終了しました。 KAVX0210-I ユーザースクリプトを実行します。 処理セクション = SPLIT_PROC KAVX0212-I ユーザースクリプトのコマンドを実行します コマンドライン = C:\HORCM\etc\pairsplit.exe -g TC01 -d sql01 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0212-I ユーザースクリプトのコマンドを実行します コマンドライン = C:\HORCM\etc\pairsplit.exe -g TC01 -d sql02 -FBC 0 KAVX0213-I ユーザースクリプトのコマンドが終了しました。 終了コード=0 KAVX0211-I ユーザースクリプトの実行が終了しました。 KAVX0002-I drmsqlbackupコマンドを終了します。 PROMPT>
All Rights Reserved. Copyright© 2010, 2014, Hitachi, Ltd.