当前位置: 首页 > news >正文

南大通用数据库安装使用教程(GBase8s)

目录

  • GBase8sV8.8安装
    • 1. 安装数据库
    • 2. 初始化实例
    • 3. 环境变量
    • 4. 常用操作
    • 5. 验证数据库安装
    • 6. 卸载
    • 7. 用户管理
    • 8. 连接
    • docker安装gbase8s
  • 常见问题
  • 导入导出
    • 1. 导出
    • 2. 导入
    • 3. 备份

GBase8sV8.8安装

1. 安装数据库

groupadd gbasedbt useradd -g gbasedbt gbasedbt passwd gbasedbt # 密码为 Log4java # GBase 8s数据库默认仅使用操作系统用户,用户操作在操作系统层实现,授权在数据库内实现。因此,该用户作为gbase的管理员用户,可登录gbase数据库。 # 创建 GBase 8s 数据库安装目录 mkdir -p /opt/GBASE/gbase chown gbasedbt:gbasedbt /opt/GBASE/gbase # 开始安装 sh ids_install # 按回车 # 在安装类型处: # 选1,择典型安装 # 回车 # 在是否创建实例处: Create a server instance? ->1- Yes - create an instance 2- No - do not create an instance ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS <ENTER> TO ACCEPT THE DEFAULT:: # 选2,不创建实例,安装完成后再创建实例

2. 初始化实例

# 进入安装目录的 etc目录下 cd /opt/GBASE/gbase/etc # 使用 gbasedbt 用户执行 GBaseInit_gbasedbt.sh 脚本,自动创建并初始化实例。 su - gbasedbt sh GBaseInit_gbasedbt.sh # 选择服务器的对外ip CHOOSE SERVICE IP ADDRESS FROM THE LIST: 1) 172.19.0.1 2) 172.17.0.1 3) 10.110.200.244 4) 127.0.0.1 ENTER THE NUMBER FOR YOUR CHOICE [Default:172.19.0.1]: 3 # 端口默认 9088 SPECIFY THE PORT NUMBER FOR GBASE [Default:9088]: # 安装类型,选1:典型 INITIALIZE TYPE: 1) TYPICAL -- Initialize the instance with all features configured with default values. 2) CUSTOM -- Initialize the instance with specific features that you need. ENTER THE NUMBER FOR YOUR CHOICE [Default:1]: 1

3. 环境变量

安装脚本会在gbasedbt的Home路径下,自动生成一个名称为profile.gbaseserver的文件,记录了新创建数据库实例需要的环境变量。

[gbasedbt@devsvr ~]$ ls profile.gbaseserver # 可以使用cat命令查看文件的内容。 [gbasedbt@devsvr ~]$ cat profile.gbaseserver export GBASEDBTSERVER=gbaseserver export GBASEDBTDIR=/opt/gbase export GBASEDBTSQLHOSTS=/opt/gbase//sqlhosts.gbaseserver export ONCONFIG=onconfig.gbaseserver export PATH=/opt/gbase/bin:$PATH export DB_LOCALE=zh_CN.utf8 export CLIENT_LOCALE=zh_CN.utf8 unset GL_USEGLU # 使用source命令,使环境变量生效。 [gbasedbt@devsvr ~]$ source profile.gbaseserver # 使用env查看环境变量。 [gbasedbt@devsvr ~]$ env | grep GBASE GBASEDBTSQLHOSTS=/opt/gbase/#/sqlhosts.gbaseserver GBASEDBTSERVER=gbaseserver GBASEDBTDIR=/opt/gbase

4. 常用操作

# 查看GBase 8s的进程信息 # GBase 8s启动后,会运行名称为oninit的进程,可以使用ps命令查看。 ps -ef | grep oninit # 查看数据库运行状态 onstat - # 启动数据库 oninit -vy # 停止数据库 onmode -ky # 查看最新的20条日志 onstat -m

5. 验证数据库安装

[gbasedbt@devsvr ~]$ dbaccess - - Your evaluation license will expire on 2022-06-17 00:00:00 > create database portal; Database created. > database portal; Database selected. > create table t_user(f_userid int, f_username varchar(50)); Table created. > insert into t_user values(1,'gbasedbt'); 1 row(s) inserted. > select * from t_user;

6. 卸载

cd /opt/GBASE/gbase/uninstall/uninstall_ids/ ./uninstallids # 然后清除残余目录,删除gbasedbt用户 userdel -r gbasedbt

7. 用户管理

GBase 8s数据库默认仅使用操作系统用户,用户操作在操作系统层实现,授权在数据库内实现。

使用root用户在系统中创建系统用户 useradd portaladmin passwd portaladmin 系统用户建好后,用管理员登录数据库,切换到要给用户授权的数据库,进行授权操作 通过客户端登录,数据库选择要授权的库,如 portal,登录进去后,执行如下命令授权: GRANT resource TO portaladmin; 授权完成后即可通过 portaladmin 访问portal库。

这里我们开启数据库内部用户,数据库内部用户需要通过配置才能开启。

  • 配置os
在/etc/gbasedbt目录(如没有,使用root用户创建)下创建,检查是否创建allowed.surrogates 安装默认创建了该文件allowed.surrogates配置文件 内容如下: USERS:daemon
  • 数据库开启USERMAPPING
su - gbasedbt onstat -c USERMAPPING /*检查是否开启*/ onmode -wf USERMAPPING=ADMIN OFF 只允许操作系统的用户访问数据库,不允许非系统用户访问数据库。 BASIC 允许非系统用户访问数据库,但不允许执行对数据库系统的授权用户操作,如 DBSA, DBSSO, AAO 等。即使被映射的用户具有上述权限。 ADMIN 允许非系统用户访问数据库。且如果被映射的用户为授权用户,则非系统用户也被允许执行授权用户操作。
  • 加载surrogates到缓存
su - gbasedbt onmode -cache surrogates onstat -m
  • 在sysuser库中创建系统默认用户,可以指定默认目录
su - gbasedbt mkdir -p /home/gbasedbt/users chmod 777 /home/gbasedbt/users dbaccess sysuser - << EOF CREATE DEFAULT USER WITH PROPERTIES USER daemon HOME "/home/gbasedbt/users" ; EOF

以上仅需要第一次初始化执行

  • 创建普通用户,并指定密码,密码需要大于8位
dbaccess sysuser - << EOF CREATE USER testuser WITH PASSWORD 'gbasedbt'; EOF
  • 在数据库中赋权访问
echo "grant resource to testuser;" | dbaccess mydb -
  • 连接数据库
dbaccess - - connect to "mydb@gbase01" user "testuser";

8. 连接

IP:10.128.248.28

端口:9088

实例名:gbaseserver

模式:可用默认的,gbasedbt

用户名:gbasedbt

密码:前面创建操作系统用户时设置的用户密码

JDBC JAR:https://gbasedbt.com/dl/jdbc 类名:com.gbasedbt.jdbc.Driver URL:jdbc:gbasedbt-sqli://IPADDR:9088/testdb:GBASEDBTSERVER=gbase01;DB_LOCALE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8;IFX_LOCK_MODE_WAIT=30;用户:gbasedbt 密码:GBase123$% 其中:IPADDR为docker所在机器的IP地址,同时需要放通9088端口。

docker安装gbase8s

dockerrun-d--namegbase\-p9088:9088\-eSERVERNAME=gbase01\-eUSERPASS=QWER\@\!23\-eCPUS=1\-eMEMS=2048\liaosnet/gbase8s:v8.8_3513x13_csdk_x64

docker compose

version:'3.8'services: gbase: image: liaosnet/gbase8s:v8.8_3513x13_csdk_x64 container_name: gbase networks: - lz_bridge restart: always privileged:trueports: -"9088:9088"environment: -TZ=Asia/Shanghai# 设置环境变量时区-SERVERNAME=gbase01 -USERPASS=QWER@!23volumes: - /etc/localtime:/etc/localtime:ro - ./application/gbase/data:/opt/gbase/data - ./application/gbase/bak:/opt/gbase/bak networks: lz_bridge: external:true

常见问题

  1. Opening primary chunks…FAILED
Opening primary chunks...FAILED oninit: Fatal error in shared memory initialization WARNING: server initialization failed or timed out. Check the message log, online.log, for errors.

使用 onstat -m 命令查看近20行日志信息。

10/30/24 16:54:55 The chunk '/home/gbase/gbase/gbaseserver_dbs/rootdbs' must have READ/WRITE permissions for owner (600). 10/30/24 16:54:55 oninit: Fatal error in shared memory initialization 10/30/24 16:54:55 Process exited with return code 126: /bin/sh /bin/sh -c /home/gbase/gbase/etc/alarmprogram.sh 4 7 "Database Server Initialization failure." "The chunk '/home/gbase/gbase/gbaseserver_dbs/rootdbs' must have READ/WRITE permissions for owner (600)." "" 7018

表示/home/gbase/gbase/gbaseserver_dbs/rootdbs权限不对,这里提示需要600权限。

chmod 755 /home/gbase/gbase/gbaseserver_dbs chmod 660 /home/gbase/gbase/gbaseserver_dbs/*
  1. 重启后登录报Incorrect password or user com.gbasedbt.asf.IfxASFRemoteException: gbasedbt@10.125.84.226[DESKTOP-JQ64187] is not known on the database server.
    com.gbasedbt.asf.IfxASFRemoteException: gbasedbt@10.125.84.226[DESKTOP-JQ64187]

但是给了600权限后服务能起来,但是用户无法连接上,需要给660权限。

chmod 755 /home/gbase/gbase/gbaseserver_dbs chmod 660 /home/gbase/gbase/gbaseserver_dbs/* 3. 服务器IP变了之后怎么处理? env |grep SQLHOSTS GBASEDBTSQLHOSTS=/home/gbase/gbase/etc/sqlhosts.gbaseserver 将sqlhosts.gbaseserver中的ip地址替换成新IP后重启即可。
  1. 智能大对象错误

定位:

su - gbasedbt onstat -d查看是不是空间不够 onstat -m查看日志

解决办法:

1、cd /opt/gbase/data 2、touch sbspace02 3、chmod 660 sbspace02 4、onspaces -a sbspace01 -p /opt/gbase/data/sbspace02 -o 0 -s 102400000

导入导出

1. 导出

dbexport [数据库名] -o [导出目录] [-ss] [-c] [-n] [-t] 以下命令导出 portal 数据库中所有表的定义,但是不导出数据: dbexport -no-data-tables -no-data-tables-accessmethods portal 以下命令将在不指定所有者的情况下,为 portal 数据库生成模式和数据: dbexport portal –nw 以下命令将按照脏读隔离级别导出指定数据库,在当前目录下生成 portal.exp 目录: dbexport -c -l portal

常用参数说明:

参数说明
-o 目录指定导出文件的存储路径
-ss导出简单大对象(sbspace 中的内容)
-c压缩导出文件(减少空间占用)
-n不导出索引(加快导出速度,导入时重建)
-t只导出表数据,不包括模式定义

⚠️ 推荐:一般使用-o和默认行为即可完整导出。


  • 报错:Unable to load locale categories.

一般来说就是编码集设定的问题,需要和已有数据库编码集设定一致。数据库当前编码集可以查 sysdbslocale表得知。

su - gbasedbt dbacess - - database sysmaster; select * from sysdbslocale; en_US.819 : 英文 zh_CN.57372 :UTF-8 ,同zh_CN.UTF8 zh_CN.5488 : GB18030-2000,兼容gbk,同zh_CN.GB18030-2000 # 删除数据库 drop database portal; # 法1:可以先去掉字符集配置 unset DB_LOCALE # 法2: setenv CLIENT_LOCALE zh_CN.57372 setenv DB_LOCALE zh_CN.57372 # 法3 export CLIENT_LOCALE=zh_CN.57372 export DB_LOCALE=zh_CN.57372

2. 导入

dbimport -c portal -d 指定表空间 dbimport -c portal -d datadbs1
  • 删除数据库报错:
  • SQL 错误 [ErrorCode : -23197] [SQLState : IX000] : Database locale information mismatch.
  • 删除库报错连接时需指定相同字符集的库,才能删除。

3. 备份

ontape -s -L 0 -t /home/gbasedbt/gbase/bak -d
http://www.jsqmd.com/news/447005/

相关文章:

  • android-ndk-rs未来展望:新特性与社区发展路线图
  • 10个火宝短剧实用技巧:提升AI短剧制作效率的终极指南
  • 终极Cuttlefish邮件服务器常见问题解决方案:从安装到高级配置全指南
  • windows文件实时同步
  • Nano Stores在React Native中的终极应用指南:简单快速的状态管理解决方案
  • 突破Session隔离:GH-Injector-Library全方法通用绕过技巧
  • CSP-S 2024 提高级 第一轮(初赛) 完善程序(2)
  • 探索apm生态:发现10个改变Atom体验的精选插件
  • Git Quick Stats自动化部署终极指南:CI/CD流水线集成完整教程
  • 【linux】shell命令
  • 如何快速掌握DotNetCore微服务:从零开始的保险销售系统实战教程
  • 探索Veloren:如何体验这款开源像素RPG的无限魅力?
  • 如何用Vue和Vuex构建你的第一个俄罗斯方块游戏:完整指南
  • Lovefield跨浏览器兼容性终极指南:Chrome、Firefox、IE的完整解决方案
  • 如何使用Git Quick Stats实现高效仓库统计监控与自动化告警
  • Lovefield终极性能调优指南:10个技巧让你的Web数据库运行更快
  • 7步完美贡献StyleGAN3:官方PyTorch实现的高质量PR提交指南
  • 终极指南:5步开发prettier-plugin-tailwindcss自定义解析器
  • JS Confetti核心API解析:掌握addConfetti与位置控制
  • StyleGAN3终极指南:如何彻底消除生成图像伪影的完整技术解析
  • Flux v1与Kustomize集成:多环境配置管理的终极指南
  • 如何快速掌握Mogenerator:iOS/Mac开发必备的Core Data代码生成工具
  • Alpakka核心组件全解析:从AWS到Kafka的20+连接器实战
  • vue企业官网模板 企业门户网站源码 开箱即用 网站二改,省时省力
  • 彼得林奇对公司高管薪酬结构与长期业绩的相关性研究
  • 如何快速实现Zaplib在生产环境的部署:Webpack集成与优化技巧
  • JARM vs JA3:两大TLS指纹技术对比,谁才是网络安全检测的王者?
  • 从0到1开发政府公报爬虫:基于Querido Diario的实战案例
  • 2026-03-07
  • 2026年北京海淀/朝阳/昌平继承律师事务所深度测评:从专业能力到服务体验的选型指南 - 小白条111