目录
GBase 8s认证试题解析 - 持续更新
1、GBase 8s 产品介绍
1.1 GBase 8s共享内存由以下 () 部分组成
- 常驻段
- 虚拟段
- 消息段
- SGA段
共享内存包括4个部分: 常驻内存段、缓冲池段、虚拟内存段、消息段,没有SGA段。
1.2 关于GBase 8s描述正确的是()
- GBase 8s是一款事务型数据库,主要应用于一些高并发的业务场景。
- GBase s是一款获得等保四级安全认证的事务型数据库。
- GBase 8s是一款标准的分析型数据库集群,主要用于OLAP的数据挖掘场景。
- GBase 8s是一款图数据库,主要用于图数据分析。
GBase 8s是一款事务型数据库,支持严格的ACID,达到等保四级,是一个标准的安全数据库。虽然GBase 8s支持并行处理,可用于一些OLAP分析场景,但并不算是一个标准的OLAP数据库集群。GBase 8a是一个MPP集群,用于OLAP场景
1.3 关于GBase 8s的存储,以下属于物理存储的是 ()
- 数据页page
- 数据块Chunk
- 表空间Tablespace
- 数据段Extent
表空间Tablespace是逻辑存储概念,表空间包含分配到给定表或表分区、已分配给关联索引的所有磁盘空间。
1.4 GBase 8s的数据库架构是 ()
- 单进程、单线程架构
- 多进程、单线程架构
- 单进程、多线程架构
- 多进程、多线程架构
GBase 8s的数据库是基于虚拟处理器的多进程/多线程架构。不依赖于操作系统的线程库,更高效的资源利用,高并发场景下更稳定的性能表现
1.5 在国内被称为国产数据库四朵金花的厂商有几个( )
- 达梦
- 金仓
- 南大通用
- 华为
国内最早做数据库的厂家有武汉达梦,人大金仓,南大通用和神舟通用,被称为国内数据库的四朵金花。华为的高斯数据库也非常不错,但相比前面四家,时间上相对晚一些。
1.6 GBase 8s物理日志记录数据被更改后的数据映像,逻辑日志记录数据库服务器对数据的操作记录。
正确
错误
GBase 8s物理日志记录数据被更改前的映像,逻辑日志记录数据库服务器对数据的操作记录。
2、GBase 8s 安装与卸载
2.1 查看实例的当前运行模式的命令是哪个()
- onstat
- dbstat
- showmode
- Showstat
2.2 GBase 8s的安装命令是什么()
- setup
- install
- Id_setup
- Ids_install
2.3 GBase 8s的停止数据库实例的命令是哪个()
- shutdown
- kill
- onmode
- Oninit
GBase 8s的命令多以on开头,启动命令为oninit,停止命令为onmode。
2.4 使用脚本GBaselnit gbasedbt.sh初始化实例时,哪些dbspace可以创建多个 ()
- plogdbs
- llogdbs
- datadbs
- Tempdbs
在GBase 8s中,物理日志和逻辑日志通常只使用一个数据库空间。虽然逻辑日志要求使用多个,但这些逻辑日志会保存到一个逻辑日志空间中。对于保存临时数据的数据库空间和保存业务数据的数据库空间,通常需要多个。
2.5 GBase 8s的客户端工具是什么()
- gbase
- gbasesq
- dbaccess
- Dbsql
2.6 GBase 8s超级管理员是什么()
- gbase8s
- gbase
- gbasedbt
- Gbaseadmin
2.7 GBase 8s的主进程名称有哪些()
- dbaccess
- oninit
- gbased
- Gbasedb
3、GBase 8s 产品介绍
3.1 GBase 8s的客户端工具dbaccess有哪些工作模式()
- 静态模式
- 菜单交互模式
- 管道模式
- 指令交互模式
dbaccess可以运行在菜单交互模式下,通过菜单,选择相应的命令并执行。
它也可以使用类似mysql等客户端的指令交互模式,用户输入命令后,回车执行并等待命令的执行结果。
用户也可以通过echo等操作系统命令将要执行的语句输出到标准输出设备,通过管理做为dbaccess的输入,来执行sql。
静态模式不是dbaccess的模式,是数据库的运行模式。
3.2 如何进入dbaccess的指令交互模式 ()
- dbaccess
- dbaccess db_name
- dbaccess - -
- dbaccess db_name -
要进入dbaccess的指令交互模式,通常害要为dbaccess提供两个参数,且第二个参数为-,表示输入为STDIN。
3.3 如何在dbaccess中查看SQL的执行时间()
- dbaccess在执行SQL后,默认会自动显示出该查询的执行时间,在查询结果后直接查看即可
- dbaccess不支持显示SQL的执行时间
- dbaccess默认不支持显示SQL的执行时间,但可通过设置环境变量GL SHOWTIME来支持
- dbaccess默认不支持显示SQL的执行时间,但可通过设置环境变量DBACCESS_SHOW_TIME来支持
早期的dbaccess不支持显示SQL的执行时间,目前的版本支持设置环境变量DBACCESS_SHOW_TIME=1来显示SQL的执行时间
3.4 如何严格控制在dbaccess中执行SQL时查询结果中小数点的位数()
- 不需要控制,dbaccess自动根据录入时的小数点后数字,并自动进行显示
- 通过设置启动dbaccess时的环境变量DBFLTMASK为个整数,对小数点进行精确控制。
- 通过设置启动dbaccess时的环境变量DBDIGITNUM为个整数,对小数点进行精确控制。
- 以上答案都不对
默认情况下,dbaccess会尽可能的显示浮点数的小数位数。通过设置该环境变量DBFLTMASK,控制dbaccess在输出小数信息时,尽量只显示指定位数的小数。当需要显示的数据超过dbaccess的最大显示宽度时,会优先保障整数部分的数字,再尽可能的控制小数部分的输出
3.5 GBase 8s的客户端工具是什么()
- Sqlplus
- dlsql
- dbaccess
- isql
4、GBase 8s 运行模式与切换
4.1 如何将GBase 8s从在线模式切换为静态模式()
- onmode -j
- onmode -s
- onmode -u
- onmode -k
4.2 GBase 8s由在线模式切换为离线模式的命令是哪个 ()
- oninit -k
- onmode -k
- onstat -k
- shutdown now
onmode -i 是切换为单用户模式,
onmode -k 是切换为离线模式,
onmode -s 是优雅地切换到静态模式,
onmode -u 是立即切换到静态模式
4.3 在静态模式下,数据库的数据不会发生变化,数据库管理员可以在静态模式下使用COUNT函数精确统计每个表有多少条记录
正确
错误
在静态模式下,不能执行SQL语句。
4.4 只有数据库处于在线模式时,才能对外提供SQL查询功能
正确
错误
数据库处于单用户模式时,也可以提供SQL查询.
4.5 GBase 8s的运行模式有哪些()
- 在线模式
- 离线模式
- 静态模式
- 单用户模式
GBase 8s有四种运行模式,分别为
离线模式
在线模式
单用户模式(又称为管理员模式)
静态模式 (有的文档中也称为静默模式)。
4.6 如何将GBase 8s从离线模式切换为静态模式()
- oninit
- oninit -s
- oninit -u
- oninit -j
oninit 是从离线模式切换为在线模式,
oninit -i 是离线模式切换为单用户模式
oninit -s 是从离线切换为静态模式
oninit 没有-u参数。
4.7 GBase 8s的过渡模式有哪些()
- 初始化(Initialization)
- 快速恢复 (Fast Recovery)。
- 离线 (Off Line)
- 关闭 (Shutting Down)。
GBase 8s有三种过渡模式,分别为
初始化(lnitialization) 、
快速恢复 (Fast Recovery)
关闭Shutting Down)
5、GBase 8s 数据类型
5.1 GBase 8s数据类型的两大类别有 ()
- 复杂数据类型
- 内置数据类型
- 用户自定义数据类型
- 扩展数据类型
5.2 create table employee(id serial, name varchar(50)),id列已有数值1,2,5则再执行insert into employee(id,name)values(5,gbase')。则()
- 系统提示重复序号
- 数据(3,gbase')成功插入
- 数据(6,gbase)成功插入
- 数据(5,gbase')成功插入
可以插入serial列存在的数值。
5.3 关于BIGSERIAL叙述正确的是 ()
- 存储二进制数据
- 占用8个字节
- 不能存储零
- 数值自增
BIGSERIAL存储8个字节的非零整数,具有自动增一的功能。
5.4 create table employee(id serial, name varchar(50)),id列已有数值1,2,5则再执行insert into employee(id,name)values(3,gbase')。则 ()
- 语法错误
- 数据(3,gbase')成功插入
- 数据(6,gbase')成功插入
- 覆盖最大序号的数据
在提供Serial字段数值情况下,新插入记录的Serial字段使用提供的数值,不再自动生成新值。
5.5 数据类型numeric (p,s) 中的p代表整数位长度,s代表小数位长度 ()
正确
错误
numeric (p,s) 中的p代表整数和小数长度
5.6 GBase 8s小数数据类型包括()
- SMALLFLOAT
- DECIMAL
- MONEY
- FLOAT
5.7 create table employee(id serial, name varchar(50)),id列已有数值1,2,5则再执行insert into employee(name)values(gbase')。id值为 ()
- 3
- 4
- 6
- 报错
6、GBase 8s SQL语法
6.1 删除数据库正确的SQL语句是()
- delete database courseware;
- delete databases courseware;
- drop database if exists courseware;
- drop database if exist courseware;
6.2 表中新增新列正确的SQL是 ()
- alter table student add (Sex smallint);
- alter table student add (age int before Sex);
- alter table student add column(score int);
- alter table student column add (score int);
6.3 create database 'CourseWare'产生的数据库名称 ()
- 不敏感
- 敏感
- 需要明确使用nlscasesensitive 或 nlscase insensitive参数
6.4 GBase 8s rename database失败的原因有 ()
- database closed
- database不存在
- 当前正在操作的database
- 被更名的database处于打开状态
6.5 正确的Delete SQL语句是 ()
- select * from t_user where f userid = 1;
- delete * from t_user where f userid = 1;
- delete from t_user where f userid = 1;
- delete t_user where f userid = 1:
6.6 以下正确的Insert (进阶语法)SQL语句是()
- insert into t user2 (userid, username) select * fromuser1;
- insert into t user2 select * from t user1;
- insert into t user2 (userid, username) select userid,username from t user1.
- select userid, username into t user2 from t user1:
6.7 创建表正确的SQL语句是 ()
- create table if not exists student(id int, namevarchar(20));
- create table if exists student(id int, namevarchar(20)):
- create table student(id int, name varchar(20))
- new table student(id int, name varchar(20));
6.8 重命名表中存在列正确的SQL语句是 ()
- rename student.age to age1;
- rename column student.age to age1;
- rename column 'student.age' to 'age1'.
- rename column "student.age" to "age1"
6.9 创建视图正确的的SQL语句是 ()
- create view vTest as select * from student
- create view vTest select * from student;
- create view vTest ( select * from student ):
- create table vTest as ( select * from student );
6.10 在存储过程中定义变量正确的的语句是()
- define x int;
- define x, y int
- int x
- xint
7、GBase 8s 常用函数
7.1 select Replace(content, 'reading', 'writing') from (select l like reading' as content from dual) t; 执行结果()
- I like reading
- I like writing
- writing
- reading
7.2 select ceil(-5.5) as num2 from dual; 返回结果为 ()
- -6
- -5
- -5.0
- -6.0
7.3 删除字符串两边的"*"号,正确的语句是 ()
- select Trim(*Hello world**, ‘*’) from dual;
- select Trim(both * from "*Hello world**') from dual;
- select LTrim(both * from *Hello world**') from dual;
- select RTrim(both * from "*Hello world**") from dual;
7.4 DBINFO(version',full) 函数可以得到()
- 操作系统版本
- JDK版本
- GBase Server Version 12.10.FC4G1TL
- Python版本
7.5 select char length(汉字) from dual; 执行结果为 ()
- 2
- 3
- 4
- 8
7.6 数据库字符集utf8,select len(‘汉字’) from dual; 执行结果为 ()
- 2
- 4
- 6
- 8
7.7 select len(‘ABC ‘ ) from dual; 执行结果为 ()
- 6
- 5
- 4
- 3
7.8 select round(-5.5) from dual; 执行结果()
- -6
- -6.0
- -5
- -5.5
7.9 GBase8s标量函数包括()
- 数学函数
- 字符串函数
- 日期时间函数
- 聚合函数
7.10 select regexp replace(f_content, '\d{11}' ,13002231730') from(select '我的电话号码是13920656789' as f content from dual)t; 执行结果为 ()
- 我的电话号码是13920656789
- 我的电话号码是13002231730
- 我的电话号码是
7.11 select floor(-5.2) as num2 from dual; 返回结果为()
- -5
- -5.0
- -6
- -6.0
7.12 select substr('abcdefg', 2,3) as f substr from dual; 执行结果()
- cde
- c
- d
- bcd
7.13 常用的聚合函数有 ()
- COUNT
- SUM
- MAX/MIN
- WM_CONCAT
7.14 以下格式化日期时间语句正确的是()
- select to_char(sysdate, YYYY/MM/DD hh24:mi:ss')from dual;
- select to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss')from dual;
- select to_char(sysdate, 'yyyy/mm/dd hh12:mi:ss')from dual;
- select to_char(sysdate, 'yy/mm/dd hh24:mi:ss') from dual;
7.15 获取当前系统日期,可以使用 ()
- date(SYSDATE)
- date(CURRENT)
- TODAY
- date(NOW)
8、GBase 8s SPL 入门
8.1 GBase8s SPL容易发生死循环的循环语句是
- WHILE
- LOOP
- FOR/FOREACH
- GOTO
LOOP...END LOOP、WHILE...END WHILE块中必须有合理的退出循环的条件,否则会出现死循环。
8.2 GBase8s SPL循环关键字有
- GOTO
- LOOP
- FOR
- FOREACH
- WHILE
GBase8s SPL循环关键字有GOTO、LOOP、FOR.
FOREACH、WHILE。
8.3 GBase8s SPL中变量赋值正确的是 ()
- let dbName = '8s
- let name = functionGetName(1);
- let elDeName=(select id,name from employee whereid=1);--id是主键
- let db1db2='8a','8s'
GBase8s SPL变量赋值有四种形式: 单变量赋值、多变量系列赋值、接收自定义函数返回值、接收字段。
8.4 GBase8s SPL异常插获语句ON EXCEPTION IN(-206,-217)SET err num...END EXCEPTION中IN内的两个数字表示 ()
- 存储过程内任何语句发生的错误代码
- 异常捕获代码块中的语句发生的错误代码
- 自定义函数内任何语句发生的错误代码
- RAISE EXCEPTION抛出的错误代码
异常捕获基本语法ON EXCEPTION IIN(ErrorCode1ErrorCode2,...)] SET sql err num[,isam err num]..END EXCEPTION IWITH RESUME]。
8.5 GBase8s SPL变量赋值使用 () 关键字
- var
- let
- declare
- 变量前不用任何关键字
8.6 GBase8s存储过程和自定义函数由 () 组成。
- 开始语句
- 循环体
- 语句块
- 结束语句
8.7 GBase8s SPL例程根据是否需要返回值,分为 ()
- 存储程序
- 内置函数
- 存储过程
- 自定义函数
GBase8s SPL例程根据是否需要返回值,分为存储过程和函数。
8.8 GBase8s SPL退出LOOP循环正确的语句是 ()
- if var > 10 then exit;
- if var > 10 then break;
- exit when var > 10.
- break when var > 10:
GBase8s SPL退出LOOP循环,可以用if 表达式 then exit或exit when表达式.
8.9 GBase8s SPL变量支持链式赋值 ()
正确
错误
例如:let userid,username = 2021,gbasedbt;就是属于链式赋值。
9、GBase 8s 数据迁移
9.1 GBase 8s数据库中哪个命令导出的数据,不是文本数据?
- unload
- onexport
- onunload
- dbexport
onunload导出的数据是二进制格式,可以通过onload导入到GBase 8s中。
9.2 下面关于外部表,说法正确的是?
- 使用外部表,只能从GBase 8s中导入数据,不能导出数据到外部表。
- 外部表是数据迁移时,性能最好的数据迁移方式
- 外部表只能实现单表的数据迁移
- 外部表只能使用一个外部文件,不能同时使用多个文件。
外部表创建后,可以从表中查询数据,并插入到其它表中,也可以将其它表中的数据插入外部表。当从其它表中向外部表插入数据时,外部表原来的数据将被清除.外部表方式是数据迁移性能最好的方式,相比其它方式,性能可提升数倍或数十倍。外部表是一个表,所以一次只能进行一个表的数据迁移。创建外部表时,可以同时指定多个格式相同的文件,做为外部表的数据源。
9.3 数据迁移时需要考虑哪些问题?
- 数据中包含行分隔符问题。
- 数据中包含列分隔符问题
- 汉字乱码问题
- 日期时间格式问题
9.4 下面关于unload说法正确的是?
- unload可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将换行符转义为\n
- unload可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将数据导出成多行,这样的数据无法再次导入,因此在导出数据前需要替换数据中的换行符。
- unload可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会将数据导出成多行,在因数据内换行符而产生换行的行尾,自动加上一个,表示这行没有结束
- unload可以导出查询中的数据到外部文本文件。当数据中包含换行符时,会自动删除数据中的换行符,无需用户处理。
9.5 以下哪些数据装载的命令是以SQL的方式执行的
- load/unload
- onload/onunload
- dbload
- dbexport/dbimport
9.6 GBase 8s进行整库数据迁移时,应使用哪和方式?
- 使用unload/load进行整库数据迁移
- 使用onload/onunload进行整库数据迁移
- 使用dbexport/dbimport进行整库数据迁移
- 以上方式都可以
9.7 unload默认的列分隔符是什么?
- 空格
- \t
- ,
- I
9.8 在dbaccess中,可以使用哪个sql命令导出表的数据?
- select * from tab name into out file
- onunload
- dbexport
- unload
10、GBase 8s 备份与恢复
10.1 GBase 8s中支持哪几个级别的备份与恢复?
- 0级
- 1级
- 2级
- 3级
GBase 8s支持L0/L1/L2共3个级别的备份与恢复。LO是全量备份,L1和L2是增量备份。
10.2 GBase 8s自带的两个备份工具 (onbar 和 ontape) 都可以实现备份数据的完全恢复,这两个备份工具备份出来的数据是兼容的。
正确
错误
两人工具备份的数据不兼容,不能用onbar来恢复由ontape备份出来的数据。
10.3 GBase 8s 提供了两个备份与恢复工具,onbar可以实现备份数据的完全恢复和基于时间点的恢复,但ontape只能进行备份数据的完全恢复,不能进行基于时间点的恢复
正确
错误
ontape工具只能进行数据的完全恢复,也可以进行基于备份数据的物理恢复,但不能进行基于时间点的数据恢复。需要需要实现基于时间点的不完全恢复,只能使用onbar实现。
10.4 GBase 8s中使用ontape备份时,需要设置哪个参数?
- BAR MAX BACKUP
- BAR BSALIB PATH
- TAPEDEV
- LTAPEDEV
使用ontape备份时,需要设置TAPEDEV来指定物理备份的保存位置,设置LTAPEDEV来指定逻辑日志的保存位置。
10.5 GBase 8s的备份恢复,可以使用哪些工具实现?
- onbackup
- ontape
- onlog
- onbar
ontape和onbar可以实现GBase 8s的备份与恢复。两个工具都可以实现备份的完全恢复,onbar可以实现基于时间点的不完全恢复。
11、GBase 8s 元数据管理
11.1 如何查看mydb数据库中mytab表有哪些列?
- 在mydb数据库中执行select colname fromsyscolumns where tabname = 'mytab!.
- 在mydb数据库中执行select colname fromsyscolumns where tabid in (select tabid fromsystables where tabname = 'mytab');
- 在sysmaster数据库中执select colname fromsyscolumns where dbname = 'mydb' and tabname ='mytab'
- 在mydb数据库中执行info columns for mytab;
11.2 GBase 8s中如何查看有哪些数据库?
- 使用show databases命令
- 连接系统数据库,执行select* from db;
- 连接系统数据库,执行select*from databases;
- 连接系统数据库,执行select* from sysdatabases;
11.3 如何查看表mytab有哪些索引?
- show indexes;
- show indexes for mytab;
- select * from sysindexes where tabname = 'mytab',。
- select * from sysindexes where tabid in (select tabidfrom systables where tabname = 'mytab');
11.4 如何查看mydb数据库中有哪些视图?
- 在mydb数据库中执行show views;
- 在mydb数据库中执行info views;
- 在sysmaster数据库中执select * from sysviewswhere dbname = 'mydb
- 在mydb数据库中执行select * from systables wheretabid >= 100 and tabtype = 'V';
12、GBase 8s 管理员命令
12.1 如何查看GBase 8s数据库逻辑日志使用状态?
- onmode -l
- onmode -L
- onstat -I
- onstat -L
12.2 如何终止数据库服务器连接会话12315?
- kill 12315
- kill -9 12315
- onmode -z 12315
- onmode -k 12315
12.3 如何查看GBase 8s数据库用户线程?
- show threads;
- onstat -t
- onstat -u
- onstat -s
onstat -u 可以打印用户线程信息 onstat -x 打印事务信息。
12.4 如何查看GBase 8s数据库服务器信息?
- show serverinfo
- onstat -g dis
- onstat -s
- onstat -i
onstat -g dis 打印数据库服务器信息
12.5 如何查看GBase 8s数据库系统当前运行状态统计?
- onstat -s
- onstat -p
- onstat -r
- show status
12.6 如何查看GBase 8s数据库共享内存段的统计信息?
- onstat -s
- onstat -g seg
- onstat -g shm
- onstat -m
12.7 如何查看GBase 8s数据库表空间信息?
- onstat -tablespaces
- onstat -t
- show tablespaces
- onstat -T
onstat -t显示活动表空间的表空间信息。onstat -T显示全部表空间的表空间信息。
12.8 如何查看GBase 8s数据库与 SQL有关的会话信息?
- onstat -g seq
- onstat -g sql
- onstat -g seg
- onstat -s
12.9 如何查看GBase 8s数据库当前运行模式?
- show status
- oninit --status
- onstat -
- onmode -s
12.10 如何查看GBase 8s数据库的onconfig文件内容?
- 使用onmode -c
- 使用onstat -c
- 使用oninit -c
- 使用cat命令查看 onconfig文件
onstat -c可以直接显示数据库的配置文件内容,也可以进入GBase 8s的安装目录中的etc目录中,直接查看onconfig文件中的内容。GBase 8s的配置文件保存在个类似onconfig.<server name>的文本文件中。
12.11 GBase 8s中如何强制执行一次检查点?
- oninit -c
- onstat -c
- onmode -c
- chkpt force。
12.12 GBase 8s中如何添加5个cpu虚拟处理器?
- oninit -p +5 cpu
- onmode -p +5 cpu
- onstat -p +5 cpu
- oninit add 5 cpu
12.13 如何查看GBase 8s数据库Chunk文件使用信息?
- onstat -c
- onstat -C
- onstat -d
- onstat --chunk
12.14 GBase 8s中如何切换逻辑日志?
- oninit -l
- onmode -l
- onstat -l
- switch log
12.15 如何查看GBase 8s数据库归档状态?
- onstat -c
- onstat -g arc
- archive list
- show archive
12.16 如何查看GBase 8s数据库系统在线日志最新信息
- 使用onstat --log查看online日志文件的最后部分
- 使用tail命令查看online日志文件的最后部分
- 使用onstat -I查看online日志文件的最后部分
- 使用onstat-m查看online日志文件的最后部分。