GBase 8s
工具
文章

【转载“GBase 8s数据库”公众号】GBase 8s 命令行客户端工具 dbaccess 使用指南

发表于2026-08-25 13:09:18212次浏览1个评论

在数据库的日常运维与开发工作中,命令行客户端是 DBA、开发者与数据库服务器交互的重要工具。各类数据库都有专属命令行工具,如 Oracle 的 sqlplus、MySQL 的 MySQL;dbaccess 是 GBase 8s 自带的命令行客户端工具,随产品一并安装,无需额外部署。

一、dbaccess 的功能定位

dbaccess 作为 GBase 8s 的原生客户端,主要承担以下职责:

  • 连接一个或多个数据库实例,执行 SQL 语句与存储过程(SPL)
  • 在数据库服务器与外部文件之间进行数据传输
  • 查询系统数据字典,获取表结构、数据模式等元数据信息
  • 提供 SQL 语句的调试与执行环境
  • 作为应用程序的测试工具,辅助验证 SQL 逻辑

只要完成 GBase 8s 数据库的安装,即可在命令行中直接调用 dbaccess。

二、四种工作模式详解

dbaccess 支持多种运行模式,覆盖从交互式操作到自动化脚本执行的完整场景。

2.1 菜单交互模式

直接运行 dbaccess 命令(或指定数据库名 dbaccess db_name),即可进入基于控制台的全屏菜单界面。该界面提供以下功能选项:

DBACCESS:   Query-language  Connection  Database  Table  Session  Exit 
Use SQL query language.  
-------------------——————----------- Press CTRL-W for Help --------
菜单项 功能说明
Query-language 输入、修改、保存和运行 SQL 语句
Connection 连接至指定的数据库服务器或断开当前连接
Database 处理数据库
Table 处理表
Session 显示当前会话信息
Exit 退出或返回上级菜单

在此模式下,用户可通过方向键选择功能,适合进行可视化程度较高的数据库操作。

2.2 指令交互模式

通过提供两个参数可进入类似 MySQL、sqlplus 的命令行交互模式:

dbaccess  
  • param1:指定数据库名称,若使用 - 则表示暂不选择默认数据库,后续可通过 database 切换
  • param2:固定为 -,表示从标准输入(STDIN)读取指令

进入后,> 提示符表示可输入 SQL 语句,以分号 ; 结束语句并按回车执行。按 CTRL-D 可结束会话并退出。此外,在该模式下可在命令前加 ! 来执行 UNIX 命令。

[gbasedbt@train ~]$ dbaccess - -
> database gbasedb;
> create table t_user(f_userid int, f_username varchar(50));
> insert into t_user values(1, 'gbasedbt');
> select * from t_user;
> ^D

2.3 管道模式

dbaccess 可以接收 STDIN 中的内容作为待执行的 SQL 指令,适合与其他命令组合使用:

echo "select * from t_user;" | dbaccess gbasedb

该模式下,SQL 语句通过管道传入 dbaccess,执行完成后自动关闭数据库连接并退出。对于简单的单条查询场景,管道模式是一种轻量高效的调用方式。

2.4 脚本模式

将 SQL 代码保存到文件(扩展名为 .sql),通过文件参数执行:

方式一:直接执行 SQL 文件

dbaccess 数据库名 SQL文件.sql

方式二:使用 -e 参数同时输出 SQL 脚本内容到标准输出

dbaccess -e 数据库名 SQL文件.sql

方式三:在 Shell 脚本中使用 SQL

#!/bin/bash
dbaccess << EOF
database gbasedb;
select * from t_user;
EOF

脚本模式是批量运维和自动化部署中最常用的方式,可将数据库操作无缝集成到 Shell 脚本中。

三、常用环境变量配置

dbaccess 的行为可通过多个环境变量进行个性化配置。

3.1 DBFLTMASK — 浮点数显示精度

默认情况下,dbaccess 会尽可能显示浮点数的小数位数。通过设置 DBFLTMASK 可控制小数显示的位数:

export DBFLTMASK=3

3.2 DBEDIT — 内置文本编辑器

设置 dbaccess 中使用的操作系统文本编辑器,默认为 vi:

export DBEDIT=vi

3.3 DBMONEY — 货币类型显示格式

控制 money 数据类型的显示格式。默认根据操作系统本地化设置显示,可通过该变量自定义:

export DBMONEY="$"        # 前缀货币符号
export DBMONEY=".$"       # 后缀货币符号

3.4 GL_DATE — 日期显示格式

GBase 8s 的 date 类型默认格式为 月/日/年。通过 GL_DATE 可调整为符合本地化习惯的格式:

export GL_DATE="%iY-%m-%d"   # 输出格式:2021-06-18

常用格式化符包括:%iY(四位年份)、%m(月份)、%d(日期)、%H(小时,24H)、%M(分钟)、%S(秒)等。

3.5 DBACCESS_SHOW_TIME — SQL 执行时间显示

设置该变量为 1 后,dbaccess 在执行 SQL 时会额外显示执行耗时:

export DBACCESS_SHOW_TIME=1

该功能在性能调优和批量任务监控时尤为实用。

四、演示数据库创建

GBase 8s 提供了快速创建演示数据库的工具命令,便于学习和测试:

# 创建 stores_demo 数据库
dbaccessdemo

# 创建 superstores_demo 数据库(支持智能大对象)
dbaccessdemo_ud

注意: 创建 superstores_demo 前需确保已配置智能大对象空间(sbspace)。

五、总结

dbaccess 作为 GBase 8s 的核心客户端工具,其四种工作模式覆盖了从交互式操作到自动化执行的完整需求:

场景 调用方式
菜单交互操作 dbaccess 或 dbaccess 数据库名
命令行交互 dbaccess - - 或 dbaccess 数据库名 -
执行 SQL 脚本 dbaccess 数据库名 脚本.sql
管道快速查询 `echo "SQL"
Shell 脚本集成 `dbaccess <

合理配置环境变量(如 DBFLTMASK、GL_DATE、DBACCESS_SHOW_TIME 等),可以让 dbaccess 的输出更符合本地化习惯和业务需求。对于需要批量运维和自动化集成的场景,脚本模式配合 Shell 编程是实现高效数据库管理的推荐方案。

评论

登录后才可以发表评论
用户头像
XX发表于 1个月前
感谢分享,学习了