R, Python, DB 備忘録

データベースとか、jupyter(Python)、Rとか色々

データベースdump

MonetDB

  • dumpコマンドはないが、データベース作成時に圧縮CSVを直接bulk loadすることができる。
  • bz2形式に対応

PostgreSQL

カスタム形式(圧縮あり)

pg_dump -U postgres -d postgres -Fc --schema=***<スキーマ名> > ***.dump<ダンプファイル名>
  • ダンプファイルを作成するフォルダで実行するのが楽(ダンプファイル名にパス名を入れなくてよいので。)

リストア

pg_restore -U postgres -d postgres --schema=***<スキーマ名> ***.dump
  • あらかじめ、リストアするスキーマを作成(CREATE SCEHMA)しないとエラー

平文ダンプ

PostgreSQLMySQL にデータ移行する場合等

pg_dump --schema-only --no-owner --no-privileges --disable-dollar-quoting --schema=***<スキーマ名> postgres > pg-schema.sql
pg_dump --data-only --no-owner --no-privileges --disable-dollar-quoting --column-inserts --schema=***<スキーマ名> postgres > pg-data.sql

スキーマ定義ファイルの修正

  • PostgreSQL特有の命令文が含まれるので削除する。
  • ColumnStoreに移すのであれば、Constraintも削除
  • 余裕があればデータ型の変更

MySQL

平文形式

mysqldump -u root -h localhost --password=********** ~~~ > <ダンプファイル名>
InnoDBの場合
mysqldump --single-transaction -u root -h localhost --password=********** ~~~ > <ダンプファイル名>
  • 出力後は7zip等で適宜圧縮

データベース内からリストア

mysql> set sql_log_bin=OFF;		※バイナリログをOFFにすることで高速化
mysql> use <リストア対象スキーマ名>;
mysql> source <ダンプファイル名>;       ※全databases の復元もこれでOK