Informix用dbexport和dbimport倒库

  informix 做的项目,在生产和测试环境中,数据有的时候不一致,为了能在测试环境中模拟真实环境,需要将真实数据库的数据导过来。在查阅了 informix 的资料后,对 dbexport 和 dbimport 有了新的了解,现在来总结一下!
  (1)dbexport的使用
  dbexport在使用前必须保证该数据库未被别人打开。在实际环境中,因为很多业务正在运行,应用程序的连接尚未断开,所以不能直接运行dbexport 。我一般使用 onmode -ky 关闭数据库,然后再用 oninit 启动数据库,立即执行 dbexport 数据名,即可将数据导入。假设数据库名为 test ,导出完成后,可以看见 dbexport.out 的日志文件和一个 test.exp 文件夹,这个文件夹里即包含了test 这个库的建库脚本和所有的数据文件。
  (2)dbimport的使用
  将导出来的数据拷贝到测试环境中,注意,如果只拷贝文件过来,dbimport 是不认识的,我们需要建立一个刚才那样的文件夹即 test.exp ,然后在这个子目录的上层运行 dbimport ,才能将数据导入。命令很简单,只需执行 dbimport test 即可。此时要保证你的数据库中没有 test 这个库,如果这个库存在,运行 dbimport 会导致失败。
  (3)倒库之后没日志文件
  运行 dbimport 后,库倒是建起来了,可是日志文件没有了。这是因为 dbexport 将会导致数据库的日志模式丢失,不用担心,我们可以用 ontape 这个命令来解决,具体步骤如下:
  a. 修改配置文件,在 $INFORMIXDIR/etc/onconfig 文件里,将 TAPEDEV 设置为 /dev/console ,然后重启数据库(我是执行onmode -ky 和 oninit 命令)
  b. 运行 ondblog buf test 这个命令意思是先打上一个标志。将数据库日志设置为 buffer 模式。
  c. 运行 ontape -s -L 0 test 即可,在转换数据库模式前,必须先做一个0级备份。
  d. 好了,重启数据库,看看数据库日志模式已经改过来了。另外,还有一个 onmonitor 命令,也是相当的有用,命令记不得,就可以用这个东西来实现。

发表回复