PostgreSQL - Create user & database

[postgres@postgres_vm data]$ psql
psql (12.4)
Type "help" for help.

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Active-Active复制是指两个或多个PostgreSQL数据库实例之间的多向同步。在这种复制方式中,每个数据库实例都可以读取和写入数据,而不是像传统的主从复制方式那样只允许主节点写入数据,从节点只允许读取数据。 下面是使用docker-compose容器来实现PostgreSQL Active-Active复制的详细步骤: 1. 创建docker-compose.yml文件并定义两个PostgreSQL容器,如下所示: ``` version: '3' services: postgresql1: image: postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb PGDATA: /var/lib/postgresql/data/pgdata volumes: - pgdata1:/var/lib/postgresql/data ports: - "5431:5432" networks: - postgresql postgresql2: image: postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb PGDATA: /var/lib/postgresql/data/pgdata volumes: - pgdata2:/var/lib/postgresql/data ports: - "5432:5432" networks: - postgresql volumes: pgdata1: pgdata2: networks: postgresql: ``` 2. 启动docker-compose容器,运行以下命令: ``` docker-compose up -d ``` 3. 进入postgresql1容器,创建复制用户并授权: ``` docker exec -it postgresql1 bash su postgres psql CREATE USER replication WITH REPLICATION ENCRYPTED PASSWORD 'password'; GRANT ALL PRIVILEGES ON DATABASE mydb TO replication; ``` 4. 修改postgresql.conf文件和pg_hba.conf文件 在postgresql1容器的 /var/lib/postgresql/data 目录下找到postgresql.conf文件和pg_hba.conf文件,修改如下: postgresql.conf: ``` listen_addresses = '*' wal_level = replica max_wal_senders = 10 wal_keep_segments = 32 ``` pg_hba.conf: ``` host replication replication 172.20.0.0/16 md5 ``` 5. 重启postgresql1容器 ``` docker-compose restart postgresql1 ``` 6. 在postgresql2容器中创建复制槽并启动复制流 ``` docker exec -it postgresql2 bash su postgres psql SELECT * FROM pg_create_physical_replication_slot('replication_slot_name'); pg_basebackup -h postgresql1 -D /var/lib/postgresql/data -U replication -v -P --xlog-method=stream pg_ctl -D /var/lib/postgresql/data start ``` 7. 测试Active-Active复制 在任何一个容器中创建表或插入数据,可以在另一个容器中看到相同的数据。如果其中一个容器出现故障,另一个容器可以继续提供服务,因为它们都具有相同的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值