在数据库表丢失或损坏的情况下,备份您的数据库是很重要的。假如发生系统崩溃,您肯定想能够将您的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑他们,这对表绝对不是件好事!备份数据库两个主要方法是用mysqldump程式或直接拷贝数据库文档(如用cp、cpio或tar等)。 每种方法都有其优缺点: mysqldump和MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且您必须采取措施确保没有客户正在修改您将拷贝的表。假如您想用文档系统备份来备份数据库,也会发生同样的问题:假如数据库表在文档系统备份过程中被修改,进入备份的表文档主语不一致的状态,而对以后的恢复表将失去意义。文档系统备份和直接拷贝文档的区别是对后者您完全控制了备份过程,这样您能采取措施确保服务器让表不受干扰。mysqldump比直接拷贝要慢些。 mysqldump生成能够移植到其他机器的文本文档,甚至那些有不同硬件结构的机器上。直接拷贝文档不能移植到其他机器上,除非您正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器 无关的,所以直接拷贝文档能够移植到具备不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文档必须以MyISAM格式表示,而不是ISAM格式。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
不管您使用哪种备份方法,假如您需要恢复数据库,有几个原则应该遵守,以确保最好的结果:
定期实施备份,建立一个计划并严格遵守
让服务器执行更新日志。当您在崩溃后需要恢复数据时,更新日志将帮助您。在您用备份文档恢复数据到备份时的状态后,您能够通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。 以文档系统备份的术语讲,数据库备份文档代表完全倾倒(full dump),而更新日志代表渐进倾倒(incremental dump)。
使用一种统一的和易理解的备份文档命名机制
象backup1、buckup2等不是特别有意义。当实施您的恢复时,您将浪费时间找出文档里是什么东西。您可能发觉用数据库名和日期构成备份文档名会很有用。例如:
%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02
%mysqldump menagerie >/usr/archives/mysql/menagerie.1999-10-02
您可能想在生成备份后压缩他们。备份一般都很大!您也需要让您的备份文档有过期期限以避免他们填满您的磁盘,就象您让您的日志文档过期那样。用文档系统备份备份您的备份文档。假如遇上了一个完全崩溃,不但清除了您的数据目录,也清除了包含您的数据库备份的磁盘驱动器,您将真正遇上了麻烦。也要备份您的更新日志。将您的备份文档放在不同于用于您的数据库的文档系统上。这将降低由于生成备份而填满包含数据目录的文档系统的可能性。
用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是您也能够将数据转移到同一台主机上的另一个服务器。
1.使用mysqldump备份和拷贝数据库
当您使用mysqldumo程式产生数据库备份文档时,缺省地,文档内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。 您能够将整个数据库倾倒进一个单独的文本文档中,如下:
%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02
输出文档的开头看起来象这样:
# MySQL Dump 6.0#
# Host: localhost Database: samp_db
#---------------------------------------
# Server version 3.23.2-alpha-log
## Table structure for table 'absence'#
CREATE TABLE absence( student_id int(10)
unsigned DEFAULT '0' NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (student_id,date));
## Dumping data for table 'absence'#
INSERT INTO absence VALUES (3,'1999-09-03');
INSERT INTO absence VALUES (5,'1999-09-03');
INSERT INTO absence VALUES (10,'1999-09-08');
......
文档剩下的部分有更多的INSERT和CREATE TABLE语句组成。
假如您想压缩备份,使用类似如下的命令:
%mysqldump samp_db │ gzip >/usr/archives/mysql/samp_db.1999-10-02.gz
假如您要一个庞大的数据库,输出文档也将很庞大,可能难于管理。假如您愿意,您能够在mysqldump命令行的数据库名后列出单独的表名来倾到他们的内容,这将倾倒文档分成较小、更易于管理的文档。下例显示如何将samp_db数据库的一些表倾到进分开的文档中:
%mysqldump samp_db student score event absence >grapbook.sql
%mysqldump samp_db member president >hist-league.sql
假如您生成准备用于定期刷新另一个数据库内容的备份文档,您可能想用--add-drop-table选项。这告诉服务器将DROP TABLE IF EXISTS语句写入备份文档,然后,当您取出备份文档并把他装载进第二个数据库时,假如表已存在,您不会得到一个错误。假如您倒出一个数据库以便能把数据库转移到另一个服务器,您甚至不必创建备份文档。要确保数据库存在于另一台主机,然后用管道倾倒数据库,这样mysql能直接读取mysqldump的输出。例如:您想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net,能够这样很容易做到:
%mysqladmin -h boa.snake.net create samp_db
%mysqldump samp_db │ mysql -h boa.snake.net samp_db
以后,假如您想再次刷新boa.snake.net上的数据库,跳过mysqladmin命令,但要对mysqldump加上--add-drop-table以避免的得到表已存在的错误:
%mysqldump --add-drop-table samp_db │ mysql -h boa.snake.net samp_db
mysqldump其他有用的选项包括:
--flush-logs 和 --lock-tables
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
MySQL数据库备份守则和方法
来源:互联网
作者:west263.com
时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
热点关注
- MySQL的字符串函数大全
- 动态配置并加密App.Confi
- 数据库操作实例--插入、
- VFP中用SPT访问SQL Serve
- 将MySQL数据导入到Sql Se
- MySQL数据的导出和导入工
- 在FreeBSD下安装mysql5的
- SQL Server 2000数据库中
- MySQL数据导入导出方法和
- SQL的访问控制
- Slaris10系统下编译安装a
- MySQL管理介绍
- MySQL导出导入命令的用例
- SQL Server连接失败错误
- 2007年百度招聘在线笔试
- 通过rpm包安装、配置及卸
- 在服务器上安装使用MySQL
- PHP/MySQL三日通-第一天
- PHP连接MYSQL的两种方法
- 妙用触发器有效管理MySQL
- 使用C连接Mysql
- MySQL5安装周详介绍(适用
- MySQL5新特点(存储过程)
- PHP/MySQL三日通-第二天
- MySQL密码忘记了,别害怕
- MySQL常用查询的例子
- Mysql字段长度
- 从MySQL导入导出大量数据
- MySQL数据库引擎快速指导
- 用批处理对MySQL进行数据
- MySQL和ASP.NET配合更强
- 备份和拷贝MYSQL数据库
- ASP.NET页面事件
- mysqld_multi单机启动多
- PHP/MySQL三日通-第一天
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD



