zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    django--模型层(orm)-查询补充及cookie
    django-模型层(model)-多表相关操作(图书管理练习)
    Linux-正则表达式与三剑客
    网络配置命令优先级和元字符
    Linux-Nginx和NFS
    Linux-内存进程和软件安装
    乌龟棋
    倍增 Tarjan 求LCA
    切蛋糕
    HDU1505 City Game/玉蟾宫/全0子矩阵 悬线法
  • 原文地址:https://www.cnblogs.com/fuhuixiang/p/4098940.html
Copyright © 2011-2022 走看看