Bootstrap

openGauss主备集群安装部署(包含DBevaer)

安装之前

        准备2台虚拟机,安装好操作X64位的系统,配置好IP地址(同一网段的)(我感觉我说的是废话),但我怕碰到真正的小白,如果系统是32位的,删了重装吧,因为最新的opengauss根本没32位的!我这里用的主机名是linux-1和linux-2。

本大章节操作两台主机都要执行(重要的事情说三遍)!!!

本大章节操作两台主机都要执行(重要的事情说三遍)!!!

本大章节操作两台主机都要执行(重要的事情说三遍)!!!

环境准备(官网)

我的实际环境

从事实的结果来说,哪怕我的环境系统版本高了一点,也没问题。

软件下载

https://opengauss.org/zh/download/

        这里记得,不要把CPU类型选错!!!!!因为默认情况下,不是X86的!!!!!我只能帮你们到这里了。我第一次安装失败,就跌倒在这个粗心大意上了,安装包下载错了。

另外要注意!!!只有X64的,选不到32位的,这个我在(安装之前)已经提醒过了!

创建安装前临时目录

        这个纯属个人习惯,因为装完了以后这个目录及文件都没用了,可以删了。我是在 /opt/software/openGauss目录下面,同时要记得修改此目录权限,官网的文档也在这个目录下,我就懒得改了。

mkdir -p /opt/software/openGauss
chmod 755 -R /opt/software

         把之前下载的安装包解压缩,记得要操作2次!!!!第一次解压缩是all.tar.gz,om.tar.gz是在第一个压缩包解压以后产生的!

cd /opt/software/openGauss
tar -zxvf openGauss-6.0.0-RC1-openEuler-64bit-all.tar.gz   #第一次解压缩,就是你下载的安装包
tar -zxvf openGauss-6.0.0-RC1-openEuler-64bit-om.tar.gz    #第二次解压缩!

创建用户组及用户

groupadd dbgroup #添加用户组

useradd -g dbgroup omm #新建omm用户,并且加入dbgroup组

passwd omm #给omm设置密码,千万别忘记了!后面自己输密码!


关闭防火墙(临时)

systemctl disable firewalld.service
systemctl stop firewalld.service

关闭防火墙(永久)
 

vim /etc/selinux/config #打开防火墙配置

SELINUX=disabled   #写入关闭防火墙

:wq  #保存并退出,重启操作系统后生效

        永久关闭防火墙的操作,最好对系统进行一次reboot。

修改目录权限


mkdir -p /opt/software/openGauss
chown 755 -R /opt/software
chown -R omm /opt/software/openGauss

        linux对于用户及目录的权限,控制是比较严谨的,为了后面的安装不要出岔子,建议把目录权限修改成omm,也就是未来opengauss的超级管理员。

修改主机hosts

vim /etc/hosts  #编辑主机文件

192.168.160.41 linux-2  #这个是备机,前面是ip后面是主机名
192.168.160.15 linux-1  #这个是主机,前面是ip后面是主机名

:wq   #保存退出

小结

        关于安装之前,主机和备机都需要执行相同的操作,官网提到的,主机互信,不是必要的操作,所以我直接省略了。但是两台主机的root密码必须要设置成一样的,否则过程会报错!

开始安装(主节点进行)

        在安装之前,我们定义了下载和解压缩的目录路径为/opt/software/openGauss,现在进入安装环节,建议使用su omm用户进行安装,来规避目录权限问题。同时,在此环境中,将要创建一个.xml文件,用来对集群主备安装的各种参数进行设置。

编辑cluster.xml文件

        此文件有2种方式实现,第一种,采取问答方式安装,参数自己填,然后会生成一个cluster.xml的文件。第二种,直接用vim创建一个cluster.xml文件,里面内容自己填写,此文中使用第二种。

[root@linux-1 openGauss]# pwd
/opt/software/openGauss
[root@linux-1 openGauss]# vim cluster.xml
<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="Cluster_template" />
        <PARAM name="nodeNames" value="linux-1,linux-2" />   #主机1和2的主机名
        <PARAM name="gaussdbAppPath" value="/opt/openGauss/install/app" />
        <PARAM name="gaussdbLogPath" value="/opt/openGauss/install/log" />
        <PARAM name="tmpMppdbPath" value="/opt/openGauss/install/tmp" />
        <PARAM name="gaussdbToolPath" value="/opt/openGauss/install/tool" />
        <PARAM name="corePath" value="/opt/openGauss/install/corefile" />
        <PARAM name="backIp1s" value="192.168.160.15,192.168.160.41" /> #主机1和2的IP
        </CLUSTER>

    <DEVICELIST>
        <DEVICE sn="node1_hostname">        
            <PARAM name="name" value="linux-1" />   #主机1的主机名
            <PARAM name="azName" value="AZ1" />
            <PARAM name="azPriority" value="1" />
            <PARAM name="backIp1" value="192.168.160.15" />    #主机1的IP
            <PARAM name="sshIp1" value="192.168.160.15" />     #主机1的IP
            <PARAM name="cmsNum" value="1" />
            <PARAM name="cmServerPortBase" value="15400" />     
            <PARAM name="cmServerListenIp1" value="192.168.160.15,192.168.160.41" />
            <PARAM name="cmServerHaIp1" value="192.168.160.15,192.168.160.41" />
                                                    #主机1和2的IP
            <PARAM name="cmServerlevel" value="1" />
            <PARAM name="cmServerRelation" value="linux-1,linux-2" />  #主机1和2的主机名
            <PARAM name="cmDir" value="/opt/openGauss/install/data/cmserver" />
            <PARAM name="dataNum" value="1" />
            <PARAM name="dataPortBase" value="15000" />
            <PARAM name="dataNode1" value="/opt/openGauss/install/data/dn1,linux-2,/opt/openGauss/install/data/dn1" />
            <PARAM name="dataNode1_syncNum" value="0" />
        </DEVICE>

        <DEVICE sn="node2_hostname">
            <PARAM name="name" value="linux-2" />
            <PARAM name="azName" value="AZ1" />
            <PARAM name="azPriority" value="1" />
            <PARAM name="backIp1" value="192.168.160.41" />        #主机2的IP
            <PARAM name="sshIp1" value="192.168.160.41" />        #主机2的IP
            <PARAM name="cmServerPortStandby" value="15400" />
            <PARAM name="cmDir" value="/opt/openGauss/install/data/cmserver" />
        </DEVICE>

        </DEVICELIST>

        以上是整个cluster.xml的内容,没有注释的部分都是默认的,要改的话可以自行修改。官网也有原始的cluster.xml文件可以复制粘贴,不过没什么必要,直接在此文中复制是一样的。这个xml文件主要记录集群安装时,集群的节点名称(主机名)和ip地址,以及应用部署的目录。安装完成以后,此目录的属性应该如下图

执行安装

        进入安装目录,然后执行预安装

/opt/software/openGauss/script
 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster.xml

        这里的cluster.xml是我自己vim创建的,并且把名字改了,官网、百度、和csdn多数都是用的cluster_config.xml(我只是嫌弃名字长)。

        这个路径一定不能写错,就是前面创建xml的文件路径,如果单纯从网上复制粘贴,一定会报错,说配置文件不存在!

        执行到最后,显示预安装检查成功,代表当前的配置环境及配置文件没有问题!随后再执行下面的正式安装程序,格外注意,最后的cluster.xml的文件路径不能写错。。。

gs_install -X /opt/software/openGauss/cluster.xml

        直到最后出现安装成功,自此,整个数据库安装完成。其实现在只是把数据库装完了,如果你是运维人员,根本无法做到交付,因为一般DBA都会用数据库连接工具去创建数据库以及创建表,在这个过程中,又会出现以下两个错误:

1、数据库连接工具,无法连接到数据库(配置问题)

2、数据库连接工具,可以连接,但是无法创建任何表(权限问题)。

        如果有兴趣,你可以接着往下看。- -!

数据库连接工具DBeaver

数据库配置

        进入软件安装目录,并切换用户,然后查找文件名为postgresql.conf,并使用vim编辑器,编辑这个文件。

cd /opt/openGauss/install/data/dn1  #注意,版本不同可能安装的目录不同

su omm    #切换omm用户

vim postgresql.conf        #进入编辑文件

找到listen_address = 'local,自己的IP地址这一行'

对比一下,数据库连接器是否配置ip地址正确,如果不对,可以在ip地址后面用‘,逗号’隔开,继续添加ip地址最后用Esc,然后:wq保存退出。

同样在dn1这个目录下,使用vim编辑器,打开pg_hba.conf

修改IPV4那一行,如下图,允许所有主机,所有ip,通过网络,使用账号密码登录数据库。

保存退出之后,就要进入数据库做剩余的配置了。

gsql -d postgres -r   #进入数据库

此时,命令提示符界面会变成下面的样子

create user test1 with password "test@1234";   #创建test1用户

grant ALL privileges to test1;   #给test1用户赋予权限,这里方便测试,就给了比较高

create database testdb1 owner test1; #创建一个数据库,名字叫testdb1,owner为test1

        上面这一步就是为什么很多人DBeaver连上数据库,就连新建一张表都做不到,因为远程连接的账户,权限很低。至此,下面要进行DBeaver的配置了。

DBeaver配置

DBeaver下载:https://dbeaver.io/download/

下哪个装哪个都一样,就看个人喜欢!

华为JDBC连接工具:https://opengauss.org/zh/download/

仔细点,别下载错就行了,下载完成以后,解压缩,能得到一个这个文件,稍后要使用的。

启动DBeaver软件

进入数据库-----驱动器管理。

进入以后,点新建连接,新建的时候会看到下面那个图:

1、就是个名字,可以随便填。

2、一个字都不能改,必须和图上一样:org.opengauss.Driver

3、前面的jdbc:opengauss://   这一段不能改,这一段后面的很多人写错!务必注意。下面将详细描述后面那一长串是什么意思。jdbc:opengauss://192.168.160.15:15000/testdb1

其中ip地址为,你要访问数据库对外提供服务的IP,:15000是对外提供的服务端口,最后/testdb1,是你连接的数据库名字。

如果你实在不清楚,请看下面这个图,打个命令,就能获取到那几个值了。

后面要设置第二块内容,就是‘库’。

这个文件就是前面华为下载的JDBC驱动程序,但是需要解压缩一下,最后点确定,回到DBeaver的主界面。选择数据库------新建数据库

其中opengauss1 就是我们刚刚创建的,单击下一步。

这里你值能写账号、密码,其他都是灰色的,因为创建JDBC驱动程序已经指定了数据库,所以是不能修改的。写完账号密码点左下角的测试,应该就知道能不能用了,如果测试通过就点完成。

总结

1、opengauss里远程登录的权限设置,就是在数据库配置章节讲的编辑那两个文件。

2、opengauss中新建的数据库账号,要给权限,新建的库要归属账号。

3、DBeaver中JDBC驱动程序表达式要写对(网上很多都是错的!)

装到这里,DBA应该会认为你这运维小伙子挺靠谱的- -!

若有写的不对,还请直接私信我。

;