Huawei Cloud EulerOS
Huawei Cloud EulerOS
- 最新动态
- 服务公告
- 产品介绍
- 用户指南
-
常见问题
- CentOS Linux停止维护后如何应对?
- 华为云针对CentOS EOL有没有迁移方案?
- 如何安装mlnx驱动?
- 如何开启HCE操作系统的SELinux功能?
- 迁移系统后,如何更改控制台操作系统名称?
- Huawei Cloud EulerOS、openEuler和EulerOS镜像的主要区别是什么?
- 如何打开内核wireguard模块以及安装wireguard-tools?
- 如何将docker工具的用户凭证保存方式配置成与社区一致?
- OOM相关参数配置与原因排查
- IPVS报错问题说明
- 中文环境执行sulogin命令终端显示乱码说明
- ECS开启IPv6后,HCE系统内无法获取到IPv6地址
- 如何设置自动注销时间TMOUT?
- 最佳实践
- 文档下载
- 通用参考
链接复制成功!
PostgreSQL部署
简介
PostgreSQL是一个开源的、高度稳定的数据库系统,为SQL的不同功能提供支持,如外键、子查询、触发器和不同的用户定义的类型和功能。它进一步增强了SQL语言,提供了一些细致地扩展数据工作负载的功能。它主要用于移动、网络、地理空间和分析应用程序领域,被业界誉为“最先进的开源数据库”。本教程介绍如何在HCE 2.0上安装部署PostgreSQL。
准备工作
- 准备两台ECS实例,并分配公网IP或者弹性公网IP(EIP)。
- 安全组入方向都已放开5432端口。
操作步骤
- 配置PostgreSQL主节点。
- 执行如下命令安装服务端、客户端和相关组件:
dnf install postgresql postgresql-contrib postgresql-server
- 执行如下命令初始化数据库:
postgresql-setup --initdb --unit postgresql
- 依次执行如下命令启动服务并查看服务状态:
systemctl start postgresql systemctl status postgresql
如果显示active (running)则表示服务启动成功。
说明:
如果需要将PostgreSQL服务设置为开机自启动,则需要执行以下命令。
systemctl enable postgresql systemctl daemon-reload
- 执行以下命令登录postgres账号。
su - postgres
- 执行以下语句进入psql终端。
psql
- 输入以下语句创建账号,并配置密码和权限。
CREATE ROLE replica login replication ENCRYPTED PASSWORD 'replicationxxx!';
其中账号为replica,权限(login和replication)为登录和备份权限,密码为replicationxxx!。
- 输入以下语句查看创建的账号。
SELECT usename FROM pg_user;
返回结果类似下图则表示创建成功。
- 输入以下语句查看创建的权限。
SELECT rolname FROM pg_roles;
返回结果类似如下图则表示创建成功。
- 执行以下语句退出psql终端。
\q
- 执行以下语句退出postgres用户。
exit
- 编辑“/var/lib/pgsql/data/pg_hba.conf”文件配置replica用户白名单。
找到IPv4 local connections部分,添加以下信息:
host all all <从节点的IPv4网段> md5 host replication replica <从节点的IPv4网段> md5
将自己部署的从节点IPv4网段信息填入上述对应位置。
- 编辑“/var/lib/pgsql/data/postgresql.conf”文件,找到如下参数,进行配置:
listen_addresses = '*' #监听的内网 IP 地址 max_connections = 100 #最大连接数,从库的 max_connections 必须要大于主库的 wal_level = hot_standby #启用热备模式 synchronous_commit = on #开启同步复制 max_wal_senders = 32 #同步最大的进程数量 wal_sender_timeout = 60s #流复制主机发送数据的超时时间
- 最后执行以下命令重启服务。
systemctl restart postgresql
- 执行如下命令安装服务端、客户端和相关组件:
- 配置PostgreSQL从节点。
- 执行以下命令在从节点安装服务端、客户端和相关组件。
dnf install postgresql postgresql-contrib postgresql-server
- 执行以下命令在从节点创建备份目录:
pg_basebackup -D /var/lib/pgsql/data -h <主库IP> -p 5432 -U replica -X stream -P -R
其中-X表示以stream方式包含所需的WAL文件,-P表示显示进度,-h表示主库的IP信息,-p表示主库端口,-U表示主库的账户,-R表示自动写replication的配置信息;
如果显示如下图类似的信息,则表示备份成功。
此时,会在“/var/lib/pgsql/data”目录生成standby.signal文件,并在postgresql.auto.conf文件自动写入主库连接信息。
- 执行以下命令修改目录所属的用户组。
chown -R postgres.postgres /var/lib/pgsql/data
- 最后执行以下命令重启服务。
systemctl start postgresql
- 执行以下命令在从节点安装服务端、客户端和相关组件。
- 验证配置是否成功。
- 在从节点执行以下命令验证是否已变成从节点。
sudo -u postgres psql -c "SELECT pg_is_in_recovery()"
如果显示得到t,则表示已变为从节点, 类似下图。
- 在主节点执行如下命令获取从节点信息。
sudo -u postgres psql -x -c "SELECT * FROM pg_stat_replication" -d postgres
如果得到类似如下图的信息,则表示配置成功。
- 在从节点执行以下命令验证是否已变成从节点。
以上密码、权限相关配置仅用于测试,业务环境请谨慎使用