Heim >Datenbank >MySQL-Tutorial >在Linux异构网络中备份MYSQL数据库(图)_MySQL

在Linux异构网络中备份MYSQL数据库(图)_MySQL

WBOY
WBOYOriginal
2016-06-01 14:11:43857Durchsuche

  笔者是一个中小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。下面我们就讲讲在Linux异构网络备份MYSQL。
  
  一、 本地备份
  
  Mysql数据库的常用备份方法是使用使用实用程序mysqldump, 其命令格式如下:
  
  # mysqldump [options] database [tables]
  
  其参数的含义为:
  
  options:代表mysqldump的选项,通过mysqldump –help可以查到。
  
  database: 代表将要备份的数据库
  
  tables:  代表将要备份的表,如果不指定任何表,则备份整个数据库。
  
  使用 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   
  二、 备份数据到DVD盘片
  
  随着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。官方站点:http://fy.chalmers.se/~appro/linux/DVD+RW/,
  
  CDRDAO :DAO即是Disk-At-Once(实时刻录),是一种在烧录过程中没有音轨间的两秒缓冲的刻录方法。它可以对磁盘的布局和磁道进行完全的控制,这一功能在刻录多来源的盘片相当有帮助。
  
  cdrtools:包含了一套用于CD、DVD刻录的工具。Growisofs在创建映像时会使用这个软件包中的mkisofs工具,并且用户可以使用readcd来从一个现有的DVD上创建ISO映像。此外,Cdrecord应用程序可被用于扫描连接系统上的CD/DVD刻录机,并且可以使用它来将ISO映像刻录到CD—R(W)光盘上。通常大多数Linux版本包括这个软件,也可以下载使用:http://freshmeat.net/redir/cdrecord/35795/url_homepage/cdrecord.html
  
  dvdrecord:命令行下的DVD刻录软件。命令行下的DVD刻录可用于很多种情形,比如当我们通过远程访问主机时,机器上的图形界面无法启动时,或者机器由于某些原因无法启动GUI时。此外,在完成一些备份等自动重复的功能时,也需要使用命令行工具。
  
  以上介绍了一下必须的软件和相关下载网址,安装过程比较简单,这里就不赘述了。
  
  3、命令行下刻录
  
  使用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
  
  (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光盘。
  
  二、网络备份
  
  将MYSQL数据放在一台计算机上是不安全的,所以应当把数据备份到局域网中其他计算机中。假设Mysql服务器IP地址是:192.168.1.3。局域网使用Linux的远程计算机IP地址是192.168.1.17;局域网使用Windows的远程计算机IP地址是192.168.1.18。网络拓扑见图1.
  
  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协议(NetworkFile 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
  
  Mysql是一个功能强大的数据库,需要在实践中多练习才能熟练掌握,本文介绍Mysql的网络备份方法。希望对大家有所帮助。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn