网络表空间
Redrock Postgres 支持基于网络的表空间。 基于该能力,Redrock Postgres 可以做到数据库的计算和存储的分离部署。
准备好计算服务器和存储服务器环境,推荐环境配置:
- 计算服务器应该采用较高的处理器和内存配置;
- 存储服务器应该采用 IO 处理能力偏高的存储配置,存储空间满足数据存储要求;
- 计算服务器和存储服务器之间,尽量采用高带宽和低延迟的网络;
如果需要在数据库服务器中创建多个网络表空间,对应地,就需要准备多台存储服务器。
按照下述步骤,部署计算服务器:
- 参考 Redrock Postgres 安装指导,安装软件包。
- 如果数据库服务器正在运行,停止它。
- 使用任何趁手的文件系统备份工具(例如 tar 或者 cpio,不是 pg_dump 或者 pg_dumpall)执行备份。
- 启动服务器。
按照下述步骤,部署存储服务器:
- 参考 Redrock Postgres 安装指导,安装软件包。
- 如果数据库服务器正在运行,停止它。
- 移除所有位于实例数据目录下的文件和子目录。
- 从你的文件系统备份中恢复数据库文件。注意它们要使用正确的所有权恢复(数据库系统用户,不是
root
!)并且使用正确的权限。 - 设置
postgresql.conf
中的监听地址和端口,并且在实例数据目录中创建一个storage.signal
文件。修改pg_hba.conf
以允许来自计算服务器的连接。 - 启动服务器。
登录计算服务器,使用数据库超级用户连接到数据库服务中的 postgres
数据库,创建基于网络的数据库。配置的一个简单例子是:
CREATE DATABASE netdb STORAGE remote LOCATION
'host=192.168.1.50 port=5432 user=postgres password=pgpass';
在 Redrock Postgres 中,创建一个数据库时会在这个数据库中附带创建一个默认表空间,上例中新建的数据库会产生一个默认的网络表空间。
使用数据库超级用户连接到数据库服务中的新建数据库 netdb
,创建基于网络的表空间。下面是配置的一个简单例子,使用额外的两台存储服务器创建了两个网络表空间:
CREATE TABLESPACE netts1 STORAGE remote LOCATION
'host=192.168.1.51 port=5432 user=postgres password=pgpass';
CREATE TABLESPACE netts2 STORAGE remote LOCATION
'host=192.168.1.52 port=5432 user=postgres password=pgpass';
然后就可以使用这些网络表空间创建表和索引了。