爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
MySQL教程
Mysql怎么备份数据
Mysql怎么备份数据
日期:2014-05-16 浏览次数:20922 次
Mysql如何备份数据
数据量比较大,不知道怎么备份数据,希望能说的详细点,谢啦
------解决方案--------------------
mtsqldump -uroot -p>123.txt
------解决方案--------------------
引用
5.9. 备份与恢复
5.9.1. 数据库备份
5.9.2. 示例用备份与恢复策略
5.9.3. 自动恢复
5.9.4. 表维护和崩溃恢复
5.9.5. myisamchk:MyISAM表维护实用工具
5.9.6. 建立表维护计划
5.9.7. 获取关于表的信息
本节讨论如何进行数据库备份(完全备份和增量备份),以及如何执行表的维护。本节描述的SQL语句语法参见第5章:数据库管理。此处提供的大多数信息主要适合MyISAM表。InnoDB备份程序参见15.2.8节,“InnoDB数据库的备份和恢复”。
5.9.1. 数据库备份
因为MySQL表保存为文件方式,很容易备份。要想保持备份的一致性,对相关表执行LOCK TABLES操作,然后对表执行FLUSH TABLES。参见13.4.5节,“LOCK TABLES和UNLOCK TABLES语法”和13.5.5.2节,“FLUSH语法”。你只需要读锁定;这样当你复制数据库目录中的文件时,允许其它客户继续查询表。需要FLUSH TABLES语句来确保开始备份前将所有激活的索引页写入硬盘。
如果你想要进行SQL级别的表备份,你可以使用SELECT INTO ...OUTFILE或BACKUP TABLE。对于SELECT INTO ...OUTFILE, 输出的文件不能先存在。对于BACKUP TABLE也如此,因为覆盖完整的文件会有安全风险。参见13.2.7节,“SELECT语法”和13.5.2.2节,“BACKUP TABLE语法”。
备份数据库的另一个技术是使用mysqldump程序或mysqlhotcopy脚本。参见8.8节,“mysqldump:数据库备份程序”和8.9节,“mysqlhotcopy:数据库备份程序”。
1. 完全备份数据库:
2. shell> mysqldump --tab=/path/to/some/dir --opt db_name
或:
shell> mysqlhotcopy db_name /path/to/some/dir
只要服务器不再进行更新,还可以只复制所有表文件(*.frm、*.MYD和*.MYI文件)。mysqlhotcopy脚本使用该方法。(但请注意如果数据库包含InnoDB表,这些方法不工作。InnoDB不将表的内容保存到数据库目录中,mysqlhotcopy只适合MyISAM表)。
3. 如果mysqld在运行则停止,然后用--log-bin[=file_name]选项来启动。参见5.11.3节,“二进制日志”。二进制日志文件中提供了 执行mysqldump之后对数据库的更改进行复制所需要的信息。
对于InnoDB表,可以进行在线备份,不需要对表进行锁定;参见8.8节,“mysqldump:数据库备份程序”。
MySQL支持增量备份:需要用--log-bin选项来启动服务器以便启用二进制日志;参见5.11.3节,“二进制日志”。当想要进行增量备份时(包含上一次完全备份或增量备份之后的所有更改),应使用FLUSH LOGS回滚二进制日志。然后,你需要将从最后的完全或增量备份的某个时刻到最后某个点的所有二进制日志复制到备份位置。这些二进制日志为增量备份;恢复时,按照下面的解释应用。下次进行完全备份时,还应使用FLUSH LOGS或mysqlhotcopy --flushlogs回滚二进制日志。参见8.8节,“mysqldump:数据库备份程序”和8.9节,“mysqlhotcopy:数据库备份程序”。
如果MySQL服务器为从复制服务器,则无论选择什么备份方法,当备份从机数据时,还应备份master.info和relay-log.info文件。恢复了从机数据后,需要这些文件来继续复制。如果从机执行复制LOAD DATA INFILE命令,你应还备份用--slave-load-tmpdir选项指定的目录中的SQL_LOAD-*文件。(如果未指定,该位置默认为tmpdir变量值)。从机需要这些文件来继续复制中断的LOAD DATA INFILE操作。
如果必须恢复MyISAM表,先使用REPAIR TABLE或myisamchk -r来恢复。99.9%的情况下该方法可以工作。如果myisamchk失败,试试下面的方法。请注意只有用--log-bin选项启动了MySQL从而启用二进制日志它才工作;参见5.11.3节,“二进制日志”。
1. 恢复原mysqldump备份,或二进制备份。
2. 执行下面的命令重新更新二进制日志:
3. shell> mysqlbinlog hostname-bin.[0-9]* | mysql
在某些情况下,你可能只想要从某个位置重新运行某些二进制日志。(通常你想要从恢复备份的日期重新运行所有二进制日志,查询不正确时例外)。关于mysqlbinlog工具和如何使用它的详细信息参见8.6节,“mysqlbinlog:用于处理二进制日志文件的实用工具”。
还可以对具体文件进行选择备份:
· 要想复制表,使用SELECT * INTO OUTFILE 'file_name' FROM tbl_name。
· 要想重载表,使用LOAD DATA INFILE 'file_name' REPLACE ...并恢复。要避免复制记录,表必须有PRIMARY KEY或一个UNIQUE索引。当新记录复制唯一键值的旧记录时,REPLACE关键字可以将旧记录替换为新记录。
如果备份时遇到服务器性能问题,可以有帮助的一个策略是在从服务器而不是主服务器上建立复制并执行备份。参见6.1节,“复制介绍”。
如果使用Veritas文件系统,可以这样备份:
1. 从客户端程序执行FLUSH TABLES WITH READ LOCK。
2. 从另一个shell执行mount vxfs snapshot。
3. 从第一个客户端执行UNLOCK TABLES。
4. 从快照复制文件。
5. 卸载快照。
5.9.2. 示例用备份与恢复策略
5.9.2.1. 备份策略
5.9.2.2. 为恢复进行备份
5.9.2.3. 备份策略摘要
本节讨论进行备份的程序,在出现崩溃后,可以恢复数据:
· 操作系统崩溃
· 电源故障
· 文件系统崩溃
· 硬件问题(硬盘、母板等等)
该命令不包括mysqldump和mysql程序的--user和—password等选项。应包括必要的选项让MySQL服务器允许你连接它。
我们假定数据保存在MySQL的InnoDB存储引擎中,支持事务和自动崩溃恢复。我们假定崩溃时MySQL服务器带负载。如果不带负载,则不需要恢复。
出现操作系统崩溃或电源故障时,我们可以假定重启后硬盘上的MySQL?数据仍可用。由于崩溃,InnoDB数据文件中的数据可能不再保持一致性,但InnoDB读取它的日志并会查到挂起的提交的和未提交的事务清单,它们没有清空到数据文件中。InnoDB自动卷回未提交的事务,并清空到它的数据文件中。通过MySQL错误日志将该恢复过程相关信息传达给用户。下面的例子为日志摘录:
InnoDB: Database was not shut down normally.
InnoDB: Starting recovery from log files...
InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 13674004
InnoDB: Doing recovery: sca
上一篇:MYSQL锁处理
下一篇: 求 MySQL Workbench 汉化版。该如何解决
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
大家来看一上小弟我的update语句,帮小弟我修改一上
mysql批量剔除前缀相同的表(原创)
诚心请问Explain有关问题.不理解ING.
怎么将mysql的数据导入到MSsql2008中
mysql数据备份的计策和工具
mysql送分题…解决方法
请教这段sql错在哪?mysql的
,為什么Toad for MySql無法連接數據庫
MySQL存储过程的有关问题!大侠快来看看
推荐阅读
更多>
mysql联表查询联系关系的两个字段类型不一致的解决方案
MySQL 5.1缺省配备
有一个微博 数据库建立的有关问题
求教各位出出主意 关于数据记录与客户端同步更新有关问题
MySQL目录的查看创建和删除
SUSE11停MYSQL的定时全量备份
php独自安装mysqli等扩展
mysql - 模糊查询like+%
利用Putty命令行放开MySQL远程访问的另类步骤
Mysql 导入SQL脚本乱码的有关问题
怎么查询一个表格的数据并对其总条件进行汇总
建立系统的E-R图、列出设计的数据库表、生成数据库关系图解决思路
MYSQL 中date_format跟 ORACLE 中 to_char
ssh2 + mysql 数据入库乱码有关问题
mysql查询:怎样不创建新表找出匹配的集合?解决方法
mysql数据乱码有关问题
mysql 更动表的索引
横表inner join竖表解决办法
请问 怎么 update 一个表中的列值为另一个表中的多个结果值的集合
数据导出,该如何解决