金仓数据库备份简易脚本

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

### 金仓数据库备份方法与工具 金仓数据库(KingbaseES)提供了多种备份方法和工具,以满足不同场景下的需求。以下是关于金仓数据库备份方法和工具的详细介绍: #### 1. 物理备份 物理备份是直接对数据库文件进行备份的方式,具有较高的效率。金仓数据库支持使用 `sys_rman` 工具进行物理备份[^2]。 - **命令格式**: ```bash /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=<配置文件> --stanza=<名称> --type=[full|diff|incr|page] --<备份选项> backup ``` - **特点**: - 备份速度快,适合大规模生产环境。 - 支持完全恢复和不完全恢复。 - 可通过归档日志和在线日志进行数据恢复[^4]。 #### 2. 远端物理备份 为了实现远端物理备份,需要满足以下条件[^3]: - 远端备份服务器必须安装完整的金仓数据库(即选择 full 安装)。 - 远端备份服务器的安装目录需与主数据库安装目录一致。 - 如果涉及集群,需创建相同的备份脚本和配置文件目录(如 `share/sys_backup.conf` 和 `bin/sys_backup.sh`)。 - 配置免密登录,确保主服务器与远端备份服务器之间的通信顺畅。 #### 3. 逻辑备份 逻辑备份主要针对数据库中的对象(如表、视图等)进行备份,通常使用 SQL 脚本或专用工具完成。虽然逻辑备份的速度较慢,但其灵活性较高,适用于特定对象备份需求。 #### 4. 使用 pgBackRest 工具 pgBackRest 是一种强大的备份和恢复工具,广泛应用于金仓数据库备份场景中。它支持以下功能[^3]: - 配置灵活,支持本地和远程备份。 - 提供增量备份、差异备份和完整备份。 - 支持归档日志管理,便于灾难恢复。 #### 5. 灾难恢复策略 在制定备份策略时,应结合灾难恢复的需求,确保数据的完整性和可用性。金仓数据库的灾难恢复方案包括: - 定期执行全量备份,并结合增量备份减少存储开销。 - 配置归档日志,以便在数据丢失时进行精确恢复。 - 测试备份和恢复流程,确保在紧急情况下能够快速恢复业务系统[^1]。 ### 示例代码 以下是一个使用 `sys_rman` 工具进行全量备份的示例: ```bash /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/path/to/config/file.conf --stanza=my_database --type=full backup ``` ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值