【01】openEuler 源码安装 PostgreSQL

openEuler 源码安装 PostgreSQL

  • 部署环境说明
  • Shell 前端软件包管理器基础概念
    • YUM 简介
    • DNF 简介
  • 源码安装 PostgreSQL
    • 环境变量(env)设置
      • 临时环境变量设置
      • 永久环境变量设置
    • 初始化数据库(initdb)
  • 数据库基本操作
    • 数据库基本配置(postgresql.conf)
    • 启动、停止、查看数据库
    • 使用 psql 登录数据库
    • 查看数据库版本信息
    • 更多(postgres/pg_ctl)命令说明

部署环境说明

  • Linux 系统:openEuler 22.03 LTS SP3 x86_64(下载地址:openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网)

  • 数据库:postgresql-15.6(下载地址:https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz)

pgsql

Shell 前端软件包管理器基础概念

YUM 简介


YUM(全称为 Yellow dog Updater, Modified)是一个在 FedoraRHEL、CentOS、OEL 中的 Shell 前端软件包管理器。

YUM 本身基于 RPM 包管理,能够从指定的 YUM 源服务器(一个或多个)自动下载 RPM 包并且进行安装和更新,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 RPM 软件包的 repository(软件仓库),这个软件仓库我们习惯称为 YUM 源 (可以是本地源、网络源)。

DNF 简介


DNF(全称为 Dandified yum)是新一代的 rpm 软件包管理器,他首先出现在 Fedora 18 这个发行版中。而最近,它取代了 yum,正式成为 Fedora 22 的包管理器。

DNFRHEL、CentOS、OEL 等系统中,从版本 8 开始出现,目前和 YUM 共存。

DNF 克服了 YUM 包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

DNF 使用 Hawkey 库,该库解析 RPM 依赖性以在客户端计算机上运行查询。 它们基于 libsolv 构建,libsolv 是一种使用可满足性算法的程序包相关性求解器。 您可以在 libsolvGitHub 存储库中找到有关该算法的更多详细信息。


openEuler 22.03 系统中默认使用 dnf 作为 rpm 软件包管理器,接下来我们也会使用该命令进行一些相关的操作。

源码安装 PostgreSQL

  1. 查看 linux 软件源。
vi /etc/dnf/dnf.conf
[repo-id 名称]
name=取个名字随意(通常和 repo-id 名称相同)
baseurl=软件源地址

# 或者

vi /etc/yum.repos.d/openEuler.repo

[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/OS&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler

参考:设置 openEuler(欧拉系统)安装源

  1. 安装编译环境依赖包(推荐使用 dnf )。
# yum 安装
sudo yum install -y systemtap-sdt-devel.x86_64 perl-ExtUtils-Embed bzip2 readline readline-devel lz4 lz4-devel openssl openssl-devel pam pam-devel libxml2 libxml2-devel libxslt libxslt-devel tcl tcl-devel openldap openldap-devel python3 python3-devel kernel-headers autoconf proj.x86_64 vim nc wget psmisc gcc-c++ gcc lrzsz make cmake telnet net-tools bind-utils tree cifs-utils ntpdate bash-completion sysstat iotop iftop htop unzip nmap bc bind-utils nethogs

# dnf 安装
sudo dnf install -y perl-ExtUtils-Embed readline-devel python3-devel pam-devel libxml2-devel libxslt-devel openldap-devel lz4-devel llvm-devel systemd-devel container-selinux selinux-policy-devel openssl-devel clang-devel flex-devel bison-devel gcc-c++ gcc cmake lsof net-tools tar 

其中有两个重要的工具来协助完成词法和语法分析,它们是:

  • flex 是词法分析( lexical analysis 或称为 scanning)
  • bison 是语法分析( systax analysis 或称为 parsing)
  1. 下载 postgresql 源码。
// 1. 切换到 /opt/postgresql 目录下
cd /opt/postgresql
// 2. 使用命令下载 postgresql
wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz
// 3. 解压文件
sudo tar -zxvf postgresql-15.6.tar.gz
// 4. 创建文件夹目录(用来存放安装 postgresql 的相关文件)
sudo mkdir -p /pgccc/pgdata/data
  1. 编译和安装 postgresql
// 1. 进入解压文件夹目录
cd /postgresql-15.6

// 2. 检测系统环境并生成 Makefile 文件,prefix 默认安装路径 /opt/postgresql/pgsql
./configure --prefix=/pgccc/pgdata --with-perl --with-python --with-pam --with-libxml --with-libxslt --with-ldap --with-lz4 --with-llvm --with-systemd --with-selinux --with-openssl 

// 3. 编译 & 安装
gmake world && gmake install-world

gmakegmake install 是两个命令,参数说明:

  • gmake,编译,依据 Makefile 文件把源码包编译成二进制可执行文件。
  • gmake install 安装的意思。

gmake && gmake install 的意思就是执行 gmake 如果没有发生错误就执行 gmake install

在编译的时候,可以指定 jobs 任务个数,这样可以使编译时间稍微快些。

gmake -j 3 world && gmake install-world
  • 查看 gmake 帮助信息
[postgres@euler /]$ gmake --help
用法:gmake [选项] [目标] ...
选项:
  -b, -m                      为兼容性而忽略。
  -B, --always-make           无条件制作 (make) 所有目标。
  -C 目录, --directory=目录    在执行前先切换到 <目录>-d                          打印大量调试信息。
  --debug[=旗标]               打印各种调试信息。
  -e, --environment-overrides
                              环境变量覆盖 makefile 中的变量。
  -E 字串, --eval=字串        将 <字串> 作为 makefile 语句估值。
  -f 文件, --file=文件, --makefile=文件
                              从 <文件> 中读入 makefile。
  -h, --help                  打印该消息并退出。
  -i, --ignore-errors         忽略来自命令配方的错误。
  -I 目录, --include-dir=目录  在 <目录> 中搜索被包含的 makefile。
  -j [N], --jobs[=N]          同时允许 N 个任务;无参数表明允许无限个任务。
  -k, --keep-going            当某些目标无法制作时仍然继续。
  -l [N], --load-average[=N], --max-load[=N]
                              在系统负载高于 N 时不启动多任务。
  -L, --check-symlink-times   使用软链接及软链接目标中修改时间较晚的一个。
  -n, --just-print, --dry-run, --recon
                              只打印命令配方,不实际执行。
  -o 文件, --old-file=文件, --assume-old=文件
                              将 <文件> 当做很旧,不必重新制作。
  -O[类型], --output-sync[=类型]
                           使用 <类型> 方式同步并行任务输出。
  -p, --print-data-base       打印 make 的内部数据库。
  -q, --question              不运行任何配方;退出状态说明是否已全部更新。
  -r, --no-builtin-rules      禁用内置隐含规则。
  -R, --no-builtin-variables  禁用内置变量设置。
  -s, --silent, --quiet       不输出配方命令。
  --no-silent                 对配方进行回显(禁用 --silent 模式)。
  -S, --no-keep-going, --stop
                              关闭 -k。
  -t, --touch                 touch 目标(更新修改时间)而不是重新制作它们。
  --trace                     打印跟踪信息。
  -v, --version               打印 make 的版本号并退出。
  -w, --print-directory       打印当前目录。
  --no-print-directory        关闭 -w,即使 -w 默认开启。
  -W 文件, --what-if=文件, --new-file=文件, --assume-new=文件
                              将 <文件> 当做最新。
  --warn-undefined-variables  当引用未定义变量的时候发出警告。
  1. 查看 postgresql 安装目录。
ls -al /pgccc/pgdata/

输出信息:

[root@euler /]# ls -al /pgccc/pgdata/
总用量 28
drwxr-xr-x. 7 root root 4096  229 20:28 .
drwxr-xr-x. 3 root root 4096  229 20:11 ..
drwxr-xr-x. 2 root root 4096  229 20:17 bin
drwxr-xr-x. 2 root root 4096  229 20:28 data
drwxr-xr-x. 4 root root 4096  229 20:17 include
drwxr-xr-x. 4 root root 4096  229 20:17 lib
drwxr-xr-x. 5 root root 4096  229 20:

文件目录说明:

  • bin 存放二进制文件;
  • include 存放 .h 头文件;
  • lib 存放安装所需的各种依赖库,动态库;
  • share 存放所需的插件(extension),组件;

环境变量(env)设置

临时环境变量设置

  1. 编写 shell 脚本:
vi pgsql-15.6-env.sh
# 写入环境变量配置信息
export PGHOME=/pgccc/pgdata
export PGHOST=localhost
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=/pgccc/pgdata/lib:$LD_LIBRARY_PATH 
export PGDATA=/pgccc/pgdata/data
export PGPORT=5432 
export PGUSER=postgres
  1. 执行命令,运行该文件(临时生成一下):
source pgsql-15.6-env.sh
  1. 查看初始化 db 版本信息,目的验证环境变量是否生效:
initdb --version
  1. 查看当前系统使用编码集:
echo $LANG

永久环境变量设置

环境变量配置文件 profile (不推荐全局修改)。可以使用命令输出当下用户环境变量信息:

env 或 peintenv

参考:Linux系统中.bash_profile文件详解_Linux_脚本之家 (jb51.net)

初始化数据库(initdb)

注意:源码安装PostgreSQL 数据库,没有默认的 postgres 用户,需自行手动创建用户组和用户,并设置密码。
原因:root 不能执行 PostgreSQL 的一些命令,因此要创建 postgres 这个用户。

  • 初始化数据库
initdb -D /pgccc/pgdata/data -U postgres

注意:使用非 root 授权用户执行初始化数据库命令。

若出现如下错误信息:

initdb: error: cannot be run as root
initdb: hint: Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

解决办法:

# 添加非 root 用户 postgres
sudo useradd postgres
# 给 postgres 用户设置密码
sudo passwd postgres
# 在相对应目录创建文件夹
sudo mkdir /pgccc/pgdata/data
# 给 postgres 用户授权 data 目录可执行权限
sudo chown -R postgres:postgres /pgccc/pgdata/data
# 切换非 root 账号(即:刚新增的账号)
su postgres
# 初始化数据库实例
initdb -D /pgccc/pgdata/data -U postgres
# 启动数据库实例
pg_ctl start -D /pgccc/pgdata/data -l logfile 
# 查看启动日志文件信息
cat ./logfile
  • 查看更多 initdb 命令帮助信息:
initdb --help

数据库基本操作

数据库基本配置(postgresql.conf)

  1. 配置数据库监听 IP 和端口(port):
vi /pgccc/pgdata/data/postgresql.conf

修改 listen_addressesport

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                             # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
#unix_socket_directories = '/tmp'       # comma-separated list of directories
                                        # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)
#unix_socket_permissions = 0777         # begin with 0 to use octal notation
                                        # (change requires restart)
#bonjour = off                          # advertise server via Bonjour
                                        # (change requires restart)
#bonjour_name = ''                      # defaults to the computer name
                                        # (change requires restart)

修改说明:

  • listen_addresses 默认值 localhost (只允许本地登录),配置为 “*” 代表在本机的所有地址上监听。

  • port 默认值 5432,如果安装了多个数据库实例,则需要为每个实例指定不同的监听端口。

  1. 配置数据库错误日志
#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

#log_destination = 'stderr'             # Valid values are combinations of
                                        # stderr, csvlog, jsonlog, syslog, and
                                        # eventlog, depending on platform.
                                        # csvlog and jsonlog require
                                        # logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on                  # Enable capturing of stderr, jsonlog,
                                        # and csvlog into log files. Required
                                        # to be on for csvlogs and jsonlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
                                        # can include strftime() escapes
#log_file_mode = 0600                   # creation mode for log files,
                                        # begin with 0 to use octal notation
#log_rotation_age = 1d                  # Automatic rotation of logfiles will
                                        # happen after that time.  0 disables.
#log_rotation_size = 10MB               # Automatic rotation of logfiles will
                                        # happen after that much log output.
                                        # 0 disables.

修改说明:

  • logging_collector = on ,默认为 off

  • log_directory = 'pg_log' ,默认为 log(相对路径,即 ${PGDATA}/pg_log)。也可以改为绝对路径,还可以定义在其他目录或者分区,但是必须先创建此目录,并且该目录有修改权限。

  • log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

参考:PostgreSQL 日志参数解释 常用环境日志参数配置_log_min_duration_statement-CSDN博客

启动、停止、查看数据库

可能出现类似的异常信息

  • 异常一:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.

解决方案,改用非 root 账号执行 pt_ctl 相关命令即可。

su postgres
  • 异常二:
[jeff@euler ~]$ pg_ctl --help
-bash: pg_ctl:未找到命令

解决方案,由于上面 postgresql 环境变量配置过程中使用的临时方式,切换用户后请重新执行下该命令。

source pgsql-15.6-env.sh
  1. 启动数据库
pg_ctl start -D /pgccc/pgdata/data

输出信息:

waiting for server to start....2024-02-29 22:15:38.584 CST [125692] LOG:  redirecting log output to logging collector process
2024-02-29 22:15:38.584 CST [125692] HINT:  Future log output will appear in directory "pg_log".
 done
server started
  1. 停止数据库
pg_ctl stop -D /pgccc/pgdata/data
  • pg_ctl stop 命令语法说明:
pg_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE]

参数说明:-m 是指数据库的停止方式,可选 3 种方式:

  • smart,待所有连接终止后关闭数据库。

  • fast,快速断开连接并关闭数据库。

  • immediate,立刻关闭数据库,下次启动数据库需要进行恢复。

如果不指定 -m,则默认使用 fast 方式关闭数据库。

  1. 重启数据库
pg_ctl restart -D /pgccc/pgdata/data
  1. 查看数据库运行状态
  • 方法一:pg_ctl status 命令查看
pg_ctl status -D /pgccc/pgdata/data

输出信息:

pg_ctl: server is running (PID: 125692)
/pgccc/pgdata/bin/postgres "-D" "/pgccc/pgdata/data"
  • 方法二:查看 postgres 进程信息
ps -ef | grep postgres
# (推荐)使用下面方式可以清晰看出层级结构
ps -axjf | grep postgres 

# 查看指定进程相关信息
lsof -p pid

输出 pid=1814 (此处为 postgres 实例)的进程信息:

[root@euler ~]# lsof -p 1814
COMMAND   PID     USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
postgres 1814 postgres  cwd    DIR              253,0     4096 1447087 /pgccc/pgdata/data2
postgres 1814 postgres  rtd    DIR              253,0     4096       2 /
postgres 1814 postgres  txt    REG              253,0  9363776 1444452 /pgccc/pgdata/bin/postgres
postgres 1814 postgres  DEL    REG                0,1             1025 /dev/zero
postgres 1814 postgres  mem    REG              253,0 19037712 3016591 /usr/lib/locale/locale-archive
postgres 1814 postgres  mem    REG              253,0   157976 3019397 /usr/lib64/libgpg-error.so.0.33.1
postgres 1814 postgres  mem    REG              253,0   223368 3018526 /usr/lib64/libcrypt.so.1.1.0
postgres 1814 postgres  mem    REG              253,0    63984 3018081 /usr/lib64/libresolv.so.2
postgres 1814 postgres  mem    REG              253,0    30840 3019511 /usr/lib64/libcap-ng.so.0.0.0
postgres 1814 postgres  mem    REG              253,0  1333016 3019544 /usr/lib64/libgcrypt.so.20.4.2
postgres 1814 postgres  mem    REG              253,0    43240 3030139 /usr/lib64/libcap.so.2.61
postgres 1814 postgres  mem    REG              253,0   117616 3020069 /usr/lib64/libsasl2.so.3.0.0
postgres 1814 postgres  mem    REG              253,0    68040 3027871 /usr/lib64/liblber.so.2.0.200
postgres 1814 postgres  mem    REG              253,0   133256 3019522 /usr/lib64/libaudit.so.1.0.0
postgres 1814 postgres  mem    REG              253,0   161992 3018465 /usr/lib64/liblzma.so.5.2.5
postgres 1814 postgres  mem    REG              253,0  2055336 3018072 /usr/lib64/libc.so.6
postgres 1814 postgres  mem    REG              253,0   812088 3030154 /usr/lib64/libsystemd.so.0.32.0
postgres 1814 postgres  mem    REG              253,0   397056 3027873 /usr/lib64/libldap.so.2.0.200
postgres 1814 postgres  mem    REG              253,0   891176 3018075 /usr/lib64/libm.so.6
postgres 1814 postgres  mem    REG              253,0   100552 3018407 /usr/lib64/libz.so.1.2.11
postgres 1814 postgres  mem    REG              253,0  3047192 3035664 /usr/lib64/libcrypto.so.1.1.1wa
postgres 1814 postgres  mem    REG              253,0   628816 3035666 /usr/lib64/libssl.so.1.1.1wa
postgres 1814 postgres  mem    REG              253,0    67784 3031855 /usr/lib64/libpam.so.0.85.1
postgres 1814 postgres  mem    REG              253,0  1492264 3015964 /usr/lib64/libxml2.so.2.9.14
postgres 1814 postgres  mem    REG              253,0   133240 3019814 /usr/lib64/liblz4.so.1.9.3
postgres 1814 postgres  mem    REG               0,23    26976       2 /dev/shm/PostgreSQL.2062550190
postgres 1814 postgres  mem    REG              253,0   199960 3018068 /usr/lib64/ld-linux-x86-64.so.2
postgres 1814 postgres  DEL    REG                0,1                0 /SYSV001614af
postgres 1814 postgres    0r   CHR                1,3      0t0       4 /dev/null
postgres 1814 postgres    1w  FIFO               0,12      0t0   20345 pipe
postgres 1814 postgres    2w  FIFO               0,12      0t0   20345 pipe
postgres 1814 postgres    3r  FIFO               0,12      0t0   20344 pipe
postgres 1814 postgres    4w  FIFO               0,12      0t0   20344 pipe
postgres 1814 postgres    5r  FIFO               0,12      0t0   20345 pipe
postgres 1814 postgres    6u  IPv4              20349      0t0     TCP *:personal-agent (LISTEN)
postgres 1814 postgres    7u  IPv6              20350      0t0     TCP *:personal-agent (LISTEN)
postgres 1814 postgres    8u  unix 0x0000000009ef7753      0t0   20351 /tmp/.s.PGSQL.5555 type=STREAM (LISTEN)

说明:linux 系统中 lsof 命令加 -p 是指定进程,不加 -p 的是线程。

  • 方法三:查看数据库状态
pg_isready -p 5432
  • 方法四:判断监听端口
# 安装 net-tools
dnf install -y net-tools
# 监听端口
netstat -nutlp | grep 5432

输出信息:

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      1814/postgres       
tcp6       0      0 :::5432                 :::*                    LISTEN      1814/postgres 

使用 psql 登录数据库

psql 是一个客户端命令工具,可以对数据库实例执行相关操作。

说明:psql 连接数据库,不指定的情况下,默认连接 5452 端口,且使用当前用户查找同名 DB 实例。

  1. 登录方式一:
psql postgresql://postgres:pg123@172.17.0.3:5432/postgres

参数说明:

  • postgresql,协议名称。

  • postgres,数据库用户名。

  • pg123,用户密码。

  • 172.17.0.3,数据库 IP 地址。

  • 5432,数据库实例监听端口。

  • postgres,需要访问的数据库名称。

  1. 登录方式二:
psql -U postgres -h 172.17.0.3 -p 5432 -d postgres

参数说明:

  • -Upostgresql 用户名。

  • -h,数据库 IP 地址。

  • -p,数据库实例监听端口。

  • -d,需要访问的数据库名称。

  1. 登录方式三:使用 psql 直接连接数据库,需要通过设置 postgres 用户的环境变量(env)来实现。
psql

参考:PostgreSQL psql两种登录方式_postgresql登录-CSDN博客

  • 查看 pgsql 更多帮助信息:
psql --help

查看数据库版本信息

  • 登录数据库后,查看数据库(服务端)版本信息:
[postgres@euler /]$ psql -U postgres -p 5432 -d postgres
psql (15.6)
Type "help" for help.

postgres=# select version();
                                   version                                    
------------------------------------------------------------------------------
 PostgreSQL 15.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 10.3.1, 64-bit
(1 row)

postgres=# SHOW server_version;
 server_version 
----------------
 15.6
(1 row)

postgres=# SHOW server_version_num;
 server_version_num 
--------------------
 150006
(1 row)
  • 推出 psql 查看数据库(服务端)版本信息:
postgres-# \q
[postgres@euler /]$ postgres --version
postgres (PostgreSQL) 15.6
  • 查看数据库客户端工具版本信息
psql --version

注意:psql --version 返回的是 psql 工具的版本,而不是服务器版本。

更多(postgres/pg_ctl)命令说明

说明:pg_ctl 命令本质上是包装了 postgres 的命令操作,推荐使用 pg_ctl 命令。

  • pg_ctl --help
[postgres@euler /]$ pg_ctl --help
pg_ctl is a utility to initialize, start, stop, or control a PostgreSQL server.

Usage:
  pg_ctl init[db]   [-D DATADIR] [-s] [-o OPTIONS]
  pg_ctl start      [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]
                    [-o OPTIONS] [-p PATH] [-c]
  pg_ctl stop       [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
  pg_ctl restart    [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
                    [-o OPTIONS] [-c]
  pg_ctl reload     [-D DATADIR] [-s]
  pg_ctl status     [-D DATADIR]
  pg_ctl promote    [-D DATADIR] [-W] [-t SECS] [-s]
  pg_ctl logrotate  [-D DATADIR] [-s]
  pg_ctl kill       SIGNALNAME PID

Common options:
  -D, --pgdata=DATADIR   location of the database storage area
  -s, --silent           only print errors, no informational messages
  -t, --timeout=SECS     seconds to wait when using -w option
  -V, --version          output version information, then exit
  -w, --wait             wait until operation completes (default)
  -W, --no-wait          do not wait until operation completes
  -?, --help             show this help, then exit
If the -D option is omitted, the environment variable PGDATA is used.

Options for start or restart:
  -c, --core-files       allow postgres to produce core files
  -l, --log=FILENAME     write (or append) server log to FILENAME
  -o, --options=OPTIONS  command line options to pass to postgres
                         (PostgreSQL server executable) or initdb
  -p PATH-TO-POSTGRES    normally not necessary

Options for stop or restart:
  -m, --mode=MODE        MODE can be "smart", "fast", or "immediate"

Shutdown modes are:
  smart       quit after all clients have disconnected
  fast        quit directly, with proper shutdown (default)
  immediate   quit without complete shutdown; will lead to recovery on restart

Allowed signal names for kill:
  ABRT HUP INT KILL QUIT TERM USR1 USR2

Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>
  • postgres --help
[postgres@euler /]$ postgres --help
postgres is the PostgreSQL server.

Usage:
  postgres [OPTION]...

Options:
  -B NBUFFERS        number of shared buffers
  -c NAME=VALUE      set run-time parameter
  -C NAME            print value of run-time parameter, then exit
  -d 1-5             debugging level
  -D DATADIR         database directory
  -e                 use European date input format (DMY)
  -F                 turn fsync off
  -h HOSTNAME        host name or IP address to listen on
  -i                 enable TCP/IP connections
  -k DIRECTORY       Unix-domain socket location
  -l                 enable SSL connections
  -N MAX-CONNECT     maximum number of allowed connections
  -p PORT            port number to listen on
  -s                 show statistics after each query
  -S WORK-MEM        set amount of memory for sorts (in kB)
  -V, --version      output version information, then exit
  --NAME=VALUE       set run-time parameter
  --describe-config  describe configuration parameters, then exit
  -?, --help         show this help, then exit

Developer options:
  -f s|i|o|b|t|n|m|h forbid use of some plan types
  -n                 do not reinitialize shared memory after abnormal exit
  -O                 allow system table structure changes
  -P                 disable system indexes
  -t pa|pl|ex        show timings after each query
  -T                 send SIGSTOP to all backend processes if one dies
  -W NUM             wait NUM seconds to allow attach from a debugger

Options for single-user mode:
  --single           selects single-user mode (must be first argument)
  DBNAME             database name (defaults to user name)
  -d 0-5             override debugging level
  -E                 echo statement before execution
  -j                 do not use newline as interactive query delimiter
  -r FILENAME        send stdout and stderr to given file

Options for bootstrapping mode:
  --boot             selects bootstrapping mode (must be first argument)
  --check            selects check mode (must be first argument)
  DBNAME             database name (mandatory argument in bootstrapping mode)
  -r FILENAME        send stdout and stderr to given file

Please read the documentation for the complete list of run-time
configuration settings and how to set them on the command line or in
the configuration file.

Report bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/429812.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 26. 删除有序数组中的重复项 java版。 java解决删除重复数组元素并输出长度

1. 官网链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述&#xff1a; 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该…

JavaScript实现将输入框内容放大的效果

问题描述&#xff1a;利用DOM所学知识&#xff0c;实现在输入框内输入内容时&#xff0c;在输入框上方显示一个将文字放大的框&#xff0c;在不输入内容时&#xff0c;这个框是被隐藏的。 关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><he…

第三篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas股票市场数据分析

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas进行股票市场数据分析常见步骤和示例代码1. 加载数据2. 数据清洗和准备3. 分析股票价格和交易量4. 财务数据分析 二、扩展思路介绍1. 技术指标分析2. 波动性分析3. 相关性分析4.…

用docker部署后端项目

一、搭建局域网 1.1、介绍前后端项目搭建 需要4台服务器&#xff0c;在同一个局域网中 1.2、操作 # 搭建net-ry局域网&#xff0c;用于部署若依项目 net-ry&#xff1a;名字 docker network create net-ry --subnet172.68.0.0/16 --gateway172.68.0.1#查看 docker network ls…

MySQL--优化(SQL语句执行慢,如何分析)

MySQL–优化&#xff08;SQL语句执行慢&#xff0c;如何分析&#xff09; 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、如何分析 聚合查询&#xff1a; 对于涉及大量数据的聚合操作&#xff0c;如果可能的…

边缘计算网关在机床生产中的应用-天拓四方

随着工业4.0的推进&#xff0c;物联网&#xff08;IoT&#xff09;技术在各个工业领域中的应用日益广泛。特别是在机床行业&#xff0c;物联网技术的引入不仅提高了生产效率&#xff0c;还实现了对机床设备的实时监控和远程维护。在这一背景下&#xff0c;边缘计算网关的角色愈…

苹果因在iOS音乐流媒体市场上的反向引导行为,在欧盟被罚款18.4亿欧元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

对接华泰极速行情丨DolphinDB INSIGHT 插件使用教程

INSIGHT 是华泰证券依托大数据存储、实时分析等领域的技术积累&#xff0c;整合接入国内多家交易所高频行情数据&#xff0c;为投资者提供集行情接入、推送、回测、计算及分析等功能于一体的行情数据服务解决方案。基于 INSIGHT 官方提供的行情数据服务 C SDK&#xff08;TCP 版…

【对比】Gemini:听说GPT-4你小子挺厉害

前言 &#x1f34a;缘由 谷歌连放大招:Gemini Pro支持中文,Bard学会画画 &#x1f3c0;事情起因&#xff1a; 一心只读圣贤书的狗哥&#xff0c;不经意间被新闻吸引。【谷歌最新人工智能模型Gemini Pro已在欧洲上市 将与ChatGPT竞争】&#xff0c; 平时玩弄ChatGPT-4很熟练了…

[c/c++] 结构体对齐

在 c 语言中&#xff0c;结构体的大小并不是结构体每个成员的大小之和&#xff0c;结构体的大小往往比结构体的成员大小之和要大。如下结构体&#xff0c;每个成员的大小分别是 1、4、1&#xff0c;但是结构体的大小却不是 6&#xff0c;而是 8。 struct Test { char a; int b;…

怎么将pom在文件放到src下方

今天在IDEA从git拉取项目的时候&#xff0c;发现pom.xml文件在文件夹src的上方&#xff0c;平时看惯了项目的pom.xml文件在文件夹src的下方&#xff0c;应该怎么去设置呢&#xff1f; 点击设置——>点击Folder Always on Top 即可 参考&#xff1a;http://t.csdnimg.cn/s34…

淘宝买家卖家ERP API(添加购物车、上下架商品、订单)

custom-自定义API操作 taobao.custom 调用地址 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_se…

【JavaEE进阶】部署Web项目到Linux服务器

文章目录 &#x1f343;前言&#x1f340;什么是部署&#x1f332;环境配置&#x1f6a9;数据准备&#x1f6a9;程序配置⽂件修改 &#x1f384;构建项目并打包&#x1f38b;上传Jar包到服务器,并运行&#x1f6a9;上传Jar包&#x1f6a9;运行程序&#x1f6a9;开放端口号 &…

HotFix原理学习 IL2CPP 学习

原文链接&#xff1a;Unity 游戏用XLua的HotFix实现热更原理揭秘-CSDN博客 本文通过对XLua的HoxFix使用原理的研究揭示出来这样的一套方法。这个方法的 第一步&#xff1a;通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步&#xff1a;生成函数连接器…

2024年【焊工(初级)】考试题及焊工(初级)考试资料

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;初级&#xff09;考试题是安全生产模拟考试一点通生成的&#xff0c;焊工&#xff08;初级&#xff09;证模拟考试题库是根据焊工&#xff08;初级&#xff09;最新版教材汇编出焊工&#xff08;初级…

XM外汇平台自行扣除客户账户资金,理由荒谬且无据!

小编在FX110网多年&#xff0c;也算是“见多识广”了&#xff0c;可虽说是见惯了平台的“骚操作”&#xff0c;但对于XM平台这一次的行径&#xff0c;还是挺震惊的&#xff0c;只能说平台方多少有点无赖了&#xff01; 事故源于一位XM用户的一次出金&#xff0c;发现莫名其妙被…

LeetCode每日一题之 复写0

目录 题目介绍&#xff1a; 算法原理&#xff1a; 特殊位置处理&#xff1a; 代码实现&#xff1a; 题目介绍&#xff1a; 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 算法原理&#xff1a; 这种对数组元素进行修改&#xff0c;移动的题目我们仍然可以…

LeetCode-02

225. 用队列实现栈 用两个队列实现栈的功能&#xff0c;思路如下&#xff1a; 往空队列中放新元素把非空队列中的元素依次放入刚才添加了新元素的队列&#xff0c;直到非空队列变为空队列 class MyStack(object):def __init__(self):self.queue1 []self.queue2 []def push(…

台式电脑电源各线的电压和电流输出和输出电流

台式电脑电源是电脑硬件的重要组成部分。 它为计算机的各个部件提供所需的电压和电流。 不同的硬件设备和组件有不同的电压和电流输出。 下面详细介绍台式电脑电源各线的电压&#xff0c;包括3.3V、5V、12V、-12V、-5V和5VSB&#xff0c;以及它们的输出电流和用途。 3.3V&#…

命名实体识别NER(综合代码示例)

一、命名实体识别发展方向 二、中文数据集 CCKS2017开放的中文的电子病例测评相关的数据。 评测任务一&#xff1a;https://biendata.com/competition/CCKS2017_1/ 评测任务二&#xff1a;https://biendata.com/competition/CCKS2017_2/ CCKS2018开放的音乐领域的实体识别任务…