作者 | JiekeXu
来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)
如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)
大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看国产数据库|GBase 8s 安装卸载与简单使用,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!
GBase 8s 是天津南大通用数据技术股份有限公司自主研发的、成熟稳定的基于共享存储的数据库集群,拥有自主知识产权,支持集中式部署、共享存储高可用部署、两地三中心高可用部署,具备高容量、高并发、高性能等特性,本次学习打算部署单机模式。
目 录
安装包下载
安装准备
安装软件
创建实例
登录实例
安装 rlwrap 包实现方向键查看历史命令和左右移动问题
数据库启停
卸载 GBase 8s
卸载 GBase 8s 数据库组件与数据
清除残余的目录
删除 gbasedbt 用户
dbaccess 工具
dbaccess 四种交互模式
命令交互模式
管道模式
脚本模式
dbaccess 环境变量
GBase 8s 运行模式
GBase 8s 的 3 种过渡状态
GBase 8s 的模式转换状态图
GBase 8s 的模式转换状态表
GBase 8s 如何关闭数据库
GBase 8s 安装起来比较简单,玩过 Oracle、MySQL 的同学几乎不会有什么问题,尤其是单机环境。GBase 8s 支持多种处理器平台,除国际主流的 x86_64 处理器(包括 Intel 和 AMD)外,全面支持飞腾、鲲鹏、龙芯、兆芯、海光、申威等国产处理器。GBase 8s 也可以运行于多款操作系统,包括:RHEL 和 CentOS 等 Linux 操作系统、统信 UOS、麒麟、欧拉等国产操作系统。生产环境建议 16c/64G、1T 磁盘及以上的配置,个人学习测试环境 2c/2G、10G 磁盘就足以玩转了。
一、安装包下载
安装包官网下载链接如下:
https://www.gbase.cn/download/gbase-8s-1?category=INSTALL_PACKAGE
打开链接之后,需要先在 GBase 官网注册账号,才能下载安装包。
操作步骤如下:
第一步 点击 GBase 8s V8.8(兼容Oracle)
第二步 点击 安装包
第三步 选择适合操作系统及CPU的安装包进行下载,本次使用培训版本 GBase 8s GDCA培训安装包 进行下载即可。
第四步 使用 xshell 等 sftp 工具将安装包上传至安装好的 Linux 服务器。
第五步 解压安装包。
二、安装准备
1、环境要求
操作系统和版本:RedHat7 或 CentOS7
建议:个人练习使用,可以在电脑上安装虚拟机 VMware、Virtualbox 等虚拟机软件,然后安装 1 个centos7 或者 redhat7 的虚拟机环境,用来安装 GBase 8s 数据库。
配置:内存2G或2G以上,硬盘 10G以上,固定IP地址
安装组件:建议在“软件选择”中选择“带 GUI 的服务器”中的“开发工具”选项安装;如系统最小化安装,还需要安装 unzip、java、tar 包,否则会导致 8s 安装失败。
检查环境,我这里复用了之前安装 openGauss 的服务器,像防火墙、selinux 等均已关闭。
df -h
free -h
cat /etc/redhat-release
ip a
2、创建 gbasedbt 组和用户
在启动安装过程之前,必须准备系统以确保您有足够权限来执行安装。您必须以 root 用户身份登录才能执行许多与安装有关的任务。同时要求服务器操作系统上具有 gbasedbt 组和 gbasedbt 用户。
登录系统后可以执行以下命令创建 gbasedbt 组和 gbasedbt 用户:
groupadd gbasedbt
useradd -g gbasedbt gbasedbt
--检查用户和组
cat /etc/passwd |grep gbasedbt
gbasedbt:x:1002:1002::/home/gbasedbt:/bin/bash
cat /etc/group | grep gbasedbt
gbasedbt:x:1002:
--为 gbasedbt 用户设置密码,密码为 gbasedbt
passwd gbasedbt
3、创建 GBase 8s 数据库安装目录
GBase 8s 数据库默认缺省的安装目录为 /opt/GBASE/gbase,并且此文件夹必须为空。本次打算将其安装到 /app/GBASE/gbase8s 目录。
mkdir -p /app/GBASE/gbase8s
chown gbasedbt:gbasedbt /app/GBASE/gbase8s
4、解压上传的安装包
tar -xvf GBase\ 8s\ GDCA培训安装包.tar
mv GBase8s学习版安装包 GBase8s_v8.8
tar -xvf GBase8s_ExpressEdition.tar
三、安装软件
以 root 身份登录, 进入解压目录, 执行要安装的产品的安装脚本 ids_install, 即可进行安装,如果需要图形化界面安装需要配置好图形化并加参数“-i swing”运行,具体命令如下:
./ids_install -i swing ###图形界面安装
./ids_install ###命令行界面安装
接下来的四次都是回车,然后输入 Y 接受 LICENSE 回车。GDCA学习软件包已经授权了 LICENSE,有效期是一年,不然还需要单独输入 LICENSE 才能继续安装。
接下来的三步:输入我们之前创建好的 /app/GBASE/gbase8s 空目录,继续输入 Y 确认目录即可。下一步我们默认回车选择典型安装即可。
这一步我们建议一般选择 “2” 不创建数据库实例,这样安装时间较短。
接下来这里显示 /app 磁盘要求和可用磁盘大小,实际要求 496M 左右,目前剩余 36G 左右。我们直接回车,再一次回车确认安装目录就会显示安装进度了。一两分钟后安装成功,回车退出即可。
[root@JiekeXu GBase8s_v8.8]# ./ids_install
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
===============================================================================
GBase Software Bundle (created with InstallAnywhere)
-------------------------------------------------------------------------------
Preparing CONSOLE Mode Installation...
===============================================================================
Getting Started
---------------
This application will guide you through the installation of GBase Software
Bundle.
Copyright General Data Corporation 2014, 2023. All rights reserved.
1. Release Notes
The Release Notes can be found in
/opt/GBase8s_v8.8/doc/ids_unix_relnotes_12.10.html.
2. Launch Information Center
Access the GBase Information Center at http://www.gbase.cn.
To Begin Installation, respond to each prompt to proceed to the next step in
the installation.
If you want to change something on a previous step, type 'back'.
You may cancel this installation at any time by typing 'quit'.
PRESS <ENTER> TO CONTINUE:
########################
####由于篇幅省略中间过程##
########################
===============================================================================
Installation Summary
--------------------
Please review the following before continuing:
Product Name:
GBase Software Bundle
Install Folder:
/app/GBASE/gbase8s
Product Features:
GBase database server,
Base Server,
Extensions and tools,
J/Foundation,
Database extensions,
Conversion and reversion support,
XML publishing,
Demonstration database scripts,
Enterprise Replication,
Data loading utilities,
onunload and onload utilities,
dbload utility,
Backup and Restore,
archecker utility,
ON-Bar utility,
Interface to Tivoli Storage Manager,
Administrative utilities,
Performance monitoring utilities,
Miscellaneous monitoring utilities,
Auditing utilities,
Database import and export utilities,
JSON Client Support,
Global Language Support (GLS),
Chinese
Disk Space Information (for Installation Target):
Required: 496,188,997 Bytes
Available: 37,502,992,384 Bytes
PRESS <ENTER> TO CONTINUE:
===============================================================================
Ready To Install
----------------
InstallAnywhere is now ready to install GBase Software Bundle onto your system
at the following location:
/app/GBASE/gbase8s
PRESS <ENTER> TO INSTALL:
===============================================================================
Installing...
-------------
[==================|==================|==================|==================]
[------------------|------------------|------------------|------------------]
===============================================================================
Installation Complete
---------------------
Congratulations! GBase Software Bundle installation is complete.
Product install status:
GBase: Successful
GBase Connect: Successful
Main Version: GBase 8s Express Edition
For more information about using GBase products, see the GBase Information
Center at http://www.gbase.cn.
PRESS <ENTER> TO EXIT THE INSTALLER:
[root@openGauss GBase8s_v8.8]#
四、创建实例
软件安装完后,我们还需要创建数据库实例,那么创建实例需要切换到数据库安装用户 gbasedbt 下进行操作,在安装目录下的 etc 目录有一个快速配置实例的脚本为 GBaseInit_gbasedbt.sh,我们可以使用此脚本交互式快速创建一个实例。
su - gbasedbt
cd /app/GBASE/gbase8s/etc
ll GBaseInit_gbasedbt.sh
sh GBaseInit_gbasedbt.sh
主要有以下几项:
默认数据库实例名 gbaseserver
默认数据库安装目录
默认 IP 地址
默认端口号9088
输入 2 选择自定义安装
输入 3 选择 utf8 字符集,回车
默认数据空间路径
逻辑日志、物理日志、LOB 大对象空间默认比较大,这里为学习环境均为 120M,临时空间这里选择 60M 大小。然后输入 Y 查看高级配置。
模版安装的默认实例名为 gbaseserver,可以在冒号后面输入自定义名称,也可以直接回车,使用默认的实例名,但要注意名称不能使用减号,可以是字母,数字和下划线。
模版安装脚本询问我们创建几个保存数据的数据库空间,我这里输入6,创建 6 个数据库空间,回车继续。接下来询问创建几个保存临时数据的数据库空间,输入2,创建 2 个数据库临时空间,回车继续。接下来询问,是否启用 GL_USEGLU,默认不启用 N,直接回车继续。然后便可以看到安装信息,输入 Y 则创建实例,稍等片刻便可以安装成功。
看到 GBase Initializing Finished! 则表示初始化安装成功,回车退出即可。
查看环境变量,安装完成后会在家目录下生成一个配置环境变量的文件 profile.gbaseserver,并将其写入到了 .bash_profile 文件。另外,还有两个文件比较重要,在 $GBASEDBTDIR 的etc 目录下有个 sqlhosts.gbaseserver 文件,里面记录了实例名、网络访问协议及 IP 和端口号。还有一个文件名为 onconfig.gbaseserver,这个文件记录了数据库相关参数信息,这两个文件均以“.”+实例名结尾。
cat /app/GBASE/gbase8s/etc/sqlhosts.gbaseserver
gbaseserver onsoctcp 192.168.75.32 9088
cat onconfig.gbaseserver | grep -v '^#' | grep -v '^$'
我们还可以使用 onstat – 查看数据库实例状态,也可以直接查看进程 ps -ef| grep oninit 可以看到有 15 个相关的进程。
[gbasedbt@JiekeXu ~]$ onstat -
Your evaluation license will expire on 2024-05-17 00:00:00
On-Line -- Up 2 days 23:02:06 -- 2171620 Kbytes
[gbasedbt@JiekeXu ~]$ ps -ef| grep oninit
gbasedbt 59220 1 0 May18 ? 00:00:36 oninit -v
root 59222 59220 0 May18 ? 00:00:21 oninit -v
root 59223 59222 0 May18 ? 00:00:02 oninit -v
root 59225 59222 0 May18 ? 00:00:02 oninit -v
root 59227 59222 0 May18 ? 00:00:02 oninit -v
root 59229 59222 0 May18 ? 00:00:00 oninit -v
root 59231 59222 0 May18 ? 00:00:02 oninit -v
gbasedbt 59232 59222 0 May18 ? 00:00:14 oninit -v
gbasedbt 59234 59222 0 May18 ? 00:00:13 oninit -v
gbasedbt 59235 59222 0 May18 ? 00:00:12 oninit -v
root 59236 59222 0 May18 ? 00:00:02 oninit -v
root 59237 59222 0 May18 ? 00:00:02 oninit -v
root 59238 59222 0 May18 ? 00:00:02 oninit -v
root 59239 59222 0 May18 ? 00:00:02 oninit -v
root 59241 59222 0 May18 ? 00:00:02 oninit -v
gbasedbt 105891 105630 0 23:48 pts/3 00:00:00 grep --color=auto oninit
[gbasedbt@JiekeXu ~]$ ps -ef| grep oninit | grep -v grep |wc -l
15
五、登录实例
在 GBase 8s 中命令行工具是 dbaccess,我们可以使用 dbaccess 空格加“-”加空格“-” 来登录到数据库实例,即 dbaccess - -,当然也有图形化客户端 GBase Data Studio。dbaccess 是 GBase 8s 数据库的一个命令行客户端工具,用来与 GBase 8s 数据库服务器进行交互。它是数据库自带的工具,只要安装了 GBase 8s 数据库,就可以在命令行启动该工具。能够识别用户输入,将用户输入的 SQL 语句打包发送给 GBase 8s 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。
[gbasedbt@jiekexu ~]$ dbaccess - -
Your evaluation license will expire on 2024-05-17 00:00:00
> create database jiekexu with log;
Database created.
> database jiekexu;
Database selected.
> create table t1(id int,name varchar(30));
Table created.
> insert into t1 values(1,'jiekexu');
1 row(s) inserted.
> insert into t1 values(2,'gbasedbt');
1 row(s) inserted.
> select * from t1;
id name
1 jiekexu
2 gbasedbt
2 row(s) retrieved.
database +数据库名,则选择数据库,ctrl + d 退出客户端。
在 GBase 8s 中,系统数据库 sysmaster 中的 sysdatabases 表存储了我们创建的所有数据库及系统数据库,我们可以使用 SQL 命令“select name from sysdatabases;” 查看实例中都有哪些数据库。
[gbasedbt@JiekeXu etc]$ dbaccess - -
Your evaluation license will expire on 2024-05-17 00:00:00
> database sysmaster;
Database selected.
> select name from sysdatabases;
name sysmaster
name sysutils
name sysuser
name sysadmin
name gbasedb
name jiekexu
name mydb
7 row(s) retrieved.
安装 rlwrap 包实现方向键查看历史命令和左右移动问题
rlwrap 包链接:https://pan.baidu.com/s/1NWU0gGPtRoqAfspKXeGm6w
提取码:rasm
将下载好的文件放到 GBase 8s 的 bin 目录下并给予可执行权限,然后配置环境变量,我的环境是 /app/GBASE/gbase8s/bin 目录。
$ chmod a+x rlwrap
$ vi .bash_profile
alias dbaccess='rlwrap dbaccess'
使其生效,登录数据库可以使用上下左右键查看 SQL。
. .bash_profile
dbaccess - -
Your evaluation license will expire on 2024-05-17 00:00:00
> database jiekexu;
Database selected.
> info tables;
Table name
t1
>
下表是一些国内外常见数据库命令行客户端工具
DB-engines流行的Top数据库 | 命令行客户端工具 |
---|---|
Oracle | sqlplus |
MySQL | mysql |
SQLServer | sqlcmd/osql |
PostgreSQL | psql |
MongoDB | mongo |
Redis | redis-cli |
墨天轮流行的Top国产数据库 | 命令行客户端工具 |
OceanBase | odb |
TiDB | mysql |
openGauss | gsql |
达梦DM | disql |
Kingbase ES | ksql |
GBase 8s | dbaccess |
六、数据库启停
可以使用 oninit 命令启动数据库,使用 onmode 停止数据库,使用 onstat 命令查看数据库状态。
onmode -ky //停止数据库 -k Shutdown completely 完全关闭 -y Do not require confirmation 不需要确认
onstat – 查看数据库状态属于关闭状态,显示共享内存没有初始化,数据库处于离线状态
oninit -vy //启动数据库 -v Verbose mode: prints all initialization messages. 详细模式:打印所有初始化消息 -y Respond yes to all prompts 对所有提示回答“是”
[gbasedbt@JiekeXu ~]$ onmode -k
Your evaluation license will expire on 2024-05-17 00:00:00
This will take GBase Database Server OFF-LINE -
Do you wish to continue (y/n)? y
There are 0 user threads that will be killed.
Do you wish to continue (y/n)? y
[gbasedbt@JiekeXu ~]$
[gbasedbt@JiekeXu ~]$ onstat -
Your evaluation license will expire on 2024-05-17 00:00:00
shared memory not initialized for GBASEDBTSERVER 'gbaseserver'
[gbasedbt@openGauss ~]$ oninit -vy
Your evaluation license will expire on 2024-05-17 00:00:00
Reading configuration file '/app/GBASE/gbase8s/etc/onconfig.gbaseserver'...succeeded
Creating /GBASEDBTTMP/.infxdirs...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool 76314 kbytes...succeeded
Creating infos file "/app/GBASE/gbase8s/etc/.infos.gbaseserver"...succeeded
Linking conf file "/app/GBASE/gbase8s/etc/.conf.gbaseserver"...succeeded
Initializing rhead structure...rhlock_t 65536 (2048K)... rlock_t (66406K)... Writing to infos file...succeeded
Initialization of Encryption...succeeded
Initializing ASF...succeeded
Initializing Dictionary Cache and SPL Routine Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Forking main_loop thread...succeeded
Initializing DR structures...succeeded
Forking 1 'soctcp' listener threads...succeeded
Starting tracing...succeeded
Initializing 32 flushers...succeeded
Initializing SDS Server network connections...succeeded
Initializing log/checkpoint information...succeeded
Initializing dbspaces...succeeded
Opening primary chunks...succeeded
Validating chunks...succeeded
Initialize Async Log Flusher...succeeded
Starting B-tree Scanner...succeeded
Init ReadAhead Daemon...succeeded
Init DB Util Daemon...succeeded
Initializing DBSPACETEMP list...succeeded
Init Auto Tuning Daemon...succeeded
Checking database partition index...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop...succeeded
Updating Global Row Counter...succeeded
Forking onmode_mon thread...succeeded
Creating periodic thread...succeeded
Creating periodic thread...succeeded
Starting scheduling system...succeeded
Verbose output complete: mode = 5
[gbasedbt@JiekeXu ~]$ onstat -
Your evaluation license will expire on 2024-05-17 00:00:00
On-Line -- Up 00:00:22 -- 2171620 Kbytes
七、卸载 GBase 8s
卸载 GBase 8s 数据库组件与数据
GBase 8s 提供了一个卸载程序,如有需要可用于 GBase 8s 数据库的卸载。注意:一般情况下设备下线,重装才需要卸载数据库。
使用 root 用户进入卸载程序的目录
[root@JiekeXu gbase8s]# cd /app/GBASE/gbase8s/uninstall
[root@JiekeXu uninstall]# ll
total 0
drwxrwxrwx 2 root root 194 May 18 00:16 uninstall_ids
drwxrwxr-x 2 root root 196 May 18 00:12 uninstall_server
[root@JiekeXu uninstall]# cd uninstall_ids
[root@JiekeXu uninstall_ids]# ll
total 11668
-rw-rw-r-- 1 root root 5125901 May 18 00:12 InstallScript.iap_xml
-rwxr-xr-x 1 root root 1040 May 18 00:16 installvariables.properties
-rw-rw-r-- 1 root root 82 May 18 00:16 removablesList.txt
-rw-rw-r-- 1 root root 6727024 May 18 00:12 uninstaller.jar
-rwxr-xr-x 1 root root 74206 May 18 00:12 uninstallids
-rwxr-xr-x 1 root root 3426 May 18 00:12 uninstallids.lax
[root@JiekeXu uninstall_ids]# ./uninstallids
回车确认,输入 2
2- Removes server binaries and all databases associated with them
等待片刻,GBase 8s 数据库卸载成功。
清除残余的目录
由于卸载程序在 GBase 8s 的安装目录中,因此卸载程序并没有完成清空安装目录,需要我们手动清除残余目录。
rm -rf /app/GBASE/gbase8s
删除 gbasedbt 用户
执行 userdel,删除用户,顺带也删除了组。
userdel -r gbasedbt
检查确认用户和组是否删除。
cat /etc/passwd | grep gbasedbt
cat /etc/group | grep gbasedbt
八、dbaccess 工具
dbaccess 是 GBase 8s 数据库的一个命令行客户端工具,用来与 GBase 8s 数据库服务器进行交互。
dbaccess 四种交互模式
使用菜单交互模式查看数据库
直接运行 dbaccess 命令,即可进入菜单交互模式,使用上下左右键可按照提示查看数据库信息。然后选择第三个 Database,进入下一级菜单,继续选择第三个 Info 查看数据库信息,然后选择 Databases 就如下图所示,sysmaster、sysutils、sysuser、sysadmin 四个数据库是系统数据库,其余三个是我们手动创建的数据库,CTRL+W 可查看相关帮助信息。
命令交互模式
可以通过为 dbaccess 提供两个参数,进入指令交互模式。
管道模式
dbaccess 可以接收 STDIN 中的内容,做为 dbaccess 需要执行的指令。
echo "sql_code" | dbaccess <db_name>
echo "select * from user" | dbaccess jiekexu
脚本模式
可以将 SQL 代码保存到文件中,将文件做为 dbaccess 的第二个参数,来执行文件中的 SQL 代码。例如:
dbaccess <db_name> <sql_file>
vi select_user.sql
select * from user;
dbaccess jiekexu select_user.sql
九、dbaccess 环境变量
默认情况下,dbaccess 会尽可能的显示浮点数的小数位数。通过设置该环境变量,控制 dbaccess 在输出小数信息时,尽量只显示指定位数的小数。那么我们就可以是 DBFLTMASK 来设置小数位数了。例如:
export DBFLTMASK=3
GBase 8s 中的 money 数据类型的显示,默认情况下,会根据操作系统的本地化设置,显示货币信息。可以通过该环境变量,设置需要显示的信息。
export DBMONEY="[front][.|,][back]"
export DBMONEY="$"
export DBMONEY=".$"
GBase 8s 中的 date 数据类型,默认格式为月/日/年(英文),可以设置 GL_DATE环境变量,改变 DATE 数据的显示格式。
export GL_DATE="%iY-%m-%d"
export GL_DATE="%m/%d/%iY"
控制 dbaccess 在执行 SQL 时,DBACCESS_SHOW_TIME 环境变量可以显示 SQL 的执行时间。
unset DBACCESS_SHOW_TIME
echo $DBACCESS_SHOW_TIME
export DBACCESS_SHOW_TIME=1
十、GBase 8s 运行模式
GBase 8s 有四种运行模式,离线模式、在线模式、单用户模式、静态模式。
离线模式:不能执行任何操作,数据库处于关闭状态。
在线模式:可以执行各种操作,On line 则是正常的数据库状态。
单用户模式:可以执行SQL操作和命令行维护操作,只能使用管理员用户(GBASEDBT / DBSA)连接,其它普通用户不能连接。
静态模式:只能执行命令行维护操作(如备份数据库),不能执行SQL命令。
GBase 8s 的 3 种过渡状态
• 初始化(Initialization)
• 快速恢复(Fast Recovery)
• 关闭(Shutting Down)
GBase 8s 的模式转换状态图
GBase 8s 可从一个运行模式,转换到另一个运行模式。
GBase 8s 的模式转换状态表
GBase 8s 如何关闭数据库
等待当前用户未提交的事务提交后,再关闭数据库
onmode -s
onmode -k
将当前用户未提交的事务回滚后,再关闭数据库
onmode -u
onmode -lk
直接关闭数据库
onmode -k
参考资料
【GBase 学堂】
https://blog.csdn.net/jihui8848/article/details/118887711
https://www.gbase.cn/download/gbase-8s-1?category=DOCUMENT
全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【JiekeXu DBA之路】,第一时间一起学习新知识!
———————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
———————————————————————————
分享几个数据库备份脚本
Oracle 表碎片检查及整理方案
OGG|Oracle GoldenGate 基础2022 年公众号历史文章合集整理
Oracle 19c RAC 遇到的几个问题
OGG|Oracle 数据迁移后比对一致性
OGG|Oracle GoldenGate 微服务架构
Oracle 查询表空间使用率超慢问题一则
Oracle 11g升级到19c需要关注的几个问题
国产数据库|TiDB 5.4 单机快速安装初体验
Oracle ADG 备库停启维护流程及增量恢复
Linux 环境搭建 MySQL8.0.28 主从同步环境