copytable
指定した日付範囲のテーブルおよびインデックスデータファイルを指定したバックアップパスにコピーまたは移動します。一般的にテーブルおよびインデックスデータファイルを定期的に NAS ストレージにバックアップする場合に使用します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | ドライバークエリ |
| 必要な権限 | 管理者 |
| ライセンス使用量 | 該当なし |
| 並列実行 | 非対応 |
| 分散実行 | 非対応 |
構文
オプション
path=STR- テーブルのバックアップパスを指定します。パスにバックスラッシュ(
\)が含まれる場合はエスケープ(\\)が必要です。 from=STR- バックアップ開始日付を
yyyyMMdd形式で指定します。 to=STR- バックアップ終了日付を
yyyyMMdd形式で指定します。 tables=STR- 複製対象テーブルリストをカンマで区切って指定します。ワイルドカード(
*)をサポートします。未指定の場合はすべてのテーブルを対象に動作します。 indexpath=STR- フルテキストインデックスファイルをコピーするパスを指定します。未指定の場合はテーブルデータファイルのみバックアップします。
worm=BOOLtに設定すると一時ファイル(.transfer)を作成せずにバックアップメディアに直接コピーします。未指定の場合は.transfer拡張子の一時ファイルを作成した後にファイル名を変更します。overwriteおよびincrementalオプションと同時に使用できません。overwrite=BOOLtに設定するとバックアップメディアに同名ファイルが既に存在する場合に既存ファイルを削除して上書きします。.transfer一時ファイルを作成した後に既存バックアップファイルを削除してリネームします。途中でクエリをキャンセルしても既存バックアップファイルは保持され一時ファイルのみ削除されます。wormおよびincrementalオプションと同時に使用できません。incremental=BOOLtに設定するとバックアップメディアに同名ファイルが既に存在する場合に既存ファイルの末尾にデータを追加します。この場合は一時ファイルは作成されません。wormおよびoverwriteオプションと同時に使用できません。move=BOOLtに設定するとコピー完了後に元のファイルを削除します。バックアップファイルのサイズが元のファイルと一致しない場合は元のファイルを削除しません。
出力フィールド
| フィールド | タイプ | 説明 |
|---|---|---|
_time | timestamp | そのファイルのバックアップ処理日時 |
type | string | バックアップ対象タイプ。table(テーブルデータファイル)またはfulltext(フルテキストインデックスファイル) |
name | string | テーブル名またはテーブル名.インデックス名形式のインデックス名 |
file_path | string | バックアップファイルの絶対パス |
file_size | long | ファイルサイズ(バイト) |
status | string | バックアップ状態 |
error_msg | string | エラー発生時のエラーメッセージ。正常処理されたファイルにはこのフィールドは割り当てられません。 |
エラーコード
パースエラー
| エラーコード | メッセージ | 説明 |
|---|---|---|
| 41006 | 올바르지 않은 백업 옵션입니다. | overwrite、incremental、wormオプションを相互排他的に使用しない場合 |
| 41009 | 명령어 실행 권한이 없습니다. | 管理者権限がない場合 |
| 41010 | 올바르지 않은 날짜 구간입니다. | from日付がto日付より後の場合 |
| 41011 | 올바르지 않은 테이블 이름입니다. | 指定したテーブル名に一致するテーブルがない場合 |
| 41012 | 시작 날짜 포맷([from])이 형식(yyyyMMdd)에 맞지 않습니다. | fromオプションの値がyyyyMMdd形式でない場合 |
| 41013 | 끝 날짜 포맷([to])이 형식(yyyyMMdd)에 맞지 않습니다. | toオプションの値がyyyyMMdd形式でない場合 |
| 41014 | 조회할 [file]이 존재하지 않거나 읽을수 없습니다. | 指定したバックアップパスが存在しないか読み取れない場合 |
| 41015 | 필드명을 입력하십시오. | pathオプションを指定しない場合 |
ランタイムエラー
該当なし
説明
copytableコマンドは、各データファイルのコピーを実行しながら現在の進行状況をレコードとして出力します。同名ファイルが既に存在する、リネームに失敗する、バックアップメディアの容量が不足するなどの例外が発生すると、error_msgフィールドにエラー内容を割り当てます。これを利用してエラー発生時に警告メールを送信するなどの後処理を実行できます。途中で一部のデータファイルのバックアップに失敗しても、ユーザーが明示的にキャンセルするまでクエリは中断されずに実行されます。
別途オプションを指定しない場合は、コピー時に.transfer拡張子の一時ファイルを作成し、完了後に元のファイル名に変更します。クエリをキャンセルすると一時ファイルが削除されます。
コピーを開始する前に、メモリにバッファリングされたデータをディスクにフラッシュするためにテーブルロックを一時的に取得します。すでにロックされているテーブルはメモリにデータがないことが保証されているためロックをスキップします。
indexpathオプションを指定すると、各テーブルについてまずテーブルデータファイルをコピーした後にフルテキストインデックスファイルをコピーします。
使用例
-
全テーブルのバックアップ
copytable path="/backup/logpresso" from=20260101 to=20260131すべてのテーブルの2026年1月のデータファイルを
/backup/logpressoパスにコピーします。 -
特定テーブルをインデックスと一緒にバックアップ
copytable path="/backup/logpresso" indexpath="/backup/logpresso" from=20260101 to=20260131 tables="firewall_logs,web_logs"firewall_logsとweb_logsテーブルの2026年1月のデータファイルとフルテキストインデックスファイルをバックアップします。 -
増分バックアップ
copytable path="/backup/logpresso" from=20260301 to=20260317 incremental=t既にバックアップ済みのファイルがある場合は既存ファイルの末尾にデータを追加する方式で増分バックアップを実行します。
-
バックアップ後に元のファイルを削除(移動)
copytable path="/backup/logpresso" from=20250101 to=20250131 move=tデータファイルをバックアップパスにコピーした後に元のファイルを削除します。
-
上書きバックアップ
copytable path="/backup/logpresso" from=20260301 to=20260317 overwrite=tバックアップメディアに同名ファイルが存在する場合は既存ファイルを削除して再コピーします。