![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 系统管理 > 其它 > 正文 |
 |
| UNIX管道功能在系统备份中的妙用 |
| 本文出自:http://www.ccidnet.com/ 作者: 李炯 (2002-01-07 07:10:00) |
http://tech.cn.tom.com2001年10月29日来源:赛迪网
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*/
(http://www.fanqiang.com)
进入【UNIX论坛】
|
|
| 相关文章 |
HP-UX系统备份与恢复全功略 (2002-01-29 20:03:38) 双机(多机)自动互备份方案 (2002-01-19 08:30:00) 备份和修复Linux LILO指南 (2002-01-08 08:10:00) UNIX管道功能在系统备份中的妙用 (2002-01-07 07:10:00) Sun Solaris 用户手册 -- 九. 数据备份和传输工具 (2001-10-04 08:00:00) 中文man手册:smbtar - 直接备份SMB/CIFS共享资源到UNIX磁带设备的shell脚本 (2001-09-23 07:05:01) 用rsync对网站进行镜像备份 (2001-09-08 13:05:00) 备份Cisco路由器用户配置 (2001-08-17 15:00:01) AIX的系统备份和恢复 (2001-08-08 08:00:00) Linux 网管 123 --- 第8章. 备份及回存程序 -3.Cisco 路由器组态备份 (2001-07-02 20:10:00)
|
===更多相关=== |
|
|
 |
★ 樊强制作 欢迎分享 ★ |