Chinaunix首页 | 论坛 | 博客
  • 博客访问: 307721
  • 博文数量: 81
  • 博客积分: 3813
  • 博客等级: 中校
  • 技术积分: 945
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-24 18:14
文章分类

全部博文(81)

文章存档

2013年(1)

2012年(2)

2011年(54)

2010年(15)

2009年(9)

分类: 系统运维

2011-02-17 10:46:17

随着信息化进程的加快,不少企业从手工操作发展到利用信息技术,来提高生产率,企 
业也积累了大量的数据,其中不少数据库要求7x24小时运转的。 

数据库的备份过程,即使不停机也会降低服务器的性能,尽量缩短备份时间窗的好处是 
显而易见的。 
但是一台UNIX主机一般只配置一台磁带机。假设我们有另外一台带磁带机的UNIX主机可 
供利用,我们可以利用两台磁带机同时工作加快备份时间。 

假设有ORACLE数据库运行在主机tom上,该数据库有四个各为2GB的数据文件: 

/dev/volume1 
  /dev/volume2 
  /dev/volume3 
  /dev/volume4 

每个数据文件备份到磁带上需要15分钟,如果利用tom自带磁带机备份需花掉1小时。 
我们有jerry主机带磁带机,且空闲。 以下操作利用管道技术,缩短备份时间。 

第一步,将jerry做成tom的信任主机,方法同上。 

第二步,将备份任务分为两组,volume1,volume2在tom上备份,volume3,volume4在 
jerry上备份。 
在tom上运行: 

dd if=/dev/volume1 of=/dev/rmt0 
  dd if=/dev/volume2 of=/dev/rmt0 

在jerry上运行: 

rsh tom "dd if=/dev/volume3" |dd of=/dev/rmt0 
  rsh tom "dd if=/dev/volume4" |dd of=/dev/rmt0 

通过上述办法,可将备份时间缩短一半。如果有更多的主机加入备份工作,在充分利用 
网络带宽的情况下,效果将更加显著。 

III. 解决磁盘空间不足,如何使应用程序产生数据,不经过中间过程,直接生成压缩 
文件。 

以ORACLE数据库逻辑备份工具exp/imp为例。 
ORACLE数据库用exp备份出来的数据,经过压缩,如compress压缩,可节约一半左右的磁 
盘空间。但要经过中间过程,在压缩中需要原文件大小的约一半的缓冲空间。利用管道 
可以直接生成最终的压缩文件,省略中间过程。 

常规的exp命令运行如下: 

exp system/manager@testdb file=expdat.dmpfull=y 

运用管道,如下: 

mknod exp_pipe p /* 生成命名管道 */ 
  exp system/manager@testdb file=./exp_pipefull=y /* 将备份数据送往管道 */ 
  compress exp_pipe > expfull.dmp.Z /* 生成压缩备份文件*/ 

恢复操作也可以利用管道,跳过将文件解压缩,生成原始文件的过程,如下: 

mknod imp_pipe p /* 生成相应的命名管道 */ 
  uncompress -c expfull.dmp.Z > imp_pipe/* 将解压缩数据送入管道 */ 
  imp system/manager@testdb file=./imp_pipefromuser=scott \ 
  touser=scott /* 将管道数据导入数据库testdb

[From]
阅读(1042) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~