Firebird数据库的备份和恢复

       在工作中遇到了对于Linux下的Firebird数据库的备份和恢复的需求,先是采取了将数据库fdb文件进行打包、压缩、加密的方式,结果被否定了,看是否可以采取firebird自带的工具来做这件事情。于是便开始看firebird的官方文档。备份过程完美,可是在恢复的过程中出现了点问题,弄了好久。
先说一下使用gbak进行备份的操作吧:
1.设置firebird的环境变量:

在/etc/profile中的最后添加
export FIREBIRD_HOME=/opt/firebird
export PATH=$FIREBIRD_HOME/bin:$PATH
保存之后执行下方的命令使环境变量永久生效
source /etc/prfofile

2.这时环境变量已经配置好了试一下gbak,会出现这么一大堆东西的介绍
这里写图片描述
3.现在执行备份的操作:

gbak -user sysdba -password masterkey -backup  -E -verify -y backup.log  dataBaseSource.FDB /opt/dataBaseSource.FBK

-user 用户名
-password 密码
-backup 备份
-E 默认的gbak的备份操作会压缩数据库文件,-E可以取消压缩的操作
-y backup.log 将备份过程日志写入到backup.log文件中(建议将此选项去掉,因为每次生成的日志文件是不会覆盖的,会出现错误,为避免每次都删除日志文件,建议将此项去掉)

4.现在看一下恢复的过程中遇到的问题
这里写图片描述
这是由于没有权限所引发的IO异常,经过查找各种资料,才得知firebird在安装的时候会自动生成一个默认的用户firebird,只有此用户有权限执行对于数据库备份的恢复,所以要创建一个目录,将此目录的所属组和所有者从root改为firebird,然后从新执行数据库的备份操作,备份文件的存放的路径在此目录下才可。

mkdir /opt/fbird     //创建目录
chown firebird:firebird fbird  //更改目录所有者
//备份
gbak -user sysdba -password masterkey -backup  -E -verify  dataBaseSource.FDB /opt/fbird/dataBaseSource.FBK
//恢复
gbak  -user sysdba -password masterkey -replace -verify /opt/fbird/dataBaseSource.FBK  /opt/fbird/dataBaseSource.FDB

至此firebird数据库的备份和恢复工作就完成了,如有错误,请指正!!

猜你喜欢

转载自blog.csdn.net/hou_zi/article/details/82222575