Linux网络备份MySQL的方法,通过Linux操作系统引导CD排除服务器故障

系统崩溃引起的服务中断会给用户带来巨大的经济损失,但如果使用合适的工具则可以尽快恢复系统,把损失降到最低限度。尽管Linux系统以稳定可靠著称,但由于硬件问题有时仍会崩溃/或无法引。针对这一问题,最好的解决办法就是使用Linux系统引导CD。 

笔者是一个中小Linux网站的管理员,系统构架是:RHEL 4.0 + PHP 4.3 +
Mysql 4.03 +Apache
1.23。日均IP访问量在200次,一个典型的Linux小型网站。由于是小型网站,所以没有经费使用磁带机进行系统备份,使用的DVD光盘刻录机+网络硬盘。随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,PC端使用Windows
9X/2000/XP。

为了方便读者,笔者在下面列出了安装Red Hat Linux 8.0的最必须步骤。

一、 本地备份

为安装过程作笔记

使用 mysqldump进行备份非常简单,如果要备份数据库” phpbb_db_backup
”,使用命令:
#mysqldump –u -p phpbb_db_backup > /usr/backups/mysql/
phpbb_db_backup.2005.5.6 
还可以使用gzip命令对备份文件进行压缩:
#mysqldump phpbb_db_backup | gzip > /usr/backups/mysql/
phpbb_db_backup.2005.5.6。gz
恢复数据使用命令:
#mysql –u -p phpbb_db_backup
</usr/backups/mysql/phpbb_db_backup.2005-5-6 

在Red Hat
Linux系统典型安装完成后,系统会提示用户是否需要建立引导盘。如果用户愿意为日后系统崩溃保留恢复手段的话,建议不要跳过这一步骤。如果用户跳过了这一步骤,也可以在系统命令行运行
mkbootdisk 来建立引导盘。

二、 备份数据到DVD盘片

MkCDrec建立可恢复系统的只读CD)命令是Linux系统中建立可引导灾难恢复CD的工具。它支持多数文件系统、RAID廉价冗余磁盘阵列)以及可选的工具,可以用来进行系统故障修复。在这些工具中,有分区管理工具、内存检测工具、数据恢复工具等等。此外,mkCDrec支持目前发布的大多数Linux系统版本,包括Red
Hat 8.0以及 Mandrake 9 。

随着MYSQL数据量的增大,使用传统CD—R来备份硬盘并不现实,采用CD—RW分卷制作实在太麻烦、磁带机对于中小企业又过于昂贵。另外各个应用程序的复杂度日与剧增,
处理的数据量也都相当庞大,Linux用户常常遇到的问题就是 :
有什么办法可以经济快捷的对数据做备份与保存。随着DVD刻录机和盘片的价格迅速降低,使用DVD刻录机用来备份Linux操作系统非常明智的。
1、安装
下面以IDE接口的内置刻录设备为例,介绍在Linux环境中使用DVD刻录机。Linux
需要将IDE接口的刻录设备虚拟为SCSI设备才能进行DVD刻录。2.4以上内核Linux发行版本包含了已编译进内核的
SCSI
仿真,所以只要对启动文件作一些小改动;USB或1394(FireWire)接口的外置刻录机就简单多了。
把DVD刻录机设备接入计算机第二个IDE接口(dev/hdc),开启电源。假设系统用Grub启动,用文本编辑器打开/boot/grub/grub.conf,找到以“kernel”开头的一行,在这行内容的未尾加入“hdc=ide-scsi”,例如:“kernel
/vmlinuz-2.4.20-8  ro root=LABEL=/ hdc=ide-scsi”。
2、安装刻录软件
DVD+RW-Tools
:一个包含有用于刻录DVD和映像的软件工具包,包括:Growisofs和dvd+rw-format。官方站点:
, 
CDRDAO
:DAO即是Disk-At-Once(实时刻录),是一种在烧录过程中没有音轨间的两秒缓冲的刻录方法。它可以对磁盘的布局和磁道进行完全的控制,这一功能在刻录多来源的盘片相当有帮助。

开始阶段

cdrtools:包含了一套用于CD、DVD刻录的工具。Growisofs在创建映像时会使用这个软件包中的mkisofs工具,并且用户可以使用readcd来从一个现有的DVD上创建ISO映像。此外,Cdrecord应用程序可被用于扫描连接系统上的CD/DVD刻录机,并且可以使用它来将ISO映像刻录到CD—R(W)光盘上。通常大多数Linux版本包括这个软件,也可以下载使用:html”> 

建立可引导恢复CD的第一步是下载mkCDrec。在笔者写这篇文章的时候,该软件的0.6.7版本已经发表且可以下载。笔者下载mkCDrec_v0.6.7.tar.gz
这个文件包后,放在/home/slowe目录中。此外用户还可以下载其它可选的mkCDrec工具包,其中包括很多有用的工具,用户可以把这些工具也一起烧录到引导CD中。上述工具包的版本号也是0.6.7。CD制作开始的时候,笔者提醒您还要拥有Linux系统的root权限,才能执行以下的工作。

dvdrecord:命令行下的DVD刻录软件。命令行下的DVD刻录可用于很多种情形,比如当我们通过远程访问主机时,机器上的图形界面无法启动时,或者机器由于某些原因无法启动GUI时。此外,在完成一些备份等自动重复的功能时,也需要使用命令行工具。 
以上介绍了一下必须的软件和相关下载网址,安装过程比较简单,这里就不赘述了。

1、cd /home/slowe 切换到mkCDrec下载的目录中。

3、命令行下刻录

2、tar zxvf mkCDrec_v0.6.7.tar.gz 解压缩mkCDrec包。

使用DVD+RW-Tools 进行刻录工作
growisofs是DVD+RW-Tools一个工具,Growlsofs访问其刻录设备使用的是一种不同的方式。它使用/dev下面的Unix路径来连接刻录机。不同的系统和发行版中用于刻录机的路径不尽相同,所以最好的方法是查看发行版中的帮助。在一些系统中,一个名为/dev/dvd的软链接会被设置成指向可用的DVD刻录机,在本文中,使用/dev/dvd来指定刻录机,如果系统中路径设置不同,那么请使用合适的路径将其取代。
(1)格式化可读写DVD光盘
可以使用DVD+RW-Tools工具包中提供的dvd十rw—format命令。它有两种格式化DVD光盘的方式:快速模式、完全模式。快速模式:
#dvd+rw-format -blank /dev/dvd
完全模式:
#dvd+rw-format -blank=full /dev/dvd

3、cd mkcdrec mkCDrec文件解压缩后,进入其目录。

(2)将文件存储至DVD刻录盘:
DVD和普通的光盘一样,使用的也是ISO9660文件系统,以及同样的通用扩展(Joliet和RockRidge)。Growlsofs提供了一种简单的将文件或目录存储至DVD刻录盘的方法。先用调用mkisofs工具来创建一个映像,并且无需在将该映像存储至硬盘之前就刻录下来。其基本的命令格式如下:
#growisofs -dvd-compat -Z /dev/dvd -J -R /path/to/home/cao
此命令将/path/to/home/cao目录下的文件制作一个映像并且刻录到的DVD光盘。

4、tar zxvf /home/slowe/mkCDrec_v0.6.7_utils.tar.gz 解压缩工具包。

二、网络备份

5、make test
运行一个脚本以确定用户系统中是否有mkCDrecs所必须的工具。点击这里查看该脚本输出的命令示例。

将MYSQL数据放在一台计算机上是不安全的,所以应当把数据备份到局域网中其他计算机中。假设Mysql服务器IP地址是:192.168.1.3。局域网使用Linux的远程计算机IP地址是192.168.1.17;局域网使用Windows的远程计算机IP地址是192.168.1.18。网络拓扑见图1.
 

如果上面的脚本输出显示用户的服务器有问题,那么必须加以解决才能继续后面的工作。示例中的Nasmc
错误是指在用户系统中没有找到一个汇编编译器。笔者后来在这里下载了这一编译器,并通过执行如下命令进行安装:

  1. 通过NFS网络备份
    类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。linux系统NFS服务端配置方法如下:
       (1)修改 /etc/exports,增加共享目录
    /export/home/sunky 192.168.1.17(rw)
    /export/home/sunky1 *(rw)
    /export/home/sunky2 linux-client(rw) 
       注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机/etc/hosts文件里增加linux-client主机ip定义。格式如下:
       192.168.1.17 linux-client
       若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs
    -rv也可以达到同样的效果。linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享。这里我们假设192.168.1.17是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。
    把MYSQL数据备份到使用Linux的远程计算机需要在两端都安装NFS协议(Network
    File
    System),远程NFS计算机安装NFS协议后还要修改配置文件:/etc/exports,加入一行:
    /usr/backups/mysql/ 192.168.1.17 (rw, no_root_squash)
    表示将/usr/backups/mysql/目录共享。这个目录具有远程root用户读写权限。保存NFS配置文件,然后使用命令:
    #exportfs -a –r
    然后重新启动NFS服务:
    #service nfsd start
    远程计算机设定后,在MYSQL服务器/mnt 目录下建立一个backup_share目录:
    #mkdir /mnt/backup_share
    将远程的Linux计算机的/usr/backups/mysql/目录挂载到MYSQL服务器的/mnt/backup_share目录下:
    # mount -t nfs 192.168.1.17:/usr/backups/mysql /mnt/backup_share
    将目录挂载进来后,只要进入/mnt/backup_share
    目录,就等于到了IP地址:192.168.1.7那部NFS 计算机的/usr/backups/mysql
    目录中。下面使用mysqldump把“phpbb_db_backup”备份到远程计算机:
    # mysqldump phpbb_db_backup > /mnt/backup_share/
    phpbb_db_backup.2005-5-6

  2. 通过Samba网络备份
    Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到www.samba.org网站下载samba软件包,现在最新的版本是3.0.10版。然后Windows计算机上建立一个目录(/arc)并且共享,赋予其读写权限。同样在MYSQL服务器/mnt
    目录下建立一个backup_share1目录,然后进行挂载:
    # mount -t smbfs -o username=cjh, password=XXXX //192.168.1.18/arc
    /mnt/backup_share
    最后使用命令进行备份:
    # mysqldump phpbb_db_backup > /mnt/backup_share/
    phpbb_db_backup.2005-5-6

rpm –install nasm-0.98-8.i386.rpm

4.0 + PHP 4.3 + Mysql 4.03 +Apache
1.23。日均IP访问量在200次,一个典型的Linux小型网站。…

系统恢复引导CD中要有一个能够工作的操作系统内核,通过该内核进行引导并进入Linux系统。MkCDrec程序所带的Linux内核为2.4.18。

示例中的下一个错误是指明系统内部还缺少一个CD刻录工具。由于笔者在Linux系统中并没有CD刻录软件,因为笔者打算在Windows系统中进行CD烧录。可以通过更改配置文件来忽略对Linux系统下CD刻录软件的检查。请使用pico
Config.sh命令来编辑Config.sh文件,将BURNCDR=y改写为BURNCDR=n。

在安装nasm编译器以及修改了配置文件后,就可以再一次运行 make test
来了解是否还有错误。在笔者的操作过程中,排除上述问题后就没再遇到麻烦。

下面的操作大多是通过菜单完成的,在Listing B.中可以看到示例菜单。

选项1是建立一个带有紧急恢复工具的可引导CD。但不为用户的系统保留任何数据。

选项2建立带有紧急修复工具的可引导CD,同时还将备份用户的系统信息。千万不要把选项2所做好的CD随处乱丢,因为利用该CD可以对存储的数据进行无限制的访问。这一选项建立一个或多个ISO镜像文件,并存储在/tmp/backup目录中。

选项3与选项2的功能类似,除了ISO镜像不是存储在/tmp/backup目录中之外,其它没有区别。

选项4通过磁带机进行系统信息备份,建立同样的系统可引导CD。

举例来说,如果选择1选项,那么可以将生产的ISO镜像文件拷贝到Windows系统中并刻录在CD上。如果用户希望备份系统文件和配置文件到CD,那么可以选择选项2和3,但如果从时间和工作量考虑,选项1是不错的选择。它将提供用户可以引导并可以进行恢复尝试的工具,但该选项就不提供对当前Linux系统的重要数据备份功能。

如果选择1选项,那么mkCDrec脚本则开始工作。这一过程要花些时间,因为该工具要为制作整张CD准备所有的内容,包括:引导加载器boot
loader)、内核以及急救工具。Listing C中告诉用户都保存了哪些内容。

烧录CD

如果您并不十分熟悉Linux或对操作系统如何工作也不大了解,那么阅读以下内容会有些困难。用户所要做得是使用CD刻录软件来烧制一张包含Linux系统内核及完整工具集的可引导CD。 

在笔者的Windows系统中安装了Roxio Easy CD Creator 和 Ahead Nero
CD,这两个CD刻录软件包都相当好用,任选一个就能够完成CD刻录工作。

需要提醒用户,当可引导CD制作完毕后,必须测试一下看是否能够正常引导系统,否则在系统出现故障的紧急情况下,却突然发现CD无法引导那就麻烦大了。

另外在用CD启动系统之前,要进入Linux服务器的Bios设置程序查看一下是否配置成支持CD引导。在确定后才能开始测试你制作好的引导CD。装入CD启动系统后,你将看到mkCDrec的特殊引导界面图A),该界面将逐步提升用户如何操作完成

图A:mkCDrec 引导界面

当系统完成从CD引导后,您需要注意几个事情。首先,您要从RAM
disk内存虚拟成的磁盘)中运行linux
核心系统bare-bones)。其二,要把mkCDrec引导CD mount 成/cdrom。

户还需要把任何linux服务器中的设备mount装载)起来,您可以通过运行
cfdisk磁盘配置命令)来获取设备信息。该命令将显示用户系统中的设备清单,请参加图B。

图B:Cfdisk 工具

为了装载/root)分区,笔者运行命令如下:

mount -t ext2 /dev/sda2 /mnt/local

命令运行后,装载点mount
point)就指向了linux服务器的根目录root),只要切换到/mnt/local目录就可以浏览文件系统。装载文件系统是非常重要的,万一引导装载器boot
loader)损坏,您还可以进行修复或把数据转移到其它服务器上。

还可以做什么?

当使用mkCDrec
CD进行引导后,用户可以作许多事情。有几项比较重要,如果用户选择建立系统备份,那么用户可以执行/etc/recovery/start-restore.sh
命令,该命令运行后将提示用户完整的系统恢复过程。请注意如果您在建立引导CD时没有进行备份,那么将会被提示没有数据可以进行恢复。

/etc/recovery目录中包含了许多工具可以用来进行系统恢复或者修复崩溃的服务器。在mkCDrec的Web站点上有详细的说明

如果用户下载了mcCDrec的工具并正确安装,那么它们将位于/cdrom/utilities
目录中,比如 parted 一个分区编辑工具)、 memtest 一个内存检测工具)、
还有e2salvage 从ext2分区进行数据恢复的工具)。 用户可以访问mcCDrec网站。

系统崩溃算是生活中无法避免的事情,但是拥有合适的工具可以尽快恢复系统并最大限度地降低损失。运用mkCDrec
建立的系统恢复引导CD将在您最需要帮助的时候发挥巨大作用,由于具备完整的系统备份功能,mkCDrec是任何Linux系统管理员进行灾难恢复的得力工具包。

您正在阅读:通过Linux操作系统引导CD排除服务器故障

  1. IBM软件欲融入Amazon EC2云计算平台
  2. 数据库服务器安全权限的控制策略
  3. 网管秘笈:如何轻松搞定服务器管理

发表评论

电子邮件地址不会被公开。 必填项已用*标注