数据库接入
如何接入Pigsty所创建的数据库?
所谓供给方案(Provisioning Solution),指的是一套向用户交付数据库服务与监控系统的系统。
供给方案不是数据库,而是数据库工厂:
用户向供给系统提交一份配置,供给系统便会按照用户所需的规格在环境中创建出所需的数据库集群来。
这比较类似于向Kubernetes提交YAML文件,创建所需的各类资源。
例如,以下配置信息声明了一套名为pg-test
的PostgreSQL数据库集群。
#-----------------------------
# cluster: pg-test
#-----------------------------
pg-test: # define cluster named 'pg-test'
# - cluster members - #
hosts:
10.10.10.11: {pg_seq: 1, pg_role: primary, ansible_host: node-1}
10.10.10.12: {pg_seq: 2, pg_role: replica, ansible_host: node-2}
10.10.10.13: {pg_seq: 3, pg_role: offline, ansible_host: node-3}
# - cluster configs - #
vars:
# basic settings
pg_cluster: pg-test # define actual cluster name
pg_version: 13 # define installed pgsql version
node_tune: tiny # tune node into oltp|olap|crit|tiny mode
pg_conf: tiny.yml # tune pgsql into oltp/olap/crit/tiny mode
# business users, adjust on your own needs
pg_users:
- name: test # example production user have read-write access
password: test # example user's password
roles: [dbrole_readwrite] # dborole_admin|dbrole_readwrite|dbrole_readonly|dbrole_offline
pgbouncer: true # production user that access via pgbouncer
comment: default test user for production usage
pg_databases: # create a business database 'test'
- name: test # use the simplest form
pg_default_database: test # default database will be used as primary monitor target
# proxy settings
vip_mode: l2 # enable/disable vip (require members in same LAN)
vip_address: 10.10.10.3 # virtual ip address
vip_cidrmask: 8 # cidr network mask length
vip_interface: eth1 # interface to add virtual ip
当执行 数据库供给 脚本 ./pgsql.yml
时,供给系统会根据清单中的定义,在10.10.10.11
,10.10.10.12
,10.10.10.13
这三台机器上生成一主两从的PostgreSQL集群pg-test
。并创建名为test
的用户与数据库。同时,Pigsty还会根据要求,声明一个10.10.10.3
的VIP绑定在集群的主库上面。结构如下图所示。
用户能够定义的不仅仅是数据库集群,还包括了整个基础设施。
Pigsty通过154个变量实现了对数据库运行时环境的完整表述。
详细的可配置项,请参考 配置指南
供给方案通常只负责集群的创建。一旦集群创建完毕,日常的管理应当由管控平台负责。
尽管如此,Pigsty目前不包含管控平台部分,因此也提供了简单的资源回收销毁脚本,并亦可用于资源的更新与管理。但须知此并非供给方案的本职工作。
如何接入Pigsty所创建的数据库?
如何在Pigsty中定义新的服务
介绍可用性的概念,以及Pigsty在高可用上的实践
介绍Pigsty默认设置的目录结构
介绍Pigsty中的访问控制模型