备份需要哪些文件?
除了数据库数据,还有mysql配置文件,mysql代码(存储过程,存储函数,触发器) ,OS相关的 配置文件,如:crontab配置计划任务及脚本,
备份工具本身也需要备份,在主从环境中和复制相关的配置,二进制日志文件,也需要备份!
备份工具:
mysqldump单机备份工具,对Innodb热备,MyISAM温备,Aria温备。但是mysqldump备份和恢复的过程较慢,数据过10G后,mysqldump则不建议使用
mysqldumper多线程mysqldump,很难实现差异活增量备份,只能人工手动增量
lvm-snapshot:快照备份,接近于热备工具:先请求全局锁,而后创建快照,快照创建完后释放全局锁
使用cp.tar等工具进行物理备份
备份和恢复速度较快,很难实现增量备份,并且请求全局需要等待一段时间,在繁忙的服务器尤其如此
物理备份工具,不会备份关系等译,仅备份表中数据、
逻辑备份工具,快于mysqldump
innobase商业备份工具,innobackup,innobackup实现innodb热备,增量备份,但是对于myisa只能温备和完全备份。
xtrabackup开源的备份工具,由percona提供
mysqlhotcopy:几乎冷备,接近于冷备工具
备份单个库
备份单个库 [root@mysql-salve ~]# mysqldump -uroot -hlocalhost linuxea > /tmp/linuxea.sql
恢复单个库
恢复之前,如果库本身不存在则需要事先创建:MariaDB [(none)]> create databases linuxea;
[root@mysql-salve ~]# mysql < /tmp/linuxea.sql
备份所有数据库--all-databases
备份所有数据库: mysqldump --all-databases > /tmp/all.sql
备份挑选的库:--databases db1,db2,备份指定的多个库
[root@mysql-salve ~]# mysqldump --databases linuxea123 linuxea > /tmp/linuxeaall.sql
恢复
[root@mysql-salve ~]# mysql < /tmp/linuxeaall.sql
mysqldump备份前需要加锁:
`--lock-all-tables`:请求锁定