|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
需要处理因此带来的更多的支持工作,这有可能会带来成本上的提高。在这种情况下,一些MySQL学习教程发行商可能倾向于选择别的开源数据库,例如遵循BSD授权的PostgreSQL。mysql|备份|数据|数据库1利用mysqldump备份和拷贝数据库
当你利用mysqldumo程序发生数据库备份文件时,缺省地,文件内容包括创立正在倾倒的表的CREATE语句和包括表中行数据的INSERT语句。换句话说,mysqldump发生的输入可在今后用作mysql的输出来重修数据库。
你能够将全部数据库倾倒进一个独自的文本文件中,以下:
%mysqldumpsamp_db>/usr/archives/mysql/samp_db.1999-10-02
输入文件的开首看起来象如许:
#MySQLDump6.0
#
#Host:localhostDatabase:samp_db
#---------------------------------------
#Serverversion3.23.2-alpha-log
#
#Tablestructurefortableabsence
#
CREATETABLEabsence(
student_idint(10)unsignedDEFAULT0NOTNULL,
datedateDEFAULT0000-00-00NOTNULL,
PRIMARYKEY(student_id,date)
);
#
#Dumpingdatafortableabsence
#
INSERTINTOabsenceVALUES(3,1999-09-03);
INSERTINTOabsenceVALUES(5,1999-09-03);
INSERTINTOabsenceVALUES(10,1999-09-08);
......
文件剩下的部分有更多的INSERT和CREATETABLE语句构成。
假如你想紧缩备份,利用相似以下的命令:
%mysqldumpsamp_db|gzip>/usr/archives/mysql/samp_db.1999-10-02.gz
假如你要一个复杂的数据库,输入文件也将很复杂,大概难于办理。假如你乐意,你能够在mysqldump命令行的数据库名后列出独自的表名来倾到它们的内容,这将倾倒文件分红较小、更容易于办理的文件。下例显现怎样将samp_db数据库的一些表倾到进分隔的文件中:
%mysqldumpsamp_dbstudentscoreeventabsence>grapbook.sql
%mysqldumpsamp_dbmemberpresident>hist-league.sql
假如你天生筹办用于按期革新另外一个数据库内容的备份文件,你大概想用--add-drop-table选项。这告知服务器将DROPTABLEIFEXISTS语句写进备份文件,然后,当你掏出备份文件并把它装载进第二个数据库时,假如表已存在,你不会失掉一个毛病。
假如你倒出一个数据库以便能把数据库转移到另外一个服务器,你乃至不用创立备份文件。要包管数据库存在于另外一台主机,然后用管道倾倒数据库,如许mysql能间接读取mysqldump的输入。比方:你想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net,能够如许很简单做到:
%mysqladmin-hboa.snake.netcreatesamp_db
%mysqldumpsamp_db|mysql-hboa.snake.netsamp_db
今后,假如你想再次革新boa.snake.net上的数据库,跳过mysqladmin命令,但要对mysqldump加上--add-drop-table以免的失掉表已存在的毛病:
%mysqldump--add-drop-tablesamp_db|mysql-hboa.snake.netsamp_db
mysqldump别的有效的选项包含:
--flush-logs和--lock-tables组合将对你的数据库反省点有匡助。--lock-tables锁定你正在倾倒的一切表,而--flush-logs封闭偏重新翻开更新日记文件,新的更新日记将只包含从备份点起的修正数据库的查询。这将设置你的更新日记反省点位备份工夫。(但是假如你有必要实行个更新的客户,锁定一切表对备份时代的客户会见不是件功德。)
假如你利用--flush-logs设置反省点到备份时,有大概最好是倾倒全部数据库。假如你倾倒独自的文件,较难将更新日记反省点与备份文件同步。在恢复时代,你一般按数据库为基本提取更新日记内容,对单个表没有提取更新的选择,以是你必需本人提取它们。
缺省地,mysqldump在写进前将一个表的全部内容读进内存。这一般的确不用要,而且实践上假如你有一个年夜表,几近是失利的。你可用--quick选项告知mysqldump只需它检索出一行就写出每行。为了进一步优化倾倒历程,利用--opt而不是--quick。--opt选项翻开别的选项,减速数据的倾倒和把它们读回。
用--opt实行备份多是最经常使用的办法,由于备份速率上的上风。但是,要告诫你,--opt选项的确有价值,--opt优化的是你的备份历程,不是其他客户对数据库的会见。--opt选项经由过程一次锁定一切表制止任何人更新你正在倾倒的任何表。你可在一样平常数据库会见上很简单看到其效果。当你的数据库一样平常十分频仍地利用,只是一天一次地调治备份。
一个具有--opt的相反效果的选项是--dedayed。该选项使得mysqldump写出INSERTDELAYED语句而不是INSERT语句。假如你将数据文件装进另外一个数据库而且你想是这个操纵对大概呈现在该数据库中的查询的影响最小,--delayed对此很有匡助。
--compress选项在你拷贝数据库到另外一台呆板上时很有匡助,由于它削减收集传输字节的数目。上面有一个例子,注重到--compress对与远端主机上的服务器通讯的程序才给出,而不是对与当地主机毗连的程序:
%mysqldump--optsamp_db|mysql--compress-hboa.snake.netsamp_db
mysqldump有良多选项,详见《MySQL参考手册》。
如IBM公司最近宣布让渠道合作伙伴分销其SaaS应用程序的新计划。微软认为MySQL学习教程是销售其云计算服务的重要组成部分。然而即使有这种趋势,DBaaS仍然不同于内部数据库,解决方案提供商必须认识到这一点;否则,他们不仅仅是丢失几个客户,而是要失去的更多。 |
|