From 804e885dd62c248fa3c90714427440d7e2128d30 Mon Sep 17 00:00:00 2001 From: omstack <110454556+omstack@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:33:47 +0800 Subject: [PATCH 01/18] Update9.adoc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改IvorySQL高级-运维管理指南中第1.2章节文档错误“到处”为"导出" --- CN/modules/ROOT/pages/v4.5/9.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CN/modules/ROOT/pages/v4.5/9.adoc b/CN/modules/ROOT/pages/v4.5/9.adoc index aa9087fa..6171dfb8 100644 --- a/CN/modules/ROOT/pages/v4.5/9.adoc +++ b/CN/modules/ROOT/pages/v4.5/9.adoc @@ -28,7 +28,7 @@ IvorySQL版本号由主要版本和次要版本组成。例如,IvorySQL 3.2 === 通过pg_dumpall升级数据 -传统的跨版本升级方法利用pg_dump/pg_dumpall逻辑备份到处数据库,然后在新版本中通过pg_restore进行还原。导出旧版本数据库时推荐使用新版本的pg_dump/pg_dumpall工具,可以利用最新的并行导出和还原功能,同时可以减少数据库膨胀问题。 +传统的跨版本升级方法利用pg_dump/pg_dumpall逻辑备份导出数据库,然后在新版本中通过pg_restore进行还原。导出旧版本数据库时推荐使用新版本的pg_dump/pg_dumpall工具,可以利用最新的并行导出和还原功能,同时可以减少数据库膨胀问题。 ​逻辑备份与还原非常简单但速度比较慢,停机时间取决于数据库的大小,因此适合中小型数据库的升级。 From e71c4f2fb337944d57ecd6ce2735e8422bd0941a Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 20 Aug 2025 13:49:53 +0800 Subject: [PATCH 02/18] Fix document errors in the installation section --- CN/modules/ROOT/pages/v4.5/3.adoc | 34 +++++++----------- CN/modules/ROOT/pages/v4.5/6.adoc | 58 +++++++++---------------------- EN/modules/ROOT/pages/v4.5/3.adoc | 34 ++++++++---------- EN/modules/ROOT/pages/v4.5/6.adoc | 50 ++++++++------------------ 4 files changed, 58 insertions(+), 118 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.5/3.adoc b/CN/modules/ROOT/pages/v4.5/3.adoc index f3d75f01..0b428424 100644 --- a/CN/modules/ROOT/pages/v4.5/3.adoc +++ b/CN/modules/ROOT/pages/v4.5/3.adoc @@ -25,9 +25,7 @@ IvorySQL数据库目前支持的操作系统包括但不限于CentOS 8.X、CentO [[快速安装]] == 快速安装 -.... - 快速开始示例所使用的操作系统为CentOS Stream 9。 -.... +快速开始示例所使用的操作系统为CentOS Stream 9。 === 从yum源安装IvorySQL数据库 ** 安装前准备 @@ -52,16 +50,14 @@ gpgcheck=0 ``` 保存退出后,安装IvorySQL4 ``` -$ sudo dnf install -y IvorySQL-4.5 +$ sudo dnf install -y ivorysql4-4.5 ``` -.... - 正确安装后,数据库将被安装在/opt/IvorySQL-4.5/路径下的IvorySQL-version(如:IvorySQL-4.5)文件夹内 -.... +正确安装后,数据库将被安装在/usr/ivory-4/文件夹内 执行以下命令为ivorysql用户赋权: ``` -$ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5 +$ sudo chown -R ivorysql:ivorysql /usr/ivory-4 ``` [[配置环境变量]] ** 配置环境变量 @@ -70,9 +66,9 @@ $ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5 将以下配置写入~/.bash_profile文件并使用source命令该文件使环境变量生效: ``` -PATH=/opt/IvorySQL-4.5/bin:$PATH +PATH=/usr/ivory-4/bin:$PATH export PATH -PGDATA=/opt/IvorySQL-4.5/data +PGDATA=/usr/ivory-4/data export PGDATA ``` ``` @@ -82,16 +78,14 @@ $ source ~/.bash_profile ** 数据库初始化 ``` -$ initdb -D /opt/IvorySQL-4.5/data +$ initdb -D /usr/ivory-4/data ``` -.... - 其中-D参数用来指定数据库的数据目录。更多参数使用方法,请使用initdb --help命令获取。 -.... +其中-D参数用来指定数据库的数据目录。更多参数使用方法,请使用initdb --help命令获取。 ** 启动数据库服务 ``` -$ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start +$ pg_ctl -D /usr/ivory-4/data -l ivory.log start ``` 其中-D参数用来指定数据库的数据目录,如果<<配置环境变量>> 配置了PGDATA,则该参数可以省略。-l参数用来指定日志目录。更多参数使用方法,请使用pg_ctl --help命令获取。 @@ -100,7 +94,7 @@ $ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start 查看确认数据库启动成功: ``` $ ps -ef | grep postgres -ivorysql 3214 1 0 20:35 ? 00:00:00 /opt/IvorySQL-4.5/bin/postgres -D /opt/IvorySQL-4.5/data +ivorysql 3214 1 0 20:35 ? 00:00:00 /usr/ivory-4/bin/postgres -D /usr/ivory-4/data ivorysql 3215 3214 0 20:35 ? 00:00:00 postgres: checkpointer ivorysql 3216 3214 0 20:35 ? 00:00:00 postgres: background writer ivorysql 3218 3214 0 20:35 ? 00:00:00 postgres: walwriter @@ -138,14 +132,12 @@ Type "help" for help. ivorysql=# ``` -.... - 其中-d参数用来指定想要连接到的数据库名称。IvorySQL默认使用ivorysql数据库,但较低版本的IvorySQL首次使用时需用户先连接postgres数据库,然后自己创建ivorysql数据库。较高版本的IvorySQL则已为用户创建好ivorysql数据库,可以直接连接。 +其中-d参数用来指定想要连接到的数据库名称。IvorySQL默认使用ivorysql数据库,但较低版本的IvorySQL首次使用时需用户先连接postgres数据库,然后自己创建ivorysql数据库。较高版本的IvorySQL则已为用户创建好ivorysql数据库,可以直接连接。 - 更多参数使用方法,请使用psql --help命令获取。 -.... +更多参数使用方法,请使用psql --help命令获取。 TIP: Docker运行IvorySQL时,需要添加额外参数,如 psql -d ivorysql -U ivorysql -h 127.0.0.1 -p 5434 现在可以开始使用IvorySQL啦!就是这么简单! -想要获得更多安装方式,请参考xref:v4.5/6.adoc[安装指南] \ No newline at end of file +想要获得更多安装方式,请参考xref:v4.5/6.adoc[安装指南] diff --git a/CN/modules/ROOT/pages/v4.5/6.adoc b/CN/modules/ROOT/pages/v4.5/6.adoc index ec0ff9a1..2041c746 100644 --- a/CN/modules/ROOT/pages/v4.5/6.adoc +++ b/CN/modules/ROOT/pages/v4.5/6.adoc @@ -35,27 +35,6 @@ gpgcheck=0 $ sudo dnf install -y IvorySQL-4.5 ``` -** 查看安装结果 -``` -dnf search IvorySQL -``` -查看结果说明如下: -|==== -| 序号 | 包名 | 描述 -| 1 | ivorysql4.x86_64 | IvorySQL客户端程序和库文件 -| 2 | ivorysql4-contrib.x86_64 | 随IvorySQL发布的已贡献的源代码和二进制文件 -| 3 | ivorysql4-devel.x86_64 | IvorySQL开发头文件和库 -| 4 | ivorysql4-docs.x86_64 | IvorySQL的额外文档 -| 5 | ivorysql4-libs.x86_64 | 所有IvorySQL客户端所需的共享库 -| 6 | ivorysql4-llvmjit.x86_64 | 对IvorySQL的即时编译支持 -| 7 | ivorysql4-plperl.x86_64 | 用于IvorySQL的过程语言Perl -| 8 | ivorysql4-plpython3.x86_64 | 用于IvorySQL的过程语言Python3 -| 9 | ivorysql4-pltcl.x86_64 | 用于IvorySQL的过程语言Tcl -| 10 | ivorysql4-server.x86_64 | 创建和运行IvorySQL服务器所需的程序 -| 11 | ivorysql4-test.x86_64 | 随IvorySQL发布的测试套件 -| 12 | ivorysql-release.noarch | 瀚高基础软件股份有限公司的Yum源配置RPM包 -|==== - [[docker安装]] == docker安装 @@ -104,7 +83,7 @@ $ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/ ``` $ sudo yum --disablerepo=* localinstall *.rpm ``` -数据库将被安装在/opt/IvorySQL-4.5/路径下。 +数据库将被安装在/usr/ivory-4/路径下。 [[源码安装]] == 源码安装 @@ -125,7 +104,7 @@ $ git checkout -b IVORY_REL_4_STABLE origin/IVORY_REL_4_STABLE 在IvorySQL目录下,执行以下命令进行配置,请使用--prefix指定安装目录: ``` -$ ./configure --prefix=/usr/local/ivorysql/ivorysql-4 +$ ./configure --prefix=/usr/ivory-4/ ``` ** 编译 @@ -166,7 +145,7 @@ $ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/ ``` $ sudo dpkg -i IvorySQL-4.5-a50789d-20250304.amd64.deb ``` -数据库将被安装在/opt/IvorySQL-4.5/路径下。 +数据库将被安装在/usr/ivory-4/路径下。 == 启动数据库 参考<>、<>、<<源码安装>>、<>的用户,需要手动启动数据库。 @@ -175,9 +154,9 @@ $ sudo dpkg -i IvorySQL-4.5-a50789d-20250304.amd64.deb + -执行以下命令为安装用户赋权,示例用户为ivorysql,安装目录为/opt/IvorySQL-4.5/: +执行以下命令为安装用户赋权,示例用户为ivorysql,安装目录为/usr/ivory-4/: ``` -$ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5/ +$ sudo chown -R ivorysql:ivorysql /usr/ivory-4/ ``` [[配置环境变量]] ** 配置环境变量 @@ -186,9 +165,9 @@ $ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5/ 将以下配置写入用户的~/.bash_profile文件并使用source命令该文件使环境变量生效: ``` -PATH=/opt/IvorySQL-4.5/bin:$PATH +PATH=/usr/ivory-4/bin:$PATH export PATH -PGDATA=/opt/IvorySQL-4.5/data +PGDATA=/usr/ivory-4/data export PGDATA ``` ``` @@ -197,17 +176,15 @@ $ source ~/.bash_profile ** 数据库初始化 ``` -$ mkdir /opt/IvorySQL-4.5/data -$ initdb -D /opt/IvorySQL-4.5/data +$ mkdir /usr/ivory-4/data +$ initdb -D /usr/ivory-4/data ``` -.... - 其中-D参数用来指定数据库的数据目录。更多参数使用方法,请使用initdb --help命令获取。 -.... +其中-D参数用来指定数据库的数据目录。更多参数使用方法,请使用initdb --help命令获取。 ** 启动数据库服务 ``` -$ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start +$ pg_ctl -D /usr/ivory-4/data -l ivory.log start ``` 其中-D参数用来指定数据库的数据目录,如果<<配置环境变量>> 配置了PGDATA,则该参数可以省略。-l参数用来指定日志目录。更多参数使用方法,请使用pg_ctl --help命令获取。 @@ -216,7 +193,7 @@ $ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start 查看确认数据库启动成功: ``` $ ps -ef | grep postgres -ivorysql 130427 1 0 02:45 ? 00:00:00 /opt/IvorySQL-4.5/bin/postgres -D /opt/IvorySQL-4.5/data +ivorysql 130427 1 0 02:45 ? 00:00:00 /usr/ivory-4/bin/postgres -D /usr/ivory-4/data ivorysql 130428 130427 0 02:45 ? 00:00:00 postgres: checkpointer ivorysql 130429 130427 0 02:45 ? 00:00:00 postgres: background writer ivorysql 130431 130427 0 02:45 ? 00:00:00 postgres: walwriter @@ -254,8 +231,7 @@ TIP: Docker运行IvorySQL时,需要添加额外参数,参考:psql -d ivory 执行以下命令依次卸载: ``` -$ sudo dnf remove -y IvorySQL-4.5 -$ sudo rpm -e ivorysql-release-4.2-1.noarch +$ sudo dnf remove -y ivorysql4-4.5 ``` === docker安装的卸载 @@ -272,7 +248,7 @@ $ docker rmi ivorysql/ivorysql:4.5-ubi8 执行以下命令卸载并清理文件夹: ``` $ sudo yum remove --disablerepo=* ivorysql4\* -$ sudo rm -rf /opt/IvorySQL-4.5 +$ sudo rm -rf /usr/ivory-4/ ``` === 源码安装的卸载 @@ -281,7 +257,7 @@ $ sudo rm -rf /opt/IvorySQL-4.5 ``` $ sudo make uninstall $ make clean -$ sudo rm -rf /opt/IvorySQL-4.5 +$ sudo rm -rf /usr/ivory-4/ ``` === deb安装的卸载 @@ -289,5 +265,5 @@ $ sudo rm -rf /opt/IvorySQL-4.5 执行以下命令卸载数据库并清理文件夹: ``` $ sudo dpkg -P IvorySQL-4.5 -$ sudo rm -rf /opt/IvorySQL-4.5 -``` \ No newline at end of file +$ sudo rm -rf /usr/ivory-4/ +``` diff --git a/EN/modules/ROOT/pages/v4.5/3.adoc b/EN/modules/ROOT/pages/v4.5/3.adoc index 12d90f26..9fe66d6d 100644 --- a/EN/modules/ROOT/pages/v4.5/3.adoc +++ b/EN/modules/ROOT/pages/v4.5/3.adoc @@ -24,9 +24,7 @@ Currently, IvorySQL supports but is not limited to linux(CentOS 8.X/CentOS Strea [[quick-installation]] == Quick installation -.... - The operating system used for the quick start is CentOS Stream 9. -.... +The operating system used for the quick start is CentOS Stream 9. === yum installation ** Pre-requirements @@ -51,7 +49,7 @@ gpgcheck=0 ``` After saving and exiting, you can install IvorySQL 4 with the following steps ``` -$ sudo dnf install -y IvorySQL-4.5 +$ sudo dnf install -y ivorysql4-4.5 ``` [[setting-environment-variables]] @@ -61,9 +59,9 @@ $ sudo dnf install -y IvorySQL-4.5 Add below contents in ~/.bash_profile file and source to make it effective: ``` -PATH=/opt/IvorySQL-4.5/bin:$PATH +PATH=/usr/ivory-4/bin:$PATH export PATH -PGDATA=/opt/IvorySQL-4.5/data +PGDATA=/usr/ivory-4/data export PGDATA ``` ``` @@ -73,29 +71,27 @@ $ source ~/.bash_profile ** Initializing database ``` -$ initdb -D /opt/IvorySQL-4.5/data +$ initdb -D /usr/ivory-4/data ``` -.... - The -D option specifies the directory where the database cluster should be stored. This is the only information required by initdb, but you can avoid writing it by setting the PGDATA environment variable, which can be convenient since the database server can find the database directory later by the same variable. +The -D option specifies the directory where the database cluster should be stored. This is the only information required by initdb, but you can avoid writing it by setting the PGDATA environment variable, which can be convenient since the database server can find the database directory later by the same variable. - For more options, refer to initdb --help. -.... +For more options, refer to initdb --help. ** Starting IvorySQL service ``` -$ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start +$ pg_ctl -D /usr/ivory-4/data -l ivory.log start ``` - The -D option specifies the file system location of the database configuration files. If this option is omitted, the environment variable PGDATA in <> is used. -l option appends the server log output to filename. If the file does not exist, it is created. +The -D option specifies the file system location of the database configuration files. If this option is omitted, the environment variable PGDATA in <> is used. -l option appends the server log output to filename. If the file does not exist, it is created. - For more options, refer to pg_ctl --help. +For more options, refer to pg_ctl --help. Confirm it’s successfully started: ``` $ ps -ef | grep postgres -ivorysql 3214 1 0 20:35 ? 00:00:00 /opt/IvorySQL-4.5/bin/postgres -D /opt/IvorySQL-4.5/data +ivorysql 3214 1 0 20:35 ? 00:00:00 /usr/ivory-4/bin/postgres -D /usr/ivory-4/data ivorysql 3215 3214 0 20:35 ? 00:00:00 postgres: checkpointer ivorysql 3216 3214 0 20:35 ? 00:00:00 postgres: background writer ivorysql 3218 3214 0 20:35 ? 00:00:00 postgres: walwriter @@ -133,14 +129,12 @@ Type "help" for help. ivorysql=# ``` -.... - The -d option specifies the name of the database to connect to. ivorysql is the default database of IvorySQL. However,IvorySQL of lower versions need the users themselves to connect to postgres database at the first connection and then create the ivorysql database.The latest IvorySQL can do all these for users. +The -d option specifies the name of the database to connect to. ivorysql is the default database of IvorySQL. However,IvorySQL of lower versions need the users themselves to connect to postgres database at the first connection and then create the ivorysql database.The latest IvorySQL can do all these for users. - For more options, refer to psql --help. -.... +For more options, refer to psql --help. TIP: When running IvorySQL in Docker, additional parameters need to be added, like: psql -d ivorysql -U ivorysql -h 127.0.0.1 -p 5434 Now you can start your journey of IvorySQL! Enjoy! -To explore additional installation methods, please refer to the xref:v4.5/6.adoc[Installation]. \ No newline at end of file +To explore additional installation methods, please refer to the xref:v4.5/6.adoc[Installation]. diff --git a/EN/modules/ROOT/pages/v4.5/6.adoc b/EN/modules/ROOT/pages/v4.5/6.adoc index 7bbf0273..cebfda7b 100644 --- a/EN/modules/ROOT/pages/v4.5/6.adoc +++ b/EN/modules/ROOT/pages/v4.5/6.adoc @@ -33,30 +33,9 @@ gpgcheck=0 ``` After saving and exiting, you can install IvorySQL 4 with the following steps ``` -$ sudo dnf install -y IvorySQL-4.5 +$ sudo dnf install -y ivorysql4-4.5 ``` -** Checking installation results -``` -dnf search IvorySQL -``` -Details: -|==== -| id | Package name | Description -| 1 | ivorysql4.x86_64 | IvorySQL client programs and lib files -| 2 | ivorysql4-contrib.x86_64 | Contributed source code and binary files released with IvorySQL -| 3 | ivorysql4-devel.x86_64 | IvorySQL development header files and libraries -| 4 | ivorysql4-docs.x86_64 | Additional docs for IvorySQL -| 5 | ivorysql4-libs.x86_64 | Shared libraries required by all IvorySQL clients -| 6 | ivorysql4-llvmjit.x86_64 | Instant compilation support for IvorySQL -| 7 | ivorysql4-plperl.x86_64 | Perl, a procedural language for IvorySQL -| 8 | ivorysql4-plpython3.x86_64 | Python3, a procedural language for IvorySQL -| 9 | ivorysql4-pltcl.x86_64 | Tcl, a procedural language for IvorySQL -| 10 | ivorysql4-server.x86_64 | The programs required to create and run an IvorySQL server -| 11 | Ivorysql4-test.x86_64 | Test suite released with IvorySQL -| 12 | ivorysql-release.noarch | Yum Source Configuration RPM Package of HighGo -|==== - [[Docker-installation]] == Docker installation @@ -105,7 +84,7 @@ Use the following command to install all the rpms: ``` $ sudo yum --disablerepo=* localinstall *.rpm ``` -IvorySQL then will be installed in the /opt/IvorySQL-4.5/ directory. +IvorySQL then will be installed in the /usr/ivory-4/ directory. [[Source-code-installation]] == Source code installation @@ -126,7 +105,7 @@ $ git checkout -b IVORY_REL_4_STABLE origin/IVORY_REL_4_STABLE In the IvorySQL directory run the following command with --prefix to specify the directory where you want the database to be installed: ``` -$ ./configure --prefix=/usr/local/ivorysql/ivorysql-4 +$ ./configure --prefix=/usr/ivory-4 ``` ** Compiling @@ -167,16 +146,16 @@ $ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/ ``` $ sudo dpkg -i IvorySQL-4.5-a50789d-20250304.amd64.deb ``` -IvorySQL will then be installed in the /opt/IvorySQL-4.5/ directory. +IvorySQL will then be installed in the /usr/ivory-4/ directory. == Start Database Users following the instructions in <>, <>, <> and <> need to manually start the database. ** Granting permissions -Execute the following command to grant permissions to the installation user. The example user is ivorysql, and the installation directory is /opt/IvorySQL-4.5/: +Execute the following command to grant permissions to the installation user. The example user is ivorysql, and the installation directory is //usr/ivory-4/: ``` -$ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5/ +$ sudo chown -R ivorysql:ivorysql /usr/ivory-4/ ``` [[setting-environment-variables]] ** Setting environment variables @@ -185,9 +164,9 @@ $ sudo chown -R ivorysql:ivorysql /opt/IvorySQL-4.5/ Add below contents in ~/.bash_profile file and source to make it effective: ``` -PATH=/opt/IvorySQL-4.5/bin:$PATH +PATH=/usr/ivory-4/bin:$PATH export PATH -PGDATA=/opt/IvorySQL-4.5/data +PGDATA=/usr/ivory-4/data export PGDATA ``` ``` @@ -197,8 +176,8 @@ $ source ~/.bash_profile ** Initializing database ``` -$ mkdir /opt/IvorySQL-4.5/data -$ initdb -D /opt/IvorySQL-4.5/data +$ mkdir /usr/ivory-4/data +$ initdb -D /usr/ivory-4/data ``` .... The -D option specifies the directory where the database cluster should be stored. This is the only information required by initdb, but you can avoid writing it by setting the PGDATA environment variable, which can be convenient since the database server can find the database directory later by the same variable. @@ -209,7 +188,7 @@ $ initdb -D /opt/IvorySQL-4.5/data ** Starting IvorySQL service ``` -$ pg_ctl -D /opt/IvorySQL-4.5/data -l ivory.log start +$ pg_ctl -D /usr/ivory-4/data -l ivory.log start ``` The -D option specifies the file system location of the database configuration files. If this option is omitted, the environment variable PGDATA in <> is used. -l option appends the server log output to filename. If the file does not exist, it is created. @@ -220,7 +199,7 @@ For more options, refer to pg_ctl --help. Confirm it's successfully started: ``` $ ps -ef | grep postgres -ivorysql 130427 1 0 02:45 ? 00:00:00 /opt/IvorySQL-4.5/bin/postgres -D /opt/IvorySQL-4.5/data +ivorysql 130427 1 0 02:45 ? 00:00:00 /usr/ivory-4/bin/postgres -D /usr/ivory-4/data ivorysql 130428 130427 0 02:45 ? 00:00:00 postgres: checkpointer ivorysql 130429 130427 0 02:45 ? 00:00:00 postgres: background writer ivorysql 130431 130427 0 02:45 ? 00:00:00 postgres: walwriter @@ -258,8 +237,7 @@ No matter which method is used for the uninstallation, make sure the service has Run the following commands in turn and clean the residual folders: ``` -$ sudo dnf remove -y IvorySQL-4.5 -$ sudo rpm -e ivorysql-release-4.2-1.noarch +$ sudo dnf remove -y ivorysql4-4.5 ``` === Uninstallation for docker installation @@ -294,4 +272,4 @@ Uninstall the database system, then clear the residual folders: ``` $ sudo dpkg -P IvorySQL-4.5 $ sudo rm -rf IvorySQL-4.5 -``` \ No newline at end of file +``` From b4d1b03409b997244f0a7496e4f1f4aba759b11e Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 20 Aug 2025 15:14:12 +0800 Subject: [PATCH 03/18] fix some typos --- CN/modules/ROOT/pages/v4.5/3.adoc | 1 + CN/modules/ROOT/pages/v4.5/6.adoc | 2 +- EN/modules/ROOT/pages/v4.5/3.adoc | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.5/3.adoc b/CN/modules/ROOT/pages/v4.5/3.adoc index 0b428424..bef42daa 100644 --- a/CN/modules/ROOT/pages/v4.5/3.adoc +++ b/CN/modules/ROOT/pages/v4.5/3.adoc @@ -26,6 +26,7 @@ IvorySQL数据库目前支持的操作系统包括但不限于CentOS 8.X、CentO [[快速安装]] == 快速安装 快速开始示例所使用的操作系统为CentOS Stream 9。 + === 从yum源安装IvorySQL数据库 ** 安装前准备 diff --git a/CN/modules/ROOT/pages/v4.5/6.adoc b/CN/modules/ROOT/pages/v4.5/6.adoc index 2041c746..a1faf1f3 100644 --- a/CN/modules/ROOT/pages/v4.5/6.adoc +++ b/CN/modules/ROOT/pages/v4.5/6.adoc @@ -32,7 +32,7 @@ gpgcheck=0 ``` 保存退出后,安装IvorySQL4 ``` -$ sudo dnf install -y IvorySQL-4.5 +$ sudo dnf install -y ivorysql4-4.5 ``` [[docker安装]] diff --git a/EN/modules/ROOT/pages/v4.5/3.adoc b/EN/modules/ROOT/pages/v4.5/3.adoc index 9fe66d6d..3a8ee5f1 100644 --- a/EN/modules/ROOT/pages/v4.5/3.adoc +++ b/EN/modules/ROOT/pages/v4.5/3.adoc @@ -25,7 +25,8 @@ Currently, IvorySQL supports but is not limited to linux(CentOS 8.X/CentOS Strea [[quick-installation]] == Quick installation The operating system used for the quick start is CentOS Stream 9. -=== yum installation + +==== yum installation ** Pre-requirements From 62e9942492c981b7ec3110732a7d7058812ff4f8 Mon Sep 17 00:00:00 2001 From: yuan li Date: Thu, 4 Sep 2025 16:11:24 +0800 Subject: [PATCH 04/18] Add new documents for the extensions pgroonga ddlx pgrouting --- CN/modules/ROOT/nav.adoc | 3 + CN/modules/ROOT/pages/v4.5/34.adoc | 101 +++++++++++++++++++++++++++++ CN/modules/ROOT/pages/v4.5/35.adoc | 44 +++++++++++++ CN/modules/ROOT/pages/v4.5/36.adoc | 56 ++++++++++++++++ 4 files changed, 204 insertions(+) create mode 100644 CN/modules/ROOT/pages/v4.5/34.adoc create mode 100644 CN/modules/ROOT/pages/v4.5/35.adoc create mode 100644 CN/modules/ROOT/pages/v4.5/36.adoc diff --git a/CN/modules/ROOT/nav.adoc b/CN/modules/ROOT/nav.adoc index 55ea5b11..545800a0 100644 --- a/CN/modules/ROOT/nav.adoc +++ b/CN/modules/ROOT/nav.adoc @@ -14,6 +14,9 @@ * IvorySQL生态 ** xref:v4.5/11.adoc[PostGIS] ** xref:v4.5/12.adoc[pgvector] +** xref:v4.5/34.adoc[PGroonga] +** xref:v4.5/35.adoc[pgddl (DDL Extractor)] +** xref:v4.5/36.adoc[pgRouting] * IvorySQL架构设计 ** 查询处理 *** xref:v4.5/31.adoc[双parser] diff --git a/CN/modules/ROOT/pages/v4.5/34.adoc b/CN/modules/ROOT/pages/v4.5/34.adoc new file mode 100644 index 00000000..e7393379 --- /dev/null +++ b/CN/modules/ROOT/pages/v4.5/34.adoc @@ -0,0 +1,101 @@ + +:sectnums: +:sectnumlevels: 5 + += PGroonga + +== 概述 +PostgreSQL 内置了全文搜索功能,但在处理​​大规模数据​​、​​复杂查询​​以及​​非英语语言(特别是中日韩等 CJK 语言)​​ 时,其功能和性能可能无法满足高性能应用的需求。 + +PGroonga 应运而生,它是一个 PostgreSQL 的扩展插件,将 ​​Groonga​​ 这款高性能的全功能全文搜索引擎与 PostgreSQL 数据库深度融合。Groonga 本身是一个优秀的开源搜索引擎,以其极致的速度和丰富的功能著称,尤其擅长处理多语言文本。PGroonga 的使命就是将 Groonga 的强大能力无缝地带入 PostgreSQL 的世界,为用户提供远超原生全文搜索的体验。 + +== 安装 +根据开发环境,用户可从 https://pgroonga.github.io/install[PGroonga安装] 页面选择适合自己的方式进行PGroonga安装。 + +=== 源码安装 +除PGroonga社区提供的安装方式以外,IvorySQL社区也提供了源码安装方式,源码安装环境为 Ubuntu 24.04(x86_64)。 + +[TIP] +环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4 + +==== 安装 groonga + +** 安装依赖 kytea +``` +git clone https://github.com/neubig/kytea.git +autoreconf -i +./configure +make +sudo make install +``` + +** 安装依赖 libzmq +``` +从https://github.com/zeromq/libzmq/releases/tag/v4.3.5 下载zeromq-4.3.5.tar.gz +tar xvf zeromq-4.3.5.tar.gz +cd zeromq-4.3.5/ +./configure +make +sudo make install +``` + +** 下载 groonga包,安装指定依赖 +``` +wget https://packages.groonga.org/source/groonga/groonga-latest.tar.gz +tar xvf groonga-15.1.5.tar.gz +cd groonga-15.1.5 +#运行这个脚本安装依赖,支持apt和dnf包管理工具 +./ setup.sh +``` + +** 编译安装 +``` +# -S 指定groonga源码目录, -B 指定build目录,这个目录是个源码目录之外的一个只用于build的目录 +cmake -S /home/ivorysql/groonga-15.1.5 -B /home/ivorysql/groonga_build --preset=release-maximum +cmake --build /home/ivorysql/groonga_build +sudo cmake --install /home/ivorysql/groonga_build +# 更新动态链接库缓存 +sudo ldconfig +``` + +** 验证 groonga安装成功 +``` +$ groonga --version +Groonga 15.1.5 [Linux,x86_64,utf8,match-escalation-threshold=0,nfkc,mecab,message-pack,mruby,onigmo,zlib,lz4,zstandard,epoll,apache-arrow,xxhash,blosc,bfloat16,h3,simdjson,llama.cpp] +``` + +==== 安装 pgroonga +``` +wget https://packages.groonga.org/source/pgroonga/pgroonga-4.0.1.tar.gz +tar xvf pgroonga-4.0.1.tar.gz +cd pgroonga-4.0.1 +``` + +编译PGroonga,有个选项:HAVE_MSGPACK=1,它是用于支持WAL,使用这个选项需要安装msgpack-c 1.4.1或者更高版本。在基于Debian的平台使用libmsgpack-dev包,在CentOS 7上用msgpack-devel +``` +#安装依赖 +sudo apt install libmsgpack-dev +``` + +运行make前确保pg_config命令的路径在PATH环境变量里 +``` +make HAVE_MSGPACK=1 +make install +``` + +== 创建Extension并确认PGroonga版本 + +psql 连接到数据库,执行如下命令: +``` +ivorysql=# CREATE extension pgroonga; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgroonga'; + name | default_version | installed_version | comment +---------+-----------------+-------------------+------------------------------------------------------------------------------- + pgroonga| 4.0.1 | 4.0.1 | Super fast and all languages supported full text search index based on Groonga +(1 row) +``` + +== 使用 +关于PGroonga的使用,请参阅 https://pgroonga.github.io/tutorial[PGroonga官方文档] \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.5/35.adoc b/CN/modules/ROOT/pages/v4.5/35.adoc new file mode 100644 index 00000000..f044f115 --- /dev/null +++ b/CN/modules/ROOT/pages/v4.5/35.adoc @@ -0,0 +1,44 @@ + +:sectnums: +:sectnumlevels: 5 + += pgddl (DDL Extractor) + +== 概述 +pgddl 是一个专为 PostgreSQL 数据库设计的 SQL 函数扩展,它能够直接从数据库系统目录中生成清晰、格式化的 SQL DDL (数据定义语言) 脚本,例如 CREATE TABLE 或 ALTER FUNCTION。它解决了 PostgreSQL 原生缺乏类似 SHOW CREATE TABLE 命令的问题,让用户无需借助外部工具(如 pg_dump)即可在纯 SQL 环境中轻松获取对象的创建语句。 + +该扩展通过一组简单的 SQL 函数提供了一套完整的解决方案,其优势包括:仅需使用 SQL 查询即可操作、支持通过 WHERE 子句灵活筛选对象、并能智能处理对象之间的依赖关系,生成包含 Drop 和 Create 步骤的完整脚本。这使得它特别适用于数据库变更管理、升级脚本编写和结构审计等场景。 + +需要注意的是,ddlx 仍在发展中,可能尚未覆盖所有 PostgreSQL 对象类型和高级选项。生成的脚本建议始终在非生产环境中先行检查和测试,以确保其正确性与安全性。 + +== 安装 + +[TIP] +环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4 + +=== 源码安装 +从https://github.com/lacanoid/pgddl/releases/tag/0.20 下载pgddl-0.20.tar.gz,解压缩。 + +``` +cd pgddl-0.20 +# 设置PG_CONFIG环境变量值为pg_config路径,eg:/usr/local/ivorysql/ivorysql-4/bin/pg_config +make PG_CONFIG=/path/to/pg_config +make PG_CONFIG=/path/to/pg_config install +``` + +== 创建Extension并确认ddlx版本 + +psql 连接到数据库,执行如下命令: +``` +ivorysql=# CREATE extension ddlx; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'ddlx'; + name | default_version | installed_version | comment +------+-----------------+-------------------+------------------------- + ddlx | 0.20 | 0.20 | DDL eXtractor functions +(1 row) +``` + +== 使用 +关于pgddl的使用,请参阅 https://github.com/lacanoid/pgddl[ddlx官方文档] \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.5/36.adoc b/CN/modules/ROOT/pages/v4.5/36.adoc new file mode 100644 index 00000000..b9d793cb --- /dev/null +++ b/CN/modules/ROOT/pages/v4.5/36.adoc @@ -0,0 +1,56 @@ + +:sectnums: +:sectnumlevels: 5 + += pgRouting + +== 概述 +pgRouting 是一个基于 PostgreSQL/PostGIS 数据库构建的开源地理空间路由扩展库。它为数据库赋予了强大的网络分析功能,使其能够处理复杂的路径规划与图论计算问题,例如计算两点之间的最短路径、执行旅行推销员(TSP)分析或计算服务区范围等。它将路由算法直接嵌入到数据库中,从而避免了在应用层进行复杂的数据传输与计算。 + +该扩展的核心优势在于能够利用 PostgreSQL 强大的数据管理能力和 PostGIS 丰富的空间函数,直接在数据库内部对空间网络数据执行高效计算。这不仅简化了应用程序的开发流程,还通过减少数据移动大幅提升了大规模网络分析的性能。 + +pgRouting 广泛应用于物流配送、交通导航、网络分析、城市规划及供应链管理等多个领域。其开源特性吸引了全球开发者持续的贡献与完善,使其成为空间数据库领域进行路径分析和网络求解的首选工具之一。 + +== 安装 + +[TIP] +环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4 + +=== 源码安装 + +** 安装依赖 +对perl有依赖,perl一般在装IvorySQL时已经装上了,这里不用再装 +CMake版本要求 >= 3.12, Boost版本 >= 1.56 +``` +#安装依赖 +sudo apt install cmake libboost-all-dev +``` + +** 编译安装 +``` +wget https://github.com/pgRouting/pgrouting/releases/download/v3.5.1/pgrouting-3.5.1.tar.gz +tar xvf pgrouting-3.5.1.tar.gz +cd pgrouting-3.5.1 +mkdir build +cd build +cmake .. -DPOSTGRESQL_PG_CONFIG=/path/to/pg_config # eg: /usr/local/ivorysql/ivorysql-4/bin/pg_config +make +sudo make install +``` + +== 创建Extension并确认ddlx版本 + +psql 连接到数据库,执行如下命令: +``` +ivorysql=# CREATE extension pgrouting; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgrouting'; + name | default_version | installed_version | comment +-----------+-----------------+-------------------+--------------------- + pgrouting | 3.5.1 | | pgRouting Extension +(1 row) +``` + +== 使用 +关于pgRouting的使用,请参阅 https://docs.pgrouting.org/[pgRouting官方文档] \ No newline at end of file From 0daf5fe8269d2bbff53630b9310f2adf9d9cc43e Mon Sep 17 00:00:00 2001 From: yuan li Date: Fri, 5 Sep 2025 17:21:45 +0800 Subject: [PATCH 05/18] Add English version of the extension documents and new ref to v4.6 --- CN/modules/ROOT/nav.adoc | 68 ++++++------ CN/modules/ROOT/pages/{v4.5 => v4.6}/1.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/10.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/11.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/12.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/14.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/15.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/16.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/17.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/18.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/19.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/2.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/20.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/21.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/22.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/23.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/24.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/25.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/26.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/27.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/28.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/29.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/3.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/30.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/31.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/32.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/33.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/34.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/35.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/36.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/4.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/5.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/6.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/7.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/8.adoc | 0 CN/modules/ROOT/pages/{v4.5 => v4.6}/9.adoc | 0 .../ROOT/pages/{v4.5 => v4.6}/welcome.adoc | 0 EN/modules/ROOT/nav.adoc | 65 ++++++------ EN/modules/ROOT/pages/{v4.5 => v4.6}/1.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/10.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/11.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/12.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/14.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/15.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/16.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/17.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/18.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/19.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/2.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/20.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/21.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/22.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/23.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/24.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/25.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/26.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/27.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/28.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/29.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/3.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/30.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/31.adoc | 0 EN/modules/ROOT/pages/v4.6/34.adoc | 100 ++++++++++++++++++ EN/modules/ROOT/pages/v4.6/35.adoc | 43 ++++++++ EN/modules/ROOT/pages/v4.6/36.adoc | 55 ++++++++++ EN/modules/ROOT/pages/{v4.5 => v4.6}/4.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/5.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/6.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/7.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/8.adoc | 0 EN/modules/ROOT/pages/{v4.5 => v4.6}/9.adoc | 0 .../ROOT/pages/{v4.5 => v4.6}/welcome.adoc | 0 72 files changed, 266 insertions(+), 65 deletions(-) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/1.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/10.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/11.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/12.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/14.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/15.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/16.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/17.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/18.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/19.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/2.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/20.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/21.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/22.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/23.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/24.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/25.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/26.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/27.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/28.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/29.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/3.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/30.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/31.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/32.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/33.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/34.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/35.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/36.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/4.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/5.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/6.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/7.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/8.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/9.adoc (100%) rename CN/modules/ROOT/pages/{v4.5 => v4.6}/welcome.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/1.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/10.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/11.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/12.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/14.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/15.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/16.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/17.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/18.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/19.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/2.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/20.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/21.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/22.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/23.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/24.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/25.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/26.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/27.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/28.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/29.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/3.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/30.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/31.adoc (100%) create mode 100644 EN/modules/ROOT/pages/v4.6/34.adoc create mode 100644 EN/modules/ROOT/pages/v4.6/35.adoc create mode 100644 EN/modules/ROOT/pages/v4.6/36.adoc rename EN/modules/ROOT/pages/{v4.5 => v4.6}/4.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/5.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/6.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/7.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/8.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/9.adoc (100%) rename EN/modules/ROOT/pages/{v4.5 => v4.6}/welcome.adoc (100%) diff --git a/CN/modules/ROOT/nav.adoc b/CN/modules/ROOT/nav.adoc index 545800a0..2ae0655c 100644 --- a/CN/modules/ROOT/nav.adoc +++ b/CN/modules/ROOT/nav.adoc @@ -1,41 +1,41 @@ -* xref:v4.5/welcome.adoc[欢迎] -* xref:v4.5/1.adoc[发行说明] -* xref:v4.5/2.adoc[关于IvorySQL] +* xref:v4.6/welcome.adoc[欢迎] +* xref:v4.6/1.adoc[发行说明] +* xref:v4.6/2.adoc[关于IvorySQL] * IvorySQL入门 -** xref:v4.5/3.adoc[快速开始] -** xref:v4.5/4.adoc[日常监控] -** xref:v4.5/5.adoc[日常维护] +** xref:v4.6/3.adoc[快速开始] +** xref:v4.6/4.adoc[日常监控] +** xref:v4.6/5.adoc[日常维护] * IvorySQL高级 -** xref:v4.5/6.adoc[安装指南] -** xref:v4.5/7.adoc[集群搭建] -** xref:v4.5/8.adoc[开发者指南] -** xref:v4.5/9.adoc[运维管理指南] -** xref:v4.5/10.adoc[迁移指南] +** xref:v4.6/6.adoc[安装指南] +** xref:v4.6/7.adoc[集群搭建] +** xref:v4.6/8.adoc[开发者指南] +** xref:v4.6/9.adoc[运维管理指南] +** xref:v4.6/10.adoc[迁移指南] * IvorySQL生态 -** xref:v4.5/11.adoc[PostGIS] -** xref:v4.5/12.adoc[pgvector] -** xref:v4.5/34.adoc[PGroonga] -** xref:v4.5/35.adoc[pgddl (DDL Extractor)] -** xref:v4.5/36.adoc[pgRouting] +** xref:v4.6/11.adoc[PostGIS] +** xref:v4.6/12.adoc[pgvector] +** xref:v4.6/34.adoc[PGroonga] +** xref:v4.6/35.adoc[pgddl (DDL Extractor)] +** xref:v4.6/36.adoc[pgRouting] * IvorySQL架构设计 ** 查询处理 -*** xref:v4.5/31.adoc[双parser] +*** xref:v4.6/31.adoc[双parser] ** 兼容框架 -*** xref:v4.5/30.adoc[initdb过程] +*** xref:v4.6/30.adoc[initdb过程] * Oracle兼容功能列表 -** xref:v4.5/14.adoc[1、框架设计] -** xref:v4.5/15.adoc[2、GUC框架] -** xref:v4.5/16.adoc[3、大小写转换] -** xref:v4.5/17.adoc[4、双模式设计] -** xref:v4.5/18.adoc[5、兼容Oracle like] -** xref:v4.5/19.adoc[6、兼容Oracle匿名块] -** xref:v4.5/20.adoc[7、兼容Oracle函数与存储过程] -** xref:v4.5/21.adoc[8、内置数据类型与内置函数] -** xref:v4.5/22.adoc[9、新增Oracle兼容模式的端口与IP] -** xref:v4.5/26.adoc[10、XML函数] -** xref:v4.5/27.adoc[11、兼容Oracle sequence] -** xref:v4.5/28.adoc[12、包] -** xref:v4.5/29.adoc[13、不可见列] -* xref:v4.5/32.adoc[社区贡献指南] -* xref:v4.5/24.adoc[工具参考] -* xref:v4.5/25.adoc[FAQ] \ No newline at end of file +** xref:v4.6/14.adoc[1、框架设计] +** xref:v4.6/15.adoc[2、GUC框架] +** xref:v4.6/16.adoc[3、大小写转换] +** xref:v4.6/17.adoc[4、双模式设计] +** xref:v4.6/18.adoc[5、兼容Oracle like] +** xref:v4.6/19.adoc[6、兼容Oracle匿名块] +** xref:v4.6/20.adoc[7、兼容Oracle函数与存储过程] +** xref:v4.6/21.adoc[8、内置数据类型与内置函数] +** xref:v4.6/22.adoc[9、新增Oracle兼容模式的端口与IP] +** xref:v4.6/26.adoc[10、XML函数] +** xref:v4.6/27.adoc[11、兼容Oracle sequence] +** xref:v4.6/28.adoc[12、包] +** xref:v4.6/29.adoc[13、不可见列] +* xref:v4.6/32.adoc[社区贡献指南] +* xref:v4.6/24.adoc[工具参考] +* xref:v4.6/25.adoc[FAQ] \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.5/1.adoc b/CN/modules/ROOT/pages/v4.6/1.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/1.adoc rename to CN/modules/ROOT/pages/v4.6/1.adoc diff --git a/CN/modules/ROOT/pages/v4.5/10.adoc b/CN/modules/ROOT/pages/v4.6/10.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/10.adoc rename to CN/modules/ROOT/pages/v4.6/10.adoc diff --git a/CN/modules/ROOT/pages/v4.5/11.adoc b/CN/modules/ROOT/pages/v4.6/11.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/11.adoc rename to CN/modules/ROOT/pages/v4.6/11.adoc diff --git a/CN/modules/ROOT/pages/v4.5/12.adoc b/CN/modules/ROOT/pages/v4.6/12.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/12.adoc rename to CN/modules/ROOT/pages/v4.6/12.adoc diff --git a/CN/modules/ROOT/pages/v4.5/14.adoc b/CN/modules/ROOT/pages/v4.6/14.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/14.adoc rename to CN/modules/ROOT/pages/v4.6/14.adoc diff --git a/CN/modules/ROOT/pages/v4.5/15.adoc b/CN/modules/ROOT/pages/v4.6/15.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/15.adoc rename to CN/modules/ROOT/pages/v4.6/15.adoc diff --git a/CN/modules/ROOT/pages/v4.5/16.adoc b/CN/modules/ROOT/pages/v4.6/16.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/16.adoc rename to CN/modules/ROOT/pages/v4.6/16.adoc diff --git a/CN/modules/ROOT/pages/v4.5/17.adoc b/CN/modules/ROOT/pages/v4.6/17.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/17.adoc rename to CN/modules/ROOT/pages/v4.6/17.adoc diff --git a/CN/modules/ROOT/pages/v4.5/18.adoc b/CN/modules/ROOT/pages/v4.6/18.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/18.adoc rename to CN/modules/ROOT/pages/v4.6/18.adoc diff --git a/CN/modules/ROOT/pages/v4.5/19.adoc b/CN/modules/ROOT/pages/v4.6/19.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/19.adoc rename to CN/modules/ROOT/pages/v4.6/19.adoc diff --git a/CN/modules/ROOT/pages/v4.5/2.adoc b/CN/modules/ROOT/pages/v4.6/2.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/2.adoc rename to CN/modules/ROOT/pages/v4.6/2.adoc diff --git a/CN/modules/ROOT/pages/v4.5/20.adoc b/CN/modules/ROOT/pages/v4.6/20.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/20.adoc rename to CN/modules/ROOT/pages/v4.6/20.adoc diff --git a/CN/modules/ROOT/pages/v4.5/21.adoc b/CN/modules/ROOT/pages/v4.6/21.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/21.adoc rename to CN/modules/ROOT/pages/v4.6/21.adoc diff --git a/CN/modules/ROOT/pages/v4.5/22.adoc b/CN/modules/ROOT/pages/v4.6/22.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/22.adoc rename to CN/modules/ROOT/pages/v4.6/22.adoc diff --git a/CN/modules/ROOT/pages/v4.5/23.adoc b/CN/modules/ROOT/pages/v4.6/23.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/23.adoc rename to CN/modules/ROOT/pages/v4.6/23.adoc diff --git a/CN/modules/ROOT/pages/v4.5/24.adoc b/CN/modules/ROOT/pages/v4.6/24.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/24.adoc rename to CN/modules/ROOT/pages/v4.6/24.adoc diff --git a/CN/modules/ROOT/pages/v4.5/25.adoc b/CN/modules/ROOT/pages/v4.6/25.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/25.adoc rename to CN/modules/ROOT/pages/v4.6/25.adoc diff --git a/CN/modules/ROOT/pages/v4.5/26.adoc b/CN/modules/ROOT/pages/v4.6/26.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/26.adoc rename to CN/modules/ROOT/pages/v4.6/26.adoc diff --git a/CN/modules/ROOT/pages/v4.5/27.adoc b/CN/modules/ROOT/pages/v4.6/27.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/27.adoc rename to CN/modules/ROOT/pages/v4.6/27.adoc diff --git a/CN/modules/ROOT/pages/v4.5/28.adoc b/CN/modules/ROOT/pages/v4.6/28.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/28.adoc rename to CN/modules/ROOT/pages/v4.6/28.adoc diff --git a/CN/modules/ROOT/pages/v4.5/29.adoc b/CN/modules/ROOT/pages/v4.6/29.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/29.adoc rename to CN/modules/ROOT/pages/v4.6/29.adoc diff --git a/CN/modules/ROOT/pages/v4.5/3.adoc b/CN/modules/ROOT/pages/v4.6/3.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/3.adoc rename to CN/modules/ROOT/pages/v4.6/3.adoc diff --git a/CN/modules/ROOT/pages/v4.5/30.adoc b/CN/modules/ROOT/pages/v4.6/30.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/30.adoc rename to CN/modules/ROOT/pages/v4.6/30.adoc diff --git a/CN/modules/ROOT/pages/v4.5/31.adoc b/CN/modules/ROOT/pages/v4.6/31.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/31.adoc rename to CN/modules/ROOT/pages/v4.6/31.adoc diff --git a/CN/modules/ROOT/pages/v4.5/32.adoc b/CN/modules/ROOT/pages/v4.6/32.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/32.adoc rename to CN/modules/ROOT/pages/v4.6/32.adoc diff --git a/CN/modules/ROOT/pages/v4.5/33.adoc b/CN/modules/ROOT/pages/v4.6/33.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/33.adoc rename to CN/modules/ROOT/pages/v4.6/33.adoc diff --git a/CN/modules/ROOT/pages/v4.5/34.adoc b/CN/modules/ROOT/pages/v4.6/34.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/34.adoc rename to CN/modules/ROOT/pages/v4.6/34.adoc diff --git a/CN/modules/ROOT/pages/v4.5/35.adoc b/CN/modules/ROOT/pages/v4.6/35.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/35.adoc rename to CN/modules/ROOT/pages/v4.6/35.adoc diff --git a/CN/modules/ROOT/pages/v4.5/36.adoc b/CN/modules/ROOT/pages/v4.6/36.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/36.adoc rename to CN/modules/ROOT/pages/v4.6/36.adoc diff --git a/CN/modules/ROOT/pages/v4.5/4.adoc b/CN/modules/ROOT/pages/v4.6/4.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/4.adoc rename to CN/modules/ROOT/pages/v4.6/4.adoc diff --git a/CN/modules/ROOT/pages/v4.5/5.adoc b/CN/modules/ROOT/pages/v4.6/5.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/5.adoc rename to CN/modules/ROOT/pages/v4.6/5.adoc diff --git a/CN/modules/ROOT/pages/v4.5/6.adoc b/CN/modules/ROOT/pages/v4.6/6.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/6.adoc rename to CN/modules/ROOT/pages/v4.6/6.adoc diff --git a/CN/modules/ROOT/pages/v4.5/7.adoc b/CN/modules/ROOT/pages/v4.6/7.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/7.adoc rename to CN/modules/ROOT/pages/v4.6/7.adoc diff --git a/CN/modules/ROOT/pages/v4.5/8.adoc b/CN/modules/ROOT/pages/v4.6/8.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/8.adoc rename to CN/modules/ROOT/pages/v4.6/8.adoc diff --git a/CN/modules/ROOT/pages/v4.5/9.adoc b/CN/modules/ROOT/pages/v4.6/9.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/9.adoc rename to CN/modules/ROOT/pages/v4.6/9.adoc diff --git a/CN/modules/ROOT/pages/v4.5/welcome.adoc b/CN/modules/ROOT/pages/v4.6/welcome.adoc similarity index 100% rename from CN/modules/ROOT/pages/v4.5/welcome.adoc rename to CN/modules/ROOT/pages/v4.6/welcome.adoc diff --git a/EN/modules/ROOT/nav.adoc b/EN/modules/ROOT/nav.adoc index 370e6783..515ed37e 100644 --- a/EN/modules/ROOT/nav.adoc +++ b/EN/modules/ROOT/nav.adoc @@ -1,38 +1,41 @@ -* xref:v4.5/welcome.adoc[Welcome] -* xref:v4.5/1.adoc[Release] -* xref:v4.5/2.adoc[About] +* xref:v4.6/welcome.adoc[Welcome] +* xref:v4.6/1.adoc[Release] +* xref:v4.6/2.adoc[About] * Getting Started with IvorySQL -** xref:v4.5/3.adoc[Quick Start] -** xref:v4.5/4.adoc[Monitoring] -** xref:v4.5/5.adoc[Maintenance] +** xref:v4.6/3.adoc[Quick Start] +** xref:v4.6/4.adoc[Monitoring] +** xref:v4.6/5.adoc[Maintenance] * IvorySQL Advanced Feature -** xref:v4.5/6.adoc[Installation] -** xref:v4.5/7.adoc[Building Cluster] -** xref:v4.5/8.adoc[Developer] -** xref:v4.5/9.adoc[Operation Management] -** xref:v4.5/10.adoc[Migration] +** xref:v4.6/6.adoc[Installation] +** xref:v4.6/7.adoc[Building Cluster] +** xref:v4.6/8.adoc[Developer] +** xref:v4.6/9.adoc[Operation Management] +** xref:v4.6/10.adoc[Migration] * IvorySQL Ecosystem -** xref:v4.5/11.adoc[PostGIS] -** xref:v4.5/12.adoc[pgvector] +** xref:v4.6/11.adoc[PostGIS] +** xref:v4.6/12.adoc[pgvector] +** xref:v4.6/34.adoc[PGroonga] +** xref:v4.6/35.adoc[pgddl (DDL Extractor)] +** xref:v4.6/36.adoc[pgRouting] * IvorySQL Architecture Design ** Query Processing -*** xref:v4.5/31.adoc[Dual Parser] +*** xref:v4.6/31.adoc[Dual Parser] ** Compatibility Framework -*** xref:v4.5/30.adoc[initdb Process] +*** xref:v4.6/30.adoc[initdb Process] * List of Oracle compatible features -** xref:v4.5/14.adoc[1、Ivorysql frame design] -** xref:v4.5/15.adoc[2、GUC Framework] -** xref:v4.5/16.adoc[3、Case conversion] -** xref:v4.5/17.adoc[4、Dual-mode design] -** xref:v4.5/18.adoc[5、Compatible with Oracle like] -** xref:v4.5/19.adoc[6、Compatible with Oracle anonymous block] -** xref:v4.5/20.adoc[7、Compatible with Oracle functions and stored procedures] -** xref:v4.5/21.adoc[8、Built-in data types and built-in functions] -** xref:v4.5/22.adoc[9、Added Oracle compatibility mode ports and IP] -** xref:v4.5/26.adoc[10、XML Function] -** xref:v4.5/27.adoc[11、Compatible with Oracle sequence] -** xref:v4.5/28.adoc[12、Package] -** xref:v4.5/29.adoc[13、Invisible Columns] -* xref:v4.5/23.adoc[Community contribution] -* xref:v4.5/24.adoc[Tool Reference] -* xref:v4.5/25.adoc[FAQ] \ No newline at end of file +** xref:v4.6/14.adoc[1、Ivorysql frame design] +** xref:v4.6/15.adoc[2、GUC Framework] +** xref:v4.6/16.adoc[3、Case conversion] +** xref:v4.6/17.adoc[4、Dual-mode design] +** xref:v4.6/18.adoc[5、Compatible with Oracle like] +** xref:v4.6/19.adoc[6、Compatible with Oracle anonymous block] +** xref:v4.6/20.adoc[7、Compatible with Oracle functions and stored procedures] +** xref:v4.6/21.adoc[8、Built-in data types and built-in functions] +** xref:v4.6/22.adoc[9、Added Oracle compatibility mode ports and IP] +** xref:v4.6/26.adoc[10、XML Function] +** xref:v4.6/27.adoc[11、Compatible with Oracle sequence] +** xref:v4.6/28.adoc[12、Package] +** xref:v4.6/29.adoc[13、Invisible Columns] +* xref:v4.6/23.adoc[Community contribution] +* xref:v4.6/24.adoc[Tool Reference] +* xref:v4.6/25.adoc[FAQ] \ No newline at end of file diff --git a/EN/modules/ROOT/pages/v4.5/1.adoc b/EN/modules/ROOT/pages/v4.6/1.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/1.adoc rename to EN/modules/ROOT/pages/v4.6/1.adoc diff --git a/EN/modules/ROOT/pages/v4.5/10.adoc b/EN/modules/ROOT/pages/v4.6/10.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/10.adoc rename to EN/modules/ROOT/pages/v4.6/10.adoc diff --git a/EN/modules/ROOT/pages/v4.5/11.adoc b/EN/modules/ROOT/pages/v4.6/11.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/11.adoc rename to EN/modules/ROOT/pages/v4.6/11.adoc diff --git a/EN/modules/ROOT/pages/v4.5/12.adoc b/EN/modules/ROOT/pages/v4.6/12.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/12.adoc rename to EN/modules/ROOT/pages/v4.6/12.adoc diff --git a/EN/modules/ROOT/pages/v4.5/14.adoc b/EN/modules/ROOT/pages/v4.6/14.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/14.adoc rename to EN/modules/ROOT/pages/v4.6/14.adoc diff --git a/EN/modules/ROOT/pages/v4.5/15.adoc b/EN/modules/ROOT/pages/v4.6/15.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/15.adoc rename to EN/modules/ROOT/pages/v4.6/15.adoc diff --git a/EN/modules/ROOT/pages/v4.5/16.adoc b/EN/modules/ROOT/pages/v4.6/16.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/16.adoc rename to EN/modules/ROOT/pages/v4.6/16.adoc diff --git a/EN/modules/ROOT/pages/v4.5/17.adoc b/EN/modules/ROOT/pages/v4.6/17.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/17.adoc rename to EN/modules/ROOT/pages/v4.6/17.adoc diff --git a/EN/modules/ROOT/pages/v4.5/18.adoc b/EN/modules/ROOT/pages/v4.6/18.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/18.adoc rename to EN/modules/ROOT/pages/v4.6/18.adoc diff --git a/EN/modules/ROOT/pages/v4.5/19.adoc b/EN/modules/ROOT/pages/v4.6/19.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/19.adoc rename to EN/modules/ROOT/pages/v4.6/19.adoc diff --git a/EN/modules/ROOT/pages/v4.5/2.adoc b/EN/modules/ROOT/pages/v4.6/2.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/2.adoc rename to EN/modules/ROOT/pages/v4.6/2.adoc diff --git a/EN/modules/ROOT/pages/v4.5/20.adoc b/EN/modules/ROOT/pages/v4.6/20.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/20.adoc rename to EN/modules/ROOT/pages/v4.6/20.adoc diff --git a/EN/modules/ROOT/pages/v4.5/21.adoc b/EN/modules/ROOT/pages/v4.6/21.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/21.adoc rename to EN/modules/ROOT/pages/v4.6/21.adoc diff --git a/EN/modules/ROOT/pages/v4.5/22.adoc b/EN/modules/ROOT/pages/v4.6/22.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/22.adoc rename to EN/modules/ROOT/pages/v4.6/22.adoc diff --git a/EN/modules/ROOT/pages/v4.5/23.adoc b/EN/modules/ROOT/pages/v4.6/23.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/23.adoc rename to EN/modules/ROOT/pages/v4.6/23.adoc diff --git a/EN/modules/ROOT/pages/v4.5/24.adoc b/EN/modules/ROOT/pages/v4.6/24.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/24.adoc rename to EN/modules/ROOT/pages/v4.6/24.adoc diff --git a/EN/modules/ROOT/pages/v4.5/25.adoc b/EN/modules/ROOT/pages/v4.6/25.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/25.adoc rename to EN/modules/ROOT/pages/v4.6/25.adoc diff --git a/EN/modules/ROOT/pages/v4.5/26.adoc b/EN/modules/ROOT/pages/v4.6/26.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/26.adoc rename to EN/modules/ROOT/pages/v4.6/26.adoc diff --git a/EN/modules/ROOT/pages/v4.5/27.adoc b/EN/modules/ROOT/pages/v4.6/27.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/27.adoc rename to EN/modules/ROOT/pages/v4.6/27.adoc diff --git a/EN/modules/ROOT/pages/v4.5/28.adoc b/EN/modules/ROOT/pages/v4.6/28.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/28.adoc rename to EN/modules/ROOT/pages/v4.6/28.adoc diff --git a/EN/modules/ROOT/pages/v4.5/29.adoc b/EN/modules/ROOT/pages/v4.6/29.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/29.adoc rename to EN/modules/ROOT/pages/v4.6/29.adoc diff --git a/EN/modules/ROOT/pages/v4.5/3.adoc b/EN/modules/ROOT/pages/v4.6/3.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/3.adoc rename to EN/modules/ROOT/pages/v4.6/3.adoc diff --git a/EN/modules/ROOT/pages/v4.5/30.adoc b/EN/modules/ROOT/pages/v4.6/30.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/30.adoc rename to EN/modules/ROOT/pages/v4.6/30.adoc diff --git a/EN/modules/ROOT/pages/v4.5/31.adoc b/EN/modules/ROOT/pages/v4.6/31.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/31.adoc rename to EN/modules/ROOT/pages/v4.6/31.adoc diff --git a/EN/modules/ROOT/pages/v4.6/34.adoc b/EN/modules/ROOT/pages/v4.6/34.adoc new file mode 100644 index 00000000..4acca95e --- /dev/null +++ b/EN/modules/ROOT/pages/v4.6/34.adoc @@ -0,0 +1,100 @@ +:sectnums: +:sectnumlevels: 5 + += PGroonga + +== Overview +PostgreSQL has built-in full-text search functionality, but when dealing with large-scale data, complex queries, and non-English languages (especially CJK languages like Chinese, Japanese, and Korean), its functionality and performance may not meet the requirements of high-performance applications. + +PGroonga was created to address this need. It is a PostgreSQL extension that deeply integrates Groonga, a high-performance full-featured full-text search engine, with the PostgreSQL database. Groonga itself is an excellent open-source search engine, renowned for its extreme speed and rich functionality, particularly excelling at handling multilingual text. PGroonga's mission is to seamlessly bring Groonga's powerful capabilities into the PostgreSQL world, providing users with an experience that far exceeds native full-text search. + +== Installation +Based on the development environment, users can choose the appropriate installation method for PGroonga from the https://pgroonga.github.io/install[PGroonga Installation] page. + +=== Source Installation +In addition to the installation methods provided by the PGroonga community, the IvorySQL community also provides source installation methods. The source installation environment is Ubuntu 24.04 (x86_64). + +[TIP] +IvorySQL 4.6 or higher version is already installed in the environment, with the installation path at /usr/local/ivorysql/ivorysql-4 + +==== Install groonga + +** Install dependency kytea +``` +git clone https://github.com/neubig/kytea.git +autoreconf -i +./configure +make +sudo make install +``` + +** Install dependency libzmq +``` +Download zeromq-4.3.5.tar.gz from https://github.com/zeromq/libzmq/releases/tag/v4.3.5 +tar xvf zeromq-4.3.5.tar.gz +cd zeromq-4.3.5/ +./configure +make +sudo make install +``` + +** Download groonga package and install specified dependencies +``` +wget https://packages.groonga.org/source/groonga/groonga-latest.tar.gz +tar xvf groonga-15.1.5.tar.gz +cd groonga-15.1.5 +# Run this script to install dependencies, supporting apt and dnf package managers +./ setup.sh +``` + +** Compile and install +``` +# -S specifies the groonga source directory, -B specifies the build directory, which is a directory outside the source directory used only for building +cmake -S /home/ivorysql/groonga-15.1.5 -B /home/ivorysql/groonga_build --preset=release-maximum +cmake --build /home/ivorysql/groonga_build +sudo cmake --install /home/ivorysql/groonga_build +# Update dynamic library cache +sudo ldconfig +``` + +** Verify groonga installation success +``` +$ groonga --version +Groonga 15.1.5 [Linux,x86_64,utf8,match-escalation-threshold=0,nfkc,mecab,message-pack,mruby,onigmo,zlib,lz4,zstandard,epoll,apache-arrow,xxhash,blosc,bfloat16,h3,simdjson,llama.cpp] +``` + +==== Install pgroonga +``` +wget https://packages.groonga.org/source/pgroonga/pgroonga-4.0.1.tar.gz +tar xvf pgroonga-4.0.1.tar.gz +cd pgroonga-4.0.1 +``` + +When compiling PGroonga, there is an option: HAVE_MSGPACK=1, which is used to support WAL. Using this option requires installing msgpack-c 1.4.1 or higher. On Debian-based platforms, use the libmsgpack-dev package, and on CentOS 7, use msgpack-devel. +``` +# Install dependencies +sudo apt install libmsgpack-dev +``` + +Before running make, ensure that the path of the pg_config command is in the PATH environment variable. +``` +make HAVE_MSGPACK=1 +make install +``` + +== Create Extension and Confirm PGroonga Version + +Connect to the database with psql and execute the following commands: +``` +ivorysql=# CREATE extension pgroonga; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgroonga'; + name | default_version | installed_version | comment +---------+-----------------+-------------------+------------------------------------------------------------------------------- + pgroonga| 4.0.1 | 4.0.1 | Super fast and all languages supported full text search index based on Groonga +(1 row) +``` + +== Usage +For PGroonga usage, please refer to the https://pgroonga.github.io/tutorial[PGroonga Official Documentation] diff --git a/EN/modules/ROOT/pages/v4.6/35.adoc b/EN/modules/ROOT/pages/v4.6/35.adoc new file mode 100644 index 00000000..12e69d15 --- /dev/null +++ b/EN/modules/ROOT/pages/v4.6/35.adoc @@ -0,0 +1,43 @@ +:sectnums: +:sectnumlevels: 5 + += pgddl (DDL Extractor) + +== Overview +pgddl is a SQL function extension specifically designed for PostgreSQL databases. It can generate clear, formatted SQL DDL (Data Definition Language) scripts directly from the database system catalog, such as CREATE TABLE or ALTER FUNCTION. It solves the problem that PostgreSQL natively lacks commands like SHOW CREATE TABLE, allowing users to easily obtain object creation statements in a pure SQL environment without relying on external tools (such as pg_dump). + +This extension provides a complete solution through a set of simple SQL functions, with advantages including: requiring only SQL queries to operate, supporting flexible object filtering through WHERE clauses, and intelligently handling dependencies between objects to generate complete scripts including Drop and Create steps. This makes it particularly suitable for scenarios such as database change management, upgrade script writing, and structural auditing. + +It should be noted that ddlx is still under development and may not yet cover all PostgreSQL object types and advanced options. Generated scripts should always be checked and tested in non-production environments first to ensure their correctness and safety. + +== Installation + +[TIP] +IvorySQL 4.6 or higher version is already installed in the environment, with the installation path at /usr/local/ivorysql/ivorysql-4 + +=== Source Installation +Download pgddl-0.20.tar.gz from https://github.com/lacanoid/pgddl/releases/tag/0.20 and extract it. + +``` +cd pgddl-0.20 +# Set the PG_CONFIG environment variable to the pg_config path, e.g.: /usr/local/ivorysql/ivorysql-4/bin/pg_config +make PG_CONFIG=/path/to/pg_config +make PG_CONFIG=/path/to/pg_config install +``` + +== Create Extension and Confirm ddlx Version + +Connect to the database with psql and execute the following commands: +``` +ivorysql=# CREATE extension ddlx; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'ddlx'; + name | default_version | installed_version | comment +------+-----------------+-------------------+------------------------- + ddlx | 0.20 | 0.20 | DDL eXtractor functions +(1 row) +``` + +== Usage +For pgddl usage, please refer to the https://github.com/lacanoid/pgddl[ddlx Official Documentation] diff --git a/EN/modules/ROOT/pages/v4.6/36.adoc b/EN/modules/ROOT/pages/v4.6/36.adoc new file mode 100644 index 00000000..d37180fb --- /dev/null +++ b/EN/modules/ROOT/pages/v4.6/36.adoc @@ -0,0 +1,55 @@ +:sectnums: +:sectnumlevels: 5 + += pgRouting + +== Overview +pgRouting is an open-source geospatial routing extension library built on PostgreSQL/PostGIS databases. It endows databases with powerful network analysis capabilities, enabling them to handle complex path planning and graph theory computation problems, such as calculating the shortest path between two points, performing Traveling Salesman Problem (TSP) analysis, or computing service area coverage. It embeds routing algorithms directly into the database, thereby avoiding complex data transfer and computation at the application layer. + +The core advantage of this extension lies in its ability to leverage PostgreSQL's powerful data management capabilities and PostGIS's rich spatial functions to perform efficient computation on spatial network data directly within the database. This not only simplifies application development processes but also significantly improves the performance of large-scale network analysis by reducing data movement. + +pgRouting is widely used in logistics and distribution, traffic navigation, network analysis, urban planning, and supply chain management, among other fields. Its open-source nature has attracted continuous contributions and improvements from developers worldwide, making it one of the preferred tools for path analysis and network solving in the spatial database domain. + +== Installation + +[TIP] +IvorySQL 4.6 or higher version is already installed in the environment, with the installation path at /usr/local/ivorysql/ivorysql-4 + +=== Source Installation + +** Install dependencies +It depends on perl, which is generally already installed when installing IvorySQL, so no need to install it here. +CMake version requirement >= 3.12, Boost version >= 1.56 +``` +# Install dependencies +sudo apt install cmake libboost-all-dev +``` + +** Compile and install +``` +wget https://github.com/pgRouting/pgrouting/releases/download/v3.5.1/pgrouting-3.5.1.tar.gz +tar xvf pgrouting-3.5.1.tar.gz +cd pgrouting-3.5.1 +mkdir build +cd build +cmake .. -DPOSTGRESQL_PG_CONFIG=/path/to/pg_config # eg: /usr/local/ivorysql/ivorysql-4/bin/pg_config +make +sudo make install +``` + +== Create Extension and Confirm pgRouting Version + +Connect to the database with psql and execute the following commands: +``` +ivorysql=# CREATE extension pgrouting; +CREATE EXTENSION + +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgrouting'; + name | default_version | installed_version | comment +-----------+-----------------+-------------------+--------------------- + pgrouting | 3.5.1 | | pgRouting Extension +(1 row) +``` + +== Usage +For pgRouting usage, please refer to the https://docs.pgrouting.org/[pgRouting Official Documentation] diff --git a/EN/modules/ROOT/pages/v4.5/4.adoc b/EN/modules/ROOT/pages/v4.6/4.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/4.adoc rename to EN/modules/ROOT/pages/v4.6/4.adoc diff --git a/EN/modules/ROOT/pages/v4.5/5.adoc b/EN/modules/ROOT/pages/v4.6/5.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/5.adoc rename to EN/modules/ROOT/pages/v4.6/5.adoc diff --git a/EN/modules/ROOT/pages/v4.5/6.adoc b/EN/modules/ROOT/pages/v4.6/6.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/6.adoc rename to EN/modules/ROOT/pages/v4.6/6.adoc diff --git a/EN/modules/ROOT/pages/v4.5/7.adoc b/EN/modules/ROOT/pages/v4.6/7.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/7.adoc rename to EN/modules/ROOT/pages/v4.6/7.adoc diff --git a/EN/modules/ROOT/pages/v4.5/8.adoc b/EN/modules/ROOT/pages/v4.6/8.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/8.adoc rename to EN/modules/ROOT/pages/v4.6/8.adoc diff --git a/EN/modules/ROOT/pages/v4.5/9.adoc b/EN/modules/ROOT/pages/v4.6/9.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/9.adoc rename to EN/modules/ROOT/pages/v4.6/9.adoc diff --git a/EN/modules/ROOT/pages/v4.5/welcome.adoc b/EN/modules/ROOT/pages/v4.6/welcome.adoc similarity index 100% rename from EN/modules/ROOT/pages/v4.5/welcome.adoc rename to EN/modules/ROOT/pages/v4.6/welcome.adoc From f3172a53678bd9ac11040ef7656278cc0d6bdbaa Mon Sep 17 00:00:00 2001 From: yuan li Date: Fri, 5 Sep 2025 17:56:29 +0800 Subject: [PATCH 06/18] Adjust document format --- CN/modules/ROOT/pages/v4.6/36.adoc | 1 + EN/modules/ROOT/pages/v4.6/36.adoc | 1 + 2 files changed, 2 insertions(+) diff --git a/CN/modules/ROOT/pages/v4.6/36.adoc b/CN/modules/ROOT/pages/v4.6/36.adoc index b9d793cb..3c20aabd 100644 --- a/CN/modules/ROOT/pages/v4.6/36.adoc +++ b/CN/modules/ROOT/pages/v4.6/36.adoc @@ -19,6 +19,7 @@ pgRouting 广泛应用于物流配送、交通导航、网络分析、城市规 === 源码安装 ** 安装依赖 + 对perl有依赖,perl一般在装IvorySQL时已经装上了,这里不用再装 CMake版本要求 >= 3.12, Boost版本 >= 1.56 ``` diff --git a/EN/modules/ROOT/pages/v4.6/36.adoc b/EN/modules/ROOT/pages/v4.6/36.adoc index d37180fb..cc96b738 100644 --- a/EN/modules/ROOT/pages/v4.6/36.adoc +++ b/EN/modules/ROOT/pages/v4.6/36.adoc @@ -18,6 +18,7 @@ IvorySQL 4.6 or higher version is already installed in the environment, with the === Source Installation ** Install dependencies + It depends on perl, which is generally already installed when installing IvorySQL, so no need to install it here. CMake version requirement >= 3.12, Boost version >= 1.56 ``` From 8614c0424c6b3f7760679940ce65e9626ca830f5 Mon Sep 17 00:00:00 2001 From: yuan li Date: Tue, 9 Sep 2025 10:58:00 +0800 Subject: [PATCH 07/18] correct pgvector version information --- CN/modules/ROOT/pages/v4.6/12.adoc | 2 +- EN/modules/ROOT/pages/v4.6/12.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.6/12.adoc b/CN/modules/ROOT/pages/v4.6/12.adoc index 409992b9..863cfafc 100644 --- a/CN/modules/ROOT/pages/v4.6/12.adoc +++ b/CN/modules/ROOT/pages/v4.6/12.adoc @@ -35,7 +35,7 @@ export PG_CONFIG=/usr/local/ivorysql/ivorysql-4/bin/pg_config ** 拉取pg_vector源码 ``` -git clone --branch v0.6.2 https://github.com/pgvector/pgvector.git +git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git ``` ** 安装 pgvector diff --git a/EN/modules/ROOT/pages/v4.6/12.adoc b/EN/modules/ROOT/pages/v4.6/12.adoc index dd965a4d..a0f1ca5c 100644 --- a/EN/modules/ROOT/pages/v4.6/12.adoc +++ b/EN/modules/ROOT/pages/v4.6/12.adoc @@ -38,7 +38,7 @@ export PG_CONFIG=/usr/local/ivorysql/ivorysql-4/bin/pg_config ** Pull pg_vector source code ``` -git clone --branch v0.6.2 https://github.com/pgvector/pgvector.git +git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git ``` ** Install pgvector From 037e07a2df0c63dd47e7c24bd1e63c881ebb9bfc Mon Sep 17 00:00:00 2001 From: yuan li Date: Tue, 9 Sep 2025 11:10:16 +0800 Subject: [PATCH 08/18] Adjust format --- CN/modules/ROOT/pages/v4.6/36.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CN/modules/ROOT/pages/v4.6/36.adoc b/CN/modules/ROOT/pages/v4.6/36.adoc index 3c20aabd..3911a37d 100644 --- a/CN/modules/ROOT/pages/v4.6/36.adoc +++ b/CN/modules/ROOT/pages/v4.6/36.adoc @@ -20,7 +20,7 @@ pgRouting 广泛应用于物流配送、交通导航、网络分析、城市规 ** 安装依赖 -对perl有依赖,perl一般在装IvorySQL时已经装上了,这里不用再装 +对perl有依赖,perl一般在装IvorySQL时已经装上了,这里不用再装。 CMake版本要求 >= 3.12, Boost版本 >= 1.56 ``` #安装依赖 From 2d9b1d9b664b812a19d73f8ab8982c25ca96416f Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Tue, 9 Sep 2025 18:06:13 +0800 Subject: [PATCH 09/18] v4.6 release update --- CN/antora.yml | 4 +- CN/modules/ROOT/pages/v4.6/1.adoc | 85 +++++++++++++++---------- CN/modules/ROOT/pages/v4.6/10.adoc | 4 +- CN/modules/ROOT/pages/v4.6/12.adoc | 4 +- CN/modules/ROOT/pages/v4.6/2.adoc | 26 ++++---- CN/modules/ROOT/pages/v4.6/23.adoc | 2 +- CN/modules/ROOT/pages/v4.6/3.adoc | 12 ++-- CN/modules/ROOT/pages/v4.6/6.adoc | 22 +++---- CN/modules/ROOT/pages/v4.6/7.adoc | 14 ++-- CN/modules/ROOT/pages/v4.6/8.adoc | 2 +- CN/modules/ROOT/pages/v4.6/9.adoc | 6 +- CN/modules/ROOT/pages/v4.6/welcome.adoc | 2 +- EN/antora.yml | 4 +- EN/modules/ROOT/pages/v4.6/1.adoc | 76 ++++++++++++++-------- EN/modules/ROOT/pages/v4.6/10.adoc | 4 +- EN/modules/ROOT/pages/v4.6/12.adoc | 4 +- EN/modules/ROOT/pages/v4.6/2.adoc | 26 ++++---- EN/modules/ROOT/pages/v4.6/23.adoc | 2 +- EN/modules/ROOT/pages/v4.6/3.adoc | 12 ++-- EN/modules/ROOT/pages/v4.6/6.adoc | 28 ++++---- EN/modules/ROOT/pages/v4.6/7.adoc | 14 ++-- EN/modules/ROOT/pages/v4.6/8.adoc | 2 +- EN/modules/ROOT/pages/v4.6/9.adoc | 6 +- EN/modules/ROOT/pages/v4.6/welcome.adoc | 2 +- README_zh.md | 2 +- 25 files changed, 204 insertions(+), 161 deletions(-) diff --git a/CN/antora.yml b/CN/antora.yml index fb9f27c3..2d796d70 100644 --- a/CN/antora.yml +++ b/CN/antora.yml @@ -1,7 +1,7 @@ name: ivorysql-doc title: IvorySQL -version: v4.5 -start_page: v4.5/welcome.adoc +version: v4.6 +start_page: v4.6/welcome.adoc asciidoc: attributes: source-language: asciidoc@ diff --git a/CN/modules/ROOT/pages/v4.6/1.adoc b/CN/modules/ROOT/pages/v4.6/1.adoc index e3bc9953..0f8002ea 100644 --- a/CN/modules/ROOT/pages/v4.6/1.adoc +++ b/CN/modules/ROOT/pages/v4.6/1.adoc @@ -4,50 +4,65 @@ == 版本概览 -[**发行日期:2025年06月04日**] +[**发行日期:2025年09月10日**] -IvorySQL 4.5,基于PostgreSQL 17.5,并修复了多个问题。有关更新的完整列表,请访问我们的 https://docs.ivorysql.org/[文档网站] 。 +IvorySQL 4.6,基于PostgreSQL 17.6,并修复了多个问题。有关更新的完整列表,请访问我们的 https://docs.ivorysql.org/[文档网站] 。 == 增强功能及问题修复 -- PostgreSQL 17.5 +- PostgreSQL 17.6 -1. 修复了在检查声明为 GB18030 编码的无效字符串时,可能发生的一字节缓冲区超读(one-byte buffer overread)问题,增强了系统处理无效编码数据的稳健性。 -2. 确保对分区表上存在的自引用外键(self-referential foreign keys)进行正确处理,提升了复杂数据结构下分区表的可靠性。 -3. 避免了在 brin_bloom_union() 函数中合并已压缩的 BRIN 摘要(summaries)时,可能发生的数据丢失风险,保障了索引数据的准确性。 -4. 修正了在嵌套 WITH 子句中的 INSERT/UPDATE/DELETE/MERGE 命令所附带的 WITH 子句内,对外部公共表表达式(CTE)名称引用时的处理逻辑,确保了复杂查询的正确执行。 -5. 修复了 ALTER TABLE ADD COLUMN 命令,以确保在添加列时,能够正确处理包含默认值的域(domain)类型,提高了表结构变更操作的准确性 +1. 加强规划器估算函数中的安全检查。 + +2. 防止利用 pg_dump 脚本攻击执行恢复操作的用户。 + +3. 在 pg_dump 输出结果的注释信息中,将名称内的换行符转换为空格。 + +4. 修复 BRIN numeric_minmax_multi_ops 支持函数中距离计算错误的问题。 + +5. 避免可接受的 XML 输入大小出现性能回退。 + + +更多细节, 请参阅 https://www.postgresql.org/docs/release/17.6/[PostgreSQL发布说明]. -+ -更多细节, 请参阅 https://www.postgresql.org/docs/release/17.5/[PostgreSQL发布说明]. +- IvorySQL 4.6 新特性 -- IvorySQL 4.5 +1. 内核升级至 PG 17.6 -1. MIPS 全平台打包支持:特性 https://github.com/IvorySQL/IvorySQL/issues/736[#736] +2. 兼容MongoDB + -为 MIPS 架构提供多平台介质包,支持国内外主流操作系统,包括 Red Hat、Debian、麒麟、UOS、凝思等。 +提供基于 FerretDB 与 DocumentDB 支持兼容 MongoDB 的解决方案。 -2. 新增IvorySQL 在线体验平台:特性 https://github.com/IvorySQL/ivorysql-wasm/issues/1[#1] +3. loongarch 架构全平台打包支持 ++ +提供面向 loongarch 架构的多平台软件包,支持国内外主流操作系统,包括Red Hat、Debian、麒麟(Kylin)、统信(UOS)以及 NSAR OS 等。 +提供面向龙芯架构(LoongArch)的多平台介质包,兼容国内外主流操作系统,包括红帽(Red Hat)、Debian、麒麟(Kylin)、统信UOS、凝思NSAR OS等,同时支持x86、ARM及MIPS架构。 + +4. 新增IvorySQL 在线体验平台 + 提供一个基于 Web 的平台,用户可直接通过浏览器界面在线体验 IvorySQL V4.5 并进行数据库交互。 -3. 新增社区行为准则:特性 https://github.com/IvorySQL/IvorySQL/issues/808[#808] +5. 容器化部署支持 (Docker Swarm) + -为社区参与者明确了行为规范和期望,旨在营造一个友好且互相尊重的社区环境。 +支持在 Docker、Swarm 环境中部署 IvorySQL 单机数据库与高可用集群。 -4. 更新社区贡献指南:特性 https://github.com/IvorySQL/ivorysql_docs/pull/121[#121] +6. 容器化部署支持 (Kubernetes) + -对社区贡献流程、规范和最佳实践进行了修订与完善,方便贡献者参与。 +支持使用 Helm 在 Kubernetes 上部署 IvorySQL 单机数据库与高可用集群。 -5. 实现文档构建与网站更新自动化:特性 https://github.com/IvorySQL/ivorysql_docs/issues/115[#115] +7. https://github.com/IvorySQL/ivory-cloud/releases/tag/ivyc_4.0[IvorySQL Cloud v4.0] 发布 + -通过 Pull Request (PR) 自动触发文档构建及官方网站内容更新流程。 +IvorySQL云平台当前支持IvorySQL v4数据库的订阅管理,以及其周边生态的全面管理。 -6. 改进贡献者工作流程,通过 /assign 命令自我分配任务:特性 https://github.com/IvorySQL/ivorysql_docs/issues/109[#109] +- IvorySQL 4.6 问题修复 -7. IvorySQL Operator V4 适配 IvorySQL 4.5:特性 https://github.com/IvorySQL/ivory-operator/pull/79[#79] +1. 在aarch64平台上缺少依赖库libcrypt。 +2. p执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 +3. 文档:修复一些错别字。 +4. 文档:修复安装部分的文档错误。 +5. 文档:更新社区贡献流程。 == 源代码 @@ -59,23 +74,29 @@ IvorySQL主要包含2个代码仓库: == 贡献人员 以下个人(按姓氏排序)作为补丁作者、提交者、审查者、测试者或问题报告者为此版本做出了贡献。 -- Cary Huang -- Denis Lussier -- Flyingbeecd +- caffiendo +- Cédric Villemain +- flyingbeecd - Grant Zhou +- huchangqiqi +- Pedro Lopez +- RRRRhl +- shangwei007 +- tiankongbuqi +- Yasir Hussain Shah +- 初少林 +- 冯若航 - 高雪玉 +- 李苑 +- 牛世继 - 矫顺田 -- 纪虎林 +- 类延良 - 梁翔宇 - 吕新杰 -- 牛世继 - 潘振浩 - 石卓妍 - 隋戈 - 陶郑 -- 王康 -- 王守波 -- 杨世华 - 严少安 -- 赵法威 -- 邹仁利 \ No newline at end of file +- 杨世华 +- 赵法威 \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.6/10.adoc b/CN/modules/ROOT/pages/v4.6/10.adoc index 49b6cb66..daf9c22d 100644 --- a/CN/modules/ROOT/pages/v4.6/10.adoc +++ b/CN/modules/ROOT/pages/v4.6/10.adoc @@ -448,7 +448,7 @@ $ createdb orcl $ psql -psql (17.5) +psql (17.6) Type "help" for help. @@ -477,7 +477,7 @@ ivorysql=# ``` $ psql orcl -psql (17.5) +psql (17.6) Type "help" for help. diff --git a/CN/modules/ROOT/pages/v4.6/12.adoc b/CN/modules/ROOT/pages/v4.6/12.adoc index 863cfafc..6597e1c1 100644 --- a/CN/modules/ROOT/pages/v4.6/12.adoc +++ b/CN/modules/ROOT/pages/v4.6/12.adoc @@ -23,7 +23,7 @@ HNSW (Hierarchical Navigating Small World) 是一种基于图的索引算法, == 安装 [TIP] ==== -环境中已经安装了IvorySQL4.5及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4 +环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4 ==== === 源码安装 @@ -49,7 +49,7 @@ sudo --preserve-env=PG_CONFIG make install ** 创建pgvector扩展 ``` [ivorysql@localhost ivorysql-4]$ psql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# create extension vector; diff --git a/CN/modules/ROOT/pages/v4.6/2.adoc b/CN/modules/ROOT/pages/v4.6/2.adoc index aa12fc04..004eee61 100644 --- a/CN/modules/ROOT/pages/v4.6/2.adoc +++ b/CN/modules/ROOT/pages/v4.6/2.adoc @@ -69,16 +69,16 @@ IvorySQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS) == 与Oracle的兼容性 -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/14[ivorysql框架设计] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/15[GUC框架] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/16[大小写转换] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/17[双模式设计] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/18[兼容Oracle like] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/19[兼容Oracle匿名块] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/20[兼容Oracle函数与存储过程] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/21[内置数据类型与内置函数] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/22[新增Oracle兼容模式的端口与IP] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/26[XML函数] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/27[兼容Oracle sequence] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/28[包] -* https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/29[不可见列] \ No newline at end of file +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/14[ivorysql框架设计] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/15[GUC框架] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/16[大小写转换] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/17[双模式设计] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/18[兼容Oracle like] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/19[兼容Oracle匿名块] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/20[兼容Oracle函数与存储过程] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/21[内置数据类型与内置函数] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/22[新增Oracle兼容模式的端口与IP] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/26[XML函数] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/27[兼容Oracle sequence] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/28[包] +* https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/29[不可见列] \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.6/23.adoc b/CN/modules/ROOT/pages/v4.6/23.adoc index ec3f938a..0d3310e8 100644 --- a/CN/modules/ROOT/pages/v4.6/23.adoc +++ b/CN/modules/ROOT/pages/v4.6/23.adoc @@ -29,7 +29,7 @@ IvorySQL由一个核心开发团队维护,该团队拥有对GitHub上的IvoryS == **贡献者指南** -在贡献之前,我们需要了解下IvorySQL目前的版本以及文档的版本。目前,我们维护着4.5等版本,我们的版本紧跟PG的更新步伐,贡献之前请更新至最新版本。之后我们需要细心浏览一下贡献的样式风格,熟悉代码贡献风格、提Issue样式、拉取PR标题样式、代码注释样式、文档贡献样式、文章贡献样式,这可以帮助您尽快成为IvorySQL的贡献者奥~。 +在贡献之前,我们需要了解下IvorySQL目前的版本以及文档的版本。目前,我们维护着4.6等版本,我们的版本紧跟PG的更新步伐,贡献之前请更新至最新版本。之后我们需要细心浏览一下贡献的样式风格,熟悉代码贡献风格、提Issue样式、拉取PR标题样式、代码注释样式、文档贡献样式、文章贡献样式,这可以帮助您尽快成为IvorySQL的贡献者奥~。 === 贡献前的准备 diff --git a/CN/modules/ROOT/pages/v4.6/3.adoc b/CN/modules/ROOT/pages/v4.6/3.adoc index bef42daa..4f67d6ac 100644 --- a/CN/modules/ROOT/pages/v4.6/3.adoc +++ b/CN/modules/ROOT/pages/v4.6/3.adoc @@ -51,7 +51,7 @@ gpgcheck=0 ``` 保存退出后,安装IvorySQL4 ``` -$ sudo dnf install -y ivorysql4-4.5 +$ sudo dnf install -y ivorysql4-4.6 ``` 正确安装后,数据库将被安装在/usr/ivory-4/文件夹内 @@ -108,19 +108,19 @@ ivorysql 3238 1551 0 20:35 pts/0 00:00:00 grep --color=auto postgres ** 从Docker Hub上获取IvorySQL镜像 ``` -$ docker pull ivorysql/ivorysql:4.5-ubi8 +$ docker pull ivorysql/ivorysql:4.6-ubi8 ``` ** 运行IvorySQL ``` -$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.5-ubi8 +$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.6-ubi8 ``` ** 查看IvorySQL容器运行是否成功 ``` $ docker ps | grep ivorysql CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -6faa2d0ed705 ivorysql:4.5-ubi8 "docker-entrypoint.s…" 50 seconds ago Up 49 seconds 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql +6faa2d0ed705 ivorysql:4.6-ubi8 "docker-entrypoint.s…" 50 seconds ago Up 49 seconds 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql ``` == 数据库连接 @@ -128,7 +128,7 @@ CONTAINER ID IMAGE COMMAND CREATED ST psql连接数据库: ``` $ psql -d -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# @@ -141,4 +141,4 @@ TIP: Docker运行IvorySQL时,需要添加额外参数,如 psql -d ivorysql - 现在可以开始使用IvorySQL啦!就是这么简单! -想要获得更多安装方式,请参考xref:v4.5/6.adoc[安装指南] +想要获得更多安装方式,请参考xref:v4.6/6.adoc[安装指南] diff --git a/CN/modules/ROOT/pages/v4.6/6.adoc b/CN/modules/ROOT/pages/v4.6/6.adoc index a1faf1f3..f75461de 100644 --- a/CN/modules/ROOT/pages/v4.6/6.adoc +++ b/CN/modules/ROOT/pages/v4.6/6.adoc @@ -14,7 +14,7 @@ IvorySQL安装方式包括以下5种: - <<源码安装>> - <> -本章将详细介绍每种方式的安装、运行及卸载过程。想要更快获得IvorySQL,请参阅xref:v4.5/3.adoc#快速开始[快速开始]。 +本章将详细介绍每种方式的安装、运行及卸载过程。想要更快获得IvorySQL,请参阅xref:v4.6/3.adoc#快速开始[快速开始]。 同样,安装前请先创建一个用户,并赋予其root权限,安装、使用和卸载均以该用户执行。这里以ivorysql用户为例。 @@ -32,7 +32,7 @@ gpgcheck=0 ``` 保存退出后,安装IvorySQL4 ``` -$ sudo dnf install -y ivorysql4-4.5 +$ sudo dnf install -y ivorysql4-4.6 ``` [[docker安装]] @@ -40,12 +40,12 @@ $ sudo dnf install -y ivorysql4-4.5 ** 从Docker Hub上获取IvorySQL镜像 ``` -$ docker pull ivorysql/ivorysql:4.5-ubi8 +$ docker pull ivorysql/ivorysql:4.6-ubi8 ``` ** 运行IvorySQL ``` -$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.5-ubi8 +$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.6-ubi8 ``` -e参数说明 |==== @@ -73,7 +73,7 @@ $ sudo dnf install -y lz4 libicu libxslt python3 ``` ** 获取rpm包 ``` -$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/IvorySQL-4.5-a50789d-20250304.x86_64.rpm +$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.6/IvorySQL-4.6-a50789d-20250304.x86_64.rpm ``` ** 安装rpm包 @@ -138,12 +138,12 @@ $ sudo apt -y install pkg-config libreadline-dev libicu-dev libldap2-dev uuid-de ** 获取deb包 ``` -$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/IvorySQL-4.5-a50789d-20250304.amd64.deb +$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.6/IvorySQL-4.6-a50789d-20250304.amd64.deb ``` ** 安装deb包 ``` -$ sudo dpkg -i IvorySQL-4.5-a50789d-20250304.amd64.deb +$ sudo dpkg -i IvorySQL-4.6-a50789d-20250304.amd64.deb ``` 数据库将被安装在/usr/ivory-4/路径下。 @@ -207,7 +207,7 @@ ivorysql 130445 130274 0 02:45 pts/1 00:00:00 grep --color=auto postgres psql连接数据库: ``` $ psql -d -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# @@ -231,7 +231,7 @@ TIP: Docker运行IvorySQL时,需要添加额外参数,参考:psql -d ivory 执行以下命令依次卸载: ``` -$ sudo dnf remove -y ivorysql4-4.5 +$ sudo dnf remove -y ivorysql4-4.6 ``` === docker安装的卸载 @@ -240,7 +240,7 @@ $ sudo dnf remove -y ivorysql4-4.5 ``` $ docker stop ivorysql $ docker rm ivorysql -$ docker rmi ivorysql/ivorysql:4.5-ubi8 +$ docker rmi ivorysql/ivorysql:4.6-ubi8 ``` === rpm安装的卸载 @@ -264,6 +264,6 @@ $ sudo rm -rf /usr/ivory-4/ 执行以下命令卸载数据库并清理文件夹: ``` -$ sudo dpkg -P IvorySQL-4.5 +$ sudo dpkg -P IvorySQL-4.6 $ sudo rm -rf /usr/ivory-4/ ``` diff --git a/CN/modules/ROOT/pages/v4.6/7.adoc b/CN/modules/ROOT/pages/v4.6/7.adoc index 359291e7..e3e4fc90 100644 --- a/CN/modules/ROOT/pages/v4.6/7.adoc +++ b/CN/modules/ROOT/pages/v4.6/7.adoc @@ -8,9 +8,9 @@ == 主节点 === 安装并启动数据库 -yum源快速安装数据库,请参考xref:v4.5/3.adoc[快速安装]。 +yum源快速安装数据库,请参考xref:v4.6/3.adoc[快速安装]。 -想要获取更多安装方式,请参考xref:v4.5/6.adoc#安装指南[安装指南]。 +想要获取更多安装方式,请参考xref:v4.6/6.adoc#安装指南[安装指南]。 [NOTE] 主节点数据库需要安装并**启动** @@ -56,9 +56,9 @@ $ pg_ctl restart == 备节点 === 安装数据库 -Yum源快速安装数据库,请参考xref:v4.5/3.adoc#快速安装[快速安装]。 +Yum源快速安装数据库,请参考xref:v4.6/3.adoc#快速安装[快速安装]。 -想要获取更多安装方式,请参考xref:v4.5/6.adoc#安装指南[安装指南]。 +想要获取更多安装方式,请参考xref:v4.6/6.adoc#安装指南[安装指南]。 [NOTE] 备节点数据库只需要安装,**不需要启动** @@ -118,7 +118,7 @@ ivorysql 6567 6139 0 21:54 ? 00:00:00 postgres: walreceiver streaming 在主节点上psql连接数据库,并查看集群状态: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# select * from pg_stat_replication; @@ -139,7 +139,7 @@ xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | 例如,在主节点创建一个新的数据库test,并在主节点进行查询: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# create database test; @@ -159,7 +159,7 @@ ivorysql=# \l 在备节点查询: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# \l diff --git a/CN/modules/ROOT/pages/v4.6/8.adoc b/CN/modules/ROOT/pages/v4.6/8.adoc index e1a1723b..b476e835 100644 --- a/CN/modules/ROOT/pages/v4.6/8.adoc +++ b/CN/modules/ROOT/pages/v4.6/8.adoc @@ -1973,7 +1973,7 @@ SELECT concat_lower_or_upper('Hello', 'World', uppercase => true); **详见:** -- [GUC变量](https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/v4.5/15) +- [GUC变量](https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/v4.6/15) === 更改表 diff --git a/CN/modules/ROOT/pages/v4.6/9.adoc b/CN/modules/ROOT/pages/v4.6/9.adoc index 6171dfb8..592641f3 100644 --- a/CN/modules/ROOT/pages/v4.6/9.adoc +++ b/CN/modules/ROOT/pages/v4.6/9.adoc @@ -99,7 +99,7 @@ pg_upgrade 工具可以支持IvorySQL跨版本的就地升级。 升级可以在 == 管理IvorySQL版本 -IvorySQL基于PostgreSQL开发,版本更新频率与PostgreSQL版本更新频率保持一致,每年更新一个大版本,每季度更新一个小版本。IvorySQL目前发布的版本有1.0到4.5,分别基于PostgreSQL 14.0到17.5进行开发,最新版本为IvorySQL 4.5,基于PostgreSQL 17.5进行开发。IvorySQL 的所有版本全部都做到了向下兼容。相关版本特性可以查看 https://www.ivorysql.org/zh-CN/releases-page[官网]。 +IvorySQL基于PostgreSQL开发,版本更新频率与PostgreSQL版本更新频率保持一致,每年更新一个大版本,每季度更新一个小版本。IvorySQL目前发布的版本有1.0到4.6,分别基于PostgreSQL 14.0到17.6进行开发,最新版本为IvorySQL 4.6,基于PostgreSQL 17.6进行开发。IvorySQL 的所有版本全部都做到了向下兼容。相关版本特性可以查看 https://www.ivorysql.org/zh-CN/releases-page[官网]。 == 管理IvorySQL数据库访问 @@ -933,7 +933,7 @@ WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2 ORDER BY t1.fivethous; QUERY PLAN -------------------------------------------------------------------​-------------------------------------------------------------------​------ - Sort (cost=717.34..717.59 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1) + Sort (cost=717.34..717.69 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1) Sort Key: t1.fivethous Sort Method: quicksort Memory: 77kB -> Hash Join (cost=230.47..713.98 rows=101 width=488) (actual time=0.711..7.427 rows=100 loops=1) @@ -1051,7 +1051,7 @@ ROLLBACK; EXPLAIN UPDATE parent SET f2 = f2 + 1 WHERE f1 = 101; QUERY PLAN -------------------------------------------------------------------​---------------- - Update on parent (cost=0.00..24.53 rows=4 width=14) + Update on parent (cost=0.00..24.63 rows=4 width=14) Update on parent Update on child1 Update on child2 diff --git a/CN/modules/ROOT/pages/v4.6/welcome.adoc b/CN/modules/ROOT/pages/v4.6/welcome.adoc index 28affd8e..c7e7f1b5 100644 --- a/CN/modules/ROOT/pages/v4.6/welcome.adoc +++ b/CN/modules/ROOT/pages/v4.6/welcome.adoc @@ -15,4 +15,4 @@ IvorySQL 项目是瀚高软件提出的一个开源项目,旨在将 Oracle 兼 IvorySQL 开源并且可以免费使用,如果您有任何建议请联系 support@ivorysql.org == 文档下载 -https://docs.ivorysql.org/cn/ivorysql-doc/v4.5/ivorysql.pdf[IvorySQL v4.5 pdf 文档] \ No newline at end of file +https://docs.ivorysql.org/cn/ivorysql-doc/v4.6/ivorysql.pdf[IvorySQL v4.6 pdf 文档] \ No newline at end of file diff --git a/EN/antora.yml b/EN/antora.yml index ec9b2b8e..f4eabc24 100644 --- a/EN/antora.yml +++ b/EN/antora.yml @@ -1,7 +1,7 @@ name: ivorysql-doc title: IvorySQL -version: v4.5 -start_page: v4.5/welcome.adoc +version: v4.6 +start_page: v4.6/welcome.adoc asciidoc: attributes: source-language: asciidoc@ diff --git a/EN/modules/ROOT/pages/v4.6/1.adoc b/EN/modules/ROOT/pages/v4.6/1.adoc index 02cdd83a..6f93b01e 100644 --- a/EN/modules/ROOT/pages/v4.6/1.adoc +++ b/EN/modules/ROOT/pages/v4.6/1.adoc @@ -5,43 +5,59 @@ == Version Overview -[**Release date: June 04, 2025**] +[**Release date: Sept 10, 2025**] -IvorySQL 4.5, based on PostgreSQL 17.5 and includes a variety of bug fixes. For a comprehensive list of updates, please visit our https://docs.ivorysql.org/[documentation site]. +IvorySQL 4.6, based on PostgreSQL 17.6 and includes a variety of bug fixes. For a comprehensive list of updates, please visit our https://docs.ivorysql.org/[documentation site]. == Enhancements & Fixed Issue -- PostgreSQL 17.5 Enhancements +- PostgreSQL 17.6 Enhancements -1. Avoid one-byte buffer overread when examining invalidly-encoded strings that are claimed to be in GB18030 encoding. -2. Handle self-referential foreign keys on partitioned tables correctly. -3. Avoid data loss when merging compressed BRIN summaries in brin_bloom_union(). -4. Correctly process references to outer CTE names that appear within a WITH clause attached to an INSERT/UPDATE/DELETE/MERGE command that's inside WITH. -5. Fix ALTER TABLE ADD COLUMN to correctly handle the case of a domain type that has a default. +1. Tighten security checks in planner estimation functions. +2. Prevent pg_dump scripts from being used to attack the user running the restore. +3. Convert newlines to spaces in names included in comments in pg_dump output. +4. Fix incorrect distance calculation in BRIN numeric_minmax_multi_ops support function. +5. Avoid regression in the size of XML input that we will accept. + -For further details, visit https://www.postgresql.org/docs/release/17.5/[PostgreSQL’s release notes]. +For further details, visit https://www.postgresql.org/docs/release/17.6/[PostgreSQL’s release notes]. -- IvorySQL 4.5 +- IvorySQL 4.6 New Features -1. MIPS Packaging for All Platforms: Feature https://github.com/IvorySQL/IvorySQL/issues/736[#736] +1. Upgrade to PG 17.6 kernel + +2. MongoDB-compatible solution ++ +Provide a MongoDB-compatible solution using FerretDB and DocumentDB. + +3. LoongArch Packaging for All Platforms + -Provides multi-platform media packages for MIPS architecture, supporting both domestic and international mainstream operating systems, including Red Hat, Debian, Kylin, UOS, and NSAR OS, etc. +Provides multi-platform media packages for LoongArch architecture, supporting both domestic and international mainstream operating systems, including Red Hat, Debian, Kylin, UOS, and NSAR OS, etc. It also supports x86, ARM, and MIPS architectures. -2. IvorySQL Online trail: Feature https://github.com/IvorySQL/ivorysql-wasm/issues/1[#1] +4. IvorySQL Online trail + -Provide users with a web-based platform to experience IvorySQL V4.5 in an online environment, enabling database interaction directly through a browser interface. +Provide users with a web-based platform to experience IvorySQL V4.6 in an online environment, enabling database interaction directly through a browser interface. -3. Add code of conduct: Feature https://github.com/IvorySQL/IvorySQL/issues/808[#808] +5. Containerized Deployment Support (Docker Swarm) ++ +Supports deployment of standalone IvorySQL databases and high-availability clusters in Docker Swarm environments. -4. Update the community contribution guide: Feature https://github.com/IvorySQL/ivorysql_docs/pull/121[#121] +6. Containerized Deployment Support (Kubernetes) ++ +Supports deployment of standalone IvorySQL databases and high-availability clusters on Kubernetes (K8S) using Helm. -5. Automate Documentation Build and Website Update via Pull Requests: Feature https://github.com/IvorySQL/ivorysql_docs/issues/115[#115] +7. https://github.com/IvorySQL/ivory-cloud/releases/tag/ivyc_4.0[IvorySQL Cloud v4.0] released. ++ +The IvorySQL Cloud platform currently supports subscription management for IvorySQL v4 databases, as well as comprehensive management of its surrounding ecosystem. -6. Enhanced Contributor Workflow: Self-Assign Issues by using the '/assign' command: Feature https://github.com/IvorySQL/ivorysql_docs/issues/109[#109] +- IvorySQL 4.6 Fixed Issues -7. IvorySQL Operator V4 has been adapted to support IvorySQL 4.5, with upgrades to system component versions and database extension versions : Feature https://github.com/IvorySQL/ivory-operator/pull/79[#79] +1. Missing libcrypt on aarch64 platform. +2. prefix test_ extension are wrongly compiled and installed while exec make and make install. +3. Doc:fix some typos. +4. Doc:Fix document errors in the installation section. +5. Doc:Update the community contribution process. == Source Code @@ -54,23 +70,29 @@ IvorySQL's development is maintained across two main repositories: The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues. -* Cary Huang -* Denis Lussier +* caffiendo +* Cédric Villemain * Fawei Zhao -* Flyingbeecd +* flyingbeecd * Ge Sui * Grant Zhou -* Hulin Ji -* Hope Gao -* Lily Wang -* Renli Zou +* huchangqiqi +* Pedro Lopez +* RRRRhl +* Ruohang Feng +* shangwei007 * Shawn Yan +* Shaolin Chu * Shihua Yang * Shiji Niu -* Shoubo Wang * Shuntian Jiao +* tiankongbuqi * Xiangyu Liang * Xinjie Lv +* Xueyu Gao +* Yanliang Lei +* Yasir Hussain Shah +* Yuan Li * Zheng Tao * Zhenhao Pan * Zhuoyan Shi \ No newline at end of file diff --git a/EN/modules/ROOT/pages/v4.6/10.adoc b/EN/modules/ROOT/pages/v4.6/10.adoc index 0a5ee555..3fa82c1a 100644 --- a/EN/modules/ROOT/pages/v4.6/10.adoc +++ b/EN/modules/ROOT/pages/v4.6/10.adoc @@ -459,7 +459,7 @@ $ createdb orcl $ psql -psql (17.5) +psql (17.6) Type "help" for help. @@ -488,7 +488,7 @@ Create SH, HR, SCOTT users: ``` $ psql orcl -psql (17.5) +psql (17.6) Type "help" for help. diff --git a/EN/modules/ROOT/pages/v4.6/12.adoc b/EN/modules/ROOT/pages/v4.6/12.adoc index a0f1ca5c..bc8fa8b1 100644 --- a/EN/modules/ROOT/pages/v4.6/12.adoc +++ b/EN/modules/ROOT/pages/v4.6/12.adoc @@ -26,7 +26,7 @@ HNSW (Hierarchical Navigating Small World) is a graph-based indexing algorithm c == Installation [TIP] ==== -The IvorySQL 4.5(above version) has been installed in the environment, and the installation path is /usr/local/ivorysql/ivorysql-4 +The IvorySQL 4.6(above version) has been installed in the environment, and the installation path is /usr/local/ivorysql/ivorysql-4 ==== === Source Code Installation @@ -52,7 +52,7 @@ sudo --preserve-env=PG_CONFIG make install ** Create pgvector extension ``` [ivorysql@localhost ivorysql-4]$ psql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# create extension vector; diff --git a/EN/modules/ROOT/pages/v4.6/2.adoc b/EN/modules/ROOT/pages/v4.6/2.adoc index 4a45da36..fca4a2e3 100644 --- a/EN/modules/ROOT/pages/v4.6/2.adoc +++ b/EN/modules/ROOT/pages/v4.6/2.adoc @@ -63,16 +63,16 @@ IvorySQL is a powerful open source object-relational database management system == Compatibility with Oracle -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/14[1. Ivorysql frame design] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/15[2. GUC Framework] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/16[3. Case conversion] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/17[4. Dual-mode design] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/18[5. Compatible with Oracle like] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/19[6. Compatible with Oracle anonymous block] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/20[7. Compatible with Oracle functions and stored procedures] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/21[8. Built-in data types and built-in functions] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/22[9. Added Oracle compatibility mode ports and IP] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/26[10. XML Function] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/27[11. Compatible with Oracle sequence] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/28[12. Package] -* https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/29[13. Invisible Columns] \ No newline at end of file +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/14[1. Ivorysql frame design] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/15[2. GUC Framework] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/16[3. Case conversion] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/17[4. Dual-mode design] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/18[5. Compatible with Oracle like] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/19[6. Compatible with Oracle anonymous block] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/20[7. Compatible with Oracle functions and stored procedures] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/21[8. Built-in data types and built-in functions] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/22[9. Added Oracle compatibility mode ports and IP] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/26[10. XML Function] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/27[11. Compatible with Oracle sequence] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/28[12. Package] +* https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/29[13. Invisible Columns] \ No newline at end of file diff --git a/EN/modules/ROOT/pages/v4.6/23.adoc b/EN/modules/ROOT/pages/v4.6/23.adoc index 6a3e859c..8b916d1e 100644 --- a/EN/modules/ROOT/pages/v4.6/23.adoc +++ b/EN/modules/ROOT/pages/v4.6/23.adoc @@ -29,7 +29,7 @@ Our team is a continuously open team, focusing on parts of IvorySQL. In our team == **Contributor's Guide** -Before contributing, we need to know the current version of IvorySQL and the version of the document.At present, we maintain versions after version *4.5*. Our version follows the update pace of PG. Please update to the latest version before contributing. After that, we need to read the format requirements carefully and be familiar with code format, code comment format, issue format, pull PR title format, document contribution format, and article contribution format. These can help you become a contributor of IvorySQL as soon as possible. +Before contributing, we need to know the current version of IvorySQL and the version of the document.At present, we maintain versions after version *4.6*. Our version follows the update pace of PG. Please update to the latest version before contributing. After that, we need to read the format requirements carefully and be familiar with code format, code comment format, issue format, pull PR title format, document contribution format, and article contribution format. These can help you become a contributor of IvorySQL as soon as possible. === Preparation before Contribution diff --git a/EN/modules/ROOT/pages/v4.6/3.adoc b/EN/modules/ROOT/pages/v4.6/3.adoc index 3a8ee5f1..cc61c002 100644 --- a/EN/modules/ROOT/pages/v4.6/3.adoc +++ b/EN/modules/ROOT/pages/v4.6/3.adoc @@ -50,7 +50,7 @@ gpgcheck=0 ``` After saving and exiting, you can install IvorySQL 4 with the following steps ``` -$ sudo dnf install -y ivorysql4-4.5 +$ sudo dnf install -y ivorysql4-4.6 ``` [[setting-environment-variables]] @@ -105,19 +105,19 @@ ivorysql 3238 1551 0 20:35 pts/0 00:00:00 grep --color=auto postgres ** Get IvorySQL image from Docker Hub ``` -$ docker pull ivorysql/ivorysql:4.5-ubi8 +$ docker pull ivorysql/ivorysql:4.6-ubi8 ``` ** Running IvorySQL ``` -$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.5-ubi8 +$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.6-ubi8 ``` ** Check if the IvorySQL container is running successfully ``` $ docker ps | grep ivorysql CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -6faa2d0ed705 ivorysql:4.5-ubi8 "docker-entrypoint.s…" 50 seconds ago Up 49 seconds 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql +6faa2d0ed705 ivorysql:4.6-ubi8 "docker-entrypoint.s…" 50 seconds ago Up 49 seconds 5866/tcp, 0.0.0.0:5434->5432/tcp ivorysql ``` == Connecting to IvorySQL @@ -125,7 +125,7 @@ CONTAINER ID IMAGE COMMAND CREATED ST Connect to IovrySQL via psql: ``` $ psql -d -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# @@ -138,4 +138,4 @@ TIP: When running IvorySQL in Docker, additional parameters need to be added, li Now you can start your journey of IvorySQL! Enjoy! -To explore additional installation methods, please refer to the xref:v4.5/6.adoc[Installation]. +To explore additional installation methods, please refer to the xref:v4.6/6.adoc[Installation]. diff --git a/EN/modules/ROOT/pages/v4.6/6.adoc b/EN/modules/ROOT/pages/v4.6/6.adoc index cebfda7b..66d9da28 100644 --- a/EN/modules/ROOT/pages/v4.6/6.adoc +++ b/EN/modules/ROOT/pages/v4.6/6.adoc @@ -15,7 +15,7 @@ The installation methods for IvorySQL include the following five: - <> -This chapter will provide detailed instructions on the installation, execution, and uninstallation processes for each method. For a quicker access to IvorySQL, please refer to xref:v4.5/3.adoc#quick-installation[Quick installation]. +This chapter will provide detailed instructions on the installation, execution, and uninstallation processes for each method. For a quicker access to IvorySQL, please refer to xref:v4.6/3.adoc#quick-installation[Quick installation]. Before getting started, please create an user and grant it root privileges. All the installation steps will be performed by this user. Here we just name it 'ivorysql'. @@ -33,7 +33,7 @@ gpgcheck=0 ``` After saving and exiting, you can install IvorySQL 4 with the following steps ``` -$ sudo dnf install -y ivorysql4-4.5 +$ sudo dnf install -y ivorysql4-4.6 ``` [[Docker-installation]] @@ -41,12 +41,12 @@ $ sudo dnf install -y ivorysql4-4.5 ** Get IvorySQL image from Docker Hub ``` -$ docker pull ivorysql/ivorysql:4.5-ubi8 +$ docker pull ivorysql/ivorysql:4.6-ubi8 ``` ** Run IvorySQL ``` -$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.5-ubi8 +$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:4.6-ubi8 ``` -e Parameter Explanation |==== @@ -74,7 +74,7 @@ $ sudo dnf install -y lz4 libicu libxslt python3 ``` ** Getting rpms ``` -$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/IvorySQL-4.5-a50789d-20250304.x86_64.rpm +$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.6/IvorySQL-4.6-a50789d-20250304.x86_64.rpm ``` ** Installing rpms @@ -139,12 +139,12 @@ $ sudo apt -y install pkg-config libreadline-dev libicu-dev libldap2-dev uuid-de ** Getting deb ``` -$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.5/IvorySQL-4.5-a50789d-20250304.amd64.deb +$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_4.6/IvorySQL-4.6-a50789d-20250304.amd64.deb ``` ** Installing deb ``` -$ sudo dpkg -i IvorySQL-4.5-a50789d-20250304.amd64.deb +$ sudo dpkg -i IvorySQL-4.6-a50789d-20250304.amd64.deb ``` IvorySQL will then be installed in the /usr/ivory-4/ directory. @@ -213,7 +213,7 @@ ivorysql 130445 130274 0 02:45 pts/1 00:00:00 grep --color=auto postgres Connect to IovrySQL via psql: ``` $ psql -d -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# @@ -237,7 +237,7 @@ No matter which method is used for the uninstallation, make sure the service has Run the following commands in turn and clean the residual folders: ``` -$ sudo dnf remove -y ivorysql4-4.5 +$ sudo dnf remove -y ivorysql4-4.6 ``` === Uninstallation for docker installation @@ -246,7 +246,7 @@ Stop IvorySQL container and remove IvorySQL image: ``` $ docker stop ivorysql $ docker rm ivorysql -$ docker rmi ivorysql/ivorysql:4.5-ubi8 +$ docker rmi ivorysql/ivorysql:4.6-ubi8 ``` === Uninstallation for rpm installation @@ -254,7 +254,7 @@ $ docker rmi ivorysql/ivorysql:4.5-ubi8 Uninstall the rpms and clear the residual folders: ``` $ sudo yum remove --disablerepo=* ivorysql4\* -$ sudo rm -rf IvorySQL-4.5 +$ sudo rm -rf IvorySQL-4.6 ``` === Uninstallation for source code installation @@ -263,13 +263,13 @@ Uninstall the database system, then clear the residual folders: ``` $ sudo make uninstall $ make clean -$ sudo rm -rf IvorySQL-4.5 +$ sudo rm -rf IvorySQL-4.6 ``` === Uninstallation for deb installation Uninstall the database system, then clear the residual folders: ``` -$ sudo dpkg -P IvorySQL-4.5 -$ sudo rm -rf IvorySQL-4.5 +$ sudo dpkg -P IvorySQL-4.6 +$ sudo rm -rf IvorySQL-4.6 ``` diff --git a/EN/modules/ROOT/pages/v4.6/7.adoc b/EN/modules/ROOT/pages/v4.6/7.adoc index b7358ffc..b82af15f 100644 --- a/EN/modules/ROOT/pages/v4.6/7.adoc +++ b/EN/modules/ROOT/pages/v4.6/7.adoc @@ -8,9 +8,9 @@ This chapter is a demo to show you how to build an IvorySQL cluster. Just take a == Primary node === Installing and start database -For quick database installation by yum, please refer to xref:v4.5/3.adoc#quick-installation[Quick installation]。 +For quick database installation by yum, please refer to xref:v4.6/3.adoc#quick-installation[Quick installation]。 -For more installation options, please refer to xref:v4.5/6.adoc#Installation[Installation]。 +For more installation options, please refer to xref:v4.6/6.adoc#Installation[Installation]。 [NOTE] The master node database needs to be installed and **started**. @@ -55,9 +55,9 @@ $ pg_ctl restart == Standby node === Installing database -For quick database installation by yum, please refer to xref:v4.5/3.adoc#quick-installation[Quick installation]。 +For quick database installation by yum, please refer to xref:v4.6/3.adoc#quick-installation[Quick installation]。 -For more installation options, please refer to xref:v4.5/6.adoc#Installation[Installation]。 +For more installation options, please refer to xref:v4.6/6.adoc#Installation[Installation]。 [NOTE] The standby node database only needs to be installed and **not started**. @@ -117,7 +117,7 @@ ivorysql 6567 6139 0 21:54 ? 00:00:00 postgres: walreceiver streaming On the primary node, connect to IvorySQL and show the status: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# select * from pg_stat_replication; @@ -141,7 +141,7 @@ All writing operations are performed on the primary node, while reading can be o Below is an example. Create a new database test on primary and query: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# create database test; @@ -161,7 +161,7 @@ ivorysql=# \l Query on the standby node: ``` $ psql -d ivorysql -psql (17.5) +psql (17.6) Type "help" for help. ivorysql=# \l diff --git a/EN/modules/ROOT/pages/v4.6/8.adoc b/EN/modules/ROOT/pages/v4.6/8.adoc index 5ef2e35b..a7fc7673 100644 --- a/EN/modules/ROOT/pages/v4.6/8.adoc +++ b/EN/modules/ROOT/pages/v4.6/8.adoc @@ -2092,7 +2092,7 @@ Named and mixed call notations currently cannot be used when calling an aggregat **Refer to:** -- [GUC Variables](https://docs.ivorysql.org/en/ivorysql-doc/v4.5/v4.5/15) +- [GUC Variables](https://docs.ivorysql.org/en/ivorysql-doc/v4.6/v4.6/15) === Changing tables diff --git a/EN/modules/ROOT/pages/v4.6/9.adoc b/EN/modules/ROOT/pages/v4.6/9.adoc index 7219a129..ba94f9e5 100644 --- a/EN/modules/ROOT/pages/v4.6/9.adoc +++ b/EN/modules/ROOT/pages/v4.6/9.adoc @@ -87,7 +87,7 @@ This upgrade method can be used with built-in logical replication tools and exte == Managing IvorySQL Versions -IvorySQL is based on PostgreSQL and is updated at the same frequency as PostgreSQL, with one major release per year and one minor release per quarter. IvorySQL 4.5 is based on PostgreSQL 17.5, and all versions of IvorySQL are backward compatible.The relevant version features can be viewed by looking at https://www.ivorysql.org/en/releases-page/[Official Website]。 +IvorySQL is based on PostgreSQL and is updated at the same frequency as PostgreSQL, with one major release per year and one minor release per quarter. IvorySQL 4.6 is based on PostgreSQL 17.6, and all versions of IvorySQL are backward compatible.The relevant version features can be viewed by looking at https://www.ivorysql.org/en/releases-page/[Official Website]。 == Managing IvorySQL database access @@ -898,7 +898,7 @@ WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2 ORDER BY t1.fivethous; QUERY PLAN -------------------------------------------------------------------​-------------------------------------------------------------------​------ - Sort (cost=717.34..717.59 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1) + Sort (cost=717.34..717.69 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1) Sort Key: t1.fivethous Sort Method: quicksort Memory: 77kB -> Hash Join (cost=230.47..713.98 rows=101 width=488) (actual time=0.711..7.427 rows=100 loops=1) @@ -1016,7 +1016,7 @@ When an `UPDATE` or `DELETE` command affects an inheritance hierarchy, the outpu EXPLAIN UPDATE parent SET f2 = f2 + 1 WHERE f1 = 101; QUERY PLAN -------------------------------------------------------------------​---------------- - Update on parent (cost=0.00..24.53 rows=4 width=14) + Update on parent (cost=0.00..24.63 rows=4 width=14) Update on parent Update on child1 Update on child2 diff --git a/EN/modules/ROOT/pages/v4.6/welcome.adoc b/EN/modules/ROOT/pages/v4.6/welcome.adoc index 0df78662..97a2f093 100644 --- a/EN/modules/ROOT/pages/v4.6/welcome.adoc +++ b/EN/modules/ROOT/pages/v4.6/welcome.adoc @@ -15,4 +15,4 @@ IvorySQL project is an open source project proposed by Highgo Software to add th It is Apache licensed Open Source and always free to use. Any comments please contact support@ivorysql.org == Docs Download -https://docs.ivorysql.org/en/ivorysql-doc/v4.5/ivorysql.pdf[IvorySQL v4.5 pdf documentation] +https://docs.ivorysql.org/en/ivorysql-doc/v4.6/ivorysql.pdf[IvorySQL v4.6 pdf documentation] diff --git a/README_zh.md b/README_zh.md index c9e1bf1a..7ece2aa2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -100,7 +100,7 @@ antora -v 然后耐心等待,当成功运行结束后,你就可以到../demo 中查看自己生成的网页了。 -检查之后,你就可以开始提交[PR](https://github.com/IvorySQL/ivorysql_docs/blob/v4.5/CN/modules/ROOT/pages/v4.5/32.adoc),感谢您对社区的贡献^ _ ^,我们会在审核过后,考虑是否更新网站。 +检查之后,你就可以开始提交[PR](https://github.com/IvorySQL/ivorysql_docs/blob/v4.6/CN/modules/ROOT/pages/v4.6/32.adoc),感谢您对社区的贡献^ _ ^,我们会在审核过后,考虑是否更新网站。 ## Autobuild From c35f4d49bb01c580f94e121d75bd3b936c9543e2 Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 10 Sep 2025 13:24:32 +0800 Subject: [PATCH 10/18] add containerization --- CN/modules/ROOT/nav.adoc | 3 + CN/modules/ROOT/pages/v4.6/37.adoc | 240 +++++++++++++++++++++++++++++ CN/modules/ROOT/pages/v4.6/38.adoc | 206 +++++++++++++++++++++++++ EN/modules/ROOT/nav.adoc | 3 + EN/modules/ROOT/pages/v4.6/37.adoc | 239 ++++++++++++++++++++++++++++ EN/modules/ROOT/pages/v4.6/38.adoc | 204 ++++++++++++++++++++++++ 6 files changed, 895 insertions(+) create mode 100644 CN/modules/ROOT/pages/v4.6/37.adoc create mode 100644 CN/modules/ROOT/pages/v4.6/38.adoc create mode 100644 EN/modules/ROOT/pages/v4.6/37.adoc create mode 100644 EN/modules/ROOT/pages/v4.6/38.adoc diff --git a/CN/modules/ROOT/nav.adoc b/CN/modules/ROOT/nav.adoc index 2ae0655c..d2a499b9 100644 --- a/CN/modules/ROOT/nav.adoc +++ b/CN/modules/ROOT/nav.adoc @@ -8,6 +8,9 @@ * IvorySQL高级 ** xref:v4.6/6.adoc[安装指南] ** xref:v4.6/7.adoc[集群搭建] +** 容器化指南 +*** xref:v4.6/37.adoc[K8S部署] +*** xref:v4.6/38.adoc[Docker Swarm & Docker Compose部署] ** xref:v4.6/8.adoc[开发者指南] ** xref:v4.6/9.adoc[运维管理指南] ** xref:v4.6/10.adoc[迁移指南] diff --git a/CN/modules/ROOT/pages/v4.6/37.adoc b/CN/modules/ROOT/pages/v4.6/37.adoc new file mode 100644 index 00000000..639042f0 --- /dev/null +++ b/CN/modules/ROOT/pages/v4.6/37.adoc @@ -0,0 +1,240 @@ + +:sectnums: +:sectnumlevels: 5 + += k8s部署单机容器和高可用集群 + +== 单机容器 +进入k8s集群的master节点上,创建名为ivorysql的namespace +``` +[root@k8s-master ~]# kubectl create ns ivorysql +``` + +下载最新docker_library代码 +``` +[root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git +``` + +进入单机目录 +``` +[root@k8s-master ~]# cd docker_library/k8s-cluster/single +[root@k8s-master single]# vim statefulset.yaml #根据个人环境自行修改statefulset中的pvc信息及数据库密码 +``` + +使用statefulset.yaml创建一个单机pod +``` +[root@k8s-master single]# kubectl apply -f statefulset.yaml +service/ivorysql-svc created +statefulset.apps/ivorysql created +``` + +等待pod创建成功 +``` +[root@k8s-master single]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-0 0/1 ContainerCreating 0 47s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 47s + +NAME READY AGE +statefulset.apps/ivorysql 0/1 47s +[root@k8s-master single]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-0 1/1 Running 0 2m39s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 2m39s + +NAME READY AGE +statefulset.apps/ivorysql 1/1 2m39s +``` + +psql连接IvorySQL的PG端口 +``` +[root@k8s-master single]# psql -U ivorysql -p 32106 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# exit +``` + +psql连接IvorySQL的Oracle端口 +``` +[root@k8s-master single]# psql -U ivorysql -p 31887 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) +``` + +卸载单机容器 +``` +[root@k8s-master single]# kubectl delete-f statefulset.yaml +``` + +== 高可用集群 + +进入k8s集群的master节点上,创建名为ivorysql的namespace +``` +[root@k8s-master ~]# kubectl create ns ivorysql +``` + +下载最新docker_library代码 +``` +[root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git +``` + +进入高可用集群目录 +``` +[root@k8s-master ~]# cd docker_library/k8s-cluster/ha-cluster/helm_charts +[root@k8s-master single]# vim values.yaml #根据个人环境自行values.yaml中的pvc信息及集群规模等信息,数据库密码查看templates/secret.yaml并自行修改。 +``` + +使用 https://helm.sh/docs/intro/install/[Helm] 命令部署高可用集群 +``` +[root@k8s-master helm_charts]# helm install ivorysql-ha-cluster -n ivorysql . +NAME: ivorysql-ha-cluster +LAST DEPLOYED: Wed Sep 10 09:45:36 2025 +NAMESPACE: ivorysql +STATUS: deployed +REVISION: 1 +TEST SUITE: None +[root@k8s-master helm_charts]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-patroni-hac-0 1/1 Running 0 42s +pod/ivorysql-patroni-hac-1 0/1 Running 0 18s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 42s +service/ivorysql-patroni-hac-config ClusterIP None 42s +service/ivorysql-patroni-hac-pods ClusterIP None 42s +service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 42s + +NAME READY AGE +statefulset.apps/ivorysql-patroni-hac 1/3 42s +``` + +等待所有pod均运行成功,集群部署成功 +``` +[root@k8s-master helm_charts]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-patroni-hac-0 1/1 Running 0 88s +pod/ivorysql-patroni-hac-1 1/1 Running 0 64s +pod/ivorysql-patroni-hac-2 1/1 Running 0 41s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 88s +service/ivorysql-patroni-hac-config ClusterIP None 88s +service/ivorysql-patroni-hac-pods ClusterIP None 88s +service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 88s +NAME READY AGE +statefulset.apps/ivorysql-patroni-hac 3/3 88s +``` + +使用psql连接集群主节点的PG、Oracle端口 +``` +[root@k8s-master helm_charts]# psql -U ivorysql -p 32391 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + f +(1 row) + +ivorysql=# exit +[root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + f +(1 row) + +ivorysql=# +``` + +使用psql连接集群备节点的PG、Oracle端口 +``` +[root@k8s-master helm_charts]# psql -U ivorysql -p 30111 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + t +(1 row) + +ivorysql=# exit + +[root@k8s-master helm_charts]# psql -U ivorysql -p 32654 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + t +(1 row) + +ivorysql=# +``` + +卸载高可用集群 +``` +[root@k8s-master helm_charts]# helm uninstall ivorysql-ha-cluster -n ivorysql +``` +删除PVC +``` +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-0 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-1 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-2 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-0 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-1 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-2 -n ivorysql +``` \ No newline at end of file diff --git a/CN/modules/ROOT/pages/v4.6/38.adoc b/CN/modules/ROOT/pages/v4.6/38.adoc new file mode 100644 index 00000000..97d944c2 --- /dev/null +++ b/CN/modules/ROOT/pages/v4.6/38.adoc @@ -0,0 +1,206 @@ + +:sectnums: +:sectnumlevels: 5 + += Docker Swarm & Docker Compose 部署IvorySQL高可用集群 + +准备三个网络互通的服务器,并搭建swarm集群。 +测试集群名称及对应ip地址如下: + +manager-node1: 192.168.21.205 + +manager-node2: 192.168.21.164 + +manager-node3: 192.168.21.51 + +``` +[root@manager-node1 docker-swarm]# docker node ls +ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION +y9d9wd9t2ncy4t9bvw6bg9sjs * manager-node1 Ready Active Reachable 26.1.4 +iv17o6m9t9e06vd9iu1o6damd manager-node2 Ready Active Leader 25.0.4 +vjnax76qj812mlvut6cv4qotl manager-node3 Ready Active Reachable 24.0.6 +``` + +== docker swarm搭建IvorySQL HA Cluster +下载源码 +``` +[root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git +[root@manager-node1 ~]# cd docker_library/docker-cluster/docker-swarm +``` + +部署一个三节点的etcd +``` +[root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-etcd.yml ivoryhac-etcd +Creating network ivoryhac-etcd_etcd-net +Creating service ivoryhac-etcd_etcd3 +Creating service ivoryhac-etcd_etcd1 +Creating service ivoryhac-etcd_etcd2 +[root@manager-node1 docker-swarm]# docker service ls +ID NAME MODE REPLICAS IMAGE PORTS +1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp +sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +``` + +部署IvorySQL高可用集群 +``` +[root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-ivypatroni.yml ivoryhac-patroni +Since --detach=false was not specified, tasks will be created in the background. +In a future release, --detach=false will become the default. +Creating service ivoryhac-patroni_ivypatroni1 +Creating service ivoryhac-patroni_ivypatroni2 +[root@manager-node1 docker-swarm]# docker service ls +ID NAME MODE REPLICAS IMAGE PORTS +1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp +sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +uzdvjq5j2gwt ivorysql-hac_ivypatroni1 replicated 1/1 ivorysql/docker-swarm-ha-cluster:4.6-4.0.6-ubi8 *:1521->1521/tcp, *:5866->5866/tcp +fr0m9chu3ce8 ivorysql-hac_ivypatroni2 replicated 1/1 ivorysql/docker-swarm-ha-cluster:4.6-4.0.6-ubi8 *:1522->1521/tcp, *:5867->5866/tcp +``` + +psql连接数据库的Oracle端口及PG端口 +``` +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# exit +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) +``` + +卸载IvorySQL集群 +``` +[root@manager-node1 ~] docker stack rm ivoryhac-patroni +[root@manager-node1 ~] docker stack rm ivoryhac-etcd +``` + +== docker compose搭建IvorySQL HA Cluster + +下载源码 +``` +[root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git +[root@manager-node1 ~]# cd docker_library/docker-cluster/docker-compose +``` +拷贝文件至其他服务器 + +将etcd和ivypatroni的docker-compose文件,分别拷贝到其他服务器上。 + +如测试服务器: + +192.168.21.205 存放etcd1+ivorypatroni1, + +192.168.21.164 存放etcd2+ivorypatroni2, + +192.168.21.51 存放etcd3+ivorypatroni3 + +部署一个三节点的etcd,以node1为例 +``` +[root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-etcd1.yml up -d +[+] Running 1/1 + ✔ Container etcd Started 0.1s + +``` +当所有节点均部署完成后,检查etcd集群状态 +``` +[root@manager-node1 docker-compose]# docker exec -it etcd etcdctl --write-out=table --endpoints="192.168.21.205:2379,192.168.21.164:2379,192.168.21.51:2379" endpoint status ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +| 192.168.21.205:2379 | 10574d87df892440 | 3.5.8 | 20 kB | true | false | 2 | 13 | 13 | | +| 192.168.21.164:2379 | a47a4fd720eb36e7 | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | +| 192.168.21.51:2379 | b76a77d78fdf886f | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +``` +部署IvorySQL高可用集群 + +在每个节点上,部署ivyhac服务 +以node1为例 +``` +[root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-ivypatroni_1.yml up -d +[+] Running 1/1 + ✔ Container ivyhac1 Started 0.1s +[root@manager-node1 docker-compose]# docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +736c0d188bdd ivorysql/docker-compose-ha-cluster:4.6-4.0.6-ubi8 "/bin/sh /docker-ent…" 18 seconds ago Up 17 seconds ivyhac1 +9d8e04e4f819 quay.io/coreos/etcd:v3.5.8 "/usr/local/bin/etcd" 24 minutes ago Up 24 minutes etcd + +``` +待所有节点部署完毕后,检查IvorySQL集群状态 +``` +[root@manager-node1 docker-compose]# docker exec -it ivyhac1 /bin/bash +[ivorysql@manager-node1 /]$ patronictl -c $PATRONICONF/patroni.yml list ++ Cluster: ivory-cluster (7548337408295624728) ------+----+-----------+ +| Member | Host | Role | State | TL | Lag in MB | ++-------------+----------------+---------+-----------+----+-----------+ +| ivypatroni1 | 192.168.21.205 | Leader | running | 1 | | +| ivypatroni2 | 192.168.21.164 | Replica | streaming | 1 | 0 | +| ivypatroni3 | 192.168.21.51 | Replica | streaming | 1 | 0 | ++-------------+----------------+---------+-----------+----+-----------+ + +``` +此时,一主两备集群搭建完成 +psql连接数据库的Oracle端口及PG端口 +``` +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# exit +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +``` + +卸载IvorySQL集群 +以node1为例 +``` +[root@manager-node1 ~] docker-compose -f ./docker-compose-ivypatroni_1.yml down +[root@manager-node1 ~] docker-compose -f ./docker-compose-etcd1.yml down +``` \ No newline at end of file diff --git a/EN/modules/ROOT/nav.adoc b/EN/modules/ROOT/nav.adoc index 515ed37e..4edb0c81 100644 --- a/EN/modules/ROOT/nav.adoc +++ b/EN/modules/ROOT/nav.adoc @@ -8,6 +8,9 @@ * IvorySQL Advanced Feature ** xref:v4.6/6.adoc[Installation] ** xref:v4.6/7.adoc[Building Cluster] +** Containerization +*** xref:v4.6/37.adoc[K8S] +*** xref:v4.6/38.adoc[Docker Swarm & Docker Compose] ** xref:v4.6/8.adoc[Developer] ** xref:v4.6/9.adoc[Operation Management] ** xref:v4.6/10.adoc[Migration] diff --git a/EN/modules/ROOT/pages/v4.6/37.adoc b/EN/modules/ROOT/pages/v4.6/37.adoc new file mode 100644 index 00000000..2e15ba35 --- /dev/null +++ b/EN/modules/ROOT/pages/v4.6/37.adoc @@ -0,0 +1,239 @@ + +:sectnums: +:sectnumlevels: 5 + += Deploying single-node containers and high-availability clusters on k8s + +== Single-node container +On the master node of the k8s cluster, create a namespace named ivorysql. +``` +[root@k8s-master ~]# kubectl create ns ivorysql +``` + +Download the latest docker_library code. +``` +[root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git +``` + +Enter the single-node directory +``` +[root@k8s-master ~]# cd docker_library/k8s-cluster/single +[root@k8s-master single]# vim statefulset.yaml #Modify the PVC information and database password in the StatefulSet according to your personal environment. +``` + +Use statefulset.yaml to create a single-node pod. +``` +[root@k8s-master single]# kubectl apply -f statefulset.yaml +service/ivorysql-svc created +statefulset.apps/ivorysql created +``` + +Wait for the single-node pod to be successfully created. +``` +[root@k8s-master single]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-0 0/1 ContainerCreating 0 47s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 47s + +NAME READY AGE +statefulset.apps/ivorysql 0/1 47s +[root@k8s-master single]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-0 1/1 Running 0 2m39s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-svc NodePort 10.108.178.236 5432:32106/TCP,1521:31887/TCP 2m39s + +NAME READY AGE +statefulset.apps/ivorysql 1/1 2m39s +``` + +Connect to IvorySQL's PostgreSQL Port Using psql +``` +[root@k8s-master single]# psql -U ivorysql -p 32106 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# exit +``` + +Connecting to IvorySQL's Oracle-Compatible Port Using psqlConnecting to IvorySQL's Oracle-Compatible Port Using psql +``` +[root@k8s-master single]# psql -U ivorysql -p 31887 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) +``` + +Uninstall Single-node container +``` +[root@k8s-master single]# kubectl delete-f statefulset.yaml +``` + +== High Availability Cluster + +Access the master node of the k8s cluster and create a namespace named ivorysql. +``` +[root@k8s-master ~]# kubectl create ns ivorysql +``` + +Download the latest docker_library code. +``` +[root@k8s-master ~]# git clone https://github.com/IvorySQL/docker_library.git +``` + +Enter the high-availability cluster directory. +``` +[root@k8s-master ~]# cd docker_library/k8s-cluster/ha-cluster/helm_charts +[root@k8s-master single]# vim values.yaml #Adjust the PVC settings, cluster size, and other configurations in values.yaml according to your environment. For the database password, check templates/secret.yaml and modify it as needed. +``` + +Deploy the high-availability cluster using https://helm.sh/docs/intro/install/[Helm] commands. +``` +[root@k8s-master helm_charts]# helm install ivorysql-ha-cluster -n ivorysql . +NAME: ivorysql-ha-cluster +LAST DEPLOYED: Wed Sep 10 09:45:36 2025 +NAMESPACE: ivorysql +STATUS: deployed +REVISION: 1 +TEST SUITE: None +[root@k8s-master helm_charts]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-patroni-hac-0 1/1 Running 0 42s +pod/ivorysql-patroni-hac-1 0/1 Running 0 18s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 42s +service/ivorysql-patroni-hac-config ClusterIP None 42s +service/ivorysql-patroni-hac-pods ClusterIP None 42s +service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 42s + +NAME READY AGE +statefulset.apps/ivorysql-patroni-hac 1/3 42s +``` + +Wait until all pods are running successfully, indicating the cluster deployment is complete. +``` +[root@k8s-master helm_charts]# kubectl get all -n ivorysql +NAME READY STATUS RESTARTS AGE +pod/ivorysql-patroni-hac-0 1/1 Running 0 88s +pod/ivorysql-patroni-hac-1 1/1 Running 0 64s +pod/ivorysql-patroni-hac-2 1/1 Running 0 41s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/ivorysql-patroni-hac NodePort 10.96.119.203 5432:32391/TCP,1521:32477/TCP 88s +service/ivorysql-patroni-hac-config ClusterIP None 88s +service/ivorysql-patroni-hac-pods ClusterIP None 88s +service/ivorysql-patroni-hac-repl NodePort 10.100.122.0 5432:30111/TCP,1521:32654/TCP 88s +NAME READY AGE +statefulset.apps/ivorysql-patroni-hac 3/3 88s +``` +Connect to the PostgreSQL and Oracle ports of the cluster's primary node using psql. +``` +[root@k8s-master helm_charts]# psql -U ivorysql -p 32391 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + f +(1 row) + +ivorysql=# exit +[root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + f +(1 row) + +ivorysql=# +``` + +Use psql to connect to the PostgreSQL and Oracle ports of the cluster's standby node. +``` +[root@k8s-master helm_charts]# psql -U ivorysql -p 30111 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + t +(1 row) + +ivorysql=# exit + +[root@k8s-master helm_charts]# psql -U ivorysql -p 32654 -h 127.0.0.1 -d ivorysql +Password for user ivorysql: + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# SELECT pg_is_in_recovery(); + pg_is_in_recovery +------------------- + t +(1 row) + +ivorysql=# +``` + +Uninstall high-availability cluster +``` +[root@k8s-master helm_charts]# helm uninstall ivorysql-ha-cluster -n ivorysql +``` +Remove PVC +``` +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-0 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-1 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc ivyhac-config-ivorysql-patroni-hac-2 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-0 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-1 -n ivorysql +[root@k8s-master helm_charts]# kubectl delete pvc pgdata-ivorysql-patroni-hac-2 -n ivorysql +``` \ No newline at end of file diff --git a/EN/modules/ROOT/pages/v4.6/38.adoc b/EN/modules/ROOT/pages/v4.6/38.adoc new file mode 100644 index 00000000..6177f104 --- /dev/null +++ b/EN/modules/ROOT/pages/v4.6/38.adoc @@ -0,0 +1,204 @@ + +:sectnums: +:sectnumlevels: 5 + += Docker Swarm & Docker Compose Deploying IvorySQL High Availability Cluster + +Prepare three servers with network connectivity and set up a Swarm cluster. +The test cluster names and corresponding IP addresses are as follows: + +manager-node1: 192.168.21.205 + +manager-node2: 192.168.21.164 + +manager-node3: 192.168.21.51 + +``` +[root@manager-node1 docker-swarm]# docker node ls +ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION +y9d9wd9t2ncy4t9bvw6bg9sjs * manager-node1 Ready Active Reachable 26.1.4 +iv17o6m9t9e06vd9iu1o6damd manager-node2 Ready Active Leader 25.0.4 +vjnax76qj812mlvut6cv4qotl manager-node3 Ready Active Reachable 24.0.6 +``` + +== Building IvorySQL HA Cluster using Docker Swarm +Download the source code +``` +[root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git +[root@manager-node1 ~]# cd docker_library/docker-cluster/docker-swarm +``` + +Deploy a three-node etcd cluster +``` +[root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-etcd.yml ivoryhac-etcd +Creating network ivoryhac-etcd_etcd-net +Creating service ivoryhac-etcd_etcd3 +Creating service ivoryhac-etcd_etcd1 +Creating service ivoryhac-etcd_etcd2 +[root@manager-node1 docker-swarm]# docker service ls +ID NAME MODE REPLICAS IMAGE PORTS +1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp +sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +``` + +Deploy an IvorySQL High Availability Cluster +``` +[root@manager-node1 docker-swarm]# docker stack deploy -c docker-swarm-ivypatroni.yml ivoryhac-patroni +Since --detach=false was not specified, tasks will be created in the background. +In a future release, --detach=false will become the default. +Creating service ivoryhac-patroni_ivypatroni1 +Creating service ivoryhac-patroni_ivypatroni2 +[root@manager-node1 docker-swarm]# docker service ls +ID NAME MODE REPLICAS IMAGE PORTS +1jst0mva8o5n ivoryhac-etcd_etcd1 replicated 1/1 quay.io/coreos/etcd:v3.5.8 *:2379-2380->2379-2380/tcp +sosag5017cis ivoryhac-etcd_etcd2 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +8twpgkzo2mnx ivoryhac-etcd_etcd3 replicated 1/1 quay.io/coreos/etcd:v3.5.8 +uzdvjq5j2gwt ivorysql-hac_ivypatroni1 replicated 1/1 ivorysql/docker-swarm-ha-cluster:4.6-4.0.6-ubi8 *:1521->1521/tcp, *:5866->5866/tcp +fr0m9chu3ce8 ivorysql-hac_ivypatroni2 replicated 1/1 ivorysql/docker-swarm-ha-cluster:4.6-4.0.6-ubi8 *:1522->1521/tcp, *:5867->5866/tcp +``` + +Connect to the database using psql via Oracle port and PostgreSQL port +``` +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# exit +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) +``` + +Uninstall the IvorySQL cluster +``` +[root@manager-node1 ~] docker stack rm ivoryhac-patroni +[root@manager-node1 ~] docker stack rm ivoryhac-etcd +``` + +== Set up an IvorySQL HA Cluster using Docker Compose + +Download the source code +``` +[root@manager-node1 ~]# git clone https://github.com/IvorySQL/docker_library.git +[root@manager-node1 ~]# cd docker_library/docker-cluster/docker-compose +``` +Copy files to another server + +Copy the etcd and ivypatroni Docker Compose files to other servers respectively. + +For example, to the test server: + +192.168.21.205 will host etcd1+ivorypatroni1, + +192.168.21.164 will host etcd2+ivorypatroni2, + +192.168.21.51 will host etcd3+ivorypatroni3 + +Deploy a three-node etcd cluster, taking node1 as an example +``` +[root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-etcd1.yml up -d +[+] Running 1/1 + ✔ Container etcd Started 0.1s + +``` +After all nodes are deployed, check the status of the etcd cluster. +``` +[root@manager-node1 docker-compose]# docker exec -it etcd etcdctl --write-out=table --endpoints="192.168.21.205:2379,192.168.21.164:2379,192.168.21.51:2379" endpoint status ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +| 192.168.21.205:2379 | 10574d87df892440 | 3.5.8 | 20 kB | true | false | 2 | 13 | 13 | | +| 192.168.21.164:2379 | a47a4fd720eb36e7 | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | +| 192.168.21.51:2379 | b76a77d78fdf886f | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | ++---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ +``` +Deploy an IvorySQL high-availability cluster. + +Deploy the ivyhac service on each node, using node1 as an example. +``` +[root@manager-node1 docker-compose]# docker-compose -f ./docker-compose-ivypatroni_1.yml up -d +[+] Running 1/1 + ✔ Container ivyhac1 Started 0.1s +[root@manager-node1 docker-compose]# docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +736c0d188bdd ivorysql/docker-compose-ha-cluster:4.6-4.0.6-ubi8 "/bin/sh /docker-ent…" 18 seconds ago Up 17 seconds ivyhac1 +9d8e04e4f819 quay.io/coreos/etcd:v3.5.8 "/usr/local/bin/etcd" 24 minutes ago Up 24 minutes etcd + +``` +After all nodes are deployed, check the status of the IvorySQL cluster. +``` +[root@manager-node1 docker-compose]# docker exec -it ivyhac1 /bin/bash +[ivorysql@manager-node1 /]$ patronictl -c $PATRONICONF/patroni.yml list ++ Cluster: ivory-cluster (7548337408295624728) ------+----+-----------+ +| Member | Host | Role | State | TL | Lag in MB | ++-------------+----------------+---------+-----------+----+-----------+ +| ivypatroni1 | 192.168.21.205 | Leader | running | 1 | | +| ivypatroni2 | 192.168.21.164 | Replica | streaming | 1 | 0 | +| ivypatroni3 | 192.168.21.51 | Replica | streaming | 1 | 0 | ++-------------+----------------+---------+-----------+----+-----------+ + +``` +At this point, the one-primary-two-standby cluster setup is complete. +Connect to the database using psql via Oracle-compatible ports and PostgreSQL ports. +``` +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p1521 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + oracle +(1 row) + +ivorysql=# exit +[root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql +Password for user ivorysql: + +ivorysql=# select version(); + version +------------------------------------------------------------------------------------------------------------------------ + PostgreSQL 17.6 (IvorySQL 4.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-28), 64-bit +(1 row) + +ivorysql=# show ivorysql.compatible_mode; + ivorysql.compatible_mode +-------------------------- + pg +(1 row) + +``` + +Uninstall the IvorySQL cluster, using node1 as an example. +``` +[root@manager-node1 ~] docker-compose -f ./docker-compose-ivypatroni_1.yml down +[root@manager-node1 ~] docker-compose -f ./docker-compose-etcd1.yml down +``` \ No newline at end of file From 81574aa762541e6c211d8f169b2d3ce39acc1afa Mon Sep 17 00:00:00 2001 From: Himmel Date: Wed, 10 Sep 2025 16:57:17 +0800 Subject: [PATCH 11/18] docs text bug fix --- CN/modules/ROOT/pages/v4.6/1.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.6/1.adoc b/CN/modules/ROOT/pages/v4.6/1.adoc index 0f8002ea..e1424f99 100644 --- a/CN/modules/ROOT/pages/v4.6/1.adoc +++ b/CN/modules/ROOT/pages/v4.6/1.adoc @@ -59,7 +59,7 @@ IvorySQL云平台当前支持IvorySQL v4数据库的订阅管理,以及其周 - IvorySQL 4.6 问题修复 1. 在aarch64平台上缺少依赖库libcrypt。 -2. p执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 +2. 执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 3. 文档:修复一些错别字。 4. 文档:修复安装部分的文档错误。 5. 文档:更新社区贡献流程。 @@ -99,4 +99,4 @@ IvorySQL主要包含2个代码仓库: - 陶郑 - 严少安 - 杨世华 -- 赵法威 \ No newline at end of file +- 赵法威 From 302ba67e2ac5eef1701281a59377481c0ca4dd80 Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 10 Sep 2025 16:58:40 +0800 Subject: [PATCH 12/18] fix some typos --- CN/modules/ROOT/pages/v4.6/1.adoc | 4 ++-- CN/modules/ROOT/pages/v4.6/38.adoc | 24 +----------------------- EN/modules/ROOT/pages/v4.6/38.adoc | 24 +----------------------- 3 files changed, 4 insertions(+), 48 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.6/1.adoc b/CN/modules/ROOT/pages/v4.6/1.adoc index 0f8002ea..bc332235 100644 --- a/CN/modules/ROOT/pages/v4.6/1.adoc +++ b/CN/modules/ROOT/pages/v4.6/1.adoc @@ -42,7 +42,7 @@ IvorySQL 4.6,基于PostgreSQL 17.6,并修复了多个问题。有关更新 4. 新增IvorySQL 在线体验平台 + -提供一个基于 Web 的平台,用户可直接通过浏览器界面在线体验 IvorySQL V4.5 并进行数据库交互。 +提供一个基于 Web 的平台,用户可直接通过浏览器界面在线体验 IvorySQL V4.6 并进行数据库交互。 5. 容器化部署支持 (Docker Swarm) + @@ -59,7 +59,7 @@ IvorySQL云平台当前支持IvorySQL v4数据库的订阅管理,以及其周 - IvorySQL 4.6 问题修复 1. 在aarch64平台上缺少依赖库libcrypt。 -2. p执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 +2. 执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 3. 文档:修复一些错别字。 4. 文档:修复安装部分的文档错误。 5. 文档:更新社区贡献流程。 diff --git a/CN/modules/ROOT/pages/v4.6/38.adoc b/CN/modules/ROOT/pages/v4.6/38.adoc index 97d944c2..a498a767 100644 --- a/CN/modules/ROOT/pages/v4.6/38.adoc +++ b/CN/modules/ROOT/pages/v4.6/38.adoc @@ -124,17 +124,7 @@ ivorysql=# show ivorysql.compatible_mode; ✔ Container etcd Started 0.1s ``` -当所有节点均部署完成后,检查etcd集群状态 -``` -[root@manager-node1 docker-compose]# docker exec -it etcd etcdctl --write-out=table --endpoints="192.168.21.205:2379,192.168.21.164:2379,192.168.21.51:2379" endpoint status -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -| 192.168.21.205:2379 | 10574d87df892440 | 3.5.8 | 20 kB | true | false | 2 | 13 | 13 | | -| 192.168.21.164:2379 | a47a4fd720eb36e7 | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | -| 192.168.21.51:2379 | b76a77d78fdf886f | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -``` + 部署IvorySQL高可用集群 在每个节点上,部署ivyhac服务 @@ -149,19 +139,7 @@ CONTAINER ID IMAGE COMMAND 9d8e04e4f819 quay.io/coreos/etcd:v3.5.8 "/usr/local/bin/etcd" 24 minutes ago Up 24 minutes etcd ``` -待所有节点部署完毕后,检查IvorySQL集群状态 -``` -[root@manager-node1 docker-compose]# docker exec -it ivyhac1 /bin/bash -[ivorysql@manager-node1 /]$ patronictl -c $PATRONICONF/patroni.yml list -+ Cluster: ivory-cluster (7548337408295624728) ------+----+-----------+ -| Member | Host | Role | State | TL | Lag in MB | -+-------------+----------------+---------+-----------+----+-----------+ -| ivypatroni1 | 192.168.21.205 | Leader | running | 1 | | -| ivypatroni2 | 192.168.21.164 | Replica | streaming | 1 | 0 | -| ivypatroni3 | 192.168.21.51 | Replica | streaming | 1 | 0 | -+-------------+----------------+---------+-----------+----+-----------+ -``` 此时,一主两备集群搭建完成 psql连接数据库的Oracle端口及PG端口 ``` diff --git a/EN/modules/ROOT/pages/v4.6/38.adoc b/EN/modules/ROOT/pages/v4.6/38.adoc index 6177f104..3a512c48 100644 --- a/EN/modules/ROOT/pages/v4.6/38.adoc +++ b/EN/modules/ROOT/pages/v4.6/38.adoc @@ -124,17 +124,7 @@ Deploy a three-node etcd cluster, taking node1 as an example ✔ Container etcd Started 0.1s ``` -After all nodes are deployed, check the status of the etcd cluster. -``` -[root@manager-node1 docker-compose]# docker exec -it etcd etcdctl --write-out=table --endpoints="192.168.21.205:2379,192.168.21.164:2379,192.168.21.51:2379" endpoint status -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -| 192.168.21.205:2379 | 10574d87df892440 | 3.5.8 | 20 kB | true | false | 2 | 13 | 13 | | -| 192.168.21.164:2379 | a47a4fd720eb36e7 | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | -| 192.168.21.51:2379 | b76a77d78fdf886f | 3.5.8 | 20 kB | false | false | 2 | 13 | 13 | | -+---------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ -``` + Deploy an IvorySQL high-availability cluster. Deploy the ivyhac service on each node, using node1 as an example. @@ -148,19 +138,7 @@ CONTAINER ID IMAGE COMMAND 9d8e04e4f819 quay.io/coreos/etcd:v3.5.8 "/usr/local/bin/etcd" 24 minutes ago Up 24 minutes etcd ``` -After all nodes are deployed, check the status of the IvorySQL cluster. -``` -[root@manager-node1 docker-compose]# docker exec -it ivyhac1 /bin/bash -[ivorysql@manager-node1 /]$ patronictl -c $PATRONICONF/patroni.yml list -+ Cluster: ivory-cluster (7548337408295624728) ------+----+-----------+ -| Member | Host | Role | State | TL | Lag in MB | -+-------------+----------------+---------+-----------+----+-----------+ -| ivypatroni1 | 192.168.21.205 | Leader | running | 1 | | -| ivypatroni2 | 192.168.21.164 | Replica | streaming | 1 | 0 | -| ivypatroni3 | 192.168.21.51 | Replica | streaming | 1 | 0 | -+-------------+----------------+---------+-----------+----+-----------+ -``` At this point, the one-primary-two-standby cluster setup is complete. Connect to the database using psql via Oracle-compatible ports and PostgreSQL ports. ``` From 7aed19a8b509fdf766bc3a90704a0d0d0b429f45 Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 10 Sep 2025 17:12:42 +0800 Subject: [PATCH 13/18] update community contribution --- CN/modules/ROOT/pages/v4.6/32.adoc | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.6/32.adoc b/CN/modules/ROOT/pages/v4.6/32.adoc index d63cd5ac..950d9a56 100644 --- a/CN/modules/ROOT/pages/v4.6/32.adoc +++ b/CN/modules/ROOT/pages/v4.6/32.adoc @@ -3,7 +3,7 @@ :sectnumlevels: 5 :imagesdir: ./_images -= **IvorySQL社区协作流程** +== **IvorySQL社区协作流程** IvorySQL 社区采用一套 闭环式开源协作流程,确保从问题提出到版本发布,每一个环节都能闭合反馈、持续改进。这一流程鼓励用户与开发者形成良性互动,让社区开发始终围绕实际需求持续演进。 @@ -45,7 +45,7 @@ image::p23.jpg[] 通过这套完整的闭环协作机制,IvorySQL 实现了问题响应 → 开发贡献 → 质量保障 → 发布反馈的全流程闭合,推动项目持续健康演进。 -= **IvorySQL社区贡献指南** +== **IvorySQL社区贡献指南** IvorySQL是一个由核心开发团队主导、社区共同维护的开源项目。我们欢迎用户、贡献者和维护者的加入,共同推动IvorySQL的发展。如果您希望看到您的代码或文档更改被添加到IvorySQL并出现在将来的版本中,本节的内容介绍是您需要知道的。 @@ -61,7 +61,7 @@ IvorySQL是一个由核心开发团队主导、社区共同维护的开源项目 📢 请务必阅读并遵守我们的 https://github.com/IvorySQL/IvorySQL/blob/master/CODE_OF_CONDUCT_CN.md[IvorySQL社区行为准则]。 -== 注册Github账号 +=== 注册Github账号 无论您是要提交 Issue、参与讨论,还是贡献代码与文档,您都需要使用 GitHub 账号登录并与 IvorySQL 项目进行交互。 @@ -69,11 +69,11 @@ IvorySQL是一个由核心开发团队主导、社区共同维护的开源项目 IvorySQL源码托管在github: 。 -== 用户 +=== 用户 作为用户,您在使用 IvorySQL 过程中扮演着重要角色。我们鼓励您: -=== 反馈问题与需求 +==== 反馈问题与需求 * 发现 Bug、性能缺陷或文档不准确? @@ -81,7 +81,7 @@ IvorySQL源码托管在github: 。 如果您准备向社区上报 Bug 或者提交需求,请在 IvorySQL 社区对应的仓库上提交 Issue,并参考Issue xref:./33.adoc[提交指南]。 -=== 参与社区讨论 +==== 参与社区讨论 * 通过 https://lists.ivorysql.org[邮件列表]进行讨论 @@ -89,11 +89,11 @@ IvorySQL源码托管在github: 。 * 在 微信、Discord等聊天群参与技术交流 -== 贡献者 +=== 贡献者 我们欢迎代码、文档、测试等各类贡献。 -=== 签署CLA +==== 签署CLA 在提交代码或文档贡献之前,为了确保代码合法合规,个人或企业贡献者需要签署贡献者许可协议(CLA)。签署CLA是IvorySQL社区接受贡献的必要条件,以确保您的贡献被合法分发。请根据下列链接下载CLA进行签署并将签署后的CLA发送至 cla@ivorysql.org。 * https://www.ivorysql.org/zh-CN/assets/files/individual_cla-a81f001209eb5ce0f8ea7c3be4cc69b5.pdf[个人贡献者] @@ -101,7 +101,7 @@ IvorySQL源码托管在github: 。 未签署CLA的Pull Request将无法进入评审阶段。 -=== 找到您感兴趣的项目 +==== 找到您感兴趣的项目 我们将仓库划分为多个子项目,您可以从如下列表中找到感兴趣的项目及其代码仓库 @@ -119,17 +119,17 @@ IvorySQL源码托管在github: 。 |https://github.com/IvorySQL/ivorysql-wasm[Ivorysql_wasm] | 负责IvorySQL在线易用体验网站的开发和维护 |=== -=== 给自己分配Issue +==== 给自己分配Issue 您可以将自己创建的Issue或者愿意处理的Issue分配给自己。 只需要在评论框内输入/assign,机器人就会将问题分配给您。 每个 Issue 下面可能已经有参与者的交流和讨论,如果您感兴趣,也可以在评论框中发表自己的意见参与 Issue 讨论。 -=== 开发与提交Pull Request +==== 开发与提交Pull Request 对于提交一个PR应该保持一个功能,或者一个bug提交一次。禁止多个功能一次提交。 -==== Fork仓库 +===== Fork仓库 前往项目主页,点击Fork按钮,将IvorySQL项目Fork到您自己的GitHub账户中。 -==== 编码 +===== 编码 使用如下命令将项目克隆到本地进行开发: @@ -139,7 +139,7 @@ git checkout -b feature/your-feature-name 在提交代码前,请确保通过回归测试 -==== 创建一个Pull Request并提交 +===== 创建一个Pull Request并提交 打开你 Fork 的仓库: https://github.com/$user/IvorySQL.git @@ -156,25 +156,25 @@ leave a comment 点击Create pull request 按钮即可提交。 -== 维护者 +=== 维护者 维护者负责进行IvorySQL代码的管理,PR审查,主导版本发布与IvorySQL发展方向。 -=== 社区规划 +==== 社区规划 * 制定版本规划和 Roadmap * 跟踪与评估社区需求 * 维护公开的 TODO 列表 -=== 代码管理 +==== 代码管理 * 参与 Pull Request 评审 * 审查安全问题,保障项目健康 -=== 流程与治理机制 +==== 流程与治理机制 * 优化协作机制(代码贡献指南、PR 模板等) * 建立漏洞响应机制和行为守则 -== 致谢 +=== 致谢 感谢每一位参与 IvorySQL 的开发者、文档编辑者、测试人员和使用者。正是有了你们的付出,IvorySQL 才能不断成长!我们欢迎所有人参与 IvorySQL 社区贡献,我们的目标是发展一个由贡献者组成的活跃、健康的社区。 \ No newline at end of file From c8313c10fbc30980490c70ddf4dbca5943041a23 Mon Sep 17 00:00:00 2001 From: Himmel Date: Wed, 10 Sep 2025 17:42:42 +0800 Subject: [PATCH 14/18] Bug fix: PDF invalid link. --- .github/workflows/merge-build-push.yml | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/merge-build-push.yml b/.github/workflows/merge-build-push.yml index 90cadadd..607fe56a 100644 --- a/.github/workflows/merge-build-push.yml +++ b/.github/workflows/merge-build-push.yml @@ -133,6 +133,36 @@ jobs: echo "Building Chinese site..." npx antora generate --stacktrace --to-dir ../www_publish_target/docs/cn antora-playbook-CN.yml + - name: Move and Rename PDF Files + id: process_pdfs + working-directory: ./www_publish_target + run: | + echo "--- Searching for PDF files to move and rename ---" + + PDF_FILES_FOUND=$(find . -type f -path '*/_exports/index.pdf') + + if [ -z "${PDF_FILES_FOUND}" ]; then + echo "No PDF files found to move. Skipping." + else + echo "Found PDF files to process:" + echo "${PDF_FILES_FOUND}" + + echo "${PDF_FILES_FOUND}" | while read PDF_FILE; do + # ./docs/cn/ivorysql-doc/master/_exports/index.pdf -> ./docs/cn/ivorysql-doc/master + BASE_DIR="${PDF_FILE%/_exports/index.pdf}" + + NEW_PDF_PATH="${BASE_DIR}/ivorysql.pdf" + + echo "Moving '${PDF_FILE}' to '${NEW_PDF_PATH}'" + mv "${PDF_FILE}" "${NEW_PDF_PATH}" + done + + echo "--- Cleaning up empty _exports directories ---" + find . -type d -name '_exports' -empty -delete + fi + + echo "--- PDF processing complete ---" + - name: Commit and Push to web Repository new branch , pull request id: commit_push_new_branch working-directory: ./www_publish_target From b5f7f3b9d4d75cebc237fd1a16de1dc6abad89e2 Mon Sep 17 00:00:00 2001 From: JiaoShuntian Date: Wed, 10 Sep 2025 17:56:59 +0800 Subject: [PATCH 15/18] update v4.6 release page --- CN/modules/ROOT/pages/v4.6/1.adoc | 22 +++++++++++----------- EN/modules/ROOT/pages/v4.6/1.adoc | 18 +++++++++--------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/CN/modules/ROOT/pages/v4.6/1.adoc b/CN/modules/ROOT/pages/v4.6/1.adoc index bc332235..97a7de42 100644 --- a/CN/modules/ROOT/pages/v4.6/1.adoc +++ b/CN/modules/ROOT/pages/v4.6/1.adoc @@ -29,18 +29,18 @@ IvorySQL 4.6,基于PostgreSQL 17.6,并修复了多个问题。有关更新 - IvorySQL 4.6 新特性 -1. 内核升级至 PG 17.6 +1. 内核升级至 PG 17.6 https://github.com/IvorySQL/IvorySQL/issues/859[#859] -2. 兼容MongoDB +2. 兼容MongoDB https://github.com/IvorySQL/IvorySQL/issues/860[#860] + -提供基于 FerretDB 与 DocumentDB 支持兼容 MongoDB 的解决方案。 +提供基于 FerretDB 与 DocumentDB 支持兼容 MongoDB 的解决方案。 -3. loongarch 架构全平台打包支持 +3. Loongarch 架构全平台打包支持 https://github.com/IvorySQL/IvorySQL/issues/738[#738] https://github.com/IvorySQL/IvorySQL/issues/829[#829] + -提供面向 loongarch 架构的多平台软件包,支持国内外主流操作系统,包括Red Hat、Debian、麒麟(Kylin)、统信(UOS)以及 NSAR OS 等。 +提供面向 Loongarch 架构的多平台软件包,支持国内外主流操作系统,包括Red Hat、Debian、麒麟(Kylin)、统信(UOS)以及 NSAR OS 等。 提供面向龙芯架构(LoongArch)的多平台介质包,兼容国内外主流操作系统,包括红帽(Red Hat)、Debian、麒麟(Kylin)、统信UOS、凝思NSAR OS等,同时支持x86、ARM及MIPS架构。 -4. 新增IvorySQL 在线体验平台 +4. 新增IvorySQL 在线体验平台 https://github.com/IvorySQL/ivorysql-wasm/issues/4[#4] + 提供一个基于 Web 的平台,用户可直接通过浏览器界面在线体验 IvorySQL V4.6 并进行数据库交互。 @@ -58,11 +58,11 @@ IvorySQL云平台当前支持IvorySQL v4数据库的订阅管理,以及其周 - IvorySQL 4.6 问题修复 -1. 在aarch64平台上缺少依赖库libcrypt。 -2. 执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录。 -3. 文档:修复一些错别字。 -4. 文档:修复安装部分的文档错误。 -5. 文档:更新社区贡献流程。 +1. 在aarch64平台上缺少依赖库libcrypt: Issue https://github.com/IvorySQL/IvorySQL/issues/826[#826] +2. 执行make和make install时,前缀test_开头的测试项被错误地编译和安装到extension目录: Issue https://github.com/IvorySQL/IvorySQL/issues/836[#836] +3. 文档:修复一些错别字: Issue https://github.com/IvorySQL/ivorysql_docs/pull/143[#143] +4. 文档:修复安装部分的文档错误: Issue https://github.com/IvorySQL/ivorysql_docs/pull/143[#142] +5. 文档:更新社区贡献流程: Issue https://github.com/IvorySQL/ivorysql_docs/pull/130[#130] == 源代码 diff --git a/EN/modules/ROOT/pages/v4.6/1.adoc b/EN/modules/ROOT/pages/v4.6/1.adoc index 6f93b01e..d3d60e78 100644 --- a/EN/modules/ROOT/pages/v4.6/1.adoc +++ b/EN/modules/ROOT/pages/v4.6/1.adoc @@ -25,17 +25,17 @@ For further details, visit https://www.postgresql.org/docs/release/17.6/[Postgre - IvorySQL 4.6 New Features -1. Upgrade to PG 17.6 kernel +1. Upgrade to PG 17.6 kernel https://github.com/IvorySQL/IvorySQL/issues/859[#859] -2. MongoDB-compatible solution +2. MongoDB-compatible solution https://github.com/IvorySQL/IvorySQL/issues/860[#860] + Provide a MongoDB-compatible solution using FerretDB and DocumentDB. -3. LoongArch Packaging for All Platforms +3. LoongArch Packaging for All Platforms https://github.com/IvorySQL/IvorySQL/issues/738[#738] https://github.com/IvorySQL/IvorySQL/issues/829[#829] + Provides multi-platform media packages for LoongArch architecture, supporting both domestic and international mainstream operating systems, including Red Hat, Debian, Kylin, UOS, and NSAR OS, etc. It also supports x86, ARM, and MIPS architectures. -4. IvorySQL Online trail +4. IvorySQL Online trail https://github.com/IvorySQL/ivorysql-wasm/issues/4[#4] + Provide users with a web-based platform to experience IvorySQL V4.6 in an online environment, enabling database interaction directly through a browser interface. @@ -53,11 +53,11 @@ The IvorySQL Cloud platform currently supports subscription management for Ivory - IvorySQL 4.6 Fixed Issues -1. Missing libcrypt on aarch64 platform. -2. prefix test_ extension are wrongly compiled and installed while exec make and make install. -3. Doc:fix some typos. -4. Doc:Fix document errors in the installation section. -5. Doc:Update the community contribution process. +1. Missing libcrypt on aarch64 platform: Issue https://github.com/IvorySQL/IvorySQL/issues/826[#826] +2. prefix test_ extension are wrongly compiled and installed while exec make and make install: Issue https://github.com/IvorySQL/IvorySQL/issues/836[#836] +3. Doc:fix some typos: Issue https://github.com/IvorySQL/ivorysql_docs/pull/143[#143] +4. Doc:Fix document errors in the installation section: Issue https://github.com/IvorySQL/ivorysql_docs/pull/143[#142] +5. Doc:Update the community contribution process: Issue https://github.com/IvorySQL/ivorysql_docs/pull/130[#130] == Source Code From b51920cb5ef01eeb4baf31b0f767394fd64c1484 Mon Sep 17 00:00:00 2001 From: liangxiangyu Date: Wed, 10 Sep 2025 18:35:35 +0800 Subject: [PATCH 16/18] test --- CN/modules/ROOT/pages/v4.6/37.adoc | 5 ++++- CN/modules/ROOT/pages/v4.6/38.adoc | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CN/modules/ROOT/pages/v4.6/37.adoc b/CN/modules/ROOT/pages/v4.6/37.adoc index 639042f0..95950316 100644 --- a/CN/modules/ROOT/pages/v4.6/37.adoc +++ b/CN/modules/ROOT/pages/v4.6/37.adoc @@ -170,6 +170,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql Password for user ivorysql: @@ -206,7 +208,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit - +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32654 -h 127.0.0.1 -d ivorysql Password for user ivorysql: diff --git a/CN/modules/ROOT/pages/v4.6/38.adoc b/CN/modules/ROOT/pages/v4.6/38.adoc index a498a767..75b9ca72 100644 --- a/CN/modules/ROOT/pages/v4.6/38.adoc +++ b/CN/modules/ROOT/pages/v4.6/38.adoc @@ -76,6 +76,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: @@ -159,6 +161,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: From a500df1c821519dfb2819e9857e58b2294b1ff98 Mon Sep 17 00:00:00 2001 From: liangxiangyu Date: Wed, 10 Sep 2025 18:39:22 +0800 Subject: [PATCH 17/18] test --- EN/modules/ROOT/pages/v4.6/37.adoc | 2 ++ EN/modules/ROOT/pages/v4.6/38.adoc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/EN/modules/ROOT/pages/v4.6/37.adoc b/EN/modules/ROOT/pages/v4.6/37.adoc index 2e15ba35..770643d1 100644 --- a/EN/modules/ROOT/pages/v4.6/37.adoc +++ b/EN/modules/ROOT/pages/v4.6/37.adoc @@ -169,6 +169,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql Password for user ivorysql: diff --git a/EN/modules/ROOT/pages/v4.6/38.adoc b/EN/modules/ROOT/pages/v4.6/38.adoc index 3a512c48..a7c4863f 100644 --- a/EN/modules/ROOT/pages/v4.6/38.adoc +++ b/EN/modules/ROOT/pages/v4.6/38.adoc @@ -76,6 +76,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: @@ -158,6 +160,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: From 8870e57fccca39f8ea6e7a13b9b8620c3ba1151c Mon Sep 17 00:00:00 2001 From: balinorLiang <134899174+balinorLiang@users.noreply.github.com> Date: Wed, 10 Sep 2025 18:46:53 +0800 Subject: [PATCH 18/18] update the code for bugfix (#154) --- CN/modules/ROOT/pages/v4.6/37.adoc | 5 ++++- CN/modules/ROOT/pages/v4.6/38.adoc | 4 ++++ EN/modules/ROOT/pages/v4.6/37.adoc | 2 ++ EN/modules/ROOT/pages/v4.6/38.adoc | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CN/modules/ROOT/pages/v4.6/37.adoc b/CN/modules/ROOT/pages/v4.6/37.adoc index 639042f0..95950316 100644 --- a/CN/modules/ROOT/pages/v4.6/37.adoc +++ b/CN/modules/ROOT/pages/v4.6/37.adoc @@ -170,6 +170,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql Password for user ivorysql: @@ -206,7 +208,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit - +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32654 -h 127.0.0.1 -d ivorysql Password for user ivorysql: diff --git a/CN/modules/ROOT/pages/v4.6/38.adoc b/CN/modules/ROOT/pages/v4.6/38.adoc index a498a767..75b9ca72 100644 --- a/CN/modules/ROOT/pages/v4.6/38.adoc +++ b/CN/modules/ROOT/pages/v4.6/38.adoc @@ -76,6 +76,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: @@ -159,6 +161,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: diff --git a/EN/modules/ROOT/pages/v4.6/37.adoc b/EN/modules/ROOT/pages/v4.6/37.adoc index 2e15ba35..770643d1 100644 --- a/EN/modules/ROOT/pages/v4.6/37.adoc +++ b/EN/modules/ROOT/pages/v4.6/37.adoc @@ -169,6 +169,8 @@ ivorysql=# SELECT pg_is_in_recovery(); (1 row) ivorysql=# exit +``` +``` [root@k8s-master helm_charts]# psql -U ivorysql -p 32477 -h 127.0.0.1 -d ivorysql Password for user ivorysql: diff --git a/EN/modules/ROOT/pages/v4.6/38.adoc b/EN/modules/ROOT/pages/v4.6/38.adoc index 3a512c48..a7c4863f 100644 --- a/EN/modules/ROOT/pages/v4.6/38.adoc +++ b/EN/modules/ROOT/pages/v4.6/38.adoc @@ -76,6 +76,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: @@ -158,6 +160,8 @@ ivorysql=# show ivorysql.compatible_mode; (1 row) ivorysql=# exit +``` +``` [root@manager-node1 docker-swarm]# psql -h127.0.0.1 -p5432 -U ivorysql -d ivorysql Password for user ivorysql: