■PostgreSQL初期設定
 ○PostgreSQLの設定、CentOSの設定が入り混じるので注意してください。

 ●Linuxユーザのパスワード設定
  ○rootでユーザpostgresのパスワードを設定する
  # passwd postgres
  ○パスワードを2回入力し、問題が無ければ完了です。
  ○ユーザーの変更は以下のコマンド
  # su -l postgres
  ○-l オプションをつけるとログインシェルを使用する
   ※環境変数がそのユーザーに変わるのでpostgresを使うときなどは  -l オプションをつけると良いです。

 ●viエディッタでファイル変更
  $ vi ~postgres/.bash_profile
  [ -f /etc/profile ] && source /etc/profile
  PATH=/usr/pgsql-9.3/bin:$PATH              ※追加 PostgreSQLのコマンドをパスなしで実行できるように
  MANPATH=/usr/pgsql-9.3/share/man:$MANPATH   ※追加 Postgresqlのヘルプをmanで表示できるように
  PGDATA=/var/lib/pgsql/9.3/data             ※最初からある。データベースクラスタのパス
  export PATH MANPATH PGDATA             ※変更

 ●設定ファイルの再読込
  $ source ~postgres/.bash_profile

 ●データベースクラスタの作成
  $ initdb -E UTF8 --no-locale

 ●initdbによって作成されたファイルの確認
  $ ls $PGDATA

 ●起動・終了確認
  $ pg_ctl start
  $ pg_ctl stop

 ●データベースの自動起動 (root)
  # chkconfig postgresql-9.3 on

 ●データベースユーザーの作成(データベースを起動しておく事)
  ○postgresユーザーで行う
  # su -l postgres

 ●データベースユーザーの作成
  ○データベースを起動させておく事
  $ createuser testuser

 ●データベースの作成(Oオー)
  $ createdb -O testuser testdb

 ●作成したデータベースの確認
  $ psql -l

 ●データベースへログイン
  $ psql testdb
  psql (9.3.1)
  "help" でヘルプを表示します.

 ●データベースからログアウト
  testdb=# \q   ※めのとなりのスラッシュの逆
  testdb-#

 ●WindowsからpgAdminを使う設定
  ○viエディッタで postgresql.conf を変更
  # vi /var/lib/pgsql/9.3/data/postgresql.conf

 ●以下の文を変更
  #listen_addresses = 'localhost' 
     ↓
  listen_addresses = '*'

 ●変更を有効にする為リスタート
  # su -l postgres
  $ pg_ctl restart

 ●viエディッタで pg_hba.conf を変更
  # vi /var/lib/pgsql/9.3/data/pg_hba.conf

 ●以下の文をIPv4へ追加
  host    all             all             192.168.0.0/24         md5

 ●変更を有効にする為シグナルを送る
  # su -l postgres
  $ pg_ctl reload

 ●ファイヤーウォールをあける
  ○OSの処理なのでrootで行う
  # vi /etc/sysconfig/iptables
  ○以下の分を追加
   -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
  ○リスタート
   # /etc/init.d/iptables restart
   ○これでWindowsからCentOSにインストールしたPostgreSQLにPGAdminで接続出来る

 ●データベースユーザにパスワード設定
  $ su -l postgres
  $ psql                                  ●psqlで変更する
  postgres=# \password postgres   ●\となっているがろキーのスラッシュの逆
  新しいパスワード:
  もう一度入力してください:

  postgres=# \password testuser   ●ユーザーsyainにもパスワードを追加する
  ※これでログオン時にパスワードが必要になる

 ●ディレクトリの作成と所有者の変更
  ※CentOSの初期設定でUSBHDDの取り付けが完了している事
   テスト環境でUSBHDDをつけないのであれば/mntフォルダにusbdisk1を作成する事
   # mkdir /mnt/usbdisk1

  ※PostgrSQLで使うディレクトリは以下の通り
  /mnt/usbdisk1/postgres/dump/  :ダンプバックアップ
                             /arch/  :WALログ
                             /base/  :PITRのベースバックアップ
                             /log/   :ログの出力先
                             /sh/    :シェルスクリプトの保存先
                             /xlog/  :アーカイブ前のWALログバックアップ(pg_xlog)

 ●ディレクトリを作成
  # mkdir /mnt/usbdisk1/postgres
  # mkdir /mnt/usbdisk1/postgres/dump
  # mkdir /mnt/usbdisk1/postgres/arch
  # mkdir /mnt/usbdisk1/postgres/base
  # mkdir /mnt/usbdisk1/postgres/log
  # mkdir /mnt/usbdisk1/postgres/sh
  # mkdir /mnt/usbdisk1/postgres/xlog

 ●所有者をpostgresにする
  # chown postgres /mnt/usbdisk1/postgres
  # chown postgres /mnt/usbdisk1/postgres/dump
  # chown postgres /mnt/usbdisk1/postgres/arch
  # chown postgres /mnt/usbdisk1/postgres/base
  # chown postgres /mnt/usbdisk1/postgres/log
  # chown postgres /mnt/usbdisk1/postgres/sh
  # chown postgres /mnt/usbdisk1/postgres/xlog

----------------------------------------------------------------------------
■PITRバックアップの為の設定
 ●トランザクションログを退避させる設定を行います。
 # vi /var/lib/pgsql/9.3/data/postgresql.conf
 
 ○以下の文を変更
  #wal_level = minimal
   ↓
  wal_level = hot_standby
  ※保存する情報の設定

  archive_mode = off
   ↓
  archive_mode = on
  ※アーカイブログ保存モードを有効に

  #archive_command = ''
   ↓
  archive_command = 'cp %p /mnt/usbdisk1/postgres/arch/%f'  
  ※アーカイブの保存時に実行するコマンド/mnt/usbdisk1/postgres/arch/ へ保存しています。
  以上3箇所を変更します。

 ●変更を有効にする為データベースを再起動
  # su -l postgres
  $ pg_ctl restart

トップへ戻る