前言
Kingbase,通常指的是金仓数据库(KingbaseES),是由北京金仓信息技术股份有限公司开发的关系型数据库管理系统。KingbaseES是一款具有自主知识产权的数据库产品,广泛应用于中国的电子政务、地理信息、能源、金融等多个领域。
特点和优势:
高兼容性:KingbaseES支持国际数据库语言标准SQL,能够兼容多种主流数据库的应用,如Oracle、MySQL等。
高可用性:提供数据高可用解决方案,包括数据复制、故障切换、备份与恢复等功能,确保数据的安全性和业务的连续性。
高性能:优化的数据库引擎和存储引擎,支持大规模并发处理和高速数据吞吐,满足高性能计算需求。
安全性:提供多层次的安全机制,包括用户权限管理、数据加密、审计日志等,满足不同级别的安全需求。
多平台支持:支持多种操作系统平台,如Linux、Unix、Windows等,具有良好的跨平台特性。
易用性:提供图形化管理工具,简化数据库管理、监控和维护工作。
本地化服务:作为国内数据库厂商,能够提供更加贴近本地市场的技术支持和服务。
成本效益:相比于一些国际主流数据库产品,KingbaseES在价格和服务上可能更具优势。
适应性强:能够适应不同的应用场景,包括事务处理、数据分析、混合负载等。
持续创新:金仓数据库持续进行技术创新和产品升级,以满足不断变化的市场需求。
金仓数据库作为国产数据库的代表之一,在中国的信息化建设和数字化转型中发挥着重要作用。随着技术的发展和市场需求的变化,金仓数据库也在不断地进行优化和升级,以提供更加稳定、高效、安全的数据库服务。
版本说明
本文档适用于 kingbase v8r6
常用操作
命令行登录
ksql -U用户名 –p端口号(默认54321) 数据库名(TEST,V8自动创建)
\q ——退出
常用命令
? 查看帮助
\l 查看系统中现存的数据库
\q 退出客户端程序psql
\c 从一个数据库中转到另一个数据库中,如TEST=# \c sales 从TEST转到sales
\dt 查看表
\d 查看表结构( 加 “+” 获取更多信息)
\di 查看索引
\dv 查看视图
\dS 查看系统表
数据库常用sql命令
用户创建
create user U1 with superuser password ‘123456’; --超级用户
create user U2 with password ‘123456’; --普通用户
数据库创建
create database TEST1; --创建数据库
create database TEST1 owner U1; --指定用户
grant all on database TEST1 to U1; --数据库赋权
模式创建
create schema U2 ; --默认owner是创建用户
create schema U2 authorization U2; --指定owner
表操作
create table T1(id int,name varchar(100)); --创建表
insert into T1 values(1,’abc’); --插入数据
update T1 set name=’risen’ where id =1; --更新数据
delete from T1 where id =1; --删除数据
truncate table T1; --清空表
视图创建
1)创建T_VIEW_01 表,并插入数据
CREATE TABLE T_ VIEW _01 (C1 INT,C2 CHAR(10));
INSERT INTO T_ VIEW _01 VALUES (1,’VIeW’);
2)创建函数
CREATE or replace VIEW V1
AS
SELECT * from T_VIEW_01;
函数创建
1)创建T_FUN_01 表,并插入数据
CREATE TABLE T_FUN_01 (C1 INT,C2 CHAR(10));
INSERT INTO T_FUN_01 VALUES (2,'ABCD');
2)创建函数
CREATE or replace FUNCTION F1 RETURN VARCHAR(30)
AS
A1 VARCHAR(30);
BEGIN
SELECT C2 INTO A1 FROM T_FUN_01 WHERE C1=2;
RETURN A1;
END;
存储过程创建
1)创建T_PRO_01 表,并插入数据
CREATE TABLE T_PRO_01 (C1 INT,C2 CHAR(10));
INSERT INTO T_PRO_01 VALUES (2,'ABCD');
2)创建存储过程
CREATE OR REPLACE PROCEDURE P1
AS
BEGIN
raise notice 'ABCD';
INSERT INTO T_PRO_01 SELECT * FROM T_PRO_01
WHERE C1=2;
END;
## 调用存储过程
call P1;
## 再次查询
SELECT * FROM T_PRO_01;
备份还原
备份
sys_dump -h ip -p 端口 -U 用户 -F c -f 备份路径/xxx.dmp 库名 --二进制备份
sys_dump -h ip -p 端口 -U 用户 -f 备份路径/xxx.sql 库名 --sql备份
还原
sys_restore -h ip -p 端口 -U 用户 -d 库名 备份路径/xxx.dmp --二进制还原
ksql -h ip -U用户名 -d 库名 -f 备份路径/xxx.sql --sql还原
数据库启停
单机
启停KingbaseES数据库
-
Linux下通过系统服务:
root用户执行:service kingbase8d stop/start/restart ——注册服务的情况下 systemctl stop/start/restart kingbase8d
-
Linux下通过安装用户:
安装用户执行:
sys_ctl stop/start/restart -D data路径
查看数据库当前进程状态
ps –ef |grep kingbase
端口的查看
安装完成之后默认端口:54321
查看端口:
su到安装用户,登录数据库,执行show port;
集群
集群启动
./sys_monitor.sh start
集群停止
./sys_monitor.sh stop
集群状态查看
通过命令repmgr service status repmgr cluster show
查看流复制状态
select * from sys_stat_replication;
简单运维
查看数据库版本
select version();
连接数查询
检查当前数据库的连接数。
show max_connection;
报错信息:com.kingbase8.util.KSQLException: 致命错误: remaining connection slots are reserved for superuser manager connections
处理方法:kingbase.conf里面修改max_connections,重启下服务。
查看license剩余时间
为了避免license过期的问题,应该在license过期前提前找商务申请正式的license。
get_license_validdays
替换license
替换license单机和集群存在目录的差异,但是都需要保持文件的名称和属组与之前保持一致。正式license记得查看license绑定的地址是否与服务器的mac一致。
单机:替换/home/kingbase/KingbaseES/V8/license.dat
集群:替换/home/kingbase/cluster/KingbaseCluster/kingbase/license.dat
查看大小写敏感
show enable_ci;
enable_ci 为on是不敏感,为off则为敏感
查看数据库的会话
查看数据库的活动会话
select * from sys_stat_activity where state <> 'idle';
通过下面的命令可以杀掉部分会话。
SELECT sys_terminate_backend(会话id)
等等。。。
good day!!!!