一、数据库日常管理指南
简介:
GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控。监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况;另一方面是数据库级别的监控,包括对磁盘空间大小的监控,对逻辑日志物理日志的监控,对数据表中数据量的监控,以及表中索引层数,顺序扫描次数等等。我们可以通过命令或者sql语句的方式,完成对数据库的监控,也可以通过OAT图形化管理界面实现对GBase 8s数据库的监控。
简介:
GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控。监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况;另一方面是数据库级别的监控,包括对磁盘空间大小的监控,对逻辑日志物理日志的监控,对数据表中数据量的监控,以及表中索引层数,顺序扫描次数等等。我们可以通过命令或者sql语句的方式,完成对数据库的监控,也可以通过OAT图形化管理界面实现对GBase 8s数据库的监控。
一个ER复制环境中,之前运行的好好的,突然报了错误"ER encountered a fatal error while evaluating replicate er_repl1 SQLCODE:-1213 ISAMCODE:0",然后ER复制关闭,无法再启动。
从SQLCODE错误号-1213可知,错误原因是:
-1213 A character to numeric conversion process failed.
A character value is being converted to numeric form for storage in a
numeric column or variable. However, the character string cannot be
interpreted as a number. It contains some characters other than white
space, digits, a sign, a decimal, or the letter e; or the parts are in
the wrong order, so the number cannot be deciphered.
If you are using NLS, the decimal character or thousands separator
might be wrong for your locale.
即字符转换成数值失败。
函数 | 返回类型 | 描述 | 示例 | 结果 |
---|---|---|---|---|
COUNT(*) | 数值 | 返回行数 | COUNT(*) | 100 |
COUNT(UNIQUE col) COUNT(DISTINCT col) | 数值 | 返回去重后的行数(忽略NULL行) | COUNT(UNIQUE col1) | 50 |
COUNT(col) | 数值 | 返回行数 | COUNT(col1) | 100 |
AVG(col/expr) | 数值 | 返回表达式或指定的列的数值平均值 | AVG(col1) | 64 |
AVG(UNIQUE col) AVG(DISTINCT col) | 数值 | 返回指定的列中唯一值的数值平均值 | AVG(UNIQUE col1) | 61 |
MAX(col/expr) | 数值 | 返回指定的列或表达式中的最大值 | MAX(col1) | 100 |
MIN(col/expr) | 数值 | 返回指定的列或表达式中的最小值 | MIN(col1) | 10 |
SUM(col/expr) | 数值 | 返回指定的列或表达式中的数值总和 | SUM(col1) | 5050 |
RANGE(col) | 数值 | 返回数值列表达式参数的值的范围 | RANGE(col1) | 99 |
STDEV(col) | 数值 | 计算数据集的标准差 | STDEV(col1) | 200 |
VARIANCE(col) | 数值 | 总体方差的估计值,即标准差的平方 | VARIANCE(col1) | 40000 |
PSM(Primary Storage Manager)是仅有基本的备份/恢复功能(相对于Netbackup等来说),当前的版本中也仅支持文件系统设备。
以下是简单的配置步骤:
准备工作,使用gbasedbt用户,准备足够大的文件系统(目录)用于存储备份。
BAR_BSALIB_PATH为$GBASEDBTDIR/lib/libbsapsm.so,该参数是动态参数,可使用onmode -wf修改
[gbasedbt@bd ~]$ onmode -wf BAR_BSALIB_PATH=$GBASEDBTDIR/lib/libbsapsm.so
Value of BAR_BSALIB_PATH has been changed to /opt/gbase/lib/libbsapsm.so.
修改ALARMPROGRAM为$GBASEDBTDIR/etc/log_full.sh,该配置参数启用逻辑日志备份onbar -b -l
该参数在GBase 8s中也是动态参数,可使用onmode -wf修改
[gbasedbt@bd ~]$ onmode -wf ALARMPROGRAM=$GBASEDBTDIR/etc/log_full.sh
Value of ALARMPROGRAM has been changed to /opt/gbase/etc/log_full.sh.
修改LTAPEDEV为非/dev/null,启动逻辑日志备份,而不是丢弃逻辑日志备份。
[gbasedbt@bd ~]$ onmode -wf LTAPEDEV=/opt/gbase/backups/logs
Value of LTAPEDEV has been changed to /opt/gbase/backups/logs.
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。
存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
优点
存储过程可封装,并隐藏复杂的商业逻辑。
存储过程可以回传值,并可以接受参数。
存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
存储过程可以用在数据检验,强制实行商业逻辑等。
这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Mybatis 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。
Eclipse
JDK-1.8
Mybatis-3.4.5
GBase 8s 数据库及JDBC驱动2.0.1a2_2
这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Hibernate 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。
Eclipse
JDK-1.8
hibernate-5.3.12 及方言包
Hibernate-5.3.12 及对应的GBase 8s Dialect
GBase 8s 数据库及JDBC驱动2.0.1a2_2
从Oracle迁移到GBase 8s数据库时,存储过程中有使用游标绑定投影列的语法:
open cursor1 for 'select ? as username, ? usertext from dual' using p_username, p_usertext;
这个语法(投影列绑定变量)在GBase 8s中暂时还是不支持的。由于使用的是dual表,实际上只是需要返回这两个值到游标上。我们可以通过如下改造,达到类似的效果。示例存储过程如下:
GBase 8s v8.7 数据库建议安装在RHEL7或者CentOS7或者类似内核的Linux发布版本中。以下是安装过程中常见的一些问题:
解析:操作系统确少必要的unzip工具,需要安装unzip。CentOS系统中可通过yum install unzip安装。
如果安装目录下的隐藏文件 .gbase.properties 缺失,也会出现此问题。重新解压缩安装包后,再次安装。
解析:提示信息为无Java虚拟机,按照提示安装JRE/JDK。支持的JRE/JDK版本为1.6及以上,如CentOS自带的java-1.8.0-openjdk。