发布网友 发布时间:2022-04-20 00:06
共2个回答
热心网友 时间:2022-04-07 20:36
用以备份的工具
1. mysqlmp
2. mysqlhotcopy
3.mysqlsnapshot
4.ibbackup
联机备份 .VS. 脱机备份
联机备份通常使用在不能接受数据库停机的情况下,一般来说,脱机备份速度快,并且发生错误的几率少,我们不用担心数据库正在执行事务,锁表等容易发生一致性问题的发生。如果你幸运的可以停下数据库或者有一个主从方式的数据库,请使用脱机方式备份。
Data Dump vs Raw backups
Data mp 输出一系列SQL 语句序列,可以在后来用来重新创建数据库的结构并恢复数据。mysqlmp 是这个领域的首选工具,他可以用在任意类型的表上面,无论是本地的还是网络的。当然,由于要产生很多额外的SQL语句,导出结果将是一个很大的文件并且占用很多CPU资源,最重要的是,当数据恢复后需要一次完全的索引重建。
更有效率的方法是是对MySQL数据库的物理文件做一次快照(snapshot)。因为我们跳过了很多转化步骤,因此处理起来比较高效。 做一个MyISM数据表的备份只要拷贝磁盘上数据文件和索引文件。对InnoDB,需要备份对应表空间和关联的事务日志。
mysqlmp / mysqlhotcopy / mysqlsnapshot / ibbackup
mysqlmp - (online, mp) - 最一般的工具,他会通过锁表的方式从一个联机数据库中做数据导出并写到指定的文件中(磁盘或网络上)。他只适合小的数据库。
# typical mysql mp backup and restore usage
mysqlmp -u root -pPassword -x –all-databases > db_mp.sql
mysql -u root -pPassword < db_mp.sql
# mp into ‘backup’ folder (local machine), into two text files <data, table_structure>
mysqlmp -T backup –fields-terminated-by=’,’ database-name -u root -pPassword
# compress the mped data on the fly
mysqlmp -u root -pPassword –all-databases | bzip2 -c > db_mp.bz2
mysqlhotcopy - (online, raw) 将对由 ISAM或MyISAM 表构成的数据库做一个完全的物理备份。他的操作方式:对所有表获取一个只读锁=>做文件拷贝=>释放锁。
# perform an online backup into /backup/location
mysqlhotcopy -u root -p password database_name /backup/location
mysqlsnapshot - (online, raw) 一个非常好的工具用来在联机方式下获得MySQL数据库的一个快照。可以配置它来压缩数据,并/或 为每一个数据库提供一个分离的tar文件。 不过他只适合 MyISAM 类型数据库。
# save a full database snapshot of an online database into /backup/location
mysqlsnapshot -u root -pPassword -s /backup/location
# restore a snapshot
tar -xvf /backup/location/db.tar
ibbackup - (online, raw) 可以对使用InnoDB和MyISAM表的任何数据库做联机备份。是一个很好的工具就是要收费.当然如果你是一个InnoDB的用户,还是值得花钱购买的。
# perform online backup of MyISAM / InnoDB tables
ibbackup /etc/my.cnf /etc/ibbackup.cnf
# restore recent backup (as configured in ibbackup.cnf)
ibbackup –restore /etc/ibbackup.cnf
cp, scp, nc - (offline, raw) 如果你可以停下数据库,则可以使用这几个工具直接拷贝数据库目录下的文件。是获取数据库快照的最安全方法。
热心网友 时间:2022-04-07 21:54
XtraBackup 在 MySQL 备份场景中被广泛使用,大家一定不陌生。我们也在之前的两篇文章中分享了其备份的原理。(详见 [原理解析] XtraBackup全量备份还原 & [原理解析] XtraBackup增量备份还原)本文想要描述的是 XtraBackup 恢复时参数 apply-log-only 的作用,不知道大家有没有注意到,这个参数如果不设置,可能会产生数据不一致的惨剧。
使用 XtraBackup 对数据库做备份,实际上就是拷贝 MySQL 的数据文件,为了保证备份数据的最终一致,也会同时拷贝备份过程中的 Redo log。