- 数据库服务管理
- HA高可用场景
数据库服务托管于HA集群软件,需通过HA工具进行数据库服务的启停。
Crm_mon查看HA资源状态,在主节点上进行数据库服务启停
停止数据库:crm resource
stop kingbase
unmanaged kingbase
启动数据库:crm resource
managed kingbase
start kingbase
- 单机场景
使用操作系统服务或者数据库服务管理脚本
停止数据库服务
service kingbase8d stop
(/etc/init.d/kingbase8d stop)
启动数据库服务
service kingbase8d start
(/etc/init.d/kingbase8d start)
重启数据库服务
service kingbase8d restart
(/etc/init.d/kingbase8d restart)
查看数据库服务状态
service kingbase8d status
(/etc/init.d/kingbase8d status)
使用sys_ctl工具进行数据库服务管理
sys_ctl --help 查看命令帮助
sys_ctl stop -D /data目录(绝对路径) 停止数据库服务
sys_ctl start -D /data目录(绝对路径) 启动数据库服务
sys_ctl restart -D /data目录(绝对路径) 重启数据库服务
sys_ctl status -D /data目录(绝对路径) 查看数据库服务运行状态
- 数据库服务端日常使用
1.使用ksql工具链接数据库服务
ksql ems d5000
ksql -- KingbaseES的交互式终端,可以使用ksql --help查看具体使用,类似于Oracle中的命令行工具sqlplus。
与ESV7 产品兼容,也可以使用isql工具,与ksql功能相同。
使用方法:
ksql [选项]... [数据库名称 [用户名称]]
连接选项:
-h, --host=主机名 数据库服务器主机或socket目录(默认:"本地接口")
-p, --port=端口 数据库服务器的端口(默认:"54321")
-U, --username=用户名 指定数据库用户名
-W 强制输入口令(默认)
-d --database=数据库名 指定数据库名称
- 数据库常用命令
\? 查看所有常用命令帮助
\l 查看数据库信息
\du 查看所有用户信息
\dn 查看当前数据库所有模式信息
\d查看所有对象信息
\dt table_name 查看某一张表的结构信息
\di 列出索引
\df 列出函数,以及他们的结果数据类型、参数数据类型和函数类型,也可使用\df function_name 的方式查看该函数的详细信息,包括源代码。
\c 数据库名 用户名,切换数据库链接
\q 退出服务端
2.Sql文件导入常用命令:
ksql -U d5000 -d ems -h 数据库服务器IP -p 端口号 -f xx.sql >xx.log 2>&1
例:
ksql -U d5000 -d ems -h 192.168.159.131 -p 54321 -f test.sql > 1.log 2>&1
sql文件执行结果将会输出在1.log中。
- 逻辑备份还原
逻辑备份是将数据库对象的定义和数据导出到指定文件中。逻辑备份文件的格式有两种:二进制文件和SQL脚本。
常用备份选项:库、模式(-n)、表(-t)、结构(-s)、数据(-a)
常用还原选项:完全、只还原部分、还原前删除已存在对象(-c)
备份方法:对象管理工具逻辑备份功能或 sys_dump工具
还原方法:二进制格式需要通过对象管理工具逻辑还原功能或sys_restore工具
注:SQL格式文件需要通过对象管理工具执行sql脚本或通过ksql工具进行还原
常用备份命令:
备份指定数据库内容为二进制文件
sys_dump -U dbuser -h dbhost -Fc -f /备份文件存放路径/备份文件名.dmp -d dbname
完成备份命令输入,按下回车后,会提示进行数据库用户密码的验证。
例:将192.168.40.108服务器上的ems库全库内容备份成二进制文件。
sys_dump -U d5000 -h 192.168.40.108 -Fc -f /home/d5000/ems.dmp -d ems
备份指定数据库内容为sql文本文件
sys_dump -U dbuser -h dbhost -f /备份文件存放路径/备份文件名.sql -d dbname
例:将 192.168.40.108 服务器上的ems库全部内容备份为sql文件
sys_dump -U d5000 -h 192.168.40.108 n -f /home/d5000/ems.sql -d ems
备份指定模式为二进制文件
sys_dump -U dbuser -h dbhost -n 模式名 -f /备份文件存放路径/备份文件名.sql -d dbname
例:将本机的ems库下d5000模式备份为二进制文件
sys_dump -U d5000 -n d5000 -Fc -f /home/d5000/d5000.dmp -d ems
备份指定表为insert语句的sql文本文件
sys_dump -U dbuser -h dbhost -t 模式.表名 --inserts -f /备份文件存放路径/备份文件名.sql -d dbname
例:将本机上ems库下d5000模式下的bay 表备份成insert语句的sql文本文件
sys_dump -U d5000 -t d5000.bay --inserts -f /home/d5000/d5000.sql -d ems
备份指定表为copy语句的文本文件
sys_dump -U dbuser -h dbhost -t 模式.表名 --copy-binary -f /备份文件存放路径/备份文件名.sql -d dbname
例:将本机上ems库下d5000模式下的access_control_system 表备份成copy语句的dmp二进制文件
sys_dump -U d5000 -d ems --copy-binary -t d5000.access_control_system -Fc -f /home/kingbase/access_control_system.dmp
备份文件还原方式
- Sys_restore
将二进制备份文件还原至目标数据库
sys_restore -U dbuser -h dbhost -d dbname /备份文件路径/备份文件.dmp
例:将ems.dmp文件还原到本机数据库服务的ems库内(目标库ems库必须预先创建)
sys_restore -U d5000 -d ems /home/d5000/ems.dmp
还原前,删除已存在的对象
sys_restore -U dbuser -h dbhost -c -d dbname /备份文件路径/备份文件.dmp
例:将ems.dmp文件覆盖还原到本机数据库服务的ems库内
sys_restore -U d5000 -c -d ems /home/d5000/ems.dmp
- Ksql工具sql导入方式
ksql -U dbuser -h dbhost -f /文件路径/文件名.sql -d dbname
例:将bay.sql文件导入到192.168.40.108服务器上数据库服务ems库内
ksql -U d5000 -h 192.168.40.108 -f /home/d5000/bay.sql -d ems
- 日常巡检
- 查看数据库进程
ps -ef|grep kingbase
- 查看是否存在锁等待
Select * from sys_locks where granted=’f’;
- 查看是否存在长链接:查看当前所有执行的sql语句是否有执行时间超过两个小时的sql。
select datname,usename,client_addr,(now() - query_start) as run_time ,query from sys_stat_activity where length(query) <> 0 order by run_time;
- 查看数据库最大事务ID
- 查看当前数据库连接数
- 查看数据库版本信息
- 某一会话执行的SQL语句占用过多资源影响业务时,可以通过取消会话执行的SQL代替终止会话。会话执行SQL所在的事务将回滚
SELECT sys_cancel_backend(pid);