3.3. 准备远程 PostgreSQL 数据库
在独立于管理器机器的机器上手动配置数据库。
engine-setup
和 engine-backup --mode=restore
命令只支持 en_US.UTF8
区域中的系统错误消息,即使系统区域设置不同。
postgresql.conf
文件中的区域设置必须设置为 en_US.UTF8
。
数据库名称必须包含数字、下划线和小写字母。
启用 Red Hat Virtualization Manager 存储库
在 Red Hat Subscription Manager 中注册系统,附加 Red Hat Virtualization Manager
订阅并启用 Manager 软件仓库。
流程
使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:
subscription-manager register
# subscription-manager register
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。
查找
Red Hat Virtualization Manager
订阅池并记录池 ID:subscription-manager list --available
# subscription-manager list --available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用池 ID 将订阅附加到系统:
subscription-manager attach --pool=pool_id
# subscription-manager attach --pool=pool_id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意查看当前附加的订阅:
subscription-manager list --consumed
# subscription-manager list --consumed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出所有启用的软件仓库:
yum repolist
# yum repolist
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
初始化 PostgreSQL 数据库
安装 PostgreSQL 服务器软件包:
yum install rh-postgresql10 rh-postgresql10-postgresql-contrib
# yum install rh-postgresql10 rh-postgresql10-postgresql-contrib
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 初始化 PostgreSQL 数据库,启动
postgresql
服务,并确保该服务在引导时启动:scl enable rh-postgresql10 -- postgresql-setup --initdb systemctl enable rh-postgresql10-postgresql systemctl start rh-postgresql10-postgresql
# scl enable rh-postgresql10 -- postgresql-setup --initdb # systemctl enable rh-postgresql10-postgresql # systemctl start rh-postgresql10-postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
postgres
用户身份连接到psql
命令行界面:su - postgres -c 'scl enable rh-postgresql10 -- psql'
su - postgres -c 'scl enable rh-postgresql10 -- psql'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建默认用户。Manager 的默认用户是
engine
,Data Warehouse 的默认用户是ovirt_engine_history
:postgres=# create role user_name with login encrypted password 'password';
postgres=# create role user_name with login encrypted password 'password';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建数据库。Manager 的默认数据库名称为
engine
,Data Warehouse 的默认数据库名称为ovirt_engine_history
:postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 连接到新数据库:
postgres=# \c database_name
postgres=# \c database_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
uuid-ossp
扩展:database_name=# CREATE EXTENSION "uuid-ossp";
database_name=# CREATE EXTENSION "uuid-ossp";
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
plpgsql
语言不存在,请添加 plpgsql 语言:database_name=# CREATE LANGUAGE plpgsql;
database_name=# CREATE LANGUAGE plpgsql;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
psql
接口:database_name=# \q
database_name=# \q
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过启用 md5 客户端身份验证来确保可以远程访问数据库。编辑
/var/opt/rh/rh-postgresql10/lib/pgsql/data/pg_hba.conf
文件,并在文件底部以local
开头的行立即添加以下行,将X.X.X.X
替换为 Manager 或 Data Warehouse 机器的 IP 地址,将0-32
或0-128
替换为 CIDR 掩码长度:host database_name user_name X.X.X.X/0-32 md5 host database_name user_name X.X.X.X::/0-128 md5
host database_name user_name X.X.X.X/0-32 md5 host database_name user_name X.X.X.X::/0-128 md5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
IPv4, 32-bit address: IPv6, 128-bit address:
# IPv4, 32-bit address: host engine engine 192.168.12.10/32 md5 # IPv6, 128-bit address: host engine engine fe80::7a31:c1ff:0000:0000/96 md5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 允许到数据库的 TCP/IP 连接。编辑
/var/opt/rh/rh-postgresql10/lib/pgsql/data/postgresql.conf
文件并添加以下行:listen_addresses='*'
listen_addresses='*'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个示例将
postgresql
服务配置为侦听所有接口上的连接。您可以通过提供 IP 地址来指定接口。更新 PostgreSQL 服务器配置。在
/var/opt/rh/rh-postgresql10/lib/pgsql/data/postgresql.conf
文件中,将以下行添加到文件的底部:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开用于 PostgreSQL 数据库连接的默认端口,并保存更新的防火墙规则:
firewall-cmd --zone=public --add-service=postgresql firewall-cmd --permanent --zone=public --add-service=postgresql
# firewall-cmd --zone=public --add-service=postgresql # firewall-cmd --permanent --zone=public --add-service=postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
postgresql
服务:systemctl restart rh-postgresql10-postgresql
# systemctl restart rh-postgresql10-postgresql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 另外,还可使用 https://www.postgresql.org/docs/10/ssl-tcp.html#SSL-FILE-USAGE 中的说明将 SSL 设置为安全数据库连接。