postgresqlに関して
postgresqlに関して触れたのでメモ
DB操作
■DB作成 ※postgresユーザーで実行
$createdb -U ユーザー名 DB名
■DB削除 ※postgresユーザーで実行
$dropdb DB名
■ログイン
$psql ユーザー名 DB名
バックアップ/リストア
■バックアップ取得
$pg_dump -U ユーザー名 DB名 > 出力ファイル名
ファイル出力時にパイプの使用が可能
$pg_dump -U ユーザー名 DB名 | gzip > 出力ファイル名
■リストア
$psql -U ユーザー名 DB名 < ダンプファイル名
teble操作
■table作成
=>create table table名
■table削除
=>drop table table名
■カラム追加
=>alter table table名 add カラム名 型 オプション
postgresqlではカラムの削除や型の変更はできない模様。
変更したい場合はテーブルを作り直す必要あり。
自動でバックアップを取得する
user=hogehoge
自動実行は以前の記事から->「liunx環境における定期処理の実行(crontab)」
pg_dumpコマンドでバックアップを取得する時に、実行ユーザーのパスワード入力が求められる。
そのため自動で実行する場合はパスワード情報をファイルに書き出しておき、それを読み込ませる方法で対応。
.pgpassファイルを作成
「crontab」で自動バックアップ処理を記述したユーザーのホームディレクトリ内に、「.pgpass」ファイルを作成
$vim /home/hogehoge/.pgpass
.pgpassファイルの書式
ホスト:ポート番号:データベース名:ユーザー名:パスワード hostname:port:database:username:password 各項目は「:」で区切る
例
localhost:*:hogehogeDB:hogehoge:hogehogePW
複数のDBをバックアップする場合は、必要な分のパスワード情報を.pgpassに記入しておく。
例
localhost:*:hogehogeDB:hogehoge:hogehogePW localhost:*:hogehogeDB2:hogehoge:hogehogePW
作成後、.pgpassのアクセス権を「600」に設定
$chmod 600 /home/hogehoge/.pgpass
以上で作成終了。
続いて動作確認。
記入してあるDBへログイン。
$psql -U hogehoge hogehogeDB
パスワード入力が自動で行われ、DBにログインできれば確認終了。