Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2330141
  • 博文数量: 632
  • 博客积分: 10716
  • 博客等级: 上将
  • 技术积分: 8413
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-01 22:35
文章分类

全部博文(632)

文章存档

2019年(21)

2018年(4)

2017年(37)

2016年(22)

2015年(1)

2013年(12)

2012年(20)

2011年(19)

2010年(20)

2009年(285)

2008年(191)

分类:

2009-09-15 09:03:33

今天不经意间看到自己N久以前为了应付上头的要求写的一篇文章......哎。
 
 
    曾经
    有一堆的数据摆在我的面前
    我没有好好备份
    当硬盘crash的时候我才追悔莫及
    如果老天再给我重来一次的机会
    我一定要好好备份
    如果非要进行冗余的备份
    我希望是
    一万份
 
    备份这东西,就如健康,只有在失去的时候,才会知道它的重要——虽然存在硬盘里面的资料无非是0和1。就连去买一把锁都会配两把钥匙,我们还有什么理由不对能够关系到我们的业务能否顺利进行的系统和数据进行备份呢?
 
    当然,如果目前您还没有意识到备份的重要性,对我以上抽象的说法感到可笑,那么我将不动声色的恶毒的建议您立即停止正在运行中的系统一两天,看看会发生怎样的事情。
 
    好了,假设您已经听取了我刚刚的馊主意,并在不久以后就被一大群客户打电话过来骚扰,有不少愤怒的客户甚至威胁说如果不马上将系统跑起来就要你们赔偿所有的损失,并永远不会再信任你们承诺了。于是您不得不命令工程师赶快摁下那该死的电源开关,立即将能够平息用户愤怒的应用跑起来——谁让“顾客就是上帝”这句话是这么的有权威性呢?幸好这一切都是实验性的尝试,从这件事情中,您已经看到了……系统正常运行的重要性。您不无意味的对我笑了笑,似乎我还没有对您直接说明备份的重要性,似乎只要一摁开关,事情就轻松搞定。但是这时还不用我开口,您的系统管理员已经在告诉您了:
    “老板,刚刚重新启动的时候突然断了一下电,存储重要数据的硬盘坏掉了。”
    您有些不知所措了,问道:“这——意味着什么?”
    您的系统管理员对你这个突如其来的问题感到茫然,他显然有些紧张:“这……这意味着……意味着我们丢掉了我们重要客户的信息,意味着我们无法按合同给我们的客户提供服务,他们也许会控告我们,我们也不得不赔偿所有的损失。即便以后我们的系统正常运行了,丢失的信息和数据也已经无法找回来了。而且,我们今后怎样才能让客户对我们有信心?”
    从您木然的神情中,我知道了您已经觉得备份不再是一件可有可无的事情。但是事情到了现在这个地步……您的双手在空中乱抓着,啊——的一声叫喊,从梦中醒了过来。哦,是的,至少目前,事情还没有真的变糟,但是您已经明白了,如果不做备份,将来某一天发生这样的事情,就会真的变得这么糟糕,甚至更糟!
    明天,一上班——您告诉自己——马上让系统管理员去做备份。
    第二天一来到公司,您就给系统管理员打了一个电话,叫他马上到您办公室来。系统管理员诚惶诚恐的来到您的面前,心里还在盘算是不是今天迟到又被您看见了。现在您也没有心情诈他说出最近自己又迟到不少次了,直接让他马上去做备份。
    管理员有些诧异于您对备份态度的突然变化,但他还是支持您的想法。因为虽然对他来说也许工作量大了一点,但是毫无疑问,他将从中学到更多的东西,而且定期的做好备份,也将使他看起来更像一个系统管理员。免得他网上的那些狐朋狗友问他多久做一次备份,他都不好意思说他不做备份。
    管理员走出办公室那一刻开始,就已经在思考怎么备份了。怎奈何长久的没有作备份,已经对备份需要注意的方面生疏了。他走到机房,找到当初我留下的名片,给我打了个电话,问了这个问题:老板要我做备份,我应该怎么开始?
    我听到这个问题,有些晕了——问题这么模糊,让我怎么回答?还好,之前其他客户已经让我晕了N次,面对这种让人犯晕的问题,有了些抵抗力。
    我知道这时候最好的就是让他明白备份其实并不是敲几个命令那么简单的事情,尽管局外人看来熟练的管理员做备份就只是敲了几个命令。我甚至可以告诉你们的是,有些管理员做备份都不需要敲命令,只需要定期去看看备份是否正常完成了!
    于是耐心的解释道:“这就要看你的决定了,比如备份什么,是系统还是数据?还要看你决定什么时候进行备份,是下班前备份还是夜里备份?还要看你备份的方式,是全备份还是部分备份?还要看你备份的频率,多长时间备份一次?这些都是需要考虑的因素,而这些因素是会因为你的选择而有所变化,有所关联的。至少,你选择不同的备份方案,使用到的命令就不一样,需要的存储空间也不一样。”
    我知道管理员也已经晕了,从他好长时间没有应答就知道。呵呵,想当初,从培训老师那里知道要考虑这么多因素的时候,还不是当场就晕?!
    反正这种问题在电话中也说不清楚。于是管理员和我约定了一个时间,一起来针对您公司目前的具体情况来制定一个备份方案。
 
    星期六早上9:00,闹钟将我闹醒——10:00之前必须赶到约好的咖啡馆。尽管有美味的Star Bucks Coffee & Delicious Cookies,不过我宁愿睡上一个难得的懒觉。既然客户有需求,那么只好牺牲睡懒觉的时间。这样其实也不是没有好处的,不然以后客户的系统出现了问题,而又没有做好备份,对于我们这些现场工程师来说,真是一个可怕的事情!
    还没有走进星巴克咖啡馆,我就已经透过明亮的落地玻璃窗看见管理员在冲我笑了,手边还放了一个笔记本。因为工作关系,和他已经比较熟了,也就没有客气,直接就点了喜欢的香草咖啡,然后问他:
    “你想好了备份方案没有?准备进行怎样的备份呢?”
    “还没有想呢。已经向老板说明了情况,他说让我来跟你学学,然后请你和我们一起制订一个备份方案。”
    “哇塞,你老板还真会想,好像我的时间就不值钱一样,你说,耽误我睡懒觉,怎么赔偿?”
    他开心的笑道:“怎么不值钱,你当这星巴克咖啡都是免费的啊。”
    面对他的无赖,真是无可奈何,只好转入正题。
    “考虑到你们的系统之前一直没有做过备份,而且系统主要跑的应用是Oracle,我建议你这样,先对系统作一次全备份,然后对数据也做一次全备份,以后就是根据制订的备份方案,定期的做好增量备份和全备份。”
    “嗯”,他点点头,“这样比较保险一些。不过你最好先对我说说各种备份策略的区别和各种备份命令的比较吧,这样以后遇到问题,我就可以自己解决,而不用总是麻烦你,打扰你的懒觉了。”
    好家伙,这个时候还不忘嘲笑我的懒惰,那么就毫不客气地回击:“我还不了解你,是不是准备将我知道的这些备份知识全都学去,好到论坛上去炫耀啊?”
    没想到他真的脸红起来,于是我转移话题,免得他总说我抓他的小辫子。
    “我们先看看备份的策略吧。从备份策略来讲,现在的备份可分为4种:完全备份、增量备份、差异备份、累加备份。”
    “完全备份我知道,”还没有等我说完管理员就迫不及待的说,“完全备份就是用一盘磁带对整个系统进行备份,包括系统和数据。”
    “正确!但是你知道完全备份有哪些优点和缺点呢?”我丢给管理员一个问题,看看他对完全备份了解到那种程度。
    “完全备份的优点就是:直观,恢复容易。假如我每天都做一次完全备份,那么当系统出现问题的时候,只要将最后一次备份的内容恢复就行,这样非常直观。而且如果我将内容都备份到一盘磁带上,这样恢复的时候只需要一盘磁带,大大简化了操作。不过完全备份的缺点也是显而易见的:冗余和备份时间长。假如每天都做一次完全备份的话,其实很多内容都会被重复备份,而正由于每次都要备份其实很多都不需要多次备份的数据,让需要备份的数据大大增加,导致了备份时间很长。”
    “完全正确!”我喝了口咖啡,用一本正经的口气调侃,“所以,为了减轻我们工程师的劳动量,为了尽可能的让我们偷懒,早点回家,我们一般都会建议老板说为了节省备份的开资,少买一些昂贵的磁带,最好采取增量备份。”
    听得管理员差点将咖啡喷出来,憋红了脸将咖啡吞下去。
    “妙啊,”他差点拍案,“这个建议既可偷懒,又可让老板觉得自己在为公司考虑节省成本。”
    看到他这样开心,我不禁也笑道:“本来就是这样,不然,增量备份这种备份策略又怎么会诞生呢?不管它是因为老板们为了节省成本,还是管理员们为了偷懒,总之,这样的备份策略绝对是一种双赢的方式。”
    “那么,”我继续问他,“增量备份又有哪些优点和缺点呢?”
    “增量备份的优点当然是节省磁带,又缩短了备份时间啰,至于缺点嘛……”管理员有些犯难了。
    “你只记得增量备份可以帮你偷懒,却忘记了凡事有利必有弊,你告诉我,增量备份的定义是什么?”
    “所谓增量备份就是只备份在上一次备份后增加、改动的部分数据。增量备份可分为多级,每一次增量都源自上一次备份后的改动部分。”
    “你啊,对定义背得这么清楚,却不理解,看来你真的对备份只是仅流于书面的理解啊。想想看,每次只记录上次备份以后改动的部分,那么你恢复起来,怎么操作?”
    “哦,我明白了,增量备份的缺点在于当发生灾难时,恢复数据比较麻烦。”
    “可是,”管理员迷惑的问道,“差异备份也是只备份在上一次完全备份后有变化的部分数据。那么,差异备份和增量备份,又有什么区别呢?”
    “嗯,这个问题问得好!”我赞赏的说,“差异备份和增量备份这两种备份策略的确容易让人感到迷惑,但是它们的区别在于,增量备份可以分为多级的,假如你星期五做了完全备份,那么,如果你采用增量备份的方式,星期一就只要备份当天改动过的——因为这天改动过或增加的,星期五的完全备份里面肯定没有,而星期二也只要备份当天改动过的,依次推理,直到星期五重新做一次完全备份。这就是以一个星期作为周期,采取增量备份的策略。如果进行数据的恢复,就比较麻烦,首先要将完全备份恢复,然后依次将星期一的增量备份,星期二的增量备份等等按照次序恢复过来,要注意次序不要颠倒了。所以说增量备份的数据恢复比较麻烦。明白了吗?”
    管理员点点头,有点迫不及待的问道:“那差异备份又是怎么做呢?”
    “如果这么说,你可能就明白了增量备份和差异备份的区别和相同点。如果我们选择两天一个周期的循环,第一天采取全备份,第二天采取增量备份,那么这种备份方式,就是差异备份。”
    “早这么说不就得了?”管理员恍然大悟的说。
    “差异备份的定义是谁说的?然后马上又问我增量备份和差异备份的区别。那时候我可是什么也没有说啊!”
    管理员不好意思的笑道:“这样也好,以后别人问我,就先告诉他们深奥的定义,显得层次高些,呵呵。不过我仍然有些不明白,既然增量备份和差异备份,都是对完全备份以后的变化改动进行备份,那么还要弄这两个名词出来?”
    “能问出这个问题,说明你已经在思考了。要知道,没有任何一种备份方案是完美的。完全备份和增量备份,你不都说了它们的有点缺点了吗?如果我们进行增量备份的周期拉长,比如第一天进行完全备份,后面九天都进行相应级别的增量备份,那么恢复起来,是不是很麻烦?恢复的时间是不是相应也会拉长?但是有些用户的系统需要在很短的时间内就恢复过来,采用这种形式的增量备份,肯定难以满足其需求的,所以就有了差异备份的出现。这种出现,不是人为的搞出来的多余的东西,而是根据需求产生的。”
    管理员赞同的点点头。
    不等他回味过来,又问了他一个问题:
    “那么,你是否清楚,什么又是累加备份呢?”
    管理员想了一会儿,摇了摇头。
    “累加备份采用数据库的管理方式,记录累积每个时间点的变化,并把变化后的值备份到相应的数组中,这种备份方式可恢复到指点的时间点。”
    “那么这么看来,累加备份不是很好?”
    “的确这样,不过相应的,操作也较复杂一些。而实际上,我们进行备份,选择备份策略的时候,会根据我们自己的实际需求,将几种备份策略结合起来使用,形成适合自己的备份策略。常用的方法有:完全备份、完全备份+增量备份、完全备份+差异备份、完全备份+累加备份。”
    管理员点点头。
    我提醒他:“注意看看我们常用的方法,发现什么没有?”
    “好像不管是什么方法,都首先要进行一次完全备份。”
    “对,”我喝完最后一口咖啡继续说道,“不管怎么样,进行一次完全备份是肯定有必要的!”
    “还要咖啡吗?谢谢你给我讲解了这么多,所以,不用客气,想喝什么,想吃什么,尽管点好了,反正也不是我出钱,回去以后找老板报销去,让老板买单。”
    “这招借花献佛还真学得不错啊。不过,‘免费的午餐’好是好,但是总是要占用自己的时间的,下午还有球赛呢,所以我也得要早点赶回去啊。”
    不忍心让管理员太失望,只好对他说:“这样吧,我再给你讲解一下备份常会用到的命令,之后时间也应该差不多了。”
    “好的!”管理员的兴致看起来很高。
    他招手叫来了服务员,让其再帮我加杯咖啡。
    “还是香草咖啡。”我说。
    “我们备份常用到的命令有这些:make_tape_recovery(make_recovery)、tar、cpio、fbackup、dump、vxdump、copyutil、dd。当然了,如果你要对数据库——比如Oracle——的数据进行备份,就需要用到专门的命令,或者是一些工具的帮助。不过,这些内容咱们以后再说。这次咱们先看看HP-UX操作系统里面提供的这些命令。”
管理员点点头。
    “make_tape_recovery命令虽然你还没有用过,但是肯定看过别人用过的。我们惠普的工程师当初帮你们安装完新机器之后,不是用make_tape_recovery命令给你们的系统作了一次备份吗?”
    “是的。是不是make_tape_recovery命令还需要安装的啊?”
    “够细心的,这都被你注意到了。的确,如果新安装的系统里面没有包含这条命令的话,你可以在附带的HP-UX Application CD-ROM 安装。这条命令是Ignite-UX application中的一条。当然,如你这般丢三落四的作风,如果万一将这张光盘弄丢了,还可以从HP的网站上download Ignite-UX,网站的地址是:http://www.software.hp.com/,通过Network & System administration超链接,就可以看到Ignite-UX了。”
    “那么,我下载下来以后,怎么安装呢?”
    “下载以后,一般是以.tar作为后缀名的Ignit-UX文件,此时你可以用tar命令对其解压缩。至于怎么使用tar命令,等下会说到。解压缩以后,就可以用你熟悉的swinstall命令安装这个软件包了。安装完成以后,就可以在/opt/ignite/bin目录下看到make_tape_recovery这条命令了。看到这条命令,就意味着你已经可以使用这条命令来备份系统了。”
    “这条命令怎么使用呢?”
    “早知道你会问,所以早就给你准备好资料了。”一边说我一边从资料家里拿了一份关于make_tape_recovery命令的格式和简单说明给管理员。
 
make_tape_recovery命令的格式和简单说明
#/opt/ignite/bin/make_tape_recovery [ -AprvC] [-d destination] [-b boot_destination]
-A : 指定要备份整个root disk /
-p : 预览备份过程,并不创建 Bootable DDS Tape
 a. 确认 /var/opt/ignite/recovery/mkrec.append 文件
 b. 创建 /var/opt/ignite/recovery/arch.include 文件
-r : 使用 -p 选项后,可以用该选项创建 Bootable DDS Tape
 a. 该选项可以识别 /var/opt/ignite/recovery/arch.include 文件
-v : 用于显示备份过程的提示信息
-d : 指定DDS 的设备文件名 ( default: /dev/rmt/0mn )
-b : 指定系统备份过程中,用到的临时文件(default: /var/tmp/uxinstlf.recovery。该文件大小为 32M,也就是说,使用make_tape_recovery命令对系统进行备份,如果不是用-b的参数,需要的最小var空间至少是32M。所以对系统进行make_recovery 时,要注意 /var 文件系统的大小,当 /var 文件系统大小不足时,可用如下命令对系统进行备份:#make_tape_recovery -A -C -b /tmp/uxinstall.recovery)
-C : 创建反映系统当前状态的文件: /var/opt/ignite/recovery/makrec.last,如果该文件存在,那么可以用 check_recovery 命令
一点说明:make_tape_recovery是HP-UX较新的版本中所带的命令,而较老的HP-UX版本中,所带的命令是make_recovery,其用法和make_tape_recovery一样。
管理员看到这份文档,有些茫然的问:“能不能再给我讲解一下啊。看到这么多内容,头都大了。”
我笑了笑:“这说明你还不喜欢UNIX里面命令的格式和说明。咱们先来看看格式。众所周知,‘#’表明用户的权限是管理员的权限。那么,#/opt/ignite/bin/make_tape_recovery的含义应该是很清楚的,就是root用户在执行/opt/ignite/bin目录下的make_tape_recovery命令。而‘[]’里面的一些参数,表明的是可选的参数,就是说你在执行make_tape_recovery这条命令的时候,可以带上这些参数。而且,可选的含义也包含了,你也可以不带这些参数。”
    此时服务员端了一杯新冲的香草咖啡过来,并礼貌的放在前面的桌子上请我慢用。我用勺子搅拌了一下,继续说:
    “你用man查看某条命令的用法的时候,就常常会看到这样的说明格式。一定要习惯它,这样会带给你很快的阅读速度。了解这些以后,你就可以根据自己的需求来使用make_tape_recovery命令给你的系统作备份了。”
    说着,我又从资料袋中拿了一份材料给管理员。
 
使用make_tape_recovery备份系统root disk的常用方式
1. 创建“最小”OS的bootable DDS tape (default 设备文件: /dev/rmt/0mn )
#/opt/ignite/bin/make_tape_recovery
2. 创建“最小”OS的bootable DDS tape到/dev/rmt/c0t1d1 (设备文件: /dev/rmt/c0t1d1BESTn )
#/opt/ignite/bin/make_tape_recovery -d /dev/rmt/c0t1d1BESTn
3. 先预览,再创建bootable DDS tape
#/opt/ignite/bin/make_tape_recovery -p
#vi /var/opt/ignite/recovery/arch.include (当然也可以用more命令来查看)
#/opt/ignite/bin/make_tape_recovery -r
4. 备份整个root disk
#/opt/ignite/bin/make_tape_recovery -A
5. 备份整个root disk,并生成反映系统当前状况的文件(/var/opt/ignite/recovery/makrec.last)
#/opt/ignite/bin/make_tape_recovery -C -A
6. 备份整个root disk,并在备份的过程中显示提示信息
#/opt/ignite/bin/make_tape_recovery -Av
 
    管理员看了看这份文档,有些如获至宝的对我说:“还是这份文档好,让人一看就知道应该怎么操作。”
    “这份算是工程师们常常用到的经验文档吧,其实,还是上面那个让你头晕的详细说明文档更能在关键时刻帮你学会如何去看文档。copyutil命令和make_tape_recovery命令一样,备份的磁带也是可启动的。不过,因为make_tape_recovery命令更加灵活强大,所以实际上,目前很少使用copyutil命令来备份了。这份资料你可以自己看看。”
 
使用copyutil备份系统root disk
1. 启动“copyutil”
从CD或者是DVD启动,进入ISL
BOOT_ADMIN>sea (search命令的缩写,目的是查找光驱的地址)
BOOT_ADMIN>bo p2 (boot命令的缩写,假设找到的光驱地址是p2)
在ISL下看看copyutil命令的相关信息
ISL>ode copyutil
执行copyutil命令
ISL_CMD>copyutil
  Please wait while scan device bussess…… (系统会开始查找硬件设备)
       TY Indx Path  Product ID     Bus Size              Rev
D   0      16/5.6.0 SEAGATEST31230N disk drive        SCSI 1.0 GB        HPM4
D   1      16/5.5.0 SEAGATEST31230N disk drive        SCSI 1.0 GB        HPM4
T   2      16/5.0.0 HPC1504[X]/HPC1521B DDS tape     SCSI  n/a          1009
  从这个图中,我们可以看到系统找到了两个硬盘,和一个磁带机
2. 备份系统硬盘上的所有数据
COPYUTIL>backup
Enter the disk index ([q]/?):0 (我们要备份boot disk,而通过上图我们知道,此硬盘的路径为0)
Enter the Tape index ([q]/?):2 (通过上图我们也可以知道,磁带机的路径为2)
Use data compression?(y/[n])?y
When backup finished, system will show: DONE!
COPYUTIL>exit
3. 恢复数据到指定的系统硬盘上
COPYUTIL> restore
Enter the Tape index ([q]/?): 2
Enter the disk index  ([q]/?): 0
Use data compression? (y/[n])? Y
After system display:  Restored Successful, that means restore is finished!
COPYUTIL> exit
 
    需要注意的是:和make_tape_recovery备份的磁带一样,使用copyutil命令备份的磁带,也是带启动的!
 
    管理员看了看,说:“copyutil这条命令的似乎没有make_tape_recovery那么灵活,没有更多的参数可以让用户选择。”
    “是的,这或许也是copyutil这条命令目前很少用到的原因之一。目前对于大多数管理员来说,他们进行系统全备份,主要还是使用的make_tape_recovery命令。当然了,就如我们开头讨论过的那些备份策略,除了做全备份以外,定时作增量备份也是非常重要而且有必要的。事实上,就频率来说,我们更多的是使用增量备份。进行增量备份的时候,我们有不少命令可以选择,比如fbackup、tar、cpio、dump、vxdump。使用什么命令,可以根据需要和习惯自己来选择。”
    “原来有这么多命令可以选择啊!”管理员惊讶的说,“那么,你能否给我介绍介绍这些命令的使用方法呢?好几个命令,我都还没有用过呢!”
    “嗯,我们就从你熟悉的开始吧。tar命令你肯定使用过,那么我们就先来看看它的用法吧。”
 
tar命令的常用法
 #tar [参数] [文件]
 参数说明:
c 创建一个新的备份,覆盖已存在的任何目标文件。 
x 从备份介质中释放文件。 
t 列出备份介质中的内容。 
v 显示每个被处理的文件名。 
f 备份到指定的设备上。 
u 如果一些文件备份中没有或者经过修改以后,向备份文件中追加文件。
1. 查看磁带中的目录
#tar tvf /dev/st0
2. 查看磁带中的目录,并输出到一个文件中
#tar tvf /dev/st0 > st_list
3. 备份档案
#tar cvf /dev/st0 /etc
#tar cvf /dev/st0 /etc /home /etc/smb.conf
4. 备份一个现有的tar文件到磁带中
#tar -A test.tar -vf /dev/st0
5. 解压缩现有的tar文件
#tar xvf test.tar
6. 按指定的文件内容解压缩磁带中的相应文件
#tar -T st_list -xvf /dev/st0
7. 解压缩磁带中的文件到指定的目录当中
#tar xvf /dev/st0 /var
8. 增加个别文件到磁带后面
#tar -r /etc/hosts /etc/passwd /etc/shadow -vf /dev/st0
 
    “原来tar命令还有这么多用法,看来以后工作中可得好好利用它了!”
    “是的,灵活的运用tar命令,可以有效的提高工作效率。相对tar命令而言,cpio命令目前已经很少有人经常使用它了。而在实际的备份当中,除了使用make_tape_recovery来对系统作全备份以外,最常用到的命令其实是fbackup。”
    我一边拿了一份资料给管理员一边说:“这份文档是关于fbackup的一些用法的,你先看看。”
 
fbackup使用说明
fbackup常用方法一:
1. 进入单用户环境:
#shutdown -y 0
#mount -a
2. 对系统进行全备份
# fbackup –f  /dev/rmt/0m -0iv / -I /tmp/sysbk.index
参数说明:
-f : 设备文件名 ( such as DDS tape driver)
-i : 要包含的目录
-e: 不包含的目录
- I: 备份内容检索目录
- v: 备份内容详细列表
- 0 : 零级备份
3. 备份除了/var以外的所有目录和文件
# fbackup –f  /dev/rmt/0m -i / -e /var
4. 一些说明:
a) fbackup命令对当前“mounted”的文件系统进行备份
b) 备份级别可以是0~9,当采用0级备份,其实就是表示对系统进行全备份。而以后的级别,只是备份它的上一级被备份以后增加和修改的文件
fbackup常用方法二:
 1. # mkdir -p /tmp/fbackupfiles/index
# mkdir -p /tmp/fbackupfiles/log
 2. # touch /tmp/fbackupfiles/index/full.`date’+%y%m%d.%H:%M’`
 3. 进入单用户
#shutdown -y 0
#mount -a
4. 对系统进行全备份
# fbackup –0vi / -f /dev/rmt/0m \
  -I /tmp/fbackupfiles/index/full.`date’+%y%m%d.%H:%M’` \
 2 > /tmp/fbackupfiles/log/ full.`date’+%y%m%d.%H:%M’`
5. 简单说明:
通过这样的办法,可以知道备份需要多长时间
fbackup常用方法三:
 1. 进入单用户
#shutdown -y 0
#mount -a
 2. 对系统进行备份
  # fbackup –0uv  / -f /dev/rmt/0m \
  -g /tmp/fbackupfiles/mygraph \
  -I /tmp/fbackupfiles/index/full.`date’+%y%m%d.%H:%M’` \
  2 > /tmp/fbackupfiles/log/ full.`date’+%y%m%d.%H:%M’`
 3. 一些说明:
a) 文件 mygraph,包含需要备份的目录,以及不需要备份的目录,格式如下:
i  /users/data
i  /home/app
e  /oracle/sql
从这里,我们可以自主定义要备份那些,不要备份那些,灵活性很强
b) 参数u的说明:
当备份系统成功时,系统将更新 /var/adm/fbackupfiles/dates,这样,我们做增量备份的时候,系统就是通过此文件来判断,自从上次备份以后,系统增加和修改过那些文件,由此自动判断需要备份和不需要备份哪些文件。
fbackup常用方法四:
 如果我们进行远程备份,可以采取以下两种形式,
1. 登陆在本地系统时
# remsh  backup_sysname ”  fbackup  –f  DDS_sysname: /dev/rmt/0m  -0vi  / ”
2. 登陆在远程系统时
#fbackup  -f  backup_sysname: /dev/rmt/0m  -0vi  /
3. 简单说明
如果要进行远程备份,需要在两台系统间建立信任关系。
fbackup常用方法五:
 这种方法可以对系统进行压缩备份,但是一般不建议使用,因为会在一定程度上影响系统性能。
1. 采用压缩方式进行备份
# fbackup  -0vi  /dir  -f  - | compress | dd of=/dev/rmt/0m  obs=10k
2. 查看备份内容
# dd if=/dev/rmt/0m ibs=10k | uncompress | frecover -I - -f  -
3. 简单说明
“-” : 指向标准输出
 
    管理员目瞪口呆的看着这份文档,好不容易才挤出一句话:“fbackup的命令真灵活啊!”
    “是的,”我接着告诉他,“而且,使用fbackup备份有一个非常大的好处,就是能够对很好的备份大文件。而其他的备份命令,例如tar,cpio,dump,vxdump等备份命令,都不能备份‘体积’超过2G的单个文件,而fbackup命令就可以。如果你想要更加详细的学习fbackup命令,可以看看相应的man手册。这对理解fbackup命令肯定是有帮助的。”
    “嗯,我会花时间去好好看看fbackup命令的。那么,如果我要恢复,应该怎么做呢?make_tape_recovery备份的恢复我知道,只要让系统从磁带引导,就可以自动恢复了。tar命令备份以后的恢复方法,你给我的资料中也写了。那么fbackup备份的,是否也是只要自动从磁带引导就行了?”
    “问得好,既然备份了,当然是为了以后恢复作准备的,不然,如果不知道怎么恢复,备份了还不就等于没有备份。幸亏你问了这个问题,不然,我还真忘记了要将如何恢复用fbackup恢复的文件。”
    说着,我从资料中找到关于如何使用frevover命令的材料,递给管理员。
 
frecover命令的常用方法
frecover命令专门用来恢复采用fbackup备份的资料,其用法和fbackup一样,也是非常灵活的(既然fbackup备份命令这么灵活,如果恢复的命令不灵活,就会遇到麻烦了!)
frecover常用方法一:恢复磁带机上所有内容
1. 进入单用户
#shutdown -y 0
#mount -a
2. 恢复磁带机上所有数据
# frecover –rf  /dev/rmt/0m
-f:  设备文件名   
     -r:  恢复磁带上的所有数据
-I:  将磁带上文件索引存到指定的文件中
  # frecover –I /tmp/index.txt  -f  /dev/rmt/0m
frecover常用方法二:恢复某一目录
1. # frecover  -xi  /directory
2. # frecover  -x  -i  /dir1 -i  /dir2
3. # frecover  -xoi  /dir
-o: 覆盖/dir下已有的、相同名称的文件
4. # frecover  -xvXi  /dir
-X: 按磁带上目录恢复数据
5. # cd /tmp/local;  frecover –xvYi  /dir
-Y: 按磁带上文件名恢复数据
例如:
# cd  /tmp/local
# frecover –xvF  -i  /home/filename
恢复结果是/tmp/local/filename,而不是/home/filename
6. 从远程磁带机恢复数据到本地系统
# frecover –xi  /dir –f  remote_name : /dev/rmt/0m
7. 从本地磁带机恢复数据到远程系统
# remsh remote_name ”frecover –xi  /dir  -f  local_name: /dev/rmt/0m”
 
    “似乎参数都是和fbackup命令对应的。”管理员说。
    “是的,frecover命令是专门针对fbackup命令来使用的。参数对应至少对我们有好处,记忆起来容易多了。”
    “是的,如果这一对命令连参数都没有联系的话,记忆起来难度就大多了,而且肯定会容易混淆和遗忘。”
    我看了看时间,原来不知不觉已经将近中午了,于是我喝了一口快要冷掉的咖啡,对管理员说:
    “今天咱们再看看dd命令的使用,剩下的三条命令:cpio、dump、vxdump,因为平时用得不多,特别是dump和vxdump,那么这三条命令,咱们还是下次再学吧。你看,都快到中午了,球赛也快开始了……最后的一点时间,我想再对你说说平时备份中,需要备份到的一些系统信息。”
    管理员对我笑笑,说:“我也是这么想的,一来是想看球赛,二来也是因为今天的资料已经够多的了,我还得花些时间来好好研究研究这些命令。”
    “嗯,是的,学贵精不贵多。今天给你的这些资料,都是这几条备份命令的常见用法,如果想要研究得更深入一些,不要忘记了man手册是最丰富的资料库!而且,这几条命令,其实都是目前我们备份的时候用得最多的命令,熟练掌握了,完全可以满足绝大部分的备份需求。当然了,数据库备份需要用到其他的命令,或者可以通过其它的备份软件来实现,比如dp。这部分的内容,如果你需要的话,下次可以一起带给你。”
    “好的,先谢谢了。那么,平时我们备份,除了对系统作全备份和增量备份,对数据作备份以外,还需要对系统的那些信息做备份呢?”
    “我带来的最后一份资料,你看看。”
    说着,我将最后一份资料递给管理员。
 
备份一些重要的系统配置文件
除了对系统进行必要的全备份和增量备份以外,对系统的一些关键文件和信息单独的进行备份,也是非常有必要的,因为这将大大有利于系统的恢复。
1. 备份系统的swap信息
#swapinfo -t
2. 文件系统信息
#bdf
注意:如果某个文件系统的使用率达到了90%以上,则需要考虑将此文件系统中一些“垃圾”文件,或过大的日志文件删除或移走,否则可能影响系统的效能。
3. 系统I/O信息
#ioscan -fnCdisk
4. /etc/fstab
5. 系统逻辑卷配置文件
a) /etc/lvmconf/vg**.conf (如果此信息丢失了,可以用vgcfgbackup生成,vgcfgrestore可以恢复)
b) /etc/lvmtab
 
    “掌握好这些备份命令,根据自己的需求制定好备份计划,那么,在特殊情况下,也不用担心数据会丢失了。”
    “是的,作为管理员,我最担心的其实就是数据丢失了,因为数据丢失了,就找不回来了!但是每天做备份,岂不是要占用我很多时间?”
    “怎么会呢?你可以让系统自己去做备份,定时的去做。”
    “真的?怎么实现?”管理员迫不及待的问道。
    “好好去看看crontab命令吧,使用crontab -e,可以编辑HP-UX系统自动执行命令的文件,这样,你就可以利用这个特性,定时的来做备份了。平时自己都不需要去管它,而只要去看看备份是否成功完成就行了。”
    “嗯,这个我定要好好看看,不然,多占用我的时间啊,而且备份一般都是别人下班以后,岂不是要天天加班?”
    由于时间的关系,我和管理员就谈了这么多。走的时候他对我说,回去以后会好好学学这些命令的用法,至于更多的内容,下次再向我请教。
我知道,在日常的管理当中,他肯定还会遇到不少问题,因此,我也得为他准备一些如何解决这些问题的资料了。不然,到时候可能我自己都无法条理清晰的说出来……
阅读(2526) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册