备份的实现:
1)本机备份
1.1) 先确认本机需要备份的资料和需要把资料备份哪个硬盘,并在该硬盘上创建保存备份数据的目录:/disk/backup,并在该目录下设定各种服务(sshd/WWW/vsFTP/named/mysql/postgreSQL)备份的目录名
1.2)建立脚本,通过备份命令如cp,tar,cpio,dump等,
1.3)编辑crontab–e定时触发事件,
建立一个脚本文件
backupdaily.sh
#!/bin/bash
# 每日備份的简单script
# What is this program?
#
This program will backup the following messages:
#
1. MySQL data files ( /var/lib/mysql );
#
2. HTTP's CGI-directory ( /var/www/cgi-bin )
#
# HOW TO RUN THIS PROGRAM?
#
Just put the file into /etc/crontab job,
#
or put this file's link file to /etc/cron.daily!
#
# 0. Get the date messages and backup directory
day=`date +%Y-%m-%d`
basedir="/disk2/backup/daily"
# 1. MySQL
( PATH = /var/lib/mysql )
/etc/rc.d/init.d/mysqld stop
cd /var/lib
tar -zcf "$basedir"/mysql."$day".tar.gz mysql 2> /dev/null
/etc/rc.d/init.d/mysqld start
# 2. CGI ( PATH = /var/www/cgi-bin )
cd /var/www
tar -zcf "$basedir"/cgi-bin."$day".tar.gz cgi-bin 2> /dev/null
然后更改backupdaily.sh
的可执行的权限 chmod +x backupdaily.sh
编辑crontab –e定时触发事件,假如每天凌晨3点执行backupdaily.sh
01 3 * * *
/usr/sbin/ backupdaily.sh
重新启动service crond start
2)备份到远程服务器上(需要增加一台备份服务器Backup server)
2.1)用ssh的公私钥的方法将两台机器用不输入密码的方法就可以访问,在主服务器终端:#ssh-keygen–tdsa
2.2)将在你登陆用户目录的.ssh下生成*.pub的文件copy到server2上,把文件放在server2的.ssh下,并改名为authorized_keys,并赋予.ssh的权限700和.ssh/authorized_ke的权限600
2.3建立脚本,通过rsync命令备份数据
2.4)
编辑crontab–e定时触发事件
2.4.1)第一种方法,加入
*0 * * * * rsync –z –e ssh –delete /home 帐号@主机IP地址:/home/backup
(以上例子假设将server1的home目录与server2的/home/backup做同步
2.4.2)第二种方法:建立一个文件backup.sh
date=` date +%Y%m%d `
rsync -za -e ssh --delete --progress
/usr/local/mysql/data/nbw1 root@backserverIP:/DESTdir/$date
rsync -za -e ssh --delete --progress
/usr/local/mysql/data/vbb_db root@backserverIP:/DESTdir/$date
然后更改backup.sh的可执行的权限 chmod +x backup.sh
编辑crontab –e定时触发事件,假如每天凌晨3点执行backup.sh
01 3 * * *
/usr/sbin/backup.sh
重新启动service crond start
3)通过备份软件实现:
3.1)备份软件选择:Baculahttp://www.bacula.org/en/
backupPChttp://backuppc.sourceforge.net/
3.2)备份软件的安装和配置:(还需要完善)
用Bacula 备份数据,需要主控服务器、客户机和存储服务器作为主要架构。
3.2.1)Bacula的安装
使用Bacula作为备份软件需要有数据库。一般选mysql作为备份软件的数据库。所以在安装Bacula之前要先安装mysql。下载完mysql-.rpm、mysql-server-.rpm和mysql-devel-.rpm 三个rpm包后,采用rpm –ivh对它们逐个安装。装好mysql后,下载bacula-mysql-2.2.4-1.el5.i386.rpm、bacula-bat-2.2.4-1.el5.i386.rpm、bacula-gconsole-2.2.4-1.el5.i386.rpm和bacula-mtx-2.2.4-1.el5.i386.rpm等四个rpm包。然后逐个安装。再在客户机上安装/bacula-client-2.2.4-1.el5.i386.rpm。
3.2.2)Bacula的配置
Bacula 的三个主要的配置文件是Director的配置文件bacula-dir.conf、 Storage的配置文件bacula-sd.conf、Client的配置文件bacula-fd.conf。
3.数据恢复:数据恢复措施在整个备份制度中占有相当重要的位置,因为它关系到系统在数据丢弃或者数据遭到破坏后能否迅速的恢复。数据恢复措施包括:数据备份制度,数据恢复演习制度及其数据恢复
3.1 数据备份制度:为了预防数据丢失或者遭到破坏的发生,需要做数据备份。每天都需要严格按照已经制定好的备份计划和策略去做好备份的工作。
3.2 数据恢复演习制度
要能够保证数据恢复的可靠性,光进行备份是不够的,还要进行数据恢复演练。
每过一段时间,应进行一次数据恢复演习。可以利用淘汰的机器或多余的硬盘进行灾难模拟,以熟练数据恢复的操作过程,并检验所生成的数据恢复软盘和灾难恢复备份是否可靠。
3.3 数据恢复的解决方案:
1)服务器硬件问题处理,由于硬件问题导致服务器运行不稳定,需要及时修复或者更换新的配件确保服务器运行稳定.
2)服务器操作系统破坏和还原
(2.1)系统还原的考量有两种:A)主机需要在很短的时间内立刻就能够还原上线B)我的主机能够在查询到挂点的原因后才正式上线
(2.2)操作系统的还原:对操作系统所缺失的某种服务或者某些文件丢失的还原,或者系统重新安装配置
3)服务器数据破坏或丢失的恢复方法
准备好最近一次的数据备份数据资料,通过备份软件还原资料的提示进行下去,就可以将服务器数据恢复到最近的状态。
4)数据库被破坏处理方案:
不管使用哪种备份方法,如果需要恢复数据库,必须让服务器执行更新日志。当系统崩溃后需要恢复数据时,更新日志可以帮助恢复。这样在用备份文件恢复数据到备份时的状态后,我们可以通过运行更新日志中的查询再次运用备份后面的修改,这时可以将数据库中的表恢复到崩溃发生时的状态。
使用mysqldump备份和拷贝数据库时,mysqldump产生的输出可用作mysql的输入来重建数据库。 我们还可以将整个数据库导出到一个单独的文本文件中。在恢复期间,通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择。
如果使用直接拷贝数据库的备份和拷贝方法,可以使用这些cp、tar或cpio实用程序。当直接拷贝时,我们必须要保证表不在被使用。如果在拷贝过程中,服务器修改了拷贝中的表的内容,则备份失败。保证拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果不想关闭服务器,要在执行表检查的同时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件。
恢复过程包括备份文件和更新日志。备份文件可以将表恢复到实施备份时的状态,更新日志包含了用于进行这些修改的查询。恢复过程根据我们需要恢复的信息多少而不同。实际上,恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比对单个表运用要容易的多。
4. 灾难恢复方案
灾难恢复措施在整个备份制度中占有相当重要的地位。因为它关系到系统在经历灾难后能否迅速恢复。灾难恢复措施包括:灾难预防制度、灾难演习制度及灾难恢复。
为了预防灾难的发生,需要做灾难恢复备份。灾难恢复备份与一般数据备份不同的地方在于,它会自动备份系统的重要信息,利用备份的系统资料,才能快速恢复系统.在备份普通数据的同时就可以进行灾难恢复的备份,创建灾难恢复盘,灾难恢复时灾难恢复盘和灾难恢复备份一起使用去恢复系统. ⑵在系统发生重大变化后,建议重新生成灾难恢复软盘,并进行灾难恢复备份。如安装了新的数据库系统,或安装了新硬件等。
要能够保证灾难恢复的可靠性,光进行备份是不够的,还要进行灾难演练。
每过一段时间,应进行一次灾难演习。可以利用淘汰的机器或多余的硬盘进行灾难模拟,以熟练灾难恢复的操作过程,并检验所生成的灾难恢复软盘和灾难恢复备份是否可靠。
拥有完整的备份方案,并严格执行以上的备份措施,当您面对突如其来的灾难时,就可以应付自如。
灾难恢复的步骤非常简单:准备好最近一次的灾难恢复软盘和灾难恢复备份数据资料,插入恢复软盘,打开计算机电源,灾难恢复过程就开始了。根据系统提示进行下去,就可以将系统恢复到进行灾难恢复备份时的状态。再利用其他备份数据,就可以将服务器和其他计算机恢复到最近的状态。
|