赞
踩
目录
1 安装包方式 (Packages and Installers)
支持的操作系统包括
通过下载地址PostgreSQL: File Browser
可以看到有各个版本的源码目录 选择13.12的版本,源码包提供另种打包压缩方式 分别为tar.bz2和 tar.gz。这里下载postgresql-13.12.tar.gz
tar -zxvf postgresql-13.12.tar.gz
之后出现源码目录 postgresql-13.12,包含的文件如下
yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib
./configure
该脚本将运行一些测试来决定一些系统相关的变量, 并检测你的操作系统的特殊设置,并且最后将在编译树中创建一些文件以记录它找到了什么。
默认时所有文件都将安装到/usr/local/pgsql
make
make install
/usr/local/pgsql目录下的文件夹
~/.bash_profile 在这个文件中设置只影响本用户
/etc/profile 在这个文件中设置只影响所有用户
export PATH=/usr/local/pgsql/bin:$PATH export MANPATH=/usr/local/pgsql/share/man:$MANPATH export LD_LIBRARY_PATH=/usr/local/pgsql/lib export PGPORT=5432 export LANG=en_US.UTF8 export PS1="[`whoami`@`hostname`:"'$PWD]$' export PGDATA=/home/storage/pgsql/data export PGHOME=/usr/local/pgsql
以便让运行时链接器更快地找到共享库
/sbin/ldconfig /usr/local/pgsql/lib /sbin/ldconfig -m /usr/local/pgsql/lib
CPU 架构上工作:x86、 x86_64、IA64、PowerPC、PowerPC 64、S/390、S/390x、Sparc、Sparc 64、ARM、MIPS、MIPSEL和PA-RISC
Linux(所有最近的发布)、Windows(XP及以上)、 FreeBSD、OpenBSD、NetBSD、macOS、AIX、HP/UX 和 Solaris。其他类 Unix 系统可能也可以工作,但是目前没有被测试。
通常使用postgres这个用户名
groupadd postgres
useradd postgres -g postgres
mkdir -p /home/storage/pgsql/data
chown -R postgres:postgres /home/storage/pgsql/data
chown -R postgres:postgres /usr/local/pgsql
方式一
initdb -D /home/storage/pgsql/data
方式二
pg_ctl -D /home/storage/pgsql/data initdb
pg_ctl -D /home/storage/pgsql/data -l logfile start
直接管理服务器时,可以通过向 postgres 进程发送不同的信号来控制关闭的类型:
这是智能关闭模式。在接收SIGTERM后, 服务器将不允许新连接,但是会让现有的会话正常结束它们的工作。仅当所有的会话终止后它才关闭。 如果服务器处在线备份模式,它将等待直到在线备份模式不再被激活。当在线备份模式被激活时, 仍然允许新的连接,但是只能是超级用户的连接(这一例外允许超级用户连接来终止在线备份模式)。 如果服务器在恢复时请求智能关闭,恢复和流复制只有在所有正常会话都终止后才停止。
这是快速关闭模式。服务器不再允许新的连接,并向所有现有服务器进程发送SIGTERM,让它们中断当前事务并立刻退出。然后服务器等待所有服务器进程退出并最终关闭。 如果服务处于在线备份模式,备份模式将被终止并致使备份无用。
这是立即关闭模式。服务器将给所有子进程发送 SIGQUIT并且等待它们终止。如果有任何进程没有在 5 秒内终止,它们将被发送 SIGKILL。主服务器进程将在所有子进程退出之后立刻退出,而无需做普通的数据库关闭处理。这将导致在下一次启动时(通过重放 WAL 日志)恢复。只在紧急 时才推荐这种方式。
kill -INT `head -1 /home/storage/pgsql/data/postmaster.pid`
psql
默认的共享内存设置通常已经足够好了,除非您将shared_memory_type设置为sysv,即使这样, 也只适用于低默认值的旧内核版本。System V信号量不在此平台上使用。
共享内存大小设置可以通过sysctl界面更改。例如,允许 16 GB:
$ sysctl -w kernel.shmmax=17179869184 $ sysctl -w kernel.shmall=4194304
Unix类操作系统强制了许多种资源限制,这些限制可能干扰你的PostgreSQL服务器的操作。尤其重要的是对每个用户的进程数目的限制、每个进程打开文件数目的限制以及每个进程可用的内存的限制。这些限制中每个都有一个“硬”限制和一个“软”限制。实际使用的是软限制,但用户可以自己修改成最大为硬限制的数目。而硬限制只能由root用户修改
如果正在使用systemd,则必须注意IPC资源(包括共享内存) 不会被操作系统过早删除
方式一 创建用户时使用以下方式,创建postgres为系统用户
useradd -r
adduser --system
useradd --help
-r, --system create a system account
方式二 如果用户创建不正确 或者 无法修改的情况下
修改文件 /etc/systemd/logind.conf
添加配置
RemoveIPC=no
https://www.cnblogs.com/binliubiao/p/15524509.html
设置为可以使用物理内存 和 交换空间(swap),可以避免在内存用尽时PG进程发生OOM
sysctl -w vm.overcommit_memory=2
某些情况中,降低内存相关的配置参数可能有所帮助,特别是shared_buffers、work_mem和hash_mem_multiplier。在其他情况中,允许太多连接到数据库服务器本身也可能导致该问题。
在很多情况下,最好减小max_connections并且转而利用外部连接池软件。
GitHub - faisalbasra/postgres_books
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。