默认分类,运维管理
数据库管理、维护、故障处理等

GBase 8s 使用sqltrace跟踪sql性能

SQLTrace用于跟踪执行sql的性能,可用于定位性能较差的sql,从而进行优化。

Example
打开sqltrace跟踪15000条sql,所需内存:15000*4k=60MB

dbaccess sysadmin - <<!
EXECUTE FUNCTION task("set sql tracing on","15000","4","high","global");
!

查看执行耗时较长sql:

dbaccess sysmaster -<<!
unload to sql.unl 
select sql_maxtime,sql_avgtime,sql_statement 
from syssqltrace order by sql_maxtime desc;
!

查看当前路径下生成的sql.unl文件


阅读全文»

GBase 8s 设置数据文件自动扩展

根据onstat -d 输出查看需要扩展的数据文件号。

示例:chunk号为8的数据文件打开自动扩展

dbaccess sysadmin -<<!
EXECUTE FUNCTION task ("modify chunk extendable on", 8);
!

示例:chunk号为8的数据文件关闭自动扩展

dbaccess sysadmin -<<!
EXECUTE FUNCTION task ("modify chunk extendable off", 8);
!

GBase 8s 使用dblink访问远端数据库实例

使用场景:

gbase01实例需要访问gbase02实例中的数据。
sql语法:

select * from dbname@gbase02:tabname;

方法一、配置信任

1、配置目标服务器/etc/hosts.equiv信任
如node1(192.168.17.101)上的数据库实例(gbase01) 访问node2(192.168.17.102)上的数据库实例(gbase02)

2、在node1数据库实例gbase01的sqlhosts文件中增加gbase02的实例信息:

echo "gbase02         onsoctcp        192.168.17.102      9088">>$GBASEDBTSQLHOSTS


阅读全文»

GBase 8s常见锁错误原因及处理办法

-243 Could not position within a table table-name.

错误原因:不能在表的数据行上加锁,该行数据已被锁
示例:
session1

dbaccess testdb -                    
drop table if exists t;
create table t(col1 int,col2 char(100));
insert into t select tabid,tabname from systables;        
begin;
delete from t where col1=1;        


阅读全文»

Windows下Python3通过DbtPy连接到GBase 8s数据库

示例使用的操作系统:Win 7 64bit
软件需求:Python 3.7.9

1,安装CSDK,设置环境变量

可从以下地址下载:

https://gbasedbt.com/odbc/GBase8s_3.0-Win64-ODBC-Driver.zip

免安装CSDK版本。
解压,生成的gbase8s-odbc-driver放置于D:\目录下。
在我的电脑->系统属性->高级->环境变量 中,增加环境变量GBASEDBTDIR 指向D:\gbase8s-odbc-driver,Path中增加%GBASEDBTDIR%\bin;




阅读全文»

Linux下Python3通过DbtPy连接到GBase 8s数据库

操作系统:CentOS 7.8 64-bit
软件需求:
Python 3.6.8 及Python-devel 3.6.8

有互联网连接的情况下,可以直接安装DbtPy (仅限Linux x64和Win x64)

1,直接pip3安装DbtPy,将自动安装最新的DbtPy

[root@a02 ~]# pip3 install DbtPy
Collecting DbtPy
  Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/1f/45/22d842ffe40fbcb58878b891ba8f4e319a3585afd0f09ac13fd3d51b0a9b/DbtPy-3.0.5.tar.gz (165kB)
    100% |████████████████████████████████| 174kB 13.0MB/s
# 注:对于Linux x64和Win x64,这步可以需要些时间下载对应的csdk驱动。
Installing collected packages: DbtPy
  Running setup.py install for DbtPy ... done
Successfully installed DbtPy-3.0.5


阅读全文»

GBase 8s数据库SQL对象中关键字使用

数据库开发人员在使用SQL的时候,不可避免的会碰到类似以下情况。比如:使用user作为用户名的字段名称,使用timestamp作为时间戳的字段名称。然而,大多数数据库均可能把user,timestamp等作为了保留的关键字。这时如果开发人员设计了user关键字为表字段,在SQL操作时,可能就会碰到些问题。
比如以下示例:

create table tab2(id serial,user varchar(60), timestamp timestamp);

--插入记录
insert into tab2 values(0,'test001',current year to second);

阅读全文»