圈子推荐
查看所有吧>>
活跃用户
    Vastbase 在Centos 7.6上安装过程

    1. 安装概述

          Vastbase支持单机部署和流复制集群两种方式。单机部署时,可在一个主机部署多个数据库实例,但为了数据安全,不建议用户这样部署。流复制集群部署支持一台主机和最少一台备机。

    单机部署和流复制部署均支持原生PostgreSQL和兼容Oracle模式。原生PG模式下,您可以安装Vastbase数据库并正常使用。兼容模式是在原生PG模式的基础上做了兼容性增强,安装兼容包后会兼容Oracle数据库的语法,便于习惯主流数据库的用户使用。

    2. 安装准备

    2.1. 操作系统版本要求


    2.2. 服务器配置建议

    2.2.1. 开发测试环境


    3. 操作系统配置

    3.1. 关闭防火墙

      为了在防火墙开启的状态下,确保Vastbase的正常使用。用户需要将同Vastbase相关的服务、协议、IP以及端口添加到Vastbase各主机的防火墙白名单中。

    步骤关闭防火墙

    [root@plat1 ~]# systemctl stop firewalld.service


    步骤修改/etc/selinux/config文件中的“SELINUX”值为“disabled”

    vim /etc/selinux/config

    修改SELINUX”的值“disabled

    SELINUX=disabled


    步骤永久关闭防火墙

    [root@plat1 ~]# systemctl disable firewalld.service


    3.2. 设置时区和时间

          将各数据库节点的时区设置为相同时区,可以将/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。


    cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

    使用data -s命令将数据库节点的时间设置相同,举例如下。

    date -s "2020-08-03 14:15:00"


    3.3. 设置网卡MTU

          将各数据库节点的网卡MTU值设置为相同大小。MTU值推荐8192,要求不小于1500。

    ifconfig 网卡编号 mtu

    例如

    Ifconfig eth0 mtu 8192


    3.4. 设置root允许远程登录

           在安装Vastbase安装时需要root帐户远程登录访问权限,本章介绍如何设置使用root用户远程登录。

           步骤修改PermitRootLogin配置,允许用户远程登录。

           打开sshd_config文件

           vim /etc/ssh/sshd_config


           修改权限配置,可以使用以下两种方式实现:

           注释掉PermitRootLogin no

           #PermitRootLogin no

           将PermitRootLogin”改为“yes

           PermitRootLogin yes

           执行:wq保存并退出编辑页面


           步骤重启ssh使命令生效


            systemctl restart sshd.service

     

    3.5. 操作系统参数

    # vi /etc/sysctl.conf

     

    #linux67上,使用aio的话,需要设置它,适应异步IO可以不需要重新修改该值

    fs.aio-max-nr = 1048576

    #linux67上,允许打开文件数,pg参数max_files_per_process对应,不重新修改该值

    fs.file-max = 76724600

    # 信号量, ipcs -l -u 查看,每16个进程一组,每组信号量需要17个信号量。不重新修改该值

    (四个参数,第一个参数*第四个参数第二个参数, 第一个参数和第三个参数相等)

    第一个代表信号量, 第四个代表是组, 第三个参数设置大于等于17

    kernel.sem = 4096 2147483647 2147483646 512000    

    # 所有共享内存段相加大小限制(建议内存的80%单位page,查看page大小getconf PAGE_SIZE)

    # 例如:page大小4096 128G内存设置80%的值如下

    kernel.shmall = 26843545     需计算

    # 最大单个共享内存段大小(建议为大于shared_buffer)单位bytes

    kernel.shmmax = 51539607552  (需计算)

    # 一共能生成多少共享内存段,每个PG数据库集群至少2个共享内存段,不重新修改该值

    kernel.shmmni = 819200        

    #iptables防火墙链表相关,不重新修改该值 

    net.core.netdev_max_backlog = 10000

    # 网络接收buffer大小,单位bytes不重新修改该值

    net.core.rmem_default = 262144       

    # 允许最大网络接收buffer大小,单位bytes不重新修改该值

    net.core.rmem_max = 4194304          

    # 网络传输buffer大小,单位bytes,不重新修改该值

    net.core.wmem_default = 262144       

    网络传输最大buffer大小,单位bytes,不重新修改该值

    net.core.wmem_max = 4194304          

    # socket监听数,默认128,不重新修改该值

    net.core.somaxconn = 4096

    # 加快僵尸进程回收速度,不重新修改该值

    net.ipv4.tcp_fin_timeout = 5

    #系统脏页到达这个值,脏页刷到磁盘,当前设置390M如果磁盘IO能力是512M/s 

    vm.dirty_background_bytes = 409600000  需计算

    #  比这个值老的脏页,将被刷到磁盘。3000表示30秒。不重新修改该值

    vm.dirty_expire_centisecs = 3000   

    #如果系统进程刷脏页太慢,使得系统脏页超过内存 80 % 时,则用户进程如果有写磁盘的操作(如fsync, fdatasync等调用),则需要主动把系统脏页刷出,不重新修改该值

    vm.dirty_ratio = 80                          

    #  有效防止用户进程刷脏页,在单机多实例,并且使用CGROUP限制单实例IOPS的情况下非常有效。

    #  pdflush(或其他)后台刷脏页进程的唤醒间隔, 100表示1秒。  不重新修改该值

    vm.dirty_writeback_centisecs = 50            

    #  在分配内存时,设置为0vm.overcommit_ratio参数可以不设置, 不重新修改该值

    vm.overcommit_memory = 0     

    #  关闭交换分区, 数据库服务器不建议使用swap不重新修改该值

    vm.swappiness = 0            

    # 限制本地动态端口分配范围,防止占用监听端口 不重新修改该值

    net.ipv4.ip_local_port_range = 40000 65535    

    #建议shared buffer设置超过64GB 使用大页,查看页大小more /proc/meminfo |grep Hugepagesize 大于数据库需要的shared_buffer内存即可。

    vm.nr_hugepages = 66536    需计算

    #单个进程的打开句柄不能大于fs.nr_open, 对于有很多对象(表、视图、索引、序列、物化视图等)的PostgreSQL数据库,建议设置为2000,不重新修改该值

    fs.nr_open=20480000


    3.6. 创建用户

    [root@mypgdb Packages]# groupadd -g 1005 vastbase

    [root@mypgdb Packages]# useradd -g 1005 -u 1005 vastbase

    [root@mypgdb Packages]# passwd vastbase


    3.7. 资源限制

    vi /etc/security/limits.conf

    vastbase soft nproc unlimited

    vastbase hard nproc unlimited

    vastbase soft stack unlimited

    vastbase hard stack unlimited

    vastbase soft core unlimited

    vastbase hard core unlimited

    vastbase soft memlock unlimited

    vastbase hard memlock unlimited

    vastbase soft nofile unlimited

    vastbase hard nofile unlimited


    4. 安装部署

    4.1. 设置主机名

     hostnamectl set-hostname db1


    4.2. root用户修改hosts文件

         vi /etc/hosts

        172.16.103.84 db1


    4.3. 创建数据库目录

        mkdir /home/vastbase/vastbase

        mkdir -p /data/vastbase

        chmod 700 /data/vastbase

        chown -R vastbase:vastbase /data/vastbase

        chown -R vastbase:vastbase /home/vastbase


    4.4. 配置环境变量

        vi /home/vastbase/.bashrc

        export GAUSSHOME=/home/vastbase/vastbase

        export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH

        export PGDATA=/data/vastbase

        export PGPORT=26000

        export PGDATABASE=vastbase

        export PATH=$GAUSSHOME/bin:$HOME/.local/bin:$HOME/bin:$PATH


    4.5. 安装包

         上传并解压安装包。


    4.6. 初始化

        gs_initdb -D $PGDATA –-nodename=db1

     

    4.7. 配置数据库

      

       根据实际情况配置参数文件postgresql.conf、pg_hba.conf。


    4.8. 启动数据库

      

         gs_ctl -D $PGDATA start



    至此, Vastbase 已安装完成。



    • 分享到:
    排序方式:回复时间 共有1条评论

    fdkjsghjkf 发表于 02月28日 18:02 1 楼

    流程很清晰

    | 回复