0
点赞
收藏
分享

微信扫一扫

CentOS上金仓数据库部署执行和ksql常用脚本

素锦时年_1b00 2023-09-18 阅读 45

本文给出CentOS上金仓数据库部署执行和ksql常用脚本,用于指导平时日常工作,同时备忘。以下脚本在金仓V8R6中均经过多次测试,毫无问题。操作系统版本:CentOS 7.9。

1、清理旧用户

groupdel kingbase
userdel kingbase

2、创建用户

groupadd kingbase
useradd kingbase -u 10000 -g kingbase

--设置用户密码
passwd kingbase
--密码设置为:kbase!@#

3、规划和创建安装目录

mkdir -p /KingbaseES/V8 /KESData /backup /archive /install

chown -R kingbase:kingbase /KingbaseES

chown -R kingbase:kingbase /backup

chown -R kingbase:kingbase /archive

chown -R kingbase:kingbase /KESData

chown -R kingbase:kingbase /install

chmod -R 775 /KingbaseES

chmod -R 775 /backup

chmod -R 775 /install

chmod -R 775 /archive

chmod -R 700 /KESData

--检查目录

ls -l / | grep kingbase

4、使用root用户将安装文件上传到/install下


cd /install

ls -l

md5sum KingbaseES_V008R006C007B0024PS003_Lin64_install.iso

mount -o loop KingbaseES_V008R006C007B0024PS003_Lin64_install.iso /mnt

ls -l /mnt

--使用kingbase用户复制挂载后的安装文件到/install下

mkdir -p /install/KES-V8R6C7B24-INSTALL

cp -r /mnt/* /install/KES-V8R6C7B24-INSTALL/

ls -l /install/KES-V8R6C7B24-INSTALL

du -sm /install/KES-V8R6C7B24-INSTALL

du -sm /mnt


5、上传授权文件

--设置授权文件的属主和权限并验证

cd /install

ls -l license_*

chown kingbase:kingbase license_*

ls -l license_*

6、登录kingbase用户,运行安装程序

cd /install/KES-V8R6C7B24-INSTALL

ls -l

bash setup.sh -i console

--指定授权文件

/install/license_33313_0.dat

--指定安装路径

/KingbaseES/V8

--指定数据目录位置

/KESData

--密码

kbase!@#

7、将KES服务注册为linux系统服务

su - root

whoami

bash  /KingbaseES/V8/install/script/root.sh

--重启linux确认KES服务自动启动

ps -xf |grep -v grep |grep -i 'kingbase'

--查看安装过程日志,确认没有错误记录

cd /install/KES-V8R6C7B24-INSTALL

ls -l *.log

8、检查服务状态和操控服务

-- 使用ksql工具测试能否连接到数据库

/KingbaseES/V8/Server/bin/ksql test system

--查看服务是否已设为开机自启

systemctl list-dependencies |grep kingbase

chkconfig --list |grep kingbase

--确认KES服务状态

systemctl status kingbase8d.service

--停止KES服务

systemctl stop kingbase8d.service

--启动KES服务

systemctl start kingbase8d.service

--重启KES服务

systemctl restart kingbase8d.service

--查看sys_ctl语法大纲

export LANG=zh_CN.UTF-8

/KingbaseES/V8/Server/bin/sys_ctl --help

--kingbase用户使用sys_ctl管理KES服务进程

su - kingbase

--kingbase用户使用sys_ctl停止KES服务进程

/KingbaseES/V8/Server/bin/sys_ctl stop -D /KESData

--kingbase用户使用sys_ctl启动KES服务进程

/KingbaseES/V8/Server/bin/sys_ctl start -D /KESData

--kingbase用户使用sys_ctl查看KES服务进程状态

/KingbaseES/V8/Server/bin/sys_ctl status -D /KESData

--kingbase用户使用sys_ctl重启KES服务进程

/KingbaseES/V8/Server/bin/sys_ctl restart -D /KESData

--kingbase用户使用kingbase命令启动KES服务

/KingbaseES/V8/Server/bin/kingbase -D /KESData >log1 2>&1 &

--定位金仓sys_ctl的路径

find /KingbaseES -name sys_ctl

--定位主数据目录

ps -ef|grep '\ -D\ '

9、修改KINGBASE_DATA和PATH环境变量

-- 在.bashrc文件最后添加环境变量
vim /home/kingbase/.bashrc

export KINGBASE_DATA=/KESData

export PATH=/KingbaseES/V8/Server/bin:$PATH

--让环境变量生效

source /home/kingbase/.bashrc

--设置变量后能简化停止和启动服务命令

sys_ctl stop -D $KINGBASE_DATA

sys_ctl start -D $KINGBASE_DATA

--设置变量后能简化kingbase启动命令

kingbase -D /KESData >log1 2>&1 &

10、卸载

--使用root用户执行rootuninstall.sh脚本移除KES开机自启服务

su - root

bash /KingbaseES/V8/Scripts/rootuninstall.sh

--卸载KES应用程序

--以kingbase用户执行bash /KingbaseES/V8/Uninstall/Uninstaller -i console

bash /KingbaseES/V8/Uninstall/Uninstaller -i console

--清除安装目录下残留文件
--直接删除安装目录
rm –fr /KingbaseES/V8
--或者将安装目录改名
mv /KingbaseES/V8 /KingbaseES/V8.bak

11、第一个实验

--sys_ctl stop默认选项是-m fast

--执行一个长SQL

ksql test system

SELECT sys_sleep(600);

--使用-m smart选项不能关闭KES,提示:等待服务器进程关闭 .........

sys_ctl stop -m smart -D /KESData

---使用m fast能断开客户连接,提示:等待服务器进程关闭 .... 完成   服务器进程已经关闭

sys_ctl stop -m fast -D /KESData

12、ksql使用

--ksql使用“\h”列出所有的SQL命令清单

ksql test system

\h

--ksql使用“\h <sql命令>”列出某个SQL命令的语法大纲

\h delete

--ksql查看元命令帮助

\?

--使用SOCKET方式登录数据库,在服务器端不使用“-h”选项登录数据库并查看前会话的客户端IP和端口

ksql -d test -U system

SELECT inet_client_addr(),inet_client_port();

--使用TCP/IP方式登录数据库,服务器端使用“-h”选项登录数据库,并查看前会话的客户端IP和端口

ksql -h 192.168.40.111 -p 54321 -d test -U system

SELECT inet_client_addr(),inet_client_port();

--使用连接串方式登录数据库并查看前会话的客户端IP和端口

ksql kingbase://system@192.168.40.111:54321/test

SELECT inet_client_addr(),inet_client_port();

ksql 'hostaddr=192.168.40.111 port=54321 user=system dbname=test'

SELECT inet_client_addr(),inet_client_port();

13、创建用户和数据库

--删除模式
DROP SCHEMA IF EXISTS upreport CASCADE;
--删除用户
DROP USER IF EXISTS upreport;
--创建用户
CREATE USER upreport PASSWORD 'upreport';
--创建数据库
CREATE DATABASE upreport OWNER upreport;
--创建模式
CREATE SCHEMA upreport AUTHORIZATION upreport; -- 暂未用

--切换登录用户

\c - upreport

\conninfo

--切换登录数据库

\c upreport

\conninfo

--同时切换登录的用户和数据库

\c upreport upreport

\conninfo

--查看用户和角色信息

\du

\du upreport

--查看数据库信息

\l

--查看数据库upreport信息

\l+ upreport

--查看模式信息

\dn+

\dn+ upreport

14、执行建库脚本

--执行建库脚本,
--脚本upreport-0914.sql在oracle 11G SP2中执行没有任何报错,到金仓V8R6中执行后也没有任何报错
\i /install/upreport-0914.sql

--查看字典表

\dt+ dict_*

--查看业务表

\dt+ t_*

--查看统计表

\dt+ stat_*

--列式显示模块打开(再次运行关闭)

\x

--查询表dict_disease第一条记录

select * from dict_disease where rownum = 1;

--查看表dict_disease的概要信息

\dt+ dict_disease

--查看表dict_disease的详细结构信息

\d+ dict_disease

--查看视图v_adv_msde的概要信息

\dv+ v_adv_msde

--查看视图v_adv_msde的详细信息

\d+ v_adv_msde

--第二个实验;销毁表dict_hospital_type并在upreport模式中重建。
--销毁表
DROP TABLE IF EXISTS dict_hospital_type;
--创建表
create table upreport.dict_hospital_type (
    id              varchar2(64)    not null,
    name            varchar2(256)   not null,
    code            varchar2(32)    not null,
    remark          varchar2(1024)  default '-' not null,
    create_date     date            not null,
    update_date     date            not null,
    create_user     varchar2(64)    not null,
    update_user     varchar2(64)    not null,
    status          varchar2(1)     default '1' not null,
    source          varchar2(1)     not null,
    simulation      varchar2(1)     default '2' not null,
    archive_date    date,
    constraint pk_hospital_type_id primary key(id));
create unique index idx_hospital_type_code on upreport.dict_hospital_type(code);
insert into upreport.dict_hospital_type(id,name,code,remark,create_date,update_date,create_user,update_user,status,source,simulation,archive_date) values(sys_guid(), '非医院','000',   '-', sysdate, sysdate, 'admin', 'admin', '1', '9', '2', null);
insert into upreport.dict_hospital_type(id,name,code,remark,create_date,update_date,create_user,update_user,status,source,simulation,archive_date) values(sys_guid(), '综合医院','100',   '-', sysdate, sysdate, 'admin', 'admin', '1', '9', '2', null);
insert into upreport.dict_hospital_type(id,name,code,remark,create_date,update_date,create_user,update_user,status,source,simulation,archive_date) values(sys_guid(), '中医医院','200',   '-', sysdate, sysdate, 'admin', 'admin', '1', '9', '2', null);
insert into upreport.dict_hospital_type(id,name,code,remark,create_date,update_date,create_user,update_user,status,source,simulation,archive_date) values(sys_guid(), '中西医结合医院','300',   '-', sysdate, sysdate, 'admin', 'admin', '1', '9', '2', null);
insert into upreport.dict_hospital_type(id,name,code,remark,create_date,update_date,create_user,update_user,status,source,simulation,archive_date) values(sys_guid(), '民族医医院','400',   '-', sysdate, sysdate, 'admin', 'admin', '1', '9', '2', null);

--查看upreport模式下dict_hospital_type对象详细信息

\d+ upreport.dict_hospital_type

15.创建表空间

--从ksql中退出
\q
--在root创建目录
su - root
mkdir -p /upreport
chown -R kingbase:kingbase /upreport
chmod -R 700 /upreport

--进入kingbase用户
su - kingbase
--使用超级管理员进入ksql
ksql test system
--创建表空间
CREATE TABLESPACE tbs_upreport LOCATION '/upreport';

--查看表空间
\db+
\db+ upreport

举报

相关推荐

0 条评论