AIOps 一场颠覆传统运维的盛筵
1228
2022-10-04
GBase 8s 项目运维经验总结
项目背景
某省发改委社会信用服务管理平台中心建设覆盖全区企业、个人信用基础数据库和信用信息共享平台,推进社会信用体系和联合奖惩机制建设。
部署环境
GBase 8s Database Server Version 12.10 vs 中标麒麟v7
官方文档硬件要求如下:
常见运维命令
导出一个库的对象结构
1)导出数据库中所有的表结构到文件db.sqldbschema -d your_database -t all db.sql2)导出数据库中所有的存储过程到文件db.sqldbschema -d your_database -f all db.sql3)导出数据库中的所有对象(包含表,存储过程,触发器…)到文件db.sqldbschema -d your_database db.sql4)导出数据库中一个表的结构到文件db.sqldbschema -d your_database_name -t your_table_name db.sql5)导出一个存储过程定义到文件db.sqldbschema -d your_database_name -f your_procedure_name db.sql6)如果导出更多的表的信息(EXTENT…) 到db.sqldbschema -d your_database_name -s db.sql7)导出数据库中对用户或角色的授权信息dbschema -d your_database_name -p alldbschema -d your_database_name -r all8)导出数据库中的同义词dbschema -d your_database_name -s all
如何创建数据库用户并附权限
GBase 8s的用户就是操作系统用户,因此要给数据库创建用户,就想当于给操作系统创建用户。useradd zr_xbzxpasswd zr_xbzx然后用数据库客户端工具连接到数据库上执行以下语句,给用户赋权:connect这是级别最低的一种数据库级别的用户权限。拥有该权限的用户可以执行select、insert、update和delete语句,针对数据表执行存储过程,创建数据表的视图,创建临时表(这样的临时表可以有索引,也可以没有索引)。Resource拥有该权限的用户除拥有connect的全部权限以外,他还可以创建新的表,并可以对它自己所创建的表执行alter和drop操作,并可以对这些表创建索引。DBA数据库的建立者和拥有者被自动赋予这种权限。拥有该权限的用户除拥有resource的全部权限以外,他还可以对其他用户赋予或解除connect、resource和DBA权限,可以对其它用户创建的表的视图执行drop和alter操作。甚至他还可以对数据库执行drop、start、stop和recover操作。grant dba to “zr_xbzx”;grant resource to “zr_xbzx”;grant connect to “zr_xbzx”;
取消权限:REVOKE 权限 FROM 用户名
如何强制并发查询
在查询前执行以下语句set pdqpriority 80;
如何强制脏读
在查询前执行以下语句set isolation to dirty read;
如何查询前几行数据
如下是查500000到500099行。select skip 500000 first 100* from tbook_1
如何修改表的锁模式
alter table tablename lockmode(row);
kettle如何连utf8字符集的gbase 8s数据库
下载gbase-connector-java.jar包,可以在gbase社区网站上下载将下载好的jar包放入D:\kettle\data-integration\ext-lib
custom connection ulr:设置如下gbasedbt-sqli://192.168.197.138:9088/test2:GBASEDBTSERVER=gbaseserver;CLIENT_LOCALE=zh_cn.GB18030-2000;DB_LOCALE=zh_cn.GB18030-2000;IFX_LOCK_MODE_WAIT=100;NEWCODESET=GB18030,GB18030-2000,5488;DBDATE=Y4MD;
jdbc连接字串
jdbc:gbasedbt-sqli://192.168.120.196:9088/testdb:GBASEDBTSERVER=gbaseserver;CLIENT_LOCALE=zh_cn.GB18030-2000;DB_LOCALE=zh_cn.GB18030-2000;IFX_LOCK_MODE_WAIT=100;NEWCODESET=GB18030,GB18030-2000,5488;DBDATE=Y4MD;
怎么查询数据库的字符集
SELECT dbs_collate FROM sysmaster:sysdbslocale WHERE dbs_dbsname=‘testdb’;zh_CN.57372对应的是utf-8zh_CN.5488对应的是zh_cn.GB18030-2000
数据库慢应当怎么查
从onstat -u|grep PX看,一般应该没有,如果常有,说明写盘有问题iostat -xnC2看b%和w%
长事务的进度如何查看
我早上有一个表删除数据长事务kill后,到现在还没回滚完,有两个小时了onstat -x|grep RPX250b562b8 –-RPX–- 23161092 npmuser - 400 435 476617 322481 100809
onstat- x|grep A-R250c598f0 A-R–- 250b562b84 354766 187899 187903 0x88d23c0 COMMIT 0
187899-187903两个一样了,就回滚完了。
启动/关闭实例
启动前注意事项以root或gbasedbt用户登录确认已指定所需的环境变量、sqlhosts文件、onconfig文件。第一次启动实例:oninit -ivy-i参数为初始化实例时使用,非第一次启动时使用会报错。非第一次启动实例:oninit -vy启动成功后会显示如下结果:…Creating periodic thread…succeededStarting scheduling system…succeededVerbose output complete: mode = 5检查当前数据库状态:onstat -在线模式时会显示如下结果:GBase 8s Database Server Version 12.10.FC4G1AEE – On-Line – Up 00:03:28 – 208516 Kbytes注:On-Line表示在线模式
关闭实例:onmode -ky关闭成功后用“onstat -”检查会得到以下结果:shared memory not initialized for GBASEDBTSERVER ‘servername’
创建数据空间
1.创建数据文件创建数据空间需要在先文件系统中创建对应的数据文件该文件需要属于gbasedbt组、属于gbasedbt用户、权限为660
*建议:我们建议将所有数据文件存放于统一目录下以便管理。通常,我们需要创建1个根数据空间 rootdbs(需要在数据库初始化之前创建)、至少1个数据空间 datadbs,至少1个临时数据空间tempdbs、1个物理日志空间 plogdbs、1个逻辑日志空间 llogdbs,1个大对象空间sbspace*rootdbs在数据库实例初始化时已经建好,不需要手动添加。
创建方法:(1)创建文件(以存储在/opt/dbs目录下为例)cd /opt/dbstouch datadbs tempdbs plogdbs llogdbs subspacechown gbasedbt:gbasedbt datadbs tempdbs plogdbs llogdbs subspacechmod 660 datadbs tempdbs plogdbs llogdbs subspace
(2)创建物理日志空间:onspaces -c -d plogdbs -p /opt/dbs/plogdbs -o 0 -s 200000;-c - 新建一个数据空间-d - 数据空间名称-p - 存储文件路径-o - 偏移量-s - 数据空间大小(KB)
(3)创建逻辑日志空间onspaces -c -d llogdbs -p /opt/dbs/llogdbs -o 0 -s 200000;
(4)创建临时数据空间onspaces -c -d tmpdbs1 -p /opt/dbs/tmpdbs1 -o 0 -s 200000 -t -k 8k;-t - 创建临时数据空间-k - pagesize 页大小(默认为2K)
(5)创建数据空间onspaces -c -d datadbs -p /opt/dbs/datadbs1 -o 0 -s 500000-k 8k;
(6)创建大对象空间onspaces -c -S sbspace1 -p /opt/dbs/sbspace1 -o 0 -s 500000 -k 8k;-S - 创建大对象空间移除数据空间移除数据空间命令onspaces -d datadbs –y-d - 移除一个数据空间-y - 过程中自动确认为数据空间添加chunk只能给数据空间、大对象空间添加chunk命令:onspaces -a datadbs1 -p /opt/dbs/datadbs1_2 -o 0 -s 200000-a - 为数据空间添加chunk-p - 存储文件
数据库运行状态
数据库运行时可以使用“onstat”命令配合参数查看一系列系统运行状态。“onstat”会根据当前环境变量读取对应数据库实例的共享内存,得到想要的结果。“onstat”用法有很多,这里列出一些常用的供参考。onstat - 查看最基本的状态信息onstat -d 查看dbspace和chunk信息onstat -l 查看物理日志和逻辑日志信息onstat -p 查看实例整体运行情况onstat -m 查看数据库实例运行日志(online.log)最后20行信息onstat -g glo 查看虚拟CPU信息onstat -g seg 查看内存使用情况onstat -g ses 查看数据库会话状态(ses后加会话ID可查看指定会话状态)
gbase 类型
text 不支持用sql插入, 内容不多可以用varchar(320000)代替bool就是boolean,值是 ‘T’=true, ‘F’= false
分页查询
select * from user limit 10, 10 可以工作,但是该种模式下,位置不能通过PreparedStatement参数来设置,不要用于编程环境select skip 2 first 2 * from user 也可以工作,该模式可以通过PreparedStatement参数来设置,推荐在程序中使用
JDBC解决中文问题
(JDBC抛出SQLEXCEPTION,提示出现Locale mismatch)
先以原来身份进入unset DB_LOCALE CLIENT_LOCALE解决方案,要在…/profile.gbaseserver 设置export CLIENT_LOCALE=zh_cn.utf8export DB_LOCALE=zh_cn.utf8export SERVER_LOCALE=zh_cn.utf8执行source …/profile.gbaseserver后,重新导入
发表评论
暂时没有评论,来抢沙发吧~