Linux下KingbaseESV8数据库的自动备份
创始人
2025-05-31 21:28:50

一、备份方式

KingbaseESV8数据库备份的两种方式:

(1)使用数据库开发工具KStudio备份

(2)命令行方式备份

变量 BACKUP_FILE 就是备份后的文件

#这里数据库用户名是stmis  要备份的数据库是geomis
/home/kingbase/KingbaseES/V8/KESRealPro/V008R006C006B0013/ClientTools/bin/sys_dump -h localhost -p 54321 -U stmis -v -f "${BACKUP_FILE}" -F c geomis

二、自动备份

(1)编写脚本文件 geomis-backup.sh

#!/bin/bash# 数据库用户stmis的密码 输入到环境变量中
export PGPASSWORD="stmis123"# 日期变量,用户给备份的数据库文件上打上日期戳
DATE=$(date +"%Y%m%d_%H%M%S")# 定义变量:备份文件名称
BACKUP_FILE="/home/geomis/BACKUP/BACKUP_DB/geomis_${DATE}.dmp"
#备份
/home/kingbase/KingbaseES/V8/KESRealPro/V008R006C006B0013/ClientTools/bin/sys_dump -h localhost -p 54321 -U stmis -v -f "${BACKUP_FILE}" -F c geomis

(2)赋予该脚本文件执行权限

sudo chmod +x geomis-backup.sh

(3)将备份文件添加到用户的定时任务中,这里我添加到了root用户的定时任务

crontab -e
#添加下面的内容 表示每天的1点钟备份一次
0 1 * * * sudo /bin/bash /home/geomis/geomis-backup.sh

===============================分割线====================================

记录之前一个自动任务失败的脚本:

(1)第一个脚本 backup-db.sh:

        这是一段使用Expect编写的脚本,用于自动备份名为“geomis”的KingbaseES数据库。 脚本中的spawn命令启动了一个名为sys_dump的可执行文件,该文件用于备份数据库。接下来的参数指定了要备份的数据库的主机名,端口号,用户名和备份文件的路径和名称等信息。 expect命令用于等待程序的输出,并匹配到输出中的“Password:”后,自动输入密码“stmis123”并回车,以便让备份程序顺利运行。 最后,interact命令启用交互模式,以便在备份程序完成后,用户可以手动操作系统控制台,而不会立即退出脚本。

#!/usr/bin/expect#backup geomis database
spawn "/home/kingbase/KingbaseES/V8/KESRealPro/V008R006C006B0013/ClientTools/bin/sys_dump" -h localhost -p 54321 -U stmis  -v -f "/home/geomis/BACKUP/BACKUP_DB/geomis.dmp" -F c geomisexpect "Password:"send "stmis123\r"interact

(2)第二个脚本 backup-geomis.sh

        这是一个Bash脚本,用于备份KingbaseES数据库中名为“geomis”的数据。该脚本包含以下步骤: 获取当前的日期和时间,并将其保存在变量$datetime中,以便在备份文件名称中使用。 调用名为backup-db.sh的脚本,该脚本用于实际备份数据库。 在备份数据库完成后,等待20秒钟,以确保备份文件已完全生成并关闭。 进入备份文件夹“/home/geomis/BACKUP/BACKUP_DB”,将备份文件geomis.dmp重命名为geomis-日期时间.dmp的格式,以便将其与其他备份文件区分开来。 需要注意的是,此脚本中涉及到的路径和文件名等信息,应根据实际情况进行修改。

#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin#get time
datetime=$(date +%Y%m%d_%H%M%S)
#backup geomis database
/home/geomis/backup-db.shsleep 20s
#rename filename
cd /home/geomis/BACKUP/BACKUP_DB
mv geomis.dmp geomis-${datetime}.dmp

注意:这里我手动执行 ./backup-geomis.sh 后,可以备份成功,但是将该脚本文件加入到自动任务中,自动备份出来的数据库文件大小为0k,暂未找到原因。

相关内容

热门资讯

日本财务大臣就日元走弱发出警告... 来源:环球市场播报 在日本央行当天稍早宣布加息并召开新闻发布会后,日元兑美元明显走软,日本财务大臣...
特朗普五天圣诞长假期不会惠及大... 来源:环球市场播报 特朗普总统签署行政命令,允许联邦雇员今年12月24日和12月26日放假,这引发...
小米17 Ultra发布在即,... 12月18日,小米公司通过官方微博宣布与徕卡的全球影像战略合作正式升级,此次升级引入全新的“战略共创...
视频丨高市早苗持续遭批,日本民... 日本首相高市早苗的涉台错误言论引发日本国内持续批评。19日,部分日本民众在东京举行抗议集会,要求高市...
一场千万美元的赌注:造一个替你... 出品|虎嗅科技组作者|李一飞编辑|陈伊凡头图|视觉中国“AI原生100”是虎嗅科技组推出针对AI原生...