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

  • Post author:
  • Post category:其他


本文是针对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权限。

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

或执行目录内 install.sh 脚本

检查

systemctl status postgresql

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

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

Oct 19 14:00:41 docker1 systemd[1]: Starting PostgreSQL RDBMS...
Oct 19 14:00:41 docker1 systemd[1]: Finished PostgreSQL RDBMS.

在线安装

仅限于有互联网的情况。

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

执行样例

postgres@docker1:~$ /usr/lib/postgresql/11/bin/initdb -D /data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Etc/UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /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

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

验证特性是否启用成功

postgres-# \dx
 已安装扩展列表
 名称 | 版本 | 架构模式 | 描述 
-----------+------+------------+-------------------------------------------------
 plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
 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、安装、迁移。



版权声明:本文为yeqiyugood原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。