02. citusdb 安装手册

单节点 citus

通过 docker 进行安装

1
2
3
4
5
6
7
8
# start the image
docker run -d --name citus -p 5432:5432 -e POSTGRES_PASSWORD=pppppp citusdata/citus:11.2

# connect using psql within the Docker container
docker exec -it citus psql -U postgres

# # or, connect using local psql, verify it's running, and that Citus is installed:
psql -U postgres -h localhost -d postgres -c "SELECT * FROM citus_version();"

ubuntu 或 Debian 系统

1. 安装 PostgreSQL 15 和 Citus 拓展

1
2
3
4
# Add Citus repository for package manager
curl https://install.citusdata.com/community/deb.sh | sudo bash
# install the server and initialize db
sudo apt-get -y install postgresql-15-citus-11.2

2. 初始化群集

让我们在磁盘上创建一个新数据库。为了方便使用 postgreSQL Unix domain socket 连接,我们将使用 postgres 用户。

1
2
3
4
5
6
7
8
9
# this user has access to sockets in /var/run/postgresql
sudo su - postgres

# include path to postgres binaries
export PATH=$PATH:/usr/lib/postgresql/15/bin

cd ~
mkdir citus
initdb -D citus

Citus 是 Postgres 的扩展。要告诉 Postgres 使用这个扩展,你需要将它添加到一个名为 share_preload_library 的配置变量中:

1
echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf

3. 启动数据库服务器

最后,我们将为新目录启动一个 PostgreSQL 实例:

1
pg_ctl -D citus -o "-p 9700" -l citus_logfile start

上面您将 Citus 添加到 share_preload_library。这使得它能够深入到 Postgres 的一些深处,取代查询规划者和执行者。在这里,我们加载了 Citus 面向用户的一面(比如您即将调用的函数) :

1
psql -p 9700 -c "CREATE EXTENSION citus;"

4. 验证安装是否成功

验证安装是否成功,是否安装了 Citus:

1
psql -p 9700 -c "select citus_version();"

您应该会看到 Citus 扩展的详细信息。

在此步骤中,您已经完成了安装过程,可以使用 Citus 集群了。

Fedora、 CentOS 或 Red Hat 系统

和 debian 系类似。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Add Citus repository for package manager
curl https://install.citusdata.com/community/rpm.sh | sudo bash
# install Citus extension
sudo yum install -y citus112_15
# this user has access to sockets in /var/run/postgresql
sudo su - postgresc
# include path to postgres binaries
export PATH=$PATH:/usr/pgsql-15/bin
cd ~
mkdir citus
initdb -D citus
echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf
pg_ctl -D citus -o "-p 9700" -l citus_logfile start
psql -p 9700 -c "CREATE EXTENSION citus;"

多节点 citus

以 debian 类系统为例:

在所有节点上执行的步骤
1. 前提

1
2
3
4
5
# Add Citus repository for package manager
curl https://install.citusdata.com/community/deb.sh | sudo bash

# install the server and initialize db
sudo apt-get -y install postgresql-15-citus-11.2

2. 配置

1
2
3
# preload citus extension
sudo pg_conftool 15 main set shared_preload_libraries citus
sudo pg_conftool 15 main set listen_addresses '*'
1
sudo vi /etc/postgresql/15/main/pg_hba.conf
1
2
3
4
5
6
7
# Allow unrestricted access to nodes in the local network. The following ranges
# correspond to 24, 20, and 16-bit blocks in Private IPv4 address spaces.
host all all 10.0.0.0/8 trust

# Also allow the host unrestricted access to connect to itself
host all all 127.0.0.1/32 trust
host all all ::1/128 trust

3. 启动数据库服务器,创建 Citus 扩展

1
2
3
4
5
6
7
8
# start the db server
sudo service postgresql restart

# and make it start automatically when computer does
sudo update-rc.d postgresql enable

# add the citus extension
sudo -i -u postgres psql -c "CREATE EXTENSION citus;"

需在协调节点上执行的额外步骤
配置

1
2
3
4
5
6
7
8
9
10
11
-- before adding the first worker node, tell future worker nodes how to reach the coordinator
SELECT citus_set_coordinator_host('10.0.0.1', 5432);

-- add worker nodes
SELECT citus_add_node('10.0.0.2', 5432);
SELECT citus_add_node('10.0.0.3', 5432);

验证

```sql
SELECT * FROM citus_get_active_worker_nodes();

准备使用 Citus

在这个步骤中,您已经完成了安装过程,可以使用 Citus 集群了。新的 Citus 数据库可以通过 postgres 用户在 psql 中访问:

1
sudo -i -u postgres psql