記錄一下centos7.5下安裝postgresql10的過程
安裝
1 更新源
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y
2 安裝postgresql
yum install postgresql10-contrib postgresql10-server -y
3 初始化數據庫
/usr/pgsql-10/bin/postgresql-10-setup initdb
4 啟動服務
systemctl start postgresql-10
5 設置密碼
postgresql 會默認添加一個用戶postgres,我們需要給他設置一下密碼
su - postgres
psql
ALTER USER postgres WITH PASSWORD 'yourpassword';
到這里已經可以使用了,但是為了更方便的使用,我們還可以進行其他設置。
遠程登錄
postgresql默認不支持遠程登錄,我們需要修改配置文件pg_hba.conf
vim /var/lib/pgsql/10/data/pg_hba.conf
修改前
修改后
然后修改另一個配置文件postgresql.conf
vim /var/lib/pgsql/10/data/postgresql.conf
修改前
修改后
重啟postgresql
systemctl restart postgresql-10
之后就可以用pgadmin遠程登錄了。
開機自啟動
設置開機啟動
systemctl enable postgresql-10.service
備份與恢復
postgresql的備份命令為
pg_dump -h ipaddress -p port -U user dbname>dumpfile
例如,將本地數據庫postgres備份到/var/www/backup.sql文件中
pg_dump -h 127.0.0.1 -p 5432 -U postgres postgres>/var/www/backup.sql
postgresql的恢復命令為
psql -h ipaddress -p port -U user dbname<dumpfile
例如,從/var/www/backup.sql恢復數據庫到本地postgres中
psql -h 127.0.0.1 -p 5432 -U postgres postgres</var/www/backup.sql
值得一提的是,恢復命令不會創建數據庫,所以需要自行創建一個新的數據庫(在上例中,新數據庫名仍是postgres)
定時備份
由備份命令我們可以創建一個腳本來自動化備份數據。
我在/var/www/下新建一個文件dailybackup.sh,腳本內容大致如下
#!/bin/bash
cur_day=$(date '+%Y%m%d')
echo "start backup postgresql..."
# 執行備份
pg_dump -h 127.0.0.1 -p 5432 -U postgres postgres>/var/www/backup_$cur_day.sql
echo "finish backup."
記得順便給該文件授予可執行權限
再新建一個定時任務,執行命令
crontab -e
輸入如下內容,意思是每天凌晨1點執行/var/www/dailybackup.sh
0 1 * * * /var/www/dailybackup.sh
保存退出,由此自動化備份數據庫完成。