Opengauss实践总结
实验一 在ECS上安装部署openGauss数据库
一、实验内容
1、实验内容:本实验主要内容为弹性云服务器(openEuler)上安装部署openGauss数据库,并进行简单的数据库相关操作。
2、实验概览:
实验概览图
二、实验过程
1.进入华为官网,购买弹性云服务器ECS(openEuler ARM 操作系统)。购买时需自定义购买进行基础配置、网路配置、高级配置等。
2.修改操作系统配置。使用SSH工具(比如:PuTTY等)从本地电脑通过配置弹性云服务器的弹性公网IP地址(如:124.70.36.251)来连接ECS,并使用ROOT用户来登录。
3.设置字符集参数。
[root@ecs-c9bf ~]# cat >>/etc/profile<<EOF
export LANG=en_US.UTF‐8
EOF
[root@ecs-c9bf ~]# source /etc/profile
4.修改python版本
[root@ecs-c9bf ~]# cd /usr/bin
[root@ecs-c9bf bin] # mv python python.bak
[root@ecs-c9bf bin] # ln -s python3 /usr/bin/python
[root@ecs-c9bf bin] # python -V
[root@ecs-c9bf ~]# yum install libaio* -y
5.下载数据库安装包
[root@ecs-c9bf bin]# mkdir -p /opt/software/openGauss[root@ecs-c9bf bin]# chmod 755 -R /opt/software
[root@ecs-c9bf bin]# cd /opt/software/openGauss
[root@ecs-c9bf openGauss]# wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/arm/openGauss-1.1.0-openEuler-64bit-all.tar.gz
6.创建XML配置文件
[root@ecs-c9bf bin]# cd /opt/software/openGauss
[root@ecs-c9bf openGauss]# vi clusterconfig.xml
输入”i”进入INSERT模式,添加文本如下
<DEVICELIST>
<DEVICE sn="1000001">
<PARAM name="name" value="ecs-c9bf"/>
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<PARAM name="backIp1" value="192.168.0.58"/>
<PARAM name="sshIp1" value="192.168.0.58"/>
<!--dbnode-->
<PARAM name="dataNum" value="1"/>
<PARAM name="dataPortBase" value="26000"/>
<PARAM name="dataNode1" value="/gaussdb/data/db1"/>
</DEVICE>
</DEVICELIST>
点击“ESC”退出INSERT模式,然后输入“:wq”后回车退出编辑并保存文本。
7.修改performance.sh文件
[root@ecs-c9bf openGauss]# vi /etc/profile.d/performance.sh
输入”i”,进入INSERT模式。
CPUNO=cat /proc/cpuinfo|grep processor|wc -l
export GOMP_CPU_AFFINITY=0-$[CPUNO - 1]
rootecsc9bf_script_su__omm_
ommecsc9bf__gs_om_t_start
Starting_cluster_69">#sysctl -w vm.min_free_kbytes=112640 &> /dev/null
sysctl -w vm.dirty_ratio=60 &> /dev/null
sysctl -w kernel.sched_autogroup_enabled=0 &> /dev/null
点击“ESC”退出INSERT模式。输入“:wq”后回车,保存退出。
8.执行预安装前加载安装包中lib库
[root@ecs-c9bf openGauss]# vi /etc/profile
输入i,进入INSERT模式
export packagePath=/opt/software/openGauss
export LD_LIBRARY_PATH=packagePath/script/gspylib/clib:packagePath/script/gspylib/clib:packagePath/script/gspylib/clib:LD_LIBRARY_PATH
[root@ecs-c9bf openGauss]# source /etc/profile
9.解压安装包
[root@ecs-c9bf openGauss]# cd /opt/software/openGauss
[root@ecs-c9bf openGauss]# tar -zxvf openGauss-1.1.0-openEuler-64bit-all.tar.gz
[root@ecs-c9bf openGauss]# tar -zxvf openGauss-1.1.0-openEuler-64bit-om.tar.gz
用ls命令查看
[root@ecs-c9bf openGauss]# ls
clusterconfig.xml openGauss-Package-bak_392c0438.tar.gz
lib script
openGauss-1.1.0-openEuler-64bit-all.tar.gz simpleInstall
openGauss-1.1.0-openEuler-64bit-om.sha256 upgrade_sql.sha256
openGauss-1.1.0-openEuler-64bit-om.tar.gz upgrade_sql.tar.gz
openGauss-1.1.0-openEuler-64bit.sha256 version.cfg
openGauss-1.1.0-openEuler-64bit.tar.bz2
使用gs_preinstall准备好安装环境,切换到gs_preinstall命令所在目录。
[root@ecs-c9bf openGauss]# cd /opt/software/openGauss/script/
[root@ecs-c9bf script]# python gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml
Are you sure you want to create trust for root (yes/no)? yes
Please enter password for root.
Password: --说明:此处输入密码时,屏幕上不会有任何反馈,不用担心,这是LINUX操作系统对密码的保护.
Creating SSH trust for the root permission user.
创建操作系统omm用户,并对omm创建trust,并设置密码
Are you sure you want to create the user[omm] and create trust for it (yes/no)? yes
Please enter password for cluster user.
Password:
Please enter password for cluster user again.
Password:
Successfully created [omm] user on all nodes.
10、执行安装
[root@ecs-c9bf script]# chmod -R 755 /opt/software/openGauss/script
[root@ecs-c9bf script]# su - omm
[omm@ecs-c9bf ~]$ gs_install -X /opt/software/openGauss/clusterconfig.xml --gsinit-parameter="–encoding=UTF8" --dn-guc=“max_process_memory=4GB” --dn-guc=“shared_buffers=256MB” --dn-guc=“bulk_write_ring_size=256MB” --dn-guc=“cstore_buffers=16MB”
数据库使用
[root@ecs-c9bf script]# su - omm
[omm@ecs-c9bf ~]$ gs_om -t start
Starting cluster.
=========================================
Successfully started.
[omm@ecs-c9bf ~]$ gsql -d postgres -p 26000 -r
postgres=# alter role omm identified by ‘Bigdata@123’ replace ‘GaussDB@123’;
postgres=# CREATE USER joe WITH PASSWORD “Bigdata@123”;
postgres=# CREATE DATABASE db_tpcc OWNER joe;
postgres=# \q
[omm@ecs-c9bf ~]$ gsql -d db_tpcc -p 26000 -U joe -W Bigdata@123 -r
db_tpcc=> CREATE SCHEMA joe AUTHORIZATION joe;
db_tpcc=> CREATE TABLE mytable (firstcol int);
CREATE TABLE
db_tpcc=> INSERT INTO mytable values (100);
db_tpcc=> SELECT * from mytable; firstcol ---------- 100 (1 row)
三、实验结果
1.启动服务。
2.使用新用户连接到db_tpcc数据库。
3.查看表中数据。
四、分析总结
通过这个实验,我学习了弹性云服务器(openEuler)上安装部署openGauss数据库,并进行简单的数据库相关操作。
这个实验做的过程中必须严格按照实验指导书上的步骤完成。当操作过程中遇到问题时可以认真查找错误,如果检查不出来就要重头开始做或者重新购买服务器。
参考文献:《数据库指导手册》华为技术有限公司
实验二 openGauss金融场景化实验
一、实验内容
1、内容描述:本实验以金融行业为场景,设计数据库模型,并使用华为openGauss构建金融场景下的数据库。通过对数据库中的对象(表、约束、视图、索引等)创建,掌握基础SQL语法,并通过对表中数据的增删改查,模拟金融场景下的业务实现。
2、实验概览:
实验概览图
金融数据模型ER图
二、实验过程及结果
1.创建完所有表后,截图查询插入结果,例如select count(*) from bank_card;(挑选2个表)
①对client表进行数据初始化。执行insert操作。查询插入结果。
②对bank_card表进行数据初始化。执行insert操作。查询插入结果。
2.截图重新命名索引的过程(重命名语句和成反馈的结果)。
3.使用JDBC连接数据库的执行结果(查询到websites表中的数据)。
三、分析总结
这个实验的前两步比较简单,我在做第三步的时候遇到了很多困难。
1.当我做到要使用gs_ctl将策略生效时,输入gs_ctl reload -D /gaussdb/data/db1/,此时服务器告诉我数据库里名为“postmaster.pid”的文件不存在,因此我只好购买了一个弹性公网IP地址为“124.70.111.125”的服务器重新安装后,再开始做实验二,顺利解决了问题。
2.接着往下做,我根据实验报告里提供的连接去下载安装了JDK,但等我安好并且配置完环境变量后,我发现本实验要求的是261版本,和我从官网下载的291版本不符合。因此我又花了一番功夫卸载掉JDK291,删掉注册表,并且修改环境变量,最终才把261版本安装好。
3.终于安好了JDK,当我要在cmd里对Java程序编译时,总是提醒我“错误:编码utf-8的不可映射字符”,我查询到这是因为我的程序里有中文才会这样,于是我将程序修改为“ANSI”编码,但依然提示错误。最后迫不得已,我将程序中的中文替换成英文,并将不必要的中文注释删除,最后编译成功。
通过这次实验,我掌握了创建数据表、插入表数据、如何手工插入一条数据、添加约束、查询数据、数据的修改和删除、视图的使用、创建和重命名索引、创建新用户和授权、删除schema、用JDBC连接数据库等等这些操作方法。这都是这个实验本身带给我的一些非常实用的操作方法。
同时,在做第三步时,我还额外学到了怎样把java卸载干净;在重新配置和安装服务器时,我体会到了做实验总是会出现很多意外,一定要有耐心;在编译java时,出现了问题也要尽量去解决,总会有办法的。
实验三 openGauss数据库维护管理
一、实验内容
1、实验内容:本实验适用于 openGauss数据库,通过该实验可以顺利完成对数据库各项日常基本维护管理。本实验主要包括操作系统参数检查、openGauss健康状态检查、数据库性能检查、日志检查和清理、时间一致性检查、应用连接数检查、例行维护表等。
2、实验概览:
实验概览图
二、实验过程及结果
1.操作系统参数检查截图,在参数配置文件(/etc/sysctl.conf)中将参数 vm.min_free_kbytes(表示:内核内存分配保留的内存量) 的值调整为3488后,通过执行gs_checkos -i A --detail 查看更详细的信息。
①首先执行gs_checkos 对系统参数进行检查,可以看到A6为warning。
②修改vm.min_free_kbytes(表示:内核内存分配保留的内存量) 的值调整为3488后,通过执行gs_checkos -i A --detail 查看更详细的信息。
③按详细信息中的修改说明对系统参数进行修改。
vm.min_free_kbytes的值由3488调整为152444
net.ipv4.tcp_retries1的值由3调整为5.
net.ipv4.tcp_syn_retries的值由6调整为5.
net.sctp.path_max_retrans的值由5调整为10
net.sctp.max_init_retransmits的值由8调整为10
执行sysctl -p 命令使刚才修改的参数生效后,再次通过执行gs_checkos -i A 查看系统参数检查是否能通过。可以看到此时A6为Normal。
2.设置最大连接数,在omm 用户环境下通过gs_guc工具来增大参数值的过程(语句和反馈结果)。
①语句和反馈结果
②验证是否为设置后的最大连接数
3.例行表、索引的维护,截图查看特定表的统计信息。(查询pg_stat_all_tables这张表的信息)
三、分析总结
通过这个实验,我掌握了操作系统参数检查、openGauss健康状态检查、数据库性能检查、日志检查、最大连接数的设置、例行表和索引的维护等等操作方法。
我在这个实验中遇到的问题和收获有:
1.在调整系统参数值时,直接复制了实验指导书中的“vm.min_free_kbytes = 348844”,因此在检查系统参数的调整能否通过时一直显示Abnormal,后来我通过执行“gs_checkos -i A --detail”查看更详细的信息,发现应当将“vm.min_free_kbytes”的值调整为152444,经过修改并且使修改的参数生效后,A6终于显示为Normal。
2.在进行openGauss健康状态检查、数据库性能检查实验时,要注意数据库服务什么时候该启动和关闭。分别使用“gs_om -t stop;”和“gs_om -t start;”来控制数据库的normal和unavailable状态。有的时候会提示你需要restart,此时需要用“gs_om -t restart;”来重启数据库。
3.在设置最大连接数时,我掌握了两种方法来设置。一种是在omm 用户环境下通过gs_guc工具来增大参数值,一种是用alter system set 语句来设置此参数。