麒麟V10 部署 openGauss

温馨提醒
  • 安装依赖

    1
    
    yum install libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel expect bzip2 lbzip2
  • 创建用户和用户组

    1
    2
    3
    
    groupadd dbgrp
    useradd -g dbgrp omm
    passwd omm
  • 使用 omm 用户登录服务器,解压 openGauss

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    mkdir /opt/software/openGauss /opt/huawei -p
    
    cd /opt/software/openGauss/
    
    tar xf openGauss-3.1.1-openEuler-64bit-all.tar.gz
    
    tar xf openGauss-3.1.1-openEuler-64bit-om.tar.gz
    
    chmod -R 775 /opt/software
    
    chown -R omm.dbgrp /opt/huawei
    
    chown -R omm.dbgrp /opt/software
  • 配置

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    # 单节点配置文件
    
    vim /opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <ROOT>
      <CLUSTER>
        <PARAM name="clusterName" value="Cluster_template" />				# 数据库名称
        <PARAM name="nodeNames" value="node01"/>							# 数据库节点名称
        <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />		# 数据库安装目录
        <PARAM name="gaussdbLogPath" value="/var/log/omm" />				# 日志目录
        <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>				# 临时文件目录
        <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />		# 数据库工具目录
        <PARAM name="corePath" value="/opt/huawei/corefile"/>				# 数据库 core 文件目录
        <PARAM name="backIp1s" value="192.168.0.180"/>						# 节点IP,与数据库节点名称列表一一对应
      </CLUSTER>
    
    # 每台服务器上的节点部署信息
      <DEVICELIST>
        <DEVICE sn="node01"> 								# 节点1上的部署信息
          <PARAM name="name" value="node01"/>				# 节点1的主机名称
          <PARAM name="azName" value="AZ1"/>				# 节点1所在的AZ及AZ优先级
          <PARAM name="azPriority" value="1"/>
          <PARAM name="backIp1" value="192.168.0.180"/>		# 节点1的IP,如果服务器只有一个网卡,把 backIp1 和 sshIp1 配置成同一个IP
          <PARAM name="sshIp1" value="192.168.0.180"/>
    
          <!-- dn -->
          <PARAM name="dataNum" value="1"/>
          <PARAM name="dataPortBase" value="15400"/>
          <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>
          <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    
      </DEVICELIST>
    </ROOT>
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    # 一主一备配置文件
    
    vim /opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <ROOT>
      <CLUSTER>
        <PARAM name="clusterName" value="Cluster_template" />				# 数据库名称
        <PARAM name="nodeNames" value="node01,node02"/>						# 数据库节点名称
        <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />		# 数据库安装目录
        <PARAM name="gaussdbLogPath" value="/var/log/omm" />				# 日志目录
        <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>				# 临时文件目录
        <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />		# 数据库工具目录
        <PARAM name="corePath" value="/opt/huawei/corefile"/>				# 数据库 core 文件目录
        <PARAM name="backIp1s" value="192.168.0.180,192.168.0.190"/>		# 节点IP,与数据库节点名称列表一一对应
      </CLUSTER>
    
    # 每台服务器上的节点部署信息
      <DEVICELIST>
        <DEVICE sn="node01"> 								# 节点1上的部署信息
          <PARAM name="name" value="node01"/>				# 节点1的主机名称
          <PARAM name="azName" value="AZ1"/>				# 节点1所在的AZ及AZ优先级
          <PARAM name="azPriority" value="1"/>
          <PARAM name="backIp1" value="192.168.0.180"/>		# 节点1的IP,如果服务器只有一个网卡,把 backIp1 和 sshIp1 配置成同一个IP
          <PARAM name="sshIp1" value="192.168.0.180"/>
    
          <!-- dn -->
          <PARAM name="dataNum" value="1"/>
          <PARAM name="dataPortBase" value="15400"/>
          <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node02,/opt/huawei/install/data/dn"/>
          <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    
        <DEVICE sn="node02"> 								# 节点2上的部署信息
          <PARAM name="name" value="node02"/>				# 节点2的主机名称
          <PARAM name="azName" value="AZ1"/>				# 节点2所在的AZ及AZ优先级
          <PARAM name="azPriority" value="1"/>
          <PARAM name="backIp1" value="192.168.0.190"/>		# 节点2的IP,如果服务器只有一个网卡,把 backIp1 和 sshIp1 配置成同一个IP
          <PARAM name="sshIp1" value="192.168.0.190"/>
        </DEVICE>
    
      </DEVICELIST>
    </ROOT>
  • 安装

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    # 预安装,需要使用 root 用户
    /opt/software/openGauss/script/gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
    
    # 安装
    su - omm
    /opt/software/openGauss/script/gs_install -X /opt/software/openGauss/script/gspylib/etc/conf/cluster_config_template.xml
    
    # 修改配置
    vim /opt/huawei/install/data/dn/pg_hba.conf
    	local   all             all                                     trust
    	host    all             all             127.0.0.1/32            md5
    	host    all             all             0.0.0.0/0               md5
    	host    all             all             ::1/128                 md5
    
    vim /opt/huawei/install/data/dn/postgresql.conf
    	listen_addresses = '*' 
    	local_bind_address = '0.0.0.0'
    	password_encryption_type = 1		# 使用 md5 和 sha256,否则不能登录
    	password_policy=1					# 去掉密码复杂度验证策略
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    
    # 如果预安装没通过,执行下面的命令,输出详细信息
    /opt/software/openGauss/script/gs_checkos -i A -h mysql-20-62-test-shenzhen-office --detail
    
    A14.[ THP service status ]                                  : Abnormal
    
    cat >> /etc/rc.d/rc.local <<"EOF"
    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
     echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
     echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    EOF
    
    chmod +x /etc/rc.d/rc.local
    重启系统
  • 服务启停

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    
    # 停止服务
    gs_om -t stop
    
    # 启动服务
    gs_om -t start
    
    # 查看服务状态
    gs_om -t status
    
    # 重启
    gs_om -t restart
    
    # 查看 openGauss 各实例状态
    gs_om -t status --detail
    
    # 查询某主机上的实例状态
    gs_om -t status -h node02
  • 主备节点切换

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    # 当主备节点都正常时,以用户 omm 登录准备切换为主节点的备节点,执行如下命令:
    gs_ctl switchover -D /opt/huawei/install/data/dn/
    
    # 当主节点异常时,以用户 omm 登录准备切换为主节点的备节点,执行如下命令:
    当主节点运行正常时,不要执行该切换命令,否则会导致两个节点都为主节点
    gs_ctl failover -D /opt/huawei/install/data/dn/
    
    # switchover 或 failover 切换成功后,执行如下命令保存数据库主备机器信息:
    gs_om -t refreshconf
  • 备份与还原

    1
    2
    3
    4
    5
    6
    
    # 数据导出
    su - omm
    gs_dump -U omm -W xxxx -f /data/backup/all.sql - p 15400 postgres -F p
    
    # 一次导出 openGauss 所有数据库
    gs_dumpall -f /data/backup/all.sql -p 15400
  • 数据库相关的命令

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    su - omm
    gsql -d postgres -p 15400
    
    # 列出所有可用的数据库
    \l
    
    # 创建数据库用户,每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名的 schema
    create user 用户名 with password "密码";
    
    # 删除数据库用户
    drop user 用户名 cascade;
    
    # 创建数据库,并指定所有者 owner
    create database 数据库名 owner 用户名;
    
    # 删除数据库
    drop database 数据库名;
    
    # 数据库重新命名
    alter database 旧数据库名 rename to 新数据库名;
    
    # 查看权限
    /du
  • 用户相关的命令

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    # 查看数据库用户列表
    openGauss=# select * from pg_user;
    
    # 查看用户属性
    openGauss=# select * from pg_authid;
    
    # 查看所有角色
    openGauss=# select * from pg_roles;
    
    # 切换用户
    openGauss=# c - USERNAME
    
    # 创建用户
    create user 用户名 with password '密码' sysadmin;
    grant all privileges to 用户名;
    
    # 给用户授权对某数据库的所有权限
    grant all privileges on database 数据库名 to 用户名;
    
    # 为用户添加有创建角色的 CREATEROLE 权限
    alter user 用户名 createrole;
    
    # 把 sysadmin 权限授权给用户 cj
    grant all privileges to cj;
    
    # 查看当前用户
    select * from current_user;
    
    # 查看当前数据库编码
    show server_encoding;
    
    # 把用户 zhjr 提升为超级管理员权限
    ALTER USER zhjr SYSADMIN;
  • 密码相关的命令

    1
    2
    
    # 修改 omm 管理员密码
    alter role omm identified by '新密码' replace '旧密码';