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ではカラムの削除や型の変更はできない模様。
変更したい場合はテーブルを作り直す必要あり。

psqlコマンド

■テーブル一覧表示

=>\d

■テーブル構成表示

=>\d table名

自動でバックアップを取得する

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にログインできれば確認終了。