• PostgreSQL11.17离线安装过程(X86+Ubuntu)


    本文是针对CPU为 X86架构,操作系统为Ubuntu22.04环境,Postgresql11.17版本。

    本文只在Ubuntu22.04下进行验证,理论上UOS也可使用,但未经验证。

    适用于无互联网场景。

    1.资源文件

    libpq5_14.5-0ubuntu0.22.04.1_amd64.deb

    libjson-perl_4.04000-1_all.deb

    pgdg-keyring_2018.2_all.deb

    postgresql-client-common_244.pgdg2

    ssl-cert_1.1.2_all.deb

    postgresql-common_244.pgdg22.04+1_

    libcommon-sense-perl_3.75-2build1_

    libtypes-serialiser-perl_1.01-1_al

    libjson-xs-perl_4.030-1build3_amd6

    libllvm14_1%3a14.0.0-1ubuntu1_amd6

    libsensors-config_1%3a3.6.0-7ubunt

    libsensors5_1%3a3.6.0-7ubuntu1_amd

    postgresql-client-11_11.17-1.pgdg2

    postgresql-11_11.17-1.pgdg22.04+1_

    sysstat_12.5.2-2build2_amd64.deb

    install.sh

    下载地址:CSDN下载链接

    2.安装

    离线安装

    适用于无互联网情况。

    安装时,需要root权限。

    1. dpkg -i libpq5_14.5-0ubuntu0.22.04.1_amd64.deb&&
    2. dpkg -i libjson-perl_4.04000-1_all.deb&&
    3. dpkg -i pgdg-keyring_2018.2_all.deb&&
    4. dpkg -i postgresql-client-common_244.pgdg22.04+1_all.deb&&
    5. dpkg -i ssl-cert_1.1.2_all.deb&&
    6. dpkg -i postgresql-common_244.pgdg22.04+1_all.deb&&
    7. dpkg -i libcommon-sense-perl_3.75-2build1_amd64.deb&&
    8. dpkg -i libtypes-serialiser-perl_1.01-1_all.deb&&
    9. dpkg -i libjson-xs-perl_4.030-1build3_amd64.deb&&
    10. dpkg -i libllvm14_1%3a14.0.0-1ubuntu1_amd64.deb&&
    11. dpkg -i libsensors-config_1%3a3.6.0-7ubuntu1_all.deb&&
    12. dpkg -i libsensors5_1%3a3.6.0-7ubuntu1_amd64.deb&&
    13. dpkg -i postgresql-client-11_11.17-1.pgdg22.04+1_amd64.deb&&
    14. dpkg -i postgresql-11_11.17-1.pgdg22.04+1_amd64.deb&&
    15. dpkg -i sysstat_12.5.2-2build2_amd64.deb;

    或执行目录内 install.sh 脚本

    检查

    systemctl status postgresql

    若能看到服务处于活动状态,则表示安装完成。

    1. root@docker1:/home/yeqiyu/11.17# systemctl status postgresql
    2. ● postgresql.service - PostgreSQL RDBMS
    3. Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    4. Active: active (exited) since Wed 2022-10-19 14:00:41 UTC; 17s ago
    5. Main PID: 1761 (code=exited, status=0/SUCCESS)
    6. CPU: 872us
    7. Oct 19 14:00:41 docker1 systemd[1]: Starting PostgreSQL RDBMS...
    8. Oct 19 14:00:41 docker1 systemd[1]: Finished PostgreSQL RDBMS.

    在线安装

    仅限于有互联网的情况。

    1. #创建仓库配置
    2. sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    3. #导入仓库秘钥
    4. wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    5. #升级包
    6. sudo apt-get update
    7. #安装
    8. #若需要指定版本,可使用 "postgresql-11""postgresql-12"
    9. sudo apt-get -y install postgresql

    3.迁移数据文件

    安装完成后,数据文件默认保存在/usr/lib/postgresql中,生产环境我们需要调整数据文件位置。

    3.1.停止服务

    使用root用户

    systemctl stop postgresql

    3.2.调整数据目录

    使用postgres用户

    新建目录(根据具体空间分析)

    mkdir /data

    chown postgres:postgres /data

    #切换用户

    su - postgres

    #初始化数据库 切换用户后执行。

    /usr/lib/postgresql/11/bin/initdb -D /data

    执行样例

    1. postgres@docker1:~$ /usr/lib/postgresql/11/bin/initdb -D /data
    2. The files belonging to this database system will be owned by user "postgres".
    3. This user must also own the server process.
    4. The database cluster will be initialized with locale "en_US.UTF-8".
    5. The default database encoding has accordingly been set to "UTF8".
    6. The default text search configuration will be set to "english".
    7. Data page checksums are disabled.
    8. fixing permissions on existing directory /data ... ok
    9. creating subdirectories ... ok
    10. selecting default max_connections ... 100
    11. selecting default shared_buffers ... 128MB
    12. selecting default timezone ... Etc/UTC
    13. selecting dynamic shared memory implementation ... posix
    14. creating configuration files ... ok
    15. running bootstrap script ... ok
    16. performing post-bootstrap initialization ... ok
    17. syncing data to disk ... ok
    18. WARNING: enabling "trust" authentication for local connections
    19. You can change this by editing pg_hba.conf or using the option -A, or
    20. --auth-local and --auth-host, the next time you run initdb.
    21. Success. You can now start the database server using:
    22. /usr/lib/postgresql/11/bin/pg_ctl -D /data -l logfile start

    3.3.修改配置文件

    使用postgres用户

    修改文件posstgresql.conf

    vi /etc/postgresql/11/main/postgresql.conf

    1.增加 listen_adresses='*'

    2.修改数据文件路径

    data_directory="/data"

    3.修改最大连接数。将max_connections = 100,将该值改为500,保存后重新启动数据库。

    修改配置文件pg_hba.conf

    vi /etc/postgresql/11/main/pg_hba.conf

    在末尾增加 

    host all all 0.0.0.0/0 md5

    3.4.启动postgres

    使用postgres用户

    注意:此过程只进行一次,使其在/data下生成相应文件

    /usr/lib/postgresql/11/bin/pg_ctl -D /data -l logfile start

    /usr/lib/postgresql/11/bin/pg_ctl -D /data -l logfile stop

    验证

    下图是迁移前后数据文件的情况,可重点关注文件的更新时间,从而验证数据迁移是否完成。

    此时,可以删除掉原有目录的数据文件,避免日后被误导。

    4.安装插件

    使用postgres用户

    登录至postgres数据库

    psql

    修改用户密码

    postgres=ALTER USER postgres WITH PASSWORD 'postgres';

    启用特性uuid-ossp

    1. postgres=# create extension "uuid-ossp";
    2. CREATE EXTENSION

    验证特性是否启用成功

    1. postgres-# \dx
    2. 已安装扩展列表
    3. 名称 | 版本 | 架构模式 | 描述
    4. -----------+------+------------+-------------------------------------------------
    5. plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
    6. uuid-ossp | 1.1 | public | generate universally unique identifiers (UUIDs)

    截图

    5.常用操作

    在root下运行

    查看服务状态

    systemctl status postgresql

    停止服务

    systemctl stop postgresql

    启动服务

    systemctl start postgresql

    重启服务

    systemctl restart postgresql

    至此,postgres安装完成。


    关键词:pg11、安装、迁移。

  • 相关阅读:
    剑指offer面试题24 二叉树搜索树的后续遍历序列
    机器学习/算法工程师面试题目与答案-数学基础部分
    Pytorch(一)——Pytorch基础知识
    编写竞赛程序
    Profinet转Modbus网关模块实现PLC和从站Modbus通讯,无需编写程序
    Window环境NFS服务务器搭建及连接
    MongoDB数据库新手入门
    【机器学习】顶会冠军图像分割算法深度解密
    An Information-Theoretic Framework for Semi-Supervised Multi-Modality Learning
    PWA建快应用,小程序建超级App?
  • 原文地址:https://blog.csdn.net/yeqiyugood/article/details/127417716