CentOS7 上でPostgreSQLのアーカイブログモードをサポートした環境で構築する

投稿者: | 4月 23, 2020

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にアーカイブログが入る。。。はず。

コメントを残す