|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。 在实际事情中,按期备份数据库是一项极其主要的事变。当我们利用MySQL时,在数据库备份方面有很多选择的余地,而本文将向读者先容怎样利用MySQL的mysqldump来备份数据库。
1、数据备份的主要性
事情中,假如不测删除主要的文件大概目次的话,那了局可就惨了。特别是当误删除的数据触及主要的客户大概关头项目,而且这些数据没法容易从头创立的时分,那味道,不必我说你也能设想失掉。不巧的是,像如许的数据在公司情况中到处可见,比方发卖纪录、客户接洽体例,等等。
以是,在实际事情中,按期备份数据库是一项极其最需存眷的事的事变,不然便可能带来劫难性的成果。当我们利用MySQL时,在数据库备份方面有很多选择的余地。本文将向读者先容怎样利用MySQL的mysqldump来备份数据库。
2、关于mysqldump
MySQL本身供应了很多命令行工具,比方mysql工具能够用来与MySQL的数据库形式、数据、用户和设置变量举行交互,而mysqladmin工具则能够举行各类办理义务,另有就是上面将要先容的mysqldump。别的另有良多,不外那超越了本文的会商局限。工具mysqldump既能够用来备份数据库形式,还能够用来备份数据;使用它,我们不但能够对一个服务器上的一切数据库举行地毯式的备份,同时我们还能够选择性地备份某个数据库,乃至数据库中指定的某些表。
当在服务器上安装MySQL的时分,应修正体系路径以便使全局命令行能够会见各个客户程序。翻开终端窗口,并实行以下命令:
%>mysqldumpUsage:mysqldump[OPTIONS]database[tables]ORmysqldump[OPTIONS]
--databases[OPTIONS]DB1[DB2DB3...]ORmysqldump[OPTIONS]--all-databases[OPTIONS]
Formoreoptions,usemysqldump--help
这里给出了利用mysqldump程序的办法。举例来讲,若要备份一切数据库形式和数据至文件backup092210.sql的话,能够实行以下所示的命令:
%>mysqldump-uroot-p--all-databases>backup092210.sqlEnterpassword:
这里,为了可以会见一切数据库,我们必要一个root权限,以是这里必要在提醒符前面输出响应口令。别的,假如你是在开辟用的服务器上实习这些命令的话,无妨花一些工夫看看备份文件的内容。这时候您会看到一系列的SQL语句,先是删除各个表后从头创立的语句,然后是从头创立相干数据的语句。别的,因为下面的例子中我们对一切数据库举行备份,以是您还会发明,备份文件将创立每一个数据库(假如它还没有存在的话),然后经由过程USE命令切换到该数据库,进而创立与该数据库相干的表跟数据。
若要备份单个数据库,比方要备份名为wiki的数据库到一个名为wiki-backup092210.sql的文件中,我们可使用以下所示的命令:
%>mysqldump-uroot-pwiki>wiki-backup092210.sqlEnterpassword:
最初,若要备份数据库中名为users的表的话,比方要把它备份到名为wikiusers-backup092210.sql的文件中,我们可使用以下所示的命令:
%>mysqldump-uroot-pwikiusers>wikiusers-backup092210.sqlEnterpassword:
3、调剂备分内容
偶然候,我们大概只想备份数据库的形式,大概只想备份数据库的数据。为了备份数据库形式,能够向mysqldump传送参数--no-data,以下所示:
%>mysqldump-uroot-p--no-datawiki>wiki-backup092210.sql
为了只备份数据库的数据,能够向mysqldump利用参数--no-create-info,以下所示:
%>mysqldump-uroot-p--no-create-infowiki>wiki-backup092210.sql
4、怎样主动举行备份
关于后面所举的例子,仅必要大批的击键次数就可以实行mysqldump命令。但是,事情中要干的活另有良多,而且假如总是实行这些命令的话,那末生存就会变得太单调了。因而,我们能够想法使这些历程主动化,这时候我们能够借助cron工具来告竣我们的方针,这个工具在一切类UNIX操纵体系上都能找到。为了主动实行备份义务,我们必要新建一个准确定名的文件。比方nightly-backup.sh,详细命令以下所示:
#!/bin/shmysqldump-uroot-psecretwiki>/home/backup/sql/wiki-backup-`date+%m%d%Y`.sql
当我们实行这个剧本的时分,它会将wiki数据库备份到一个依照备份工夫定名的文件中,如wiki-backup-092210.sql。您必要注重一下这里的用户名root和口令secret是怎样传送给mysqldump的,行将它们分离放到选项-u和-p前面。从平安的角度讲,我们必需举行准确的权限设置。
接上去,我们将这个剧本供应交给cron,办法是利用crontab。为此,我们能够实行以下所示的命令:
%>crontab-e
这将翻开以后登任命户的crontab文件,假如该文件不存在的话就会主动新建一个。在这个文件中,我们能够增加以下内容,来确保天天上午3时运转该备份剧本:
03***/home/backup/scripts/nightly-backup.sh
假如您对crontab的语法很生疏的话,这里的参数大概让您摸不着思想。这里前五个参数分离对应于实行剧本的工夫,顺次为分、时、日、月和礼拜几。因而,要想在每礼拜二的4:45am实行剧本的话,可使用参数454**3。
拔出下面所示的一行内容后,保留文件,那末我们的义务就会入手下手依照给准时间调剂实行。必要注重的是,第二天早上必定要检察响应的目次,看看事变是不是统统一般。
5、别的备份计划
就像本文后面所说的那样,mysqldump只是MySQL浩瀚备份计划中的一个。别的,您还可使用MySQL的二进制日记文件举行增量备份,大概利用从MySQL主服务器中将数据复制到从服务器中。
6、小结
本文中,我们与读者一道创建了一个复杂的MySQL备份办理计划。假如您之前还未实行任何办理计划的话,无妨当即下手试一下。主要的是,这只必要消费您几分钟的工夫,我想这是很划得来的。
<Pstyle="TEXT-INDENT:2em">
即使对于MySQL的商业化的企业版来说,也没有高昂的许可证成本,当你将其与像甲骨文和微软之类的大型专有商业数据库比较的话。 |
|