有时候需要一台设备开启多个独立的pgsql进程
pgsql数据库编译安装可以参考:pgsql编译安装
整体思路:复制已经运行的pgsql的文件目录和配置文件到新的目录->修改配置文件(端口、位置)
注意:以下操作中的用户是自己创建的给pgsql用的,每个人的可能不一样,改成自己的
1.创建新的pgsql的目录
如果按照我的编译安装,数据和存储目录为/var/pgsqldata
数据目录下通常有以下文件,可以搜索文件确定位置。
先停止原来的pgsql进程
systemctl stop pgsql
复制(这种方式会把原来的数据也复制,主要是为了配置文件)
cp -r /var/pgsqldata /var/pgsqldata2
授予新目录位置权限
chown -R postgres:postgres /var/pgsqldata2
权限调整(必须是750或700)
chmod 750 /var/pgsqldata2
2.修改新复制的配置文件
vi /var/pgsqldata2/postgresql.conf
修改端口port
port = 5433
3.删除pid文件
rm /var/pgsqldata2/postmaster.pid
4.编写新的systemctl脚本
vi /etc/systemd/system/pgsql2.service
内容如下
[Unit]
Description=postgresql
[Service]
Type=forking
User= postgres
Group=postgres
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /var/pgsqldata2
ExecReload=/usr/local/pgsql/bin/pg_ctl restart -D /var/pgsqldata2
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /var/pgsqldata2
PrivateTmp=true
[Install]
WantedBy=multi-user.target
5.启动和测试
重新加载脚本
systemctl daemon-reload
启动并开机启动
systemctl start pgsql2.service && systemctl enable pgsql2.service
检查状态
systemctl status pgsql2
复制文件后,同时也把第一个数据库的数据也复制了,登录的账号密码是和第一个数据库一样
6.多个pgsql如何管理
建议使用数据库管理软件进行统一管理,不建议使用psql命令
7.pgsql多开的用处
1)实时获取新版本的数据库,同时构建测试服务器
2)全量备份的数据库进行单独的恢复
3)本地多硬盘进行单机的数据主从备份