2011年1月6日木曜日

SQL Anywhere データベースをコピーする

稼働中のデータベースファイルをとめないでコピーするというのはメンテナンス作業の中でも頻度が高いであろう。こんなときSQL Anywhereではdbbackupコマンドを使う。

一般的には以下の使い方が多いだろう。接続文字列にDBへの接続方法、保存先フォルダにはデータベースファイル(とログなどの付属ファイル)を保存する先を指定する。
dbbackup -c {接続文字列} {保存先フォルダ}

たとえば、以下のようにすると ODBCデータソース "mydb" で接続できるデータベースをmybackupフォルダにコピーする。
dbbackup -c "dsn=mydb" mybackup

実行結果は以下のようになる。

途中フォルダが無いよと言ってくるので y を入力してフォルダを作成する。

C:\temp>dbbackup -c "dsn=mydb" mybackup
SQL Anywhere バックアップ・ユーティリティ バージョン 11.0.1.2044
ディレクトリ "mybackup" は存在しません。作成しますか ? (Y/N) y
(6195/6193 ページ、100% 完了)
データベースのバックアップが完了しました。

C:\temp>dir mybackup
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 1454-FF9A です

C:\temp\mybackupのディレクトリ

2011/01/06 15:41 <DIR> .
2011/01/06 15:41 <DIR> ..
2010/12/29 16:49 13,320,192 mydb.db
2010/12/30 15:48 12,050,432 mydb.log
2 個のファイル 25,370,624 バイト
2 個のディレクトリ 27,779,186,688 バイトの空き領域


dbbackupを実行する前には%SQLANY11%\Bin32などSQL Anywhereのコマンドがある場所にパスが通っているのを忘れないように

0 件のコメント:

コメントを投稿