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

GBase 8s 创建数据库用户

GBase 8s默认使用操作系统用户,要创建数据库用户,按以下步骤开启用户映射创建用户:

1、开启用户映射:
root用户执行:
mkdir /etc/gbasedbt
echo "USER:daemon" > /etc/gbasedbt/allowed.surrogates

gbasedbt用户执行:
onmode -wf USERMAPPING='ADMIN'
onmode -cache surrogates
dbaccess sysuser - <<!
CREATE DEFAULT USER WITH PROPERTIES USER 'daemon';
!

2、创建用户:
dbaccess sysuser -<<!
CREATE USER testuser WITH PASSWORD "GBase123";
!

3、给用户授权(testdb):
dbaccess testdb -<<!
grant dba to testuser;
!

Linux下GO通过ODBC连接到GBase 8s数据库

GO通过ODBC方式连接到GBase 8s数据库,已知有两个插件alexbrainman/odbc和weigj/go-odbc。相对而言:alexbrainman/odbc近一年内有更新。

操作系统:CentOS 7.8 64-bit
软件需求:
GBase 8s CSDK 3.0.0
unixODBC 2.3.1(建议升级到2.3.7)

1,系统环境确认

1.1 unixODBC版本

Linux下root用户通过rpm确认unixODBC、unixODBC-devel均已经安装,如下:

[root@localhost ~]# rpm -qa unixODBC unixODBC-devel
unixODBC-devel-2.3.1-14.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64



阅读全文»

Python3通过JayDeBeApi(JDBC)连接到数据库

JayDeBeApi模块可让你从Python代码连接到使用Java JDBC数据库。它为该数据库提供了 Python DB-API v2.0。

1)、确认JayDeBeApi已经安装

[root@a02 ~]# pip3 list | grep JayDeBeApi
[root@a02 ~]# pip3 install JayDeBeApi
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/
Collecting JayDeBeApi
  Using cached http://mirrors.cloud.aliyuncs.com/pypi/packages/ff/1f/6a627c9bd7dea13235b65fce0fff987507269d41f957c578031796f70319/JayDeBeApi-1.2.3-py3-none-any.whl (26 kB)
Requirement already satisfied: JPype1 in /usr/local/lib64/python3.6/site-packages (from JayDeBeApi) (1.3.0)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.6/site-packages (from JPype1->JayDeBeApi) (4.0.1)
Installing collected packages: JayDeBeApi
Successfully installed JayDeBeApi-1.2.3

阅读全文»

Linux下C#通过ODBC方式连接到GBase 8s数据库

操作系统:CentOS 7.8 64-bit
软件需求:
GBase 8s CSDK 3.0.0_1
unixODBC 2.3.7
dotnet-sdk-3.1

1,系统环境安装及确认

1.1 unixODBC安装及确认

CentOS 7.8默认的unixODBC版本为2.3.1,需要升级为2.3.7
加载适用于Microsoft的Linux存储库

[root@localhost ~]# rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm





阅读全文»

GBase 8s 传输加密SSL配置

1. 概述

数据传输加密是指在网络中传输的数据需要加密传输,从而确保数据的机密性和完整性。
针对网络中传输的数据进行加密,焦点就在连接上。对于GBase 8s体系下,总共有如下连接场景需要进行数据传输加密:
1) 客户端连接数据库服务端,包含:csdk或jdbc连接GBase 8s。
2) 客户端连接到连接管理器,包含:csdk或jdbc连接连接管理器。无论连接管理器选择代理,还是重定向,客户端都会建立到连接管理器的连接。
3) 连接管理器连接数据库服务端。
4) 数据库服务端连接数据库服务端。对于高可用环境,数据库服务端之间是存在连接的。
对于连接而言,数据库服务端和连接管理器都存在组的概念。客户端可以选择连接数据库服务端的组或者连接管理器的组。经过调研,真正的连接不是建立在组上的。客户端代码,会根据sqlhosts的配置,在连接前选择合适数据库服务端或连接管理器进行连接。根据这个情况,对于组的连接不需要专门讨论。
本文基于数据库版本为GBase 8s V8.8 3.0.0_1,操作系统为CentOS 7.8编写。








阅读全文»

GBase 8s 裸表(raw table)

裸表(raw table)是非日志记录的永久表,类似于非日志记录数据库中的表。支持但不记录裸表中行内的更新、插入和删除操作。可在裸表中定义索引,但是不能在裸表中定义唯一约束、主键约束或引用约束。

优点:

1,表DML操作不记录日志;

限制:

1,不支持(主键、唯一、引用)约束,但支持非空约束;
2,在集群主节点上可用;
3,在集群备节点上不可访问;
4,将裸表改成标准表,需要0级备份;




阅读全文»

GBase 8s数据库主键约束、唯一约束和唯一索引的区别

主键约束(PRIMARY KEY)

1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键,一个表上仅只能有一个主键;
2) 不建议更新主键;
3) 主键列上没有任何两行具有相同值(即重复值),且不允许空(NULL);
4) 主健可作外健,唯一索引不可;

唯一性约束(UNIQUE)

1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束;
2) 只要唯一就可以更新;
3) 表中任意两行在指定列上都不允许有相同的值,但允许空(NULL);






阅读全文»

GBase 8s 数据库中count(字段) ,count(主键) ,count(1)和count(*)的区别

首先要弄清楚 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)安装GBase 8s数据库问题记录

统信UOS20操作系统(1021a) 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

2, One or more prerequisite system libraries are not installed on your computer. Install libncurses.so.5 and then restart the installation program.

解决方法及步骤:
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