Postgres 多实例实例部署方式
Postgres 数据库在原有示例正常运行情况下,新增一个端口示例,主要目的解决新的项目和原有项目的数据库部署不在冲突,可以独立运行,备份和还原数据互不影响,主要用的的命令有 initdb 数据库初始化 ,pg_ctl start 进行示例的启动,通过 pg_ctl.exe register 可以实现将postgres 注册成windows 服务,解决命令行无法随开机一起启动等问题。 本例子使用的postgres 版本是10 ,pgAdmin4.0。命令环境用的是cmder 强力推荐(https://cmder.net/)
注意为了不影响原有的数据库使用,务必要把原有的示例端口号指定,如果不指定会造成原有数据库示例不能进行连接(详见步骤2)。
initdb 官方文档写可以用 pg_ctl
init[db]
[-D
datadir
] [-s
] [-o
initdb-options
] 代替,我没试过,也可以试试。
pg_ctl
start
[-D
datadir
] [-l
filename
] [-W
] [-t
seconds
] [-s
] [-o
options
] [-p
path
] [-c
] 启动示例
pg_ctl
register
[-D
datadir
] [-N
servicename
] [-U
username
] [-P
password
] [-S
a[uto]
| d[emand]
] [-e
source
] [-W
] [-t
seconds
] [-s
] [-o
options
] 进行window 服务注册
postgres官网文档对pg_ctl 命令详解 链接 http://www.postgres.cn/docs/10/app-pg-ctl.html
1、 initdb -D C:\Soft\PostgreSQL\10\data2 -E UTF-8 --locale=chs -U postgres -W 如图1 所示;
图1 initdb 命令进行初始化数据库
2、修改默认示例data 目录 postgresql.conf 第63行端口号:5432(不然原有示例会报错),如图2所示。
图2 修改data\postgresql.conf 默认示例端口,指定为5432
修改新目录 data2文件夹中配置文件 postgresql.conf 第63行端口号:5433,如图3所示;
图3 修改新目录 data2文件夹中配置文件 postgresql.conf
3、 pg_ctl -D ^"C^:^\Soft^\PostgreSQL^\10^\data2^" -l logfile start 启动服务进行测试,如图4所示;
图4 启动新示例
4、客户端连接测试
(1)用pgadmin 连接原有示例5432,配置参数如图5所示;
图5 pgadmin 连接原有示例5432
已经连接成功了,原有示例正常运行~~
图6 pgadmin 展开原有数据库示例
(2)连接5433 端口示例
图6 pgadmin 连接实例5433
新端口连接成功!
图7 pgadmin 连接实例5433
5、将新的端口注册成新的服务
pg_ctl.exe register -N "pgsql5433" -D "C:\Soft\PostgreSQL\10\data2"
查看服务已经成功注册,这样就可设置服务随开机一起启动了