网站备份
曾经有一个机会摆在我面前,我没有好好珍惜,如果上天再给我一次机会,我会说:我一定要备份,如果一定要给这个备份加一个保险,那就是多备一个。
丢失数据的经验很多人都有,可能是因为操作错误、硬盘损坏或者黑客光顾,总之,当你丢失了重要数据的那一刻,你或许会庆幸自己买了保险--备份。如果没有,那么你只能默哀了。找出多少理由来说明需要备份都是不为过的,如果你还是一个网站维护人员的话,那么备份就显得尤为重要。那么什么东西是需要备份的,用什么工具备份,备份在哪里,什么时候备份?这大概就是我们需要关注的关于备份的事项。
对于网站来说,硬件设备、数据、应用程序基本上是我们需要有后备的元素。首先是硬件,也就是硬件服务器,我们一般希望当一台服务器宕掉的时候,有另一台服务器可以顶上而不会影响网站的营运和服务,也就是所谓的主机备份。一般就是做集群,然后又分什么双机热备、双机互备、双机双工(哪来这么多概念呀?),方法有很多,唯一的目的就是希望即使有部分服务器不能提供服务了也不会影响整个网站的运行,直到坏掉的服务器重新投入工作。而服务器一般又会分为应用服务器和数据库服务器,所以相应的有应用服务器集群和数据库服务器集群,这方面一个藏袍在分析LiveJournal网站架构时有比较深入的阐述,其他的实现集群的方法也有很多。
数据备份简单理解就是在别的地方再放一份数据。在服务器上需要备份的数据可能是网站的一些资源文件、数据库、应用程序、email,数据库如果是mysql可以直接使用musqldump备份成文件,然后跟其他文件一起做备份。即使有版本管理系统并且进行了night build,我们也需要备份一份能正常运行的完善的系统,因为除了代码之外应用程序可能还包含了许多和生产环境相关的配置。从备份手段方面讲,最简单就是使用诸如tar这样的程序,打包压缩之后转存到其他的存储介质上,还可以使用ssh/scp进行跨服务器备份,将数据定期从一台机器搬到另一台机器。第三种方法是将数据备份到其他介质,比如使用磁带机进行备份。还有就是使用RAID进行镜像备份,RAID功能强大也比较复杂。当然,备份手段非常多,但是还有其他方面需要考虑,比如性能,备份很多时候是非常消耗系统资源的,因此我们尽量在系统负载较低的时候备份,并且应该确定整个备份过程不要持续的过长。
