Informix-4gl数据库的dbexport导出与dbimport还原

      最近在工作中遇到朋友要帮忙还原IMFORMIX-4GL数据库, 完全是第一次接触UNIX以及IMFORMIX,与同事一起研究了三天,遇到了不少问题,多得网友的帮助,终于实现还原成功。在此进记录。

     从一开始就开始百度如何还原IMFORMIX数据库。各个文章都写出了如何如何进行,没有图示,让一个门外汉看得头都大了。表示很痛苦。所以今天我这三天学到的就将详细列出还原IMFORMIX数据库图示,给我自己或是和我一样第一次接触IMFORMIX数据库的朋友一个记录。

  一、IMFORMIX数据库使用dbexport 备份。

       进入到UNIX系统环境下,使用IMFORMIX用户登录。

       输入i4gl,看看能不能入到4gl程序员环境中,这个其实就是在确认已经配置好IMFORMIX数据库环境。 成功进入环境的界面如下:

         

        看到这里的图的话,恭喜你,你已经配置好4gl的环境了。然后选择上图中的Exit。进入UNIX环境中,以$开头的。接下来你就可以输入dbexport语句了。英文好的也可以看这个官网的一个解释。

        https://www.ibm.com/support/knowledgecenter/en/SSGU8G_11.70.0/com.ibm.mig.doc/ids_mig_120.htm   

    

         输入语句:    

       

        dbexport   后面加了一个  -o   后面接的是一个目录地址,这个目录地址就是你要备份出来数据库文件存放的地址。 stores_demo就是你要备份数据库名。


       备份成功后得到一个stores_demo.exp(数据库名.exp)的文件夹。里面有以后缀名为.url以及.sql的文件。

       使用ls /word/exports  命令就可以查看得到。

        


一、IMFORMIX数据库使用dbimport 还原。

           1、还原也很简单就是一个语句。

            如果你所在UNIX的目录在store_demo.exp的/word/exports中。那你可以直接写dbimport  store_demo  命令。就可以执行了。


           这样执行的过程中问题出现。

           还原失败了。提示错误no free disk space

           

         


           这是因为直接写dbimport  store_demo来还原数据库,它默认将数据库还原在了rootdbs空间中。而rootdbs的空间不够了。

          

            使用onstat -d命令就可以查看空间的大小了。输入命令得到如下结果:

            

           可以看到  rootdbs   free 的空间为0了。从上图可以看出我系统里面有5个dbspaces 分别是

           

           dbspace  下面又有6个chunk

            

          这里面可以看到datadbs 里面有两个chunks分别是datadbs 和datadbs1

          因为我这个数据库是从零几年就开始用了。2个datadbs的chunk是不够的。所以要增加chunk

          增加chunk的之前用  命令  ls -l  空间所在的文件夹   我的datadbs 从上面那个图就可以看出是在/usr/informix/dbs中。所以我输入的命令是:

          ls -l  /usr/informix/dbs 

、      

         如果看到上图的第一列中 -rw-rw-r--  是以  -  开头的。说明是file system,那么你就跟我做下面这些步骤:

          1、cd   /usr/informix/dbs      //进入到datadbs所在的文件夹下面

          2toudh datadbs2//创建一个名叫datadbs2的chunk

          3、chmod 777 datadbs2chmod 777  datadbs2    //datadbs2 的权限改为777

          4、onspaces  -a  datadbs    -p   /usr/informix/dbs/datadbs2   -o  0  -s 2000000   //-o  后面为偏移量  -s后面加的是chunk的大小 、、、、  、、  

          执行完 4 步之后成功增加chunk  ,onspace的详细用法见 onspace 用法

         

现在就可以进行dbimport 了。

       进入到stores_db.exp的文件夹所在的目录

        dbimport   stores_db     -c -d  datadbs    //  dbimport 数据库名   -c  -d  dbspaces空间名 

                                                                      ,这里不加-l的增加缓冲日志的数据库原因是我加了-l还原就出错了。无法还原成功。

       

      这里dbimport会执行可能很长一段时间(看数据库的大小)执行完成之后我们再用ontape命令增加缓冲的事务日志。

      

       执行ontape 命令前请你打开  informix/etc/onconfig.fgb 文件,查看TAPEDEV   是不是dev/null,如果不是请改成dev/null,

      千万不要写成dev/console。我一开始就是百度看到文章写说要改成dev/console,后悔死我了。执行了一晚上ontape -s  -B

       最后回来上班看到还执行出错,数据库整个被锁住了。说多都是泪啊大哭,下面是ontape命令

       

        ontape  -s   -B    store_db 


        执行完这个ontape。你的数据库真的就还原成功了。       

       

      


           

       

        


      


        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值