InterBase数据库迁移到MySQL(恢复备份)
我拿到的是InterBase导出的“.gbk”后缀的数据库备份文件,目标是可以通过命令行的方式导入到指定的数据库中,在这个脚本中我使用了InterBase数据库中自带的“gbak”命令行来进行操作。
首先来介绍一下这个InterBase数据库吧,http://baike.baidu.com/item/interbase?fr=aladdin——百度百科,大致来说就是一种文件数据库了,而由于我在Ubuntu上找不到对应的安装包,所以就拿InterBase对应的开源版本Firebird数据库来练习了,当然,由于这个程序是在windows平台上运行的,最后的操作我还是在windows7上进行的,只是为了前期的实验方便在Linux上操作了(Linux上包和软件的安装真不是一般的方便额),至于Firebird和InterBase的关系可以看百度百科——http://baike.baidu.com/view/424640.htm?fr=aladdin。
InterBase的bin目录下有个gbak程序负责数据库的备份操作。具体的命令如下:
gbak -c -user "sysdba" -password "masterkey" "%path%\dbanme.gbk" "127.0.0.1:%path%\dbanme.gbk'"
gbak <options> -user <username> -password <password> <source> <destination>
在InterBase数据库中默认的用户名是”sysdba”,默认的密码是”masterkey”后面的两个参数分别是要输入的地址,要注意的一点是,第二个参数要在盘符前面加上IP地址,如果是本地的话就是“127.0.0.1”,不加的话会报错。
在安装Firebird的时候会用到gsec命令,gsec是Firebird数据库的用户密码管理工具,要注意的是很有可能在Linux上会发生没有默认用户名密码的情况,如果这样的话就使用修改密码的口令从新修改密码就好了。下面附上程序的代码:
#encoding=utf-8
import os,sys,getopt opts, args = getopt.getopt(sys.argv[1:], "hg:b:",["help","gbk=","gdb="])
input_file=""
output_file=""
def usage():
print """
-h --help print the help
-g --gbk The path of the backup file
-b --gdb Have to backup the database path
"""
for op, value in opts:
if op in ("-g","--gbk"):
input_file = value
elif op in ("-b","--gdb"):
output_file = value
elif op in ("-h","--help"):
usage()
sys.exit() #input_file为要导入的备份文件地址
#output_file为所要恢复的数据库地址
#sysdba为InterBase数据库的默认账户名
#masterkey为InterBase数据库的默认密码 def main():
if os.path.isfile(input_file):
os.system('gbak -c -user "sysdba" -password "masterkey" "'+input_file+'" "127.0.0.1:'+output_file+'"')
else:
print 'Error: File does not exist' if __name__ == '__main__':
main()
InterBase数据库迁移到MySQL(恢复备份)的更多相关文章
- InterBase数据库迁移到MySQL(说明)
刚刚到公司1周便接到了第一个需求,进过了几天的沟通明白了是从gbk文件中恢复InterBase数据库,然后再将恢复到数据库中的数据导出到远程的MySQL数据库中,拿到需求先分步去看问题了,问题大致可分 ...
- InterBase数据库迁移到MySQL(数据导出)
这篇我将记叙我的第二个脚本程序,这篇我使用InterBase数据库提供的“isql”命令来导出我所要的数据,但是由于“isql”命令没有直接导出数据的语句,说以我采用的是导入一个配置文件,在这个文件中 ...
- InterBase数据库迁移到MySQL(数据导入)
在这个脚本中我使用的是Python的ORM框架SQLAlchemy来连接远程的MySQL数据库的,在写这个脚本的时候为了方便参数的输入,我就给之前和这个脚本添加了一个新的功能,就是在调用这个脚本的时候 ...
- [转载]如何将OFBIZ(opentaps)默认数据库迁移至mysql((2
原文地址:如何将OFBIZ(opentaps)默认数据库迁移至mysql(利昂原创)作者:利昂 ofbiz自带的数据库是Derby,这是一种小型的适合与测试系统的数据库,但不适合在产品级系统中使用,所 ...
- Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具
Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具 1 kettle --第一次使用kettle玩迁移,有什么不足之处和建议,请大家指正和建议. ...
- 从其他数据库迁移到MySQL及MySQL特点
从其他数据库迁移到MySQL Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程.视图.定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用 ...
- MySQL数据库迁移与MySQL数据库批量恢复
目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...
- MySQL恢复备份读书笔记
1. 任何执行时间长于 wait_timeout或interactive_timeout选项值得备份,都会导致会话被关闭,这也会隐含执行UNLOCK TABLES命令.2. 对于使用FLUSH TAB ...
- mysql恢复备份导出
MySQL-5.7 备份与恢复 一.备份分类 按介质分类: 物理备份指通过拷贝数据库文件方式完成备份,适用于数据库很大,数据重要且需要快速恢复的数据库. 逻辑备份指通过备份数据库的逻辑结构和数据内 ...
随机推荐
- 证明tmult_ok的正确性
csapp page124. practice problem 2.35 /* Determine whether arguments can be multiplied without overfl ...
- 轻松学习RSA加密算法原理
转自:http://blog.csdn.net/sunmenggmail/article/details/11994013 http://blog.csdn.net/q376420785/articl ...
- C程序设计语言习题解答
1-6 #include <stdio.h> int main(void) { printf("getchar()!=EOF is:%d\n", getchar()!= ...
- IOS登陆+注册+抽奖+排行榜
要求:三个页面(登录页面,pickerView页面,排行榜页面),pickerView页面是三个组件,每个组件显示0-9,点击按钮进行随机,获得的值存入排行榜,排行榜显示大于500的最高的10个分数和 ...
- 一个json字符串
{ "area": [{ "flag": "Y", "ishot": "N", "lag& ...
- java线程之——sleep()与wait()的区别
sleep()是Thread的方法,wait()是Object的方法 如果线程进入了同步锁,sleep不会释放对象锁,wait会释放对象锁 sleep的作用就是让正在执行的线程主动让出CPU,给其它线 ...
- 基线 css
原文地址:http://blog.jobbole.com/31926/ 英文原文:CSS Baseline,编译:飞鸟分享 译者注:网页设计布局中一直比较流行网格对齐,但只是针对水平的对齐,很少或者没 ...
- Angular JS 学习之服务(Service)
1.AngularJS中,可以创建自己的服务,或使用内建服务: 2.在AngularJS中,服务是一个函数或对象,可在你的AngularJS应用中使用: AngularJS内建了30多个服务:有个$l ...
- css整理-01选择器和继承
元素 元素形式: 替换,非替换 元素类型: 块级,行内 列表是特殊的块级元素,它会生成一个标记符 样式表 候选样式表: rel='alternative' @import导入样式表,必须在style的 ...
- express-16 与生产相关的问题2
处理未捕获的异常 在Node的异步世界中,未捕获的异常是特别需要关注的问题 app.get('/fail', function(req, res){ throw new Error('Nope!'); ...