千家信息网

Centos如何安装postgresql?

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,今天小编就为大家带来一篇介绍Centos安装postgresql的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。这篇文章给大家分享的是linux安装win7系统的详细安装教程
千家信息网最后更新 2024年11月23日Centos如何安装postgresql?

今天小编就为大家带来一篇介绍Centos安装postgresql的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。

这篇文章给大家分享的是linux安装win7系统的详细安装教程,相信大部分人都还不知道怎么安装,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

安装概要

环境centos 7.4/5/6 x86_64,源码安装,安装过程没啥好说的,主要是配置服务器的参数;既然是服务器,咱还是要严谨点,再说linux COPY 速度也很快,体力活;

下载介质:wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz

1 软件包安装

yum install net-tools -yyum install sysstat -yyum install iotop libXp redhat-lsb gcc gdb -yyum install xorg-x11-xauth -yyum install -y vim lrzsz tree wget gcc gcc-c++ readline-devel hwloc smartmontools--dbyum install -y readline readline-devel openssl openssl-devel zlib zlib-devel numactl


2 启用大页

启用大页:

DB:

/etc/default/grubnet.ifnames=0 biosdevname=0 default_hugepagesz=2M hugepagesz=2M hugepages=81920 transparent_hugepage=never

执行生效命令

grub2-mkconfig -o /boot/grub2/grub.cfg

修改大页数量,不用重启生效:

sysctl -w vm.nr_hugepages=81920

复查:

cat /proc/cmdlinecat /sys/kernel/mm/transparent_hugepage/enabled[root@kbj-db-1 ~]# grep -i hugepage /proc/meminfoAnonHugePages:         0 kBHugePages_Total:   81920HugePages_Free:    44703HugePages_Rsvd:    43036HugePages_Surp:        0Hugepagesize:       2048 kB


3 更改内核参数

net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576fs.aio-max-nr = 1048576fs.file-max = 6815744fs.aio-max-nr = 1048576kernel.panic_on_oops=1net.core.somaxconn = 8192net.ipv4.tcp_keepalive_time = 600  #默认7200net.ipv4.ip_local_port_range = 10000 65000 #默认32768到61000 net.ipv4.tcp_max_syn_backlog = 8192 #默认1024net.ipv4.tcp_max_tw_buckets = 5000 #默认65535#vm.nr_hugepages = 81920  #Db 启用81920*2M的大页kernel.sem = 4096 128000 64  512vm.swapniess=10
大页的算法官方提供了一个脚本:#!/bin/bashpid=`head -1 $PGDATA/postmaster.pid`echo "Pid:            $pid"peak=`grep ^VmPeak /proc/$pid/status | awk '{ print $2 }'`echo "VmPeak:            $peak kB"hps=`grep ^Hugepagesize /proc/meminfo | awk '{ print $2 }'`echo "Hugepagesize:   $hps kB"hp=$((peak/hps))echo Set Huge Pages:     $hp

4更改用户限制

vi /etc/security/limits.confpostgres soft nproc 16384postgres hard nproc 16384postgres soft nofile 65536postgres hard nofile 65536


5修改环境变量(HISTORY)

vi /etc/profile

export.UTF8

export HISTTIMEFORMAT="%F %T "

export HISTSIZE=12000

ulimit -SHn 65536

6更改数据库服务器磁盘IO算法

磁盘的IO调度算法,根据实际情况调整,推荐cfq/noop


echo noop>/sys/block/sdb/queue/schedulercat /sys/block/sdb/queue/scheduler[noop] deadline cfq[root@kbj-db-1 ssd]# time dd if=/dev/zero of=/ssd/test.dmp bs=8192 count=12800000^C记录了4873412+0 的读入记录了4873412+0 的写出39922991104字节(40 GB)已复制,35.9298 秒,1.1 GB/秒

7配置用户及目录

groupadd -g 106 ssl-certgroupadd -g 107 postgresuseradd -g postgres -G ssl-cert -u 104 postgreschown postgres:postgres -R /ssdsu - postgres[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/pg114data[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/114arch[postgres@kbj-db-1 ssd]$ mkdir /ssd/database/pg114home

8设置postgresql环境变量

export PGDATA=/ssd/database/pg114dataexport PGARCH=/ssd/database/114archexport PGHOME=/ssd/database/pg114homeexport LD_LIBRARY_PATH=/ssd/database/pg114home/libexport PATH=$PGHOME/bin:$PATH PATH=$PATH:$HOME/.local/bin:$HOME/bin

9安装

./configure根据实际情况选择

tar -xzvf postgresql-11.4.tar.gzcd postgresql-11.4/./configure --prefix=/ssd/database/pg114home --with-python --with-ossp-uuid --with-libxml --with-openssl --enable-dtrace --enable-debugcd /ssd/postgresql-11.4/contrib/make make install /ssd/postgresql-11.4/contrib/file_fdwcd $PGHOME/bin/ ./initdb -D $PGDATA#连接数据库 psql -p5432 -Upostgres -d postgres#安装插件create extension pg_buffercache ;create extension pg_stat_statements;CREATE EXTENSION file_fdw;create extension pgrowlocks;CREATE SERVER file_fdw_server FOREIGN DATA WRAPPER file_fdw; select current_database(),* from pg_extension select * from pg_available_extensions where name like '%uuid%'; --扩展插件检查 select * from pg_available_extensions where name in ( 'fuzzystrmatch','pg_visibility','tablefunc','amcheck','intarray','tsm_system_time','pgrowlocks','tcn','dict_int','unaccent','btree_gin','dict_xsyn','intagg','insert_username','dblink','lo','uuid-ossp','adminpack','bloom','postgres_fdw','pageinspect','pg_freespacemap','pg_prewarm','pgcrypto','pg_buffercache','file_fdw','btree_gist','xml2','citext','pg_stat_statements','refint','pgstattuple','timetravel','hstore','moddatetime','isn','cube','autoinc','pg_trgm','ltree','plpgsql','seg','tsm_system_rows','earthdistance')
说明一下:指定安装参数: --with-wal-segsize=SEGSIZE设置WAL 段尺寸,以 M 字节计。这是 WAL 日志中每一个独立文件的尺寸。调整这个值来控制传送 WAL 日志的粒度非常有用。默认尺寸为 16 M字节。这个值必须是2的幂并且在 1 到 1024 (M字节)之间。注意修改这个值需要一次 initdb。--with-segsize=SEGSIZE设置段尺寸,以 G 字节计。大型的表会被分解成多个操作系统文件,每一个的尺寸等于段尺寸。这避免了与操作系统对文件大小限制相关的问题。默认的段尺寸(1G字节)在所有支持的平台上都是安全的。如果你的操作系统有"largefile"支持(如今大部分都支持),你可以使用一个更大的段尺寸。这可以有助于在使用非常大的表时消耗的文件描述符数目。但是要当心不能选择一个超过你将使用的平台和文件系统所支持尺寸的值。你可能希望使用的其他工具(如tar)也可以对可用文件尺寸设限。如非绝对必要,我们推荐这个值应为2的幂。注意改变这个值需要一次 initdb。--with-blocksize=BLOCKSIZE设置块尺寸,以 K 字节计。这是表内存储和I/O的单位。默认值(8K字节)适合于大多数情况,但是在特殊情况下可能其他值更有用。这个值必须是2的幂并且在 1 和 32 (K字节)之间。注意修改这个值需要一次 initdb。--with-wal-blocksize=BLOCKSIZE设置WAL 块尺寸,以 K 字节计。这是 WAL 日志存储和I/O的单位。默认值(8K 字节)适合于大多数情况,但是在特殊情况下其他值更好有用。这个值必须是2的幂并且在 1 到 64(K字节)之间。注意修改这个值需要一次 initdb。--with-python 制作PL/Python服务器端编程语言。完整参考:http://www.postgres.cn/v2/document


10 更改日志文件默认配置

1 #启用DDL记录

log_statement=ddl

2日志保留91,log_line_prefix = '%m %p %u %d %r %a '

log_rotation_age = 91dlog_rotation_size = 20MBlog_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

3 启用文件权限,EFK使用

log_file_mode=0604

4 启用长时SQL记录auto_explain.log_min_duration=10000

archive_mode = onarchive_command = 'cp %p /home/postgres/arch/%f'wal_level =replica

以上就是Centos安装postgresql的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

0