麒麟10SP2操作系统(Sword) AMD64 版本安装GBase 8s V8.8 3.0.0_1版数据库问题记录如下:
1, libjvm.so preloadLibrary(/tmp/install.dir.33990/Linux/resource/jre/jre/lib/amd64/libjava.so): libnsl.so.1: 无法打开共享对象文件: 没有那个文件或目录
解决方法及步骤:
安装libnsl
yum install libnsl -y
麒麟10SP2操作系统(Sword) AMD64 版本安装GBase 8s V8.8 3.0.0_1版数据库问题记录如下:
解决方法及步骤:
安装libnsl
yum install libnsl -y
1、配置yum源,使用阿里镜像
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2、安装Linux图形桌面
yum -y groups install "GNOME Desktop"
3、设置服务器启动到图形界面并重启
mv /etc/systemd/system/default.target /etc/systemd/system/default.target.bak
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键,一个表上仅只能有一个主键;
2) 不建议更新主键;
3) 主键列上没有任何两行具有相同值(即重复值),且不允许空(NULL);
4) 主健可作外健,唯一索引不可;
1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束;
2) 只要唯一就可以更新;
3) 表中任意两行在指定列上都不允许有相同的值,但允许空(NULL);
首先要弄清楚 count() 的语义。count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。
所以,count(*)、count(1)和count(主键) 都表示返回满足条件的结果集的总行数;而 count(字段),则表示返回满足条件的数据行里面,参数 "字段" 不为 NULL 的总个数。
以测试表为例,表内加载了10万行记录,其中允许null值的字段name存在3个null值;
create table tabcount
(
id integer,
name varchar(40),
age integer not null ,
primary key (id)
);
统信UOS20操作系统(1021a) AMD64 版本安装GBase 8s V8.8 3.0.0_1版数据库问题记录如下:
解决方法及步骤:
安装libnsl
yum install libnsl -y
解决方法及步骤:
1) 安装ncurses-devel
yum install ncurses-devel
2) 在/usr/lib64目录下创建链接文件,执行
cd /usr/lib64
ln -s libncurses.so.6.1 libncurses.so.5
ln -s libtinfo.so.6.1 libtinfo.so.5
测试使用Delphi连接到GBase 8s数据库,使用的是ODBC连接方式。
通过地址https://gbasedbt.com/dl/odbc/GBase8s_3.0.0_1-Win32-ODBC-Driver.zip 下截ODBC绿色安装包,解压,使用管理员权限运行00注册ODBC_管理员权限运行.cmd,注册ODBC驱动
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文件
根据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);
!
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数据库中,两个日期时间的值相减,得到的是interval类型的值(interval day to second),而oracle中直接就是数值了。我们可以通过自定义函数的方式,把interval类型转换成数值型(decimal(20,8))。