提前认识软件开发(34) 数据库的维护2015-01-25对于某些大型软件产品,一旦商用,必然会存储很多用户信息,这就对产品所使用的数据库(以下简称业务数据库)带来了压力。为了保证业务数据库的平稳运行,需要在日常工作中对数据库做一些基本的维护操作。业务数据库的维护规则如下:1. 对业务数据库必须进行定期全量备份业务数据库的定期备份能在数据库被意外破坏时进行快速恢复,备份策略可以根据数据增量大小采用周计划或月计划。假如备份数据库db_100,则Oracle、Sybase和SQL Server中的操作方法如下:(1) Oracle用户模式的备份
exp db_100/db_100 owner=db_100 buffer=8192(或64000)file=exp_db100.dmp(或磁带设备/dev/rmt0)tables=rows=ycompress=nlog= exp_db100.log
参数说明:owner:将要卸出的用户名列表。buffer:缓冲区大小。file:由export创建的输出文件的名字。tables:将要卸出的表名列表。rows:指明是否卸出表数据的行数,缺省为“y”。compress:指明在装入期间是否将表数据压缩到一个区域中。如果在卸出数据时,指定参数compress=y,那么装入时,就会将数据压缩到一个初始区域中。这种选择可以保持初始化区域的原始大小。缺省为“y”。log:指定一个接收有用信息和错误信息的文件。(2) Sybase中数据库的备份dump database db_100 with /home/data/db100.dmp(或磁带设备/dev/rmt0)(3) SQL Server中数据库的备份
use mastergoexec sp_addumpdevice "disk", "dev_db100",disk ="C:backupdev_db100.dat"gobackup database db_100 to dev_db100go
2. 对业务数据库定期进行数据清理,清理前必须完成备份操作对每天记录增长较多的日志表采用备份表的机制,即建立和生产表一样结构的备份表,根据项目的需要决定生产表和备份表保留的时间。假设1000号业务要处理主日志生产表tb_mainlog,要求是该生产表保留2天的记录,备份表保留90天的记录,筛选日期的字段名为startdatetime,分批提交的间隔为60分钟,有一个存储过程pr_backuptable用于备份,则只需如下调用:exec pr_backuptable ‘tb_mainlog’,’tb_mainlog_bak’,2,90,’startdatetime’, ‘yyyy.mm.dd hh:mi:ss’,60,’’参数说明:参数1:生产表名参数2:备份表名参数3:生产表保留的天数参数4:备份表保留的天数参数5:筛选日期字段名参数6:筛选日期字段的格式参数7:分批提交的间隔(单位:分钟)参数8:用于进行比较的扩展条件