DBデータのバックアップとリストア

| | コメント(0)

■PostgreSQL

【バックアップ】
$ pg_dump DB名 > backup_20110310.dump

リモートの場合
$ pg_dump -h ホスト名 -p ポート番号 DB名 > backup_20110310.dump

全部一気にバックアップ
$ pg_dumpall > backup_20110310.dump

テーブルをデータごとバックアップ
$ pg_dump -t table名 DB名 > table名.sql

テーブルのスキーマのみをバックアップ
$ pg_dump -s -t table名 DB名 > table名.sql

※その他、圧縮dumpや分離も出来る(ファイルサイズが大きくなった場合)

【リストア】
$ createdb DB名
$ psql -f backup_20110310.dump DB名
or
$ psql -d DB名 -e < backup_20110310.dump

空のクラスタ内に全部リストアの場合
$ psql template1 < backup_20110310.dump

【データベースを丸々別のところにコピー】
旧サーバ
pg_dump -h localhost -U postgres -c 旧DB名 > data20110310.dump
新サーバ
psql -h localhost -U postgres -f data20110310.dump 新DB名


■MySQL
【バックアップ】
$ mysqldump -u ユーザ名 -p DB名 > backup_20110310.dump
パスワード聞かれるので入力

全部一気にバックアップ
$ mysqldump -A -u ユーザ名 -p > backup_20110310.dump


【リストア】
DBを作った後で
$ mysql -u user -p DB名 < backup_20110310.dump

※テーブルが存在してたら怒られるので注意。


mySQLでダウンプファイルが文字化けすることがあるので、下記のように文字コード設定
mysqldump --default-character-set=binary -u ユーザ名 -p DB名 > backup_20110310
文字コードはlatin1、utf8などいろいろ。

コメントする