【转载“GBase 8s数据库”公众号】GBase 8s 命令行客户端工具 dbaccess 使用指南
在数据库的日常运维与开发工作中,命令行客户端是 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 编程是实现高效数据库管理的推荐方案。
热门帖子
- 12025-12-01浏览数:183859
- 22023-05-09浏览数:26536
- 42023-09-25浏览数:20224
- 52020-05-11浏览数:19002