informix数据库常用备份方法-总结.doc
文本预览下载声明
informix数据库常用备份方法
数据库导出dbexport和导入dbimport
说明:dbexport用户导出和备份数据库,dbimport用于恢复dbexport备份的数据库;注意:dbimport导入数据库是,会创建数据库,所以不能存在与要导入重名的数据库。利用dbexport备份数据库时有个缺点就是要把所有和数据库操作相关的应用都要停止,而0级备份则不需要停应用。
假如我的数据库为:test_db
dbexport用法:
[informix] /opt/informix/db_backdbexport --
Invalid option list.
Usage:
dbexport database [-X] [-c] [-q] [-d] [-ss [-si]]
[{ -o dir | -t tapedev -b blksz -s tapesz [-f sql-command-file] }]
NOTE: arguments to dbexport are order independent.
Dbexport执行后,产生一个文件dbexport.out和一个文件夹test_db.exp[里面是unl文件]如果想备份数据库以及其中的数据:
[informix] /opt/informix /db_backdbexport test_db
[informix] /opt/informix /db_backls
dbexport.out test_db.exp/
dbimport用法:
[informix] /opt/informix dbimport --
Invalid option list.
Usage:
dbimport database [-X] [-c] [-q] [-d dbspace]
[-l [{ buffered | log-file }] [-ansi]]
[{ -i dir | -t tapedev [ -b blksz -s tapesz ] [-f script-file] }]
NOTE: log-file must be a complete path
arguments to dbimport are order independent
执行下面命令恢复数据库:
[informix] /opt/informix/db_backdbimport test_db -d workdbs -l buffered
FAQ1:dbimport导入数据失败
错误现象
如果导入的时候直接执行dbimport test_db这样的话,从建数据库后,就会出现如下错误(原因是直接恢复后,数据库日志级别不是buffer log这样就会出现下面的错误,利用-d指定恢复到哪个数据库空间,不指定的话,默认是rootdbs):
[16:45:47]Error: Transaction begin failed.sqlca.sqlcode = -256
[16:45:47]Error: Connect to database[evcscp_db@smp4_online_net]failed, sqlcode=-256
或是:
14:59:07,560 WARN [TransactionImpl] XAException: tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=smp4//1, BranchQual=] errorCode=XA_UNKNOWN(0)
org.jboss.resource.connectionmanager.JBossLocalXAException: Error trying to start local tx: ; - nested throwable: (org.jboss.resource.JBossResourceException: SQLException; - nested throwable: (java.sql.SQLException: Transactions not supported))
解决方法
方法1:导入数据库的时候,就直接指定日志类别-l buffered;
方法2:通过ontape –s –B test_db –L 0 修改日志级别为buffer log;
FAQ2:dbimport导入如果存在同名的数据库则会失败
错误现象
[informix] /opt/informix /db_back_01dbimport test_db
*** create database
330 - Cannot create or rename database.
100
显示全部