金仓数据库备份简易脚本

vim backup.sh

#!/bin/bash
####################################################################################################################
###
###Descipt: this script is used for kingbase database backup,before you run it,you should set the variables such as
###         kdb_home,kdbback_dest,kdb_user,kdb_pass,kdb_host,kdb_port,kdb_list,keep_time and so on.
###
####################################################################################################################
####################### variable define ##########################
##########################此脚本备份会备份到脚本存放的位置创建与数据库同名的目录#####################################


# 数据库安装目录
kdb_home="/opt/Kingbase/ES/V8/Server"

# 数据库备份的目标路径
kdbback_dest="/opt/kingbaseback"

# 数据库用户名
kdb_user="system"

# 数据库用户密码
kdb_pass="123456"

# 数据库端口号
kdb_port="54321"

# 数据库访问ip
kdb_host="111.5.240.50"

# 数据库的库,多个库可用逗号分隔,如"TEST,SAMPLE"
kdb_list="TEST,SECURITY"

date=$(date '+%Y%m%d%H')
LD_LIBRARY_PATH="${kdb_home}/unixodbc/lib:${kdb_home}/lib:${kdb_home}/bin"

####################### kingbase backup start  #######################

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
for db in `echo $kdb_list | sed 's/,/ /g'`; do
        [ -d ${db} ] || mkdir -p ${db}
        cd ${db}
        ##### 检查kingbase的服务是否正常启动状态,输出日志信息到日志文件
        ${kdb_home}/bin/ksql "host=${kdb_host} port=${kdb_port}  dbname=${db}  user=${kdb_user}  password=${kdb_pass}"  -c "select now();"> /dev/null 2>&1
        if [ $? -ne 0 ] ;then
            echo "${date} 对不起,检测到kingbase数据库未启动,请先启动" >> backup_${db}_${date}.log
            exit 1
        else
            echo "${date} kingbase数据库正常运行中,${db}库正常" >> backup_${db}_${date}.log
        fi
        ##### end
        ##### 数据库的备份操作
        ${kdb_home}/bin/sys_dump "host=${kdb_host} port=${kdb_port}  dbname=${db}  user=${kdb_user}  password=${kdb_pass}" -F c -f ${db}_${date}.dmp>>backup_${db}_${date}.log 2>&1
        cd ../
done
exit 1

<think> 嗯,用户这次的问题很明确,就是要找金仓数据库备份脚本的存放位置。之前已经给过通用路径说明,但用户似乎需要更具体的操作指引。 从用户两次提问的连续性来看,ta应该是位运维人员或DBA,正在搭建金仓的备份系统。引用中提到的docker-compose部署和sys_rman工具说明很有价值,特别是那个./kingbase_back/ksql_backup/dbback.sh的示例路径——这比通用说明更直观。 用户可能遇到的实际场景是:刚部署好金仓数据库,现在需要配置定时备份但找不到脚本位置。考虑到ta引用了docker部署的资料,或许正在容器化环境工作。需要重点区分物理部署和容器化部署的路径差异。 上次回答提到的系统脚本目录($KINGBASE_HOME/scripts)其实不包含备份脚本,这点要纠正。备份脚本实际分散在三个位置:安装目录的bin下(系统工具)、自定义目录(用户脚本)、以及容器特定挂载点。尤其要注意db_install_server.sh这个安装脚本会把back文件夹复制到data目录,这个细节必须强调。 用户没提操作系统类型,但引用案例是Linux路径,回复应以Linux为主,补充Windows路径作为备注。还应该提醒日志位置(/log/kingbase-backup.log),因为找不到脚本时查日志是最快定位方式。 最后生成的延伸问题要实用:"脚本执行权限配置"和"容器环境差异"是运维实际高频问题,"定时任务集成"则是备份系统的刚需。避免再问理论性问题,全部聚焦操作落地。 </think> 以下是查询金仓数据库备份脚本存放位置的具体操作步骤,结合系统设计和运维实践: --- ### **一、标准路径查询方法** #### 1. **系统默认位置** ```bash # Linux系统 ls $KINGBASE_HOME/Server/bin/ # 内置工具脚本(sys_dump, sys_rman) ls $KINGBASE_HOME/scripts/ # 系统初始化脚本 # Windows系统 dir "%KINGBASE_HOME%\Server\bin\" dir "%KINGBASE_HOME%\scripts\" ``` > 📌 关键文件: > - `sys_dump`:逻辑备份工具 > - `sys_rman`:物理备份工具[^2] > - `backup_scripts/`:部分版本自带示例脚本目录 #### 2. **用户自定义脚本定位** ```bash # 通过进程名反向查找 ps aux | grep sys_dump | grep -v grep # 显示正在执行的备份命令路径 find / -path "*/ksql*back*.sh" 2>/dev/null # 搜索包含关键字的脚本 ``` --- ### **二、容器化部署路径(参考用户引用[1])** 在Docker环境中,路径由挂载卷决定: ```yaml # docker-compose.yml 示例 volumes: - ./kingbase_back/data:/opt/kingbase/data # 数据库数据 - ./kingbase_back/back:/backup # 备份存储目录 ``` **备份脚本位置**: ```bash 容器内路径: /backup/ksql_backup/dbback.sh 宿主机路径: ./kingbase_back/back/ksql_backup/dbback.sh ``` --- ### **三、通过配置溯源** #### 1. 查看定时任务配置 ```bash crontab -l | grep -E "sys_dump|sys_rman|dbback" ``` 输出示例: `0 2 * * * /opt/kingbase/scripts/db_backup.sh` ➜ 直接暴露脚本路径 #### 2. 审计日志追踪 ```sql -- 查询备份操作记录 SELECT log_time, command FROM sys_stat_statements WHERE query LIKE &#39;%BACKUP%&#39; OR query LIKE &#39;%DUMP%&#39;; ``` 日志路径默认在:`$KINGBASE_HOME/data/sys_log/`[^2] --- ### **四、特殊场景定位** | **场景** | **脚本路径特征** | |----------------|--------------------------------------| | 自动化运维平台 | `/opt/ops_platform/kingbase/backup/` | | K8s ConfigMap | 挂载到Pod的`/etc/kingbase/scripts/` | | 开发测试环境 | 项目代码库内的`sql_scripts/backup/` | --- ### **操作验证示例** ```bash # 确认脚本有效性 $KINGBASE_HOME/Server/bin/sys_dump --help # 验证工具存在 bash /backup/ksql_backup/dbback.sh --dry-run # 测试自定义脚本 ``` > ⚠️ 注意:生产环境操作前务必在测试环境验证 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值