安装¶
从软件包安装¶
访问我们的发布页面 下载 synchdb 软件包。我们目前支持基于 Debian 的 Linux 系统(如 Ubuntu)上的 .deb 软件包。基于 CentOS 的 .rpm 软件包将在不久的将来得到支持。SynchDB .deb 软件包需要先安装 PostgreSQL。它所需的 PostgreSQL 版本在软件包名称中描述。例如,postgresql-16-synchdb_1.0-1.22.04_amd64.deb
是在 Ubuntu 22.04 上针对 PostgreSQL 16 构建的 .deb 包。
.deb 包¶
-
从官方 apt 存储库安装 PostgreSQL:
1 2 3
sudo apt install -y postgresql-common sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh sudo apt install postgresql-16
-
安装 Java 运行时环境:
1
sudo apt install openjdk-17-jre-headless
-
更新共享库路径:
1 2 3 4 5
JAVA_PATH=$(which java) JRE_HOME_PATH=$(readlink -f ${JAVA_PATH} | sed 's:/bin/java::') JRE_LIB_PATH=${JRE_HOME_PATH}/lib echo "$JRE_LIB_PATH" | sudo tee /etc/ld.so.conf.d/java.conf sudo ldconfig
-
安装 SynchDB:
1
dpkg -i postgresql-16-synchdb_1.0-1.22.04_amd64.deb
- SynchDB 应该已准备就绪。请参阅 快速入门 页面开始使用
.rpm 软件包¶
待定
从预编译的二进制文件安装¶
访问我们的发布页面 下载预编译二进制文件。我们目前支持基于 Debian 的 Linux 系统(如 Ubuntu)系统上的预编译二进制文件。其他平台将在不久的将来得到支持。SynchDB 预编译二进制文件需要先安装 PostgreSQL。它所需的 PostgreSQL 版本在包名称中描述。例如,postgresql-16-synchdb_1.0-1.22.04_amd64.tar.gz
是在 Ubuntu 22.04 上针对 PostgreSQL 16 编译的二进制文件。
预编译二进制文件¶
-
解压预编译二进制文件的 tar.gz 包:
1
tar xzvf postgresql-16-synchdb_1.0-1.22.04_amd64.tar.gz -C /tmp
-
找出当前 PostgreSQL 的 lib 和 share 目录
1 2
LIBDIR=$(pg_config | grep -w LIBDIR | awk -F ' = ' '/LIBDIR/ {print $2}') SHAREDIR=$(pg_config | grep -w SHAREDIR | awk -F ' = ' '/SHAREDIR/ {print $2}')
-
将预编译的二进制文件复制到相应目录:
1 2
cp /tmp/postgresql-16-synchdb_1.0-1.22.04_amd64/usr/lib/postgresql/16/lib/* $LIBDIR cp /tmp/postgresql-16-synchdb_1.0-1.22.04_amd64/usr/share/postgresql/16/extension/* $SHAREDIR
-
安装 Java Runtime Environment:
1
sudo apt install openjdk-17-jre-headless
-
更新共享库路径:
1 2 3 4 5
JAVA_PATH=$(which java) JRE_HOME_PATH=$(readlink -f ${JAVA_PATH} | sed 's:/bin/java::') JRE_LIB_PATH=${JRE_HOME_PATH}/lib echo "$JRE_LIB_PATH" | sudo tee /etc/ld.so.conf.d/java.conf sudo ldconfig
-
SynchDB 应该已准备就绪。请参阅 快速入门 页面开始使用
源代码编译及安装¶
此选项要求您从源代码构建和安装 PostgreSQL 和 SynchDB。
系统要求¶
构建和运行SynchDB需要以下软件。列出的版本是开发过程中测试过的版本。较旧的版本可能仍然可用。
- Java Development Kit 22. 下载地址:点击这里
- Apache Maven 3.9.8. 下载地址:点击这里
- PostgreSQL 16.3 源代码. Git克隆地址:点击这里. PostgreSQL编译要求请参考此wiki
- Docker compose 2.28.1 (用于测试). 参考安装指南
- 基于Unix的操作系统,如Ubuntu 22.04或MacOS
准备源代码¶
克隆PostgreSQL源代码并切换到16.3发布标签
1 2 3 |
|
在扩展文件夹中克隆SynchDB源代码 注意:目前使用(synchdb-devel)[https://github.com/Hornetlabs/synchdb/tree/synchdb-devel]分支进行开发。
1 2 |
|
准备工具¶
安装Maven¶
如果您使用的是Ubuntu 22.04.4 LTS,按以下方式安装Maven:
sudo apt install maven
如果您使用的是MacOS,可以使用brew命令安装maven(关于如何安装Homebrew,请参考(这里)[https://brew.sh/]),无需其他设置:
brew install maven
安装Java SDK (OpenJDK)¶
如果您使用的是Ubuntu 22.04.4 LTS,按以下方式安装OpenJDK:
sudo apt install openjdk-21-jdk
如果您使用的是MacOS,请使用brew命令安装JDK:
brew install openjdk@22
编译和安装PostgreSQL¶
按照PostgreSQL官方文档这里从源代码编译和安装PostgreSQL。通常,步骤包括:
1 2 3 4 |
|
您还应该编译和安装默认扩展:
1 2 3 |
|
编译和安装Debezium Runner引擎¶
配置好Java和Maven后,我们就可以编译Debezium Runner引擎了。这会将Debezium Runner Engine的jar文件安装到PostgreSQL的lib文件夹中。
1 2 3 |
|
编译和安装SynchDB PostgreSQL扩展¶
在系统中安装Java的lib
和include
后,可以通过以下方式编译SynchDB:
1 2 3 |
|
配置链接器(Ubuntu)¶
最后,我们还需要告诉系统链接器新添加的Java库在系统中的位置。以下步骤基于Ubuntu 22.04。
1 2 3 4 5 6 7 8 9 10 |
|
注意:对于使用M1/M2芯片的mac,需要将这两行添加到/etc/ld.so.conf.d/aarch64-linux-gnu.conf中
1 2 |
|
运行ldconfig重新加载:
sudo ldconfig
检查安装¶
确保synchdb.so扩展可以链接到系统中的libjvm Java库:
1 2 3 4 5 6 7 8 9 |
|