PostgreSQLでもアーカイブログ環境を作れる。アーカイブログがあればポイントインタイムリカバリもできちゃう。
Oracleとかでやるのも難しいし。。。ということでポイントインタイムリカバリができるPostgreSQLの環境をCentOS7で作ってみた。
以下、トランススクリプト。vi使いたくないのでsed置換やヒアドキュメントで記載しています。viで設定ファイル指定してもいいです。
CentOS7のインストール後に以下を実行
systemctl disable firewalld
systemctl stop firewalld
yum -y install postgresql-server postgresql-contrib bzip2
yum clean all
postgresql-setup initdb
systemctl start postgresql
postgresユーザにパスワード(Password00)を設定
su – postgres
psql -c “alter user postgres with password ‘Password00′”
リモートログイン用のユーザadminを作成
createuser -a -s -d -U postgres -P admin
exit
アーカイブログモードの設定
mkdir -p /pgsqldb_backup/base
mkdir /pgsqldb_backup/wal
mkdir /pgsqldb_backup/base_backup
chown postgres:postgres -R /pgsqldb_backup
cp -a /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.orig
cp -a /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.orig
cat << EOF >> /var/lib/pgsql/data/postgresql.conf
listen_addresses = ‘*’
archive_command = ‘cp %p /pgsqldb_backup/wal/%f’
wal_level = archive
archive_mode = on
max_wal_senders = 3
log_checkpoints = on
EOF
cat << EOF >> /var/lib/pgsql/data/pg_hba.conf
host all all 0.0.0.0/0 md5
EOF
sed -i -e “s/local all all peer/local all all md5/g” /var/lib/pgsql/data/pg_hba.conf
sed -i -e “s/#local replication postgres peer/local replication postgres peer/g” /var/lib/pgsql/data/pg_hba.conf
systemctl restart postgresql
systemctl enable postgresql
これで、/pgsqldb_backup/walにアーカイブログが入る。。。はず。