欢迎 水中一条龙 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

域名查询 网站空间 域名主机 数据库空间

 
今天是:2012年05月18日 星期五  您现在位于: 首页 → 技术文章 → UNIX管道和重定向功...
   UNIX管道和重定向功能在系统备份中的妙用
作者:李炯  出处:Unix爱好者家园unix-cd.com  更新时间: 2004年09月10日 
UNIX命令有三个有效的数据流:标准输入,标准输出,标准错误。 
管道是从一个程序进程向另一个程序进程单向传送信息的技术。与其它形式的进程间通讯,如IPC、MESSAGE PASSING、SOCKET等不同,管道特点是单向的。通常,管道把一个进程的输出传给另一进程作为输入。在接受进程接收信息前,系统临时保留管道信息。 
UNIX shell中,管道在命令行中由一个竖杠(|)表示。管道左边的命令的标准输出作为管道右边命令的标准输入。 
UNIX的输入和输出重定向可以将命令的标准输入输出,从键盘和终端转移定向到其他的设备文件。 
我们可以利用管道和输入输出重定向功能,从而在UNIX系统中巧妙地实现一些功能,举以下三例说明(假设用户均有相应的权限)。 

I. 主机tom没有磁带机,而主机jerry有磁带机。 

我们任务是要将tom的数据通过jerry备份到磁带上。 
假设我们要用tar命令,将/dir目录备份到磁带上。 
首先,在tom上修改文件/etc/hosts,加入jerry的IP地址: 
192.0.0.2 jerry 
然后,ping jerry,看网络是否通畅。 
修改tom的.rhosts,加入下行: 
jerry 
使jerry为tom的信任主机。 
现在,在jerry上,rlogin tom,正常情况下,不需要口令,应能登录到tom机上。 
在jerry上,运行: 
rsh tom "tar cvf - /dir" > /dev/rmt0h 
其中,tar cvf - /dir 是将/dir拷贝到标准输出,然后再到重定向到主机jerry的磁带机上,完成备份。 

II. 如何实现多台主机的磁带机同时备份,加快备份速度。 

随着信息化进程的加快,不少企业从手工操作发展到利用信息技术,来提高生产率,企业也积累了大量的数据,其中不少数据库要求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*/ 
 (本文已被浏览 2150 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:sed应用实例
下篇文章:UNIX下发送屏幕信息
 相关文章:
I/O重定向详解及应用实例 Linux系统管道和有名管道的通信机制
I/O重定向详解及例子 Linux I/O重定向应用的一些小技巧
善用重定向提高工作效率

相关搜索
查看百度中关于UNIX管道和重定向功能在系统备份中的妙用的更多内容
查看google中关于UNIX管道和重定向功能在系统备份中的妙用的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    Copyright (c) 2001-2011 Unix-cd.com. All Rights Reserved.