|
5 | 5 |
|
6 | 6 | = **安装部署** |
7 | 7 |
|
8 | | -== 安装概述 |
| 8 | +== CentOS安装概述 |
9 | 9 |
|
10 | 10 | 本文介绍 Ivorysql 在Linux平台(以CentOS 7为例)的安装过程及注意事项。本文主要演示数据库在Centos 7环境下rpm包安装步骤、源码安装步骤。 |
11 | 11 |
|
@@ -270,4 +270,273 @@ mv /usr/lib/systemd/system/ivorysql.service /tmp/ --服务文件移到/tmp |
270 | 270 | rm -fr /opt/IvorySQL-1.17 --删除残留安装目录 |
271 | 271 | ``` |
272 | 272 |
|
| 273 | +> 说明:还有用户ivorysql以及对应的环境变量,可以根据情况是否清理。剩下的就是数据目录了,请务必做好备份再做处理。还有安装的依赖包,可根据情况决定是否卸载。 |
| 274 | + |
| 275 | +== Ubuntu安装概述 |
| 276 | + |
| 277 | +本文介绍 Ivorysql 在Linux平台Ubuntu(以Ubuntu2404为例)的安装过程及注意事项。本文主要演示数据库在Ubuntu 2404环境下deb包安装步骤、源码安装步骤。 |
| 278 | + |
| 279 | +=== 软硬件要求 |
| 280 | + |
| 281 | +==== 软件资源介绍 |
| 282 | + |
| 283 | +|==== |
| 284 | +|操作系统|DEB包下载地址 |
| 285 | +|Ubuntu 2404|https://github.com/IvorySQL/IvorySQL/releases |
| 286 | +|==== |
| 287 | + |
| 288 | + |
| 289 | +==== 硬件资源准备 |
| 290 | +|==== |
| 291 | +|**配置参数**|**最低配置**|**推荐配置** |
| 292 | +|**CPU**|4核|16核 |
| 293 | +|**内存**|4GB|64GB |
| 294 | +|**存储**|800MB,机械硬盘|5GB以上,SSD或NvMe |
| 295 | +|**网络**|千兆网络|万兆网络 |
| 296 | +|==== |
| 297 | + |
| 298 | +=== 环境和配置检查 |
| 299 | + |
| 300 | +部署 IvorySQL 数据库前,您需要进行系统环境和配置检查 |
| 301 | + |
| 302 | +==== 查看资源 |
| 303 | + |
| 304 | +IvorySQL 数据库支持Ubuntu24.x操作系统。详细信息,参考<<#_软硬件要求>> |
| 305 | + |
| 306 | + |
| 307 | +==== 查看操作系统 |
| 308 | + |
| 309 | +**Ubuntu 24/22.0x** |
| 310 | + |
| 311 | +运行以下命令,查看操作系统信息: |
| 312 | + |
| 313 | + cat /etc/os-release |
| 314 | + |
| 315 | +==== 查看内核参数 |
| 316 | + |
| 317 | + uname -r |
| 318 | + |
| 319 | +=== 获取安装包 |
| 320 | + |
| 321 | +您可以通过 源码安装 IvorySQL 数据库或 DEB 包安装。 |
| 322 | + |
| 323 | +==== 使用源码构建IvorySQL数据库 |
| 324 | + |
| 325 | +1.获取源代码:运行以下命令,克隆 IvorySQL 数据库源代码到您的构建机器: |
| 326 | +---- |
| 327 | +git clone https://github.com/IvorySQL/IvorySQL.git |
| 328 | +---- |
| 329 | + |
| 330 | +> 注意:克隆代码需要先安装配置 Git。详细信息,参考 https://git-scm.com/doc[Git 文档] |
| 331 | + |
| 332 | + |
| 333 | +2.安装依赖包:要从源代码编译 IvorySQL,必须确保系统上有可用的先决条件包。 执行以下命令安装相关包: |
| 334 | +---- |
| 335 | +sudo apt install -y bison-devel readline-devel zlib-devel openssl-devel wget |
| 336 | +sudo apt install -y gcc make flex bison |
| 337 | +---- |
| 338 | + |
| 339 | +3.自行编译安装:前面通过获取的源码在文件夹IvorySQL里,接下来我们就进入这个文件夹进行操作。 |
| 340 | + |
| 341 | +3.1 配置:Root用户执行以下命令进行配置: |
| 342 | +---- |
| 343 | +git checkout tags/Ivory_REL_1_17 |
| 344 | +./configure \ |
| 345 | +--prefix=/usr/local/ivorysql/ivorysql-1.17 \ |
| 346 | +--enable-debug \ |
| 347 | +--enable-cassert \ |
| 348 | +--enable-depend |
| 349 | +
|
| 350 | +---- |
| 351 | +> 说明: 由于没有提供 `--prefix`,默认安装在 `/usr/local/ivorysql`,故需要指定路径。 |
| 352 | +> |
| 353 | +> 注意:我们要记住指定的目录,因为系统查不出已经编译安装的程序在哪。更多 configure 参数通过 `./configure --help` 查看。还可以查看 PostgreSQL 手册。 |
| 354 | + |
| 355 | +3.2 编译安装:配置完成后,执行 make 进行编译: |
| 356 | + |
| 357 | + make |
| 358 | + |
| 359 | +要在安装新编译的服务之前使用回归测试测试一下,以下命令均可: |
| 360 | + |
| 361 | +---- |
| 362 | +make check |
| 363 | +make all-check-world |
| 364 | +---- |
| 365 | + |
| 366 | +然后安装: |
| 367 | + |
| 368 | + sudo make install |
| 369 | + |
| 370 | + |
| 371 | +==== 使用 DEB 包安装 IvorySql 数据库 |
| 372 | + |
| 373 | +1. 运行以下命令,下载 IvorySQL 安装包。 |
| 374 | +---- |
| 375 | +wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_1.17/IvorySQL-1.17-fde5539-20250326.amd64.deb |
| 376 | +---- |
| 377 | + |
| 378 | +> 注意:示例中的安装包可能不是最新版本,建议您下载最新的安装包。 |
| 379 | + |
| 380 | +2.运行以下命令,安装 IvorySQL 。 |
| 381 | +---- |
| 382 | +sudo apt install ./IvorySQL-1.17-fde5539-20250326.amd64.deb |
| 383 | +---- |
| 384 | + |
| 385 | +=== 初始化数据库服务 |
| 386 | + |
| 387 | +==== 初始化数据库 |
| 388 | + |
| 389 | +1. 创建操作系统用户:用户root会话下,新建用户 ivorysql: |
| 390 | +---- |
| 391 | +/usr/sbin/groupadd ivorysql |
| 392 | +/usr/sbin/useradd -m -g ivorysql -s /bin/bash -c "IvorySQL1.17" ivorysql |
| 393 | +usermod -a -G sudo ivorysql |
| 394 | +passwd ivorysql |
| 395 | +
|
| 396 | +mkdir /home/ivorysql |
| 397 | +chown -R ivorysql:ivorysql /home/ivorysql |
| 398 | +chmod 755 /home/ivorysql |
| 399 | +---- |
| 400 | + |
| 401 | + |
| 402 | +2.环境变量:切换到用户ivorysql,修改文件 `/home/ivorysql/.bashrc`,配置环境变量: |
| 403 | +---- |
| 404 | +umask 022 |
| 405 | +export LD_LIBRARY_PATH=/opt/IvorySQL-1.17/lib:$LD_LIBRARY_PATH |
| 406 | +export PATH=/opt/IvorySQL-1.17/bin:/usr/local/ivorysql/ivorysql-1.17/bin:$PATH #取决于安装路径 |
| 407 | +export PGDATA=/home/ivorysql/data |
| 408 | +---- |
| 409 | + |
| 410 | +使环境变量在当前ivorysql用户会话中生效: |
| 411 | + |
| 412 | + source .bashrc |
| 413 | + |
| 414 | +也可以重新登录或开启一个新的用户ivorysql的会话。 |
| 415 | + |
| 416 | +3.设置防火墙:如果开启了防火墙,还需要将端口1521或者5432开放: |
| 417 | +---- |
| 418 | +firewall-cmd --zone=public --add-port=1521/tcp --permanent |
| 419 | +firewall-cmd --reload |
| 420 | +---- |
| 421 | + |
| 422 | +> 说明:默认端口是1521,如果不开放该端口,外部客户端通过ip连接会失败。 |
| 423 | + |
| 424 | +4.初始化:在用户ivorysql下,简单执行initdb就可以完成初始化: |
| 425 | + |
| 426 | + initdb -D $PGDATA |
| 427 | + |
| 428 | + |
| 429 | +> 说明:initdb操作与PostgreSQL一样,可以按照PG的习惯去初始化。 |
| 430 | + |
| 431 | +5.启动数据库:使用pg_ctl启动数据库服务: |
| 432 | + |
| 433 | + pg_ctl -D /home/ivorysql/data -l logfile start |
| 434 | + |
| 435 | +查看状态,启动成功: |
| 436 | + |
| 437 | + pg_ctl status |
| 438 | + |
| 439 | +=== 配置服务 |
| 440 | + |
| 441 | +修改配置文件权限为可读写: |
| 442 | +chmod 755 $PGDATA/* |
| 443 | + |
| 444 | +1. 客户端验证:修改 /home/ivorysql/data/pg_hba.conf,追加以下内容: |
| 445 | + |
| 446 | + host all all 0.0.0.0/0 trust |
| 447 | + |
| 448 | + |
| 449 | +> 注意:这里是trust,就是说可以免密登录。 |
| 450 | + |
| 451 | +监听地址:修改$PGDATA/postgresql.conf ,追加以下内容: |
| 452 | + |
| 453 | + listen_addresses = '*' |
| 454 | + |
| 455 | +> 说明:默认是监听在127.0.0.1,主机外是连不上服务的。 |
| 456 | + |
| 457 | +执行以下命令加载配置: |
| 458 | + |
| 459 | + pg_ctl reload |
| 460 | + |
| 461 | +2.连接数据库 |
| 462 | + |
| 463 | +通过psql连接数据库: |
| 464 | + |
| 465 | + psql |
| 466 | + |
| 467 | +3.守护服务 |
| 468 | + |
| 469 | +创建service文件: |
| 470 | + |
| 471 | + sudo vi /etc/systemd/system/ivorysql.service |
| 472 | + |
| 473 | +编辑内容如下: |
| 474 | +---- |
| 475 | +[Unit] |
| 476 | +Description=IvorySQL 1.17 database server |
| 477 | +Documentation=https://www.ivorysql.org |
| 478 | +Requires=network.target local-fs.target |
| 479 | +After=network.target local-fs.target |
| 480 | +
|
| 481 | +[Service] |
| 482 | +Type=forking |
| 483 | +
|
| 484 | +User=ivorysql |
| 485 | +Group=ivorysql |
| 486 | +
|
| 487 | +Environment=PGDATA=/home/ivorysql/data |
| 488 | +
|
| 489 | +OOMScoreAdjust=-1000 |
| 490 | +
|
| 491 | +ExecStart=/usr/local/ivorysql/ivorysql-1.17/bin/pg_ctl start -D ${PGDATA} |
| 492 | +ExecStop=/usr/local/ivorysql/ivorysql-1.17/bin/pg_ctl stop -D ${PGDATA} |
| 493 | +ExecReload=/usr/local/ivorysql/ivorysql-1.17/bin/pg_ctl reload -D ${PGDATA} |
| 494 | +
|
| 495 | +TimeoutSec=0 |
| 496 | +
|
| 497 | +[Install] |
| 498 | +WantedBy=multi-user.target |
| 499 | +
|
| 500 | +---- |
| 501 | + |
| 502 | +> 说明:service的写法有很多,在生产环境使用时需谨慎,请多次重复测试。 |
| 503 | + |
| 504 | +停止pg_ctl启动的数据库服务,启用systemd服务并启动: |
| 505 | + |
| 506 | + systemctl enable --now ivorysql.service |
| 507 | + |
| 508 | +IvorSQL数据库服务操作命令: |
| 509 | +---- |
| 510 | +systemctl start ivorysql.service --启动数据库服务 |
| 511 | +systemctl stop ivorysql.service --停止数据库服务 |
| 512 | +systemctl restart ivorysql.service --重启数据库 |
| 513 | +systemctl status ivorysql.service --查看数据库状态 |
| 514 | +systemctl reload ivorysql.service --可以满足部分数据库配置修改完后生效 |
| 515 | +---- |
| 516 | + |
| 517 | +=== 卸载 IvorySQL 数据库 |
| 518 | + |
| 519 | +==== 编译卸载 |
| 520 | + |
| 521 | +1.备份数据:我们需要将数据目录保护好,最好停止数据库服务后做备份。 |
| 522 | + |
| 523 | +``` |
| 524 | +systemctl stop ivorysql.service |
| 525 | +``` |
| 526 | + |
| 527 | +2.编译卸载:root会话下切到源码目录下,分别执行以下命令: |
| 528 | + |
| 529 | +``` |
| 530 | +make uninstall |
| 531 | +make clean |
| 532 | +``` |
| 533 | + |
| 534 | +3.删除残余目录和文件: |
| 535 | + |
| 536 | +``` |
| 537 | +systemctl disable ivorysql.servicemake --禁用服务 |
| 538 | +mv /usr/lib/systemd/system/ivorysql.service /tmp/ --服务文件移到/tmp,删除也可以 |
| 539 | +rm -fr /usr/local/ivorysql/ivorysql-1.17 --删除残留安装目录 |
| 540 | +``` |
| 541 | + |
273 | 542 | > 说明:还有用户ivorysql以及对应的环境变量,可以根据情况是否清理。剩下的就是数据目录了,请务必做好备份再做处理。还有安装的依赖包,可根据情况决定是否卸载。 |
0 commit comments