Linux 金仓数据库使用

Linux 金仓数据库使用

1、命令备份和恢复

1)备份参数

使用 金仓安装目录/ClientTools/bin金仓安装目录/Server/bin 目录下的 sys_dump 命令。命令参数详解如下:

sys_dump
-h: localhost
-p : 默认端口 54321
-d : 库名
-U : 默认用户 system
-F: c 表示压缩(将备份出来的数据文件进行压缩)
-v : 显示备份过程信息
-f : “备份文件路径及文件名”

例:

cd 金仓安装目录/ClientTools/bin
或
cd 金仓安装目录/Server/bin

# 备份
./sys_dump -h 127.0.0.1 -p 54321 -d 库名 -Fc -v -f "/xx路径/xxx.dmp"

# 恢复
./sys_restore -h 127.0.0.1 -U system -d 库名 /xx路径/xxx.dmp

2)定时备份

(1)免密登录配置

金仓数据库免密登录配置,配置后会生成 ~/.encpwd文件密文,配置如下:

# 切换kingbase用户
su kingbase

cd 金仓安装目录/Server/bin

# *表通配
sys_encpwd -H * -P 54321 -D * -U system -W 密码

# 设置单一种。
sys_encpwd -H 127.0.0.1 -P 54321 -D 库名 -U 用户名 -W 密码
# 之后用127.0.0.1登录可以免密,但用localhost不能免密。
# 要想使localhost也能免密登录,则需要将其再加上,如下:
sys_encpwd -H localhost -P 54321 -D 库名 -U 用户名 -W 密码
(2)定时脚本编写
# 切换kinbase用户
su kingbase

cd /home/kingbase
mkdir -p DBDataBackup/data
touch kingbase_cron_backup.sh

其中 /home/kingbase/DBDataBackup/kingbase_cron_backup.sh,内容如下:

#!/bin/bash

# 配置参数 params conf
# export PGPASSWROD="system"  # 数据库密码
BACKUP_DIR="/home/kingbase/DBDataBackup/data"  # 备份存储目录
KEEP_DAYS=100  # 备份保留天数

# 创建备份目录(如果不存在)create backup dir
mkdir -p ${BACKUP_DIR}

# 备份文件名 generate file
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/kingbase_cron_${DATE}.dmp"

# 执行备份 run
echo "Start backup DB..."
/opt/Kingbase/ES/V8/ClientTools/bin/sys_dump \
	-h 127.0.0.1 \
	-p 54321 \
	-d onroad \
	-U system \
	-F c \
	-v \
	-f "${BACKUP_FILE}"	

# 检查备份结果 check
if [ $? -eq 0 ]; then
	echo "Finish backup!File: ${BACKUP_FILE}"
else
	echo "Fail backup!Please check error info"
	exit 1
fi


# 清理旧备份 clean old bak
echo "Clean over ${KEEP_DAYS} day backup data..."
find ${BACKUP_DIR} -name "kingbase_cron_*.dmp" -mtime +${KEEP_DAYS} -exec rm -f {} \;
echo "Clean finish, keep recent ${KEEP_DAYS} day backup data"

至此,先执行脚本测试一下,没问题再继续。

(3)定时任务设置

定时任务设置如下:

# 切换root用户
su
# 编辑crontab
## crontab -e   # 为当前root用户添加定时任务
crontab -u kingbase -e   # 为kingbase用户添加定时任务

# 像vim命令一样在里面添加如下内容。(此命令表示每天凌晨2点执行备份脚本。)
0 2 * * * /bin/bash /home/kingbase/DBDataBackup/kingbase_cron_backup.sh

# 验证定时任务
## crontab -l  # 查看当前root用户下有哪些定时任务
crontab -u kingbase -l  # 查看kingbase用户下有哪些定时任务

# 重启crond服务
systemctl restart crond  # 或者 service crond restart

注:
crontab命令的时间参数由5个字段组成,格式为:分钟 小时 日 月 星期 shell(脚本)命令
26 23 * * * /bin/bash /home/backup/kingbasesql-backup.sh ,则表示每天晚上 23:26 执行定时任务sh脚本。
crontab其他命令:

# 删除定时任务
# ****** 可以通过下面方式,或者也可以通过 crontab -e 进入编辑器删除 ****** #
## crontab -r  # 删除当前root用户下所有定时任务
crontab -u kingbase -r  # 删除kingbase用户下所有定时任务

2、修改最大链接数

1)报错

链接数耗尽,报错:

com.kingbase8.util.KSQLException: 致命错误:已保留的连接位置为执行非复制请求的超级用户预留

2)分析

金仓链接数的设定要看系统内存,其设定应满足:

最大链接数max_connections  *  work_mem值  <  系统可支配内存/2
  • work_mem 默认值为 4M。
  • 系统可支配内存指除了系统和其他应用所占用的内存,可供金仓使用的最大内存。除以2是因为一半本地内存、一半共享内存。

如:64G电脑,系统占用4G内存,其他应用占用10G内存,还剩50G内存。共享内存又分去一半,还剩25G内存。则可最大链接数为:25G / 4M = 25*1024 / 4 = 6400

3)解决方法

修改 /opt/Kingbase/ES/V8/Server/data/kingbase.conf,将里面默认的 max_connctions=100 修改,然后重启Kingbase数据库。但是不要用 systemctl start kingbase 去重启,要用

cd /opt/Kingbase/ES/V9/Server/bin/
./sys_ctl start -D /opt/Kingbase/ES/V9/data

方式去重启。

参考:

# 进入sql交互(或者利用图形化DBA)
su kingbase
cd /opt/Kingbase/ES/V8/Server/bin/
ksql -h localhost -p 54321 -U 用户(默认超管system) 库名(默认自带test库)

# sql交互里执行
show max_connections;  # 查看最大链接数
show superuser_reserved_connections;  # 查看预留给超级用户的数据库链接数
select count(*) from sys_stat_activity;  # 查看当前已用链接数
show work_mem:  # 查看 work_mem 值大小
### 金仓数据库Linux 系统上的安装配置及使用方法 #### 安装准备 为了成功安装人大金仓数据库(KingbaseES),需要先完成必要的准备工作。这包括创建挂载点并将 ISO 文件挂载至指定目录。具体操作可以通过以下命令实现: ```bash mount KingbaseES_V009R001C001B0025_Lin64_install.iso /mnt/kingbase ``` 此步骤用于将安装镜像挂载到 `/mnt/kingbase` 目录下以便后续访问[^1]。 #### 创建必要目录并设置权限 在正式安装之前,还需要为数据库运行环境创建若干重要目录,并调整其所属用户组以及权限级别。以下是具体的命令集合: ```bash mkdir -p /KingbaseES/V8 /data /backup /archive /install chown -R kingbase:kingbase /KingbaseES chown -R kingbase:kingbase /data chown -R kingbase:kingbase /backup chown -R kingbase:kingbase /archive chown -R kingbase:kingbase /install chmod -R 775 /KingbaseES chmod -R 775 /backup chmod -R 775 /archive chmod -R 775 /install chmod -R 700 /data ``` 上述脚本定义了多个路径及其对应的读写执行权限分配方案,从而保障系统的安全性与功能性需求得到满足[^4]。 #### 版本选择 考虑到实际应用场景差异较大,因此建议依据业务特性挑选合适的版本类型。例如标准版适合基础数据管理;而企业级解决方案则更适合复杂事务处理场景。值得注意的是,尽管各版本间存在功能区别,但由于它们共享统一的核心引擎架构设计,所以彼此之间能够保持高度的一致性和互操作能力[^3]。 #### 图形界面 vs 命令行工具 对于初次接触该产品的技术人员来说,可能更倾向于利用可视化向导来简化部署过程中的繁琐环节。然而,在服务器端或者远程维护场合,则往往依赖于纯文本模式下的自动化脚本来提高效率。无论采用哪种方式进行初始化设定工作流规划时都应参照官方文档给出的标准指南来进行每一步骤的操作验证确认无误后再继续下一步动作以免造成不必要的麻烦或损失[^2]。 #### 使用说明 一旦完成了前期所有的预设条件之后就可以正式启动服务进程并通过客户端连接测试验证整个链路是否通畅正常运转起来了 。通常情况下我们会借助 psql 工具或者其他第三方图形界面程序比如 DBeaver 来建立会话查询表结构导入导出备份恢复等功能模块都可以在此基础上进一步扩展完善形成一套完整的生命周期管理体系 。 ```python import psycopg2 conn = psycopg2.connect( dbname="your_db", user="kingbase_user", password="secure_password", host="localhost", port=54321) cursor = conn.cursor() cursor.execute("SELECT version();") result = cursor.fetchone() print(f"Connected to {result}") conn.close() ``` 以上 Python 脚本展示了如何通过 `psycopg2` 库连接到本地运行的人大金仓实例,并获取当前使用的软件版本号作为示例演示之一。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值