咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
1. 直接拷贝数据库文件(物理拷贝)
2. 使用 mysqldump 工具备份
3. 使用 mysqlhotcopy 工具备份
4. 使用 mysql 的主从同步复制,实现数据实时同步备份
1. 日志文件
错误日志 err log
二进制日志 binary log
更新日志 update log
查询日志 query log
慢查询日志 slow query log
innodb 的 redo 日志
2. 数据文件
myisam存储引擎 :
表结构信息:.frm
数据信息:.myd
数据索引信息:.myi
Innodb存储引擎:
独享表空间:.ibd
共享表空间:.ibdata
3. 系统文件
配置文件:my.cnf
进程文件:xxx.pid
socket文件:xxx.sock
4. replication 文件
master.info:存储在 slave 端目录下,关于 master 和 slave 相关信息。
relay log:存储 I/O 进程从 master 读取的 bin-log 信息,然后由slave端的SQL线程从该 binary log 中读取解析过的日志信息,转化成 slave 所能执行的 query 语句。
index:则是存放 binary log 的路径,也就是目录文件。
1. 备份原理
mysqldump 备份原理比较简单,先查出需要备份的表结构,在文本文件中生成一个 create 语句;然后将表中的所有数据记录转换成一条 insert 语句;通过这些语句就能够创建表并插入数据。
2. 备份一个数据库
基本语法:
mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
实例说明:
>mysqldump -u root -p test person > /tmp/backup.sql
3. 备份多个数据库
基本语法:
mysqldump -u username -p --databases dbname2 dbname2 > BackupName.sql
实例说明:
>mysqldump -u root -p --databases test mysql > /tmp/backup.sql
4. 备份所有数据库
基本语法:
mysqldump -u username -p -all-databases > BackupName.sql
实例说明:
>mysqldump -u -root -p -all-databases > /tmp/all.sql
5. 数据恢复
基本语法:
mysql -u root -p [dbname] < backup.sql
实例说明:
>mysql -u root -p < /tmp/backup.sql
mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库。它是备份数据库或单个表最快的途径,完全属于物理备份,但?能用于备份MyISAM存储引擎和运行在数据库目录所在的机器上。与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句。使用mysqlhotcopy命令前需要要安装相应的软件依赖包(perl-DBD,DBD-mysql)。
yum install perl-DBD* -y wget http://www.landui.com/authors/id/M/MI/MICHIELB/DBD-mysql-4.040.tar.gz tar xvf DBD-mysql-4.040.tar.gz cd DBD-mysql-4.040perl Makefile.PL make&&make install vim /usr/my.cnf [mysqlhotcopy] interactive-timeout host=localhost user=root password=****** port=3306 /etc/init.d/mysql restart mysqlhotcopy -u root -p ****** test /opt/ #备份数据库 mysqlhotcopy -u root -p ****** mysql./user*/ /opt/ #备份数据表 cp -arp /opt/test /var/lib/mysql/ #恢复数据
MySQL 有一种非常简单的备份方法,就是将 MySQL 中的数据库文件直接复制出来。这是最简单,速度最快的方法。不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,但是在生产环境中很难允许备份服务器。
注意:这种方法不适用于 InnoDB 存储引擎的表,而对于 MyISAM 存储引擎的表很方便。同时,还原时 MySQL 的版本最好相同。