现在大多数网站使用都是数据库mysql或者mariadb数据库,因为最直接的原因就是他是开源的的,不需要支付二外的费用,并且性能也很不错,这也是mysql和mariadb如此受人们喜欢的原因。那么我们在进行的数据库的备份的时候,如何正确的备份数据库呢?特别是生产环境,因为网站正在访问的时候,不能关闭网站备份吧。
如果浏览不顺畅请到原文章出处:https://www.sky8g.com/technology/3089/
请注意可能会提示风险,这是CSDN网站设置的问题,如果文章内的链接不是他们的网址,都会对用户提示有风险,请点击继续访问,本网站全部文章为免费技术分享,请放心访问,无需担心。
请点击此处查看完整文章:https://www.sky8g.com/technology/3089/
此篇文章是由SKY8G网作者原创,禁止抄袭。
于是我们就使用mysqldump命令进行压缩备份mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
或者不压缩mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql.gz
但是在备份的过程中我们可以看到cpu的负载极具上升,并且网站打开非常慢甚至打不开,浏览器一直转圈。
这是我们就要想办法了,经过多次百度查询最终找到解决办法:如下进行热备份才是最靠谱的,这样网站又可以访问又不影响备份。在执行下面的解决办法之前我们首先要看看数据库时候支持热备份吗?
首先我们要查看数据库表的存储引擎,如果是Engine可以进行,还好我的数据库是这个引擎。
1 |
SHOW TABLE STATUS |
第二步若果是Engine引擎执行下面的命令进行备份
1 |
mysqldump -uuser -ppass --single-transaction --routines --triggers --all-databases > backup_db.sql |
--single-transaction
生成一个检查点,该检查点允许备份在接收传入更改时捕获检查点之前的所有数据。这些传入的更改不会成为备份的一部分。这确保了所有表都具有相同的时间点。
--routines
备份所有存储过程和存储函数。
--triggers
备份具有它们的每个表的所有触发器。
Info! 通过这个可以在生产环境进行备份了,特别是大数据的时候,非常管用。
下面我们要了解下数据有几种备份类型。