IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    PostgreSQL 16 源码安装

    惜分飞发表于 2024-04-14 14:56:31
    love 0

    联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

    标题:PostgreSQL 16 源码安装

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    空闲中尝试在linux 8的版本上,源码安装PostgreSQL 16,参考文章:

    [root@xifenfei tmp]# cat /etc/redhat-release 
    Red Hat Enterprise Linux release 8.7 (Ootpa)
    [root@xifenfei tmp]#  uname -osr
    Linux 5.15.0-3.60.5.1.el8uek.x86_64 GNU/Linux
    

    下载pg源码程序:PostgreSQL 16源码下载
    linux配置

    --关闭selinux
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
    setenforce 0
    
    --安装相应的包
    yum -y install readline readline-devel zlib zlib-devel gettext \
     gettext-devel openssl openssl-devel pam pam-devel libxml2 \
    libxml2-devel libxslt libxslt-devel perl perl-devel tcl-devel \
    libuuid-devel gcc gcc-c++ make flex bison perl-ExtUtils*  libicu  libicu-devel
    
    --修改内核参数
    cat>>/etc/sysctl.conf<<EOF
    fs.file-max = 76724200
    kernel.sem = 10000 10240000 10000 1024
    kernel.shmmni = 4096
    kernel.shmall = 253702
    kernel.shmmax = 1039163392
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.wmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_max = 1048576
    fs.aio-max-nr = 40960000
    vm.dirty_ratio=20
    vm.dirty_background_ratio=3
    vm.dirty_writeback_centisecs=100
    vm.dirty_expire_centisecs=500
    vm.swappiness=10
    vm.min_free_kbytes=524288
    vm.swappiness=0
    vm.overcommit_memory=2
    vm.overcommit_ratio=75
    net.ipv4.ip_local_port_range = 10000 65535
    EOF
    sysctl -p
    
    --创建组和用户
    groupadd postgres -g 3000
    useradd postgres -g 3000 -u 3000
    
    --用户 limits 配置
    cat>>/etc/security/limits.conf<<EOF
    postgres soft nofile 1048576
    postgres hard nofile 1048576
    postgres soft nproc 131072
    postgres hard nproc 131072
    postgres soft stack 10240
    postgres hard stack 32768
    postgres soft core 6291456
    postgres hard core 6291456
    EOF
    
    --创建相关目录和权限
    mkdir -p /pg/database/server
    mkdir -p /pg/database/data
    mkdir -p /pg/database/wal
    mkdir -p /pg/database/archive
    chown -R postgres:postgres /pg -R
    chmod 0775 /pg
    chmod 0700 /pg/database/data
    
    --设置环境变量
    vi /home/postgres/.bash_profile
    export PGPORT=5432
    export PGUSER=postgres
    export PGHOME=/pg/database/server
    export PGDATA=/pg/database/data
    export PATH=$PGHOME/bin:$PATH
    
    --编译pg软件
    su - postgres
    tar xzvf postgresql-16.2.tar.gz
    cd /tmp/postgresql-16.2
    ./configure --prefix=/pg/database/server --with-pgport=5432
    make
    make install
    
    --确认软件安装成功(检查编译日志和测试如下命令)
    [postgres@xifenfei ~]$ postgres --version
    postgres (PostgreSQL) 16.2
    

    创建数据库

    [postgres@xifenfei ~]$  /pg/database/server/bin/initdb -D/pg/database/data\
     -X/pg/database/wal -EUTF8 -Upostgres -W
    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 text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    Enter new superuser password: 
    Enter it again: 
    
    fixing permissions on existing directory /pg/database/data ... ok
    fixing permissions on existing directory /pg/database/wal ... ok
    creating subdirectories ... ok
    selecting dynamic shared memory implementation ... posix
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting default time zone ... America/New_York
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    initdb: warning: enabling "trust" authentication for local connections
    initdb: hint: 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:
    
        /pg/database/server/bin/pg_ctl -D /pg/database/data -l logfile start
    

    启动数据库

    [postgres@xifenfei ~]$ /pg/database/server/bin/pg_ctl -D /pg/database/data -l logfile start
    waiting for server to start.... done
    server started
    [postgres@xifenfei ~]$ psql
    psql (16.2)
    Type "help" for help.
    
    postgres=# \d pg_class
                         Table "pg_catalog.pg_class"
           Column        |     Type     | Collation | Nullable | Default 
    ---------------------+--------------+-----------+----------+---------
     oid                 | oid          |           | not null | 
     relname             | name         |           | not null | 
     relnamespace        | oid          |           | not null | 
     reltype             | oid          |           | not null | 
     reloftype           | oid          |           | not null | 
     relowner            | oid          |           | not null | 
     relam               | oid          |           | not null | 
     relfilenode         | oid          |           | not null | 
     reltablespace       | oid          |           | not null | 
     relpages            | integer      |           | not null | 
     reltuples           | real         |           | not null | 
     relallvisible       | integer      |           | not null | 
     reltoastrelid       | oid          |           | not null | 
     relhasindex         | boolean      |           | not null | 
     relisshared         | boolean      |           | not null | 
     relpersistence      | "char"       |           | not null | 
     relkind             | "char"       |           | not null | 
     relnatts            | smallint     |           | not null | 
     relchecks           | smallint     |           | not null | 
     relhasrules         | boolean      |           | not null | 
     relhastriggers      | boolean      |           | not null | 
     relhassubclass      | boolean      |           | not null | 
     relrowsecurity      | boolean      |           | not null | 
     relforcerowsecurity | boolean      |           | not null | 
     relispopulated      | boolean      |           | not null | 
     relreplident        | "char"       |           | not null | 
     relispartition      | boolean      |           | not null | 
     relrewrite          | oid          |           | not null | 
     relfrozenxid        | xid          |           | not null | 
     relminmxid          | xid          |           | not null | 
     relacl              | aclitem[]    |           |          | 
     reloptions          | text[]       | C         |          | 
     relpartbound        | pg_node_tree | C         |          | 
    Indexes:
        "pg_class_oid_index" PRIMARY KEY, btree (oid)
        "pg_class_relname_nsp_index" UNIQUE CONSTRAINT, btree (relname, relnamespace)
        "pg_class_tblspc_relfilenode_index" btree (reltablespace, relfilenode)
    
    

    配置开机自动启动

    [root@xifenfei tmp]# cp /tmp/postgresql-16.2/contrib/start-scripts/linux /etc/init.d/PostgreSQL
    [root@xifenfei tmp]# vi /etc/init.d/PostgreSQL 
    --修改如下值
    prefix=/pg/database/server
    PGDATA="/pg/database/data"
    [root@xifenfei tmp]# chkconfig --add PostgreSQL
    [root@xifenfei tmp]# chkconfig --list
    
    Note: This output shows SysV services only and does not include native
          systemd services. SysV configuration data might be overridden by native
          systemd configuration.
    
          If you want to list systemd services use 'systemctl list-unit-files'.
          To see services enabled on particular target use
          'systemctl list-dependencies [target]'.
    
    PostgreSQL      0:off   1:off   2:on    3:on    4:on    5:on    6:off
    
    • PostgreSQL修改归档模式
    • 在linux上安装PostgreSQL 9.4并启动和关闭数据库
    • pg_rman 备份还原测试
    • PostgreSQL恢复系列:wal日志丢失恢复
    • PostgreSQL的表空间、数据库、用户之间的关系
    • PostgreSQL恢复系列:pg_control异常恢复
    • RedHat 6.1安装Oracle 11.2.0.3
    • psql: FATAL: no pg_hba.conf entry for host
    • redhat 4 安装 Oracle 10g
    • PostgreSQL恢复系列:pg_filedump基本使用
    • 跳过obj$坏块方法
    • CentOS 5安装oracle 11g R2数据库


沪ICP备19023445号-2号
友情链接