opengauss笔记
支持的硬件平台
openGauss支持运行在鲲鹏服务器和通用的x86服务器上:
支持鲲鹏服务器和基于x86_64的通用PC服务器。
支持本地存储(SATA、SAS、SSD)。
支持千兆、万兆Ethernet网络。
支持的操作系统
ARM:
openEuler 20.03 LTS (推荐采用此操作系统)
麒麟V10
X86:
openEuler 20.03 LTS
CentOS 7.6
最小内存
功能调试32GB以上。
CPU
功能调试最小1×8 核 2.0GHz。
安装
安装****openGauss
创建XML****配置文件 (opens new window)
安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML文件。
为了保证openGauss的正确安装,请首先对主机环境进行配置。
执行前置脚本准备好openGauss安装环境之后,按照启动安装过程部署openGauss。
备机可读特性为可选特性,需要修改配置参数并重启主备机器后才能使用。在开启备机可读之后,备机将支持读操作,并满足数据一致性要求。
yum install python36 bzip2 libaio-devel flex bison ncurses-devel glibc-devel patch
1.6 修改操作系统配置
(1)关闭防火墙和SeLinux
systemctl disable firewalld.service
systemctl stop firewalld.service
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
(2)设置字符集参数
if [ "$LANG" != "en_US.UTF-8" ];then
export LANG=en_US.UTF-8
echo export LANG=en_US.UTF-8 >> /etc/profile
fi
(3)检查设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
(4)关闭swap交换区
swapoff -a
(5)检查设置网卡MTU值
推荐值是1500<MTU<8192,但默认的虚拟机环境是1500,不用修改
1 [root@localhost ~]# ifconfig | grep ens32
2 ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
(6)设置root用户远程登录配置
sed -i 's/^Banner .*/Banner none/' /etc/selinux/config
sed -i 's/^#PermitRootLogin .*/PermitRootLogin yes/' /etc/selinux/config
sed -i 's/^PermitRootLogin no/PermitRootLogin yes/' /etc/selinux/config
systemctl restart sshd
(7)修改操作系统参数(可选)
有部分内核参数建议手动修改。
echo 5 > /proc/sys/net/ipv4/tcp_retries1
echo 5 > /proc/sys/net/ipv4/tcp_syn_retries
echo 10 > /proc/sys/net/sctp/path_max_retrans
echo 10 > /proc/sys/net/sctp/max_init_retransmits
echo net.ipv4.tcp_retries1 = 5 >>/etc/sysctl.conf
echo net.ipv4.tcp_syn_retries = 5 >>/etc/sysctl.conf
echo net.sctp.path_max_retrans = 10 >>/etc/sysctl.conf
echo net.sctp.max_init_retransmits = 10 >>/etc/sysctl.conf
echo "* soft nofile 1000000" >>/etc/security/limits.conf
echo "* hard nofile 1000000" >>/etc/security/limits.conf
echo "* soft nproc 60000" >> /etc/security/limits.d/90‐nproc.conf
关闭透明大页
设置后需要重启生效
vim /etc/rc.d/rc.local
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
chmod +x /etc/rc.d/rc.local
查看是否关闭
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
1.14 修改主机名
echo "gaussdb" > /etc/hostname
echo "192.168.10.112 gaussdb" >>/etc/hosts
hostnamectl set-hostname gaussdb
(8)NTP配置(可选)
系统可能没有安装NTP时间同步服务,需要手动安装并开启。
yum install -y ntp
systemctl start ntpd && systemctl enable ntpd
修改系统版本为7.6
vim /etc/redhat-release
CentOS Linux release 7.6 (Core)
groupadd dbgrp
useradd -g dbgrp omm
mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software
cd /opt/software/openGauss
tar -zxvf openGauss-1.0.1-openEULER-64bit.tar.gz
vi /tmp/clusterconfig.xml
单节点配置文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="dbCluster" />
<PARAM name="nodeNames" value="gaussdb" />
<PARAM name="backIp1s" value="192.168.1.227"/>
<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" />
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="1000001">
<PARAM name="name" value="gaussdb"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.1.227"/>
<PARAM name="sshIp1" value="192.168.1.227"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/db1"/>
</DEVICE>
</DEVICELIST>
</ROOT>
一主一备配置文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!-- openGauss整体信息 -->
<CLUSTER>
<PARAM name="clusterName" value="dbCluster" />
<PARAM name="nodeNames" value="gaussdb1.sugon.com,gaussdb2.sugon.com" />
<PARAM name="backIp1s" value="192.168.5.11,192.168.5.12"/>
<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"/>
<PARAM name="clusterType" value="single-inst"/>
</CLUSTER>
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- node1上的节点部署信息 -->
<DEVICE sn="1000001">
<PARAM name="name" value="gaussdb1.sugon.com"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.5.11"/>
<PARAM name="sshIp1" value="192.168.5.11"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/opt/huawei/install/data/db1,gaussdb2.sugon.com,/opt/huawei/install/data/db1"/>
</DEVICE>
<!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
<DEVICE sn="1000002">
<PARAM name="name" value="gaussdb2.sugon.com"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.5.12"/>
<PARAM name="sshIp1" value="192.168.5.12"/>
</DEVICE>
</DEVICELIST>
</ROOT>
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
cd /opt/software/openGauss/script
./gs_preinstall -U omm -G dbgrp -L -X /opt/software/openGauss/cluster_config.xml
2.2 初始化安装环境
(1)openEuler需修改脚本
# openEuler 需要执行以下操作,注释掉vm.min_free_kbytes=112640行
# sed -i 's/^sysctl -w vm.min_free_kbytes=112640/#&/' /etc/profile.d/performance.sh
(2)配置LD_LIBRARY_PATH环境变量,否则密码验证会报错
export LD_LIBRARY_PATH=/opt/soft/opengauss/script/gspylib/clib:$LD_LIBRARY_PATH
(3)执行gs_preinstall初始化安装环境
cd /opt/software/opengauss/script
./gs_preinstall -U omm -G dbgrp -X /tmp/clusterconfig.xml
2.3 执行安装
强制释放cache
sync;echo 1 > /proc/sys/vm/drop_caches
修改postgressql.conf
vim /opt/huawei/install/data/db1/postgresql.conf
修改
shared_buffers = 256MB
chown -R omm.dbgrp /opt/software
chown -R omm.dbgrp /home/omm
su - omm
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
gs_install -X /tmp/clusterconfig.xml
启动数据库
gs_ctl start -D /opt/huawei/install/data/db1
数据库操作指南
连接数据库
gsql -d postgres -p 26000
设置密码
=# ALTER ROLE omm IDENTIFIED BY 'New_Password' REPLACE ' Old_Password';
ALTER ROLE omm IDENTIFIED BY 'leden' REPLACE '2021@abcd';
(3) 检查数据库状态,性能
gs_om -t status --detail
gs_om -t status --all
gs_checkperf
卸载重装
4.1 卸载
在主节点,登录omm用户,执行gs_uninstall脚本即可完成openGauss卸载。
su – omm
gs_uninstall --delete-data
userdel -r omm
远程登录数据库
gs_guc set -N all -I all -h "host all leden 192.168.1.0/24 sha256"
登陆数据库
gsql -d postgres -p 26000
postgres=# CREATE USER xinjiang PASSWORD '2020@abcd';
授权
新建权限
alter user leden createrole;
系统权限
grant all privileges to leden;
新建用户
CREATE USER presoninfo PASSWORD '2020@abcd';
修改密码
alter user xinjiang identified by 'Aa123456' replace '2020@abcd';
例如,下面示例中配置允许IP地址为10.10.0.30的客户端访问本机。
gs_guc set -N all -I all -h "host all jack 10.10.0.30/32 sha256"
修改数据库的最大连接数。
ALTER DATABASE database_name
[ [ WITH ] CONNECTION LIMIT connlimit ];
修改数据库名称。
ALTER DATABASE database_name
RENAME TO new_name;
修改数据库所属者。
ALTER DATABASE database_name
OWNER TO new_owner;
修改数据库默认表空间。
ALTER DATABASE database_name
SET TABLESPACE new_tablespace;
修改数据库指定会话参数值。
ALTER DATABASE database_name
SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };
数据库配置参数重置。
ALTER DATABASE database_name RESET
{ configuration_parameter | ALL };
修改数据库对象隔离属性。
ALTER DATABASE database_name [ WITH ] { ENABLE | DISABLE } PRIVATE OBJECT;
使用gs_dump导出postgres数据库
gs_dump -W 2020@abcd -U xinjiang -f /tmp/postgres_backup.tar -p 26000 postgres -F t
使用gs_dump同时导出hr和public模式
gs_dump -W Bigdata@123 -U jack -f /home/omm/backup/MPPDB_schema_backup -p 8000 human_resource -n hr -F d