微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MySQL MyISAM和InNodb备份与恢复技巧

MySQL MyISAM和InNodb备份与恢复技巧

时间:09-12 来源:互联网 点击:

用tab字符。可以使用--fields-xxx和--行--xxx选项明显指定格式。

注释:该选项只适用于mysqldump与mysqld服务器在同一台机器上运行时。你必须具有FILE权限,并且服务器必须有在你指定的目录中有写文件的许可。

· --tables

覆盖---database或-B选项。选项后面的所有参量被看作表名。

· --triggers

为每个转储的表转储触发器。该选项默认启用;用--skip-triggers禁用它。

· --tz-utc

在转储文件中加入SET TIME_ZONE='+00:00'以便TIMESTAMP列可以在具有不同时区的服务器之间转储和重载。(不使用该选项,TIMESTAMP列在具有本地时区的源服务器和目的服务器之间转储和重载)。--tz-utc也可以保护由于夏令时带来的更改。--tz-utc默认启用。要想禁用它,使用--skip-tz-utc。该选项在MySQL 5.1.2中加入。

· --user=user_name,-u user_name

连接服务器时使用的MySQL用户名。

· --verbose,-v

冗长模式。打印出程序操作的详细信息。

· --version,-V

显示版本信息并退出。

· --where='where-condition', -w 'where-condition'

只转储给定的WHERE条件选择的记录。请注意如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。

2.2. 文件冷备份

当mysql服务器停止时,通过复制所有表文件(*.frm、*.MYD和*.MYI文件)来备份MyISAM数据库。

2.3. MyISAM 表恢复

1、 如果是通过mysqldump备份的,就执行:mysql –u root 备份文件名。

2、 如果通过mysqlhotcopy或文件冷/热拷贝来备份的,停止mysql服务,使用备份文件来覆盖现有文件。

3、 如果是采用BACKUP TABLE备份的,使用restore table来恢复。因为backup table不会备份索引文件,恢复表注意重建索引。

4、 如果是采用SELECT INTO ...OUTFILE备份的,使用load data恢复数据,也可以使用mysqlimport命令来代替。

3. 日志备份

3.1. 日志备份的好处及如何启用

日志备份可以支持MyISAM和InnoDB,这跟有些备份工具只支持MyISAM不一样。

另外,日志可以做增量备份,这是其他方法无法做到的。

启动日志备份:用--log-bin[=file_name]选项来启动mysql服务。

3.2. 增量备份

先执行FLUSH LOGS刷新日志,同步日志缓存到磁盘,关闭当前的日志并产生新的日志文件。

拷贝上一次完整备份或增量备份后的一个或一些日志文件到一个安全的地方。

这样就制作了一个增量备份。

3.3. 日志恢复

日志恢复可以选择恢复某个数据库、某些操作点或时间范围,非常灵活。

通过mysqlbinlog工具可以恢复二进制日志,可以一次恢复多个日志文件,命令如下:

shell> mysqlbinlog [options] hostname-bin.[0-9]* | mysql

mysqlbinlog命令选项

· ---help,-?

显示帮助消息并退出。

· ---database=db_name,-d db_name

只列出该数据库的条目(只用本地日志)。

· --force-read,-f

使用该选项,如果mysqlbinlog读它不能识别的二进制日志事件,它会打印警告,忽略该事件并继续。没有该选项,如果mysqlbinlog读到此类事件则停止。

· --hexdump,-H

在注释中显示日志的十六进制转储。该输出可以帮助复制过程中的调试。在MySQL 5.1.2中添加了该选项。

· --host=host_name,-h host_name

获取给定主机上的MySQL服务器的二进制日志。

· --local-load=path,-l pat

为指定目录中的LOAD DATA INFILE预处理本地临时文件。

· --offset=N,-o N

跳过前N个条目。

· --password[=password],-p[password]

当连接服务器时使用的密码。如果使用短选项形式(-p),选项和 密码之间不能有空格。如果在命令行中--password或-p选项后面没有 密码值,则提示输入一个密码。

· --port=port_num,-P port_num

用于连接远程服务器的TCP/IP端口号。

· --position=N,-j N

不赞成使用,应使用--start-position。

· --protocol={TCP | SOCKET | PIPE | -position

使用的连接协议。

· --read-from-remote-server,-R

从MySQL服务器读二进制日志。如果未给出该选项,任何连接参数选项将被忽略。这些选项是--host、--password、--port、--protocol、--socket和--user。

· --result-file=name, -r name

将输出指向给定的文件。

· --short-form,-s

只显示日志中包含的语句,不显示其它信息。

· --socket=path,-S path

用于连接的套接字文件。

· --start-datetime=datetime

从二进制日志中第1个日期时间等于或晚于datetime参量的事件开始读龋datetime值相对于运行mysqlbinlog的机器上的本地时区

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top