<%@ page contentType="text/html; charset=gb2312"%> Informix数据备份技巧
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Informix数据备份技巧
     发布者: 发布时间:2007-01-01

在大型的项目开发中,一个项目组通常会在小型的模拟环境中进行初步开发,待系统初步稳定后,再把开发环境移到新系统中,最后才把旧系统切换到新系统中去。
但在模拟环境中,一般数据库服务器的配置都较低,而且不会有专门的数据备份措施,一旦掉电或误操作,便容易出现数据丢失、数据库毁坏的情况,开发人员的一番心血便会白费。因此,需要一种简单而又有效的数据备份方法。 

我们假设模拟环境的数据库服务器的操作系统是Rerhat Linux 7,数据库服务器为Informix Online Dynamic Server 7.0,需要备份的数据库名称为dbtemp。在开发过程中,我们要求能对数据库表结构和其中的数据每天都能定时进行自动备份。因此我们需要使用crontab进行工作日程安排,crontab是操作每个用户的守护程序和该执行的时间表。  crontab文件的格式:M H D m d cmd。 

M: 分钟(0-59)。 

H:小时(0-23)。  

D:天(1-31)。  

m: 月(1-12)。  

d: 一星期内的天(0~6,0为星期天)。  

cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。  

root用户使用crontab -e命令编辑crontab文件,在本例中,文件内容如下: 

#backup zhdata start; 

24 15 * * * su -l -c "dbschema -d dbtemp -ss /opt/informix/data/dbtemp.sql" informix 

25 15 * * * su -l -c "dbaccess dbtemp /opt/informix/data/create_unload.sql" informix 

27 15 * * * su -l -c "dbaccess dbtemp /opt/informix/data/unload.sql" informix 

#backup zhdata end; 

文件中的第一条语句指定每天下午3点24分创建数据库dbtemp模式文件dbtemp.sql;第二条语句指定每天下午3点25分使用dbaccess执行create_unload.sql 文件,create_unload.sql文件内容如下: UNLOAD TO /opt/Informix/data/unload.sql DELIMITER ';' 

SELECT "unload to /opt/informix/data/"||tabname|| 

".txt delimiter '$' select * from "||tabname 

FROM systables WHERE tabid > 99 

这是一条嵌套式SQL语句,能够把数据库中的除系统表以外的所有表找出来。假设数据库中除了系统表外,还有用户表userinfo1,userinfo2,.…,userinfon,那么执行该语句后生成的unload.sql文件内容将为: 

unload to /opt/Informix/data/userinfo1.txt delimiter '$' select * from userinfo1; 

unload to /opt/Informix/data/userinfo1.txt delimiter '$' select * from userinfo2;

……  unload to /opt/Informix/data/userinfo1.txt delimiter '$' select * from userinfon;

然后第3条语句指定每天下午3点27分使用dbaccess执行unload.sql文件,unload语句完成的是把表中的数据内容倒出成以指定分隔符分隔字段的文本文件;在本例中,unload.sql文件实现导出数据库中出系统表以外的各表数据,生成以'$'符号分隔的文本文件,即把数据库除系统表以外的各表数据都导成以'$'符号分隔的文本文件,存放在/opt/Informix/data目录下面。这样,一个简单的数据备份便完成了。

如果您想了解更多内容请看备份恢复  数据保护方法专题

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
DB2 9安装方法简介
针对Oracle数据库的优化器详细介绍
Sybase ASE 安装指南
SQL Server用触发器强制执行业务规则
Mysql数据库的索引分析和优化
论面向对象方法与软件复用关系
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(1720)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(4088)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(9696)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(4330)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(9606)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(9696)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号