磐维数据库,简称"PanWeiDB"。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于openGauss开源软件,并进一步提升了系统稳定性以及多种数据库兼容性。
本文将介绍磐维数据库如何使用IPv6以及多IP方式连接数据库。
磐维数据库使用IPv6进行连接
IPv4 即将迎来付费时代(参考链接:https://mp.weixin.qq.com/s/omNTykcFMVLy-X_RTpOv7w)
去年 7 月,亚马逊云科技宣布自 2024 年 2 月 1 日起,所有公共 IPv4 地址将按每小时 0.005 美元的价格收费,约合每月 4 美元,而且无论其是否附加到服务中,都要收费;
基于容器的部署平台 Fly.io 也在不久前更新社区公告,称会在 2 月 1 日之后,对每个专用 IPv4 每月收取约 2 美元的费用;
开源数据处理服务平台 Supabase 计划推出一个 IPv4 的付费附加服务,每月费用为 4 美元。
因为作为 IPv4 的替代者,IPv6 提供了更好的支持移动设备、更灵活的地址分配、更简化的头部结构以及更好的安全性。
更为值得注意的是,IPv6 的地址空间极其庞大,可以提供大约 3.4 x 10^38 个地址,其数量远远超过 IPv4,从而满足未来互联网设备的增长需求
Linux下使用ip addr命令可查看网络接口的IPv6地址:
# ip addr |grep inet6
inet6 ::1/128 scope host
inet6 xx:xx:xx:xx:xx:3721/64 scope link noprefixroute
上面第一个是本地回环网卡的inet6,后面测试使用第二个网卡ens160的地址:
xx:xx:xx:xx:xx:3721
数据库连接之前可以先在本地进行连通性测试
# ping6 xx:xx:xx:xx:xx:3721%ens160
如果需要被其他服务器访问,需要添加全局IPv6。
测试前需要检查postgresql.conf文件,监听参数
listen_addresses = '*'
设置为*,监听所有网络接口。
编辑pg_hba.conf文件,添加数据库客户端连接的IPv6认证条目
host. all all xx:xx:xx:xx:xx:3721/128 md5
执行reload操作
$ pw_ctl reload
使用psql连接
$ psql -r -h xx:xx:xx:xx:xx:3721%ens160 -U admin postgres -W 'xxx'

使用jdbc连接
磐维数据库2.0 jdbc驱动包提供了两种:
第一个文件panweidb-jdbc-postgresql-2.0.0.jar兼容postgresql协议
jdbc:postgresql://ip:port/database_name?currentSchema=schema_name
如果java程序同时连接多种PG内核的数据库,为防止冲突,可使用第二个文件panweidb-jdbc-postgresql-2.0.0.jar,postgresql包名替换为panweidb
jdbc:panweidb://ip:port/database_name?currentSchema=schema_name

使用IPv6进行jdbc测试,参考jdbc连接串:
jdbc:panweidb://xx:xx:xx:xx:xx:3721:17700/dbname?currentSchema=schema_name
磐维数据库使用多IP进行连接
使用psql
第一种形式:
$ psql -r "host=xx.xx.xx.210,xx.xx.xx.200" -U admin -W 'xxx'

第二种形式:
$ psql -r postgresql://xx.xx.xx.210:3306,xx.xx.xx.200:3306/postgres?application_name=panweiapp -U admin -W 'xxx'

使用jdbc
JDBC连接串参考:
jdbc:postgresql://ip1:port,ip2:port,ip3:port/database_name?targetServerType=master¤tSchema=schema_name
或者替换postgresql协议为panweidb
jdbc:panweidb://ip1:port,ip2:port,ip3:port/database_name?targetServerType=master¤tSchema=schema_name




