生产环境MySQL快速备份工具XtraBackup使用案例
MySQL的备份有很多种方式,最常用的应该是MySQLdump了,将数据库导出一个 sql文件,还原的时候source db.sql 就欢快的执行了。小
MySQL的备份有很多种方式,最常用的应该是MySQLdump了,将数据库导出一个 sql文件,还原的时候source db.sql 就欢快的执行了。小伙伴愉快的布上一个shell脚本,配上cron,幸福的看着每天备份文件的生成,倍感安全。假如一个MySQL超过了10G呢? 请相信我,导出的时间需要好几个小时,那还原呢,时间会更长。我曾经用sql还原一个6G的数据库,用了3个多小时。
MySQLdump这种逻辑备份的缺点就不多说了,说说xtrabackup,又是PERCONA,就冲这个名号,值得信赖。官方说明:
1、快速可靠
2、备份过程中不中断事务处理
3、节约磁盘空间和网络带宽
4、自动备份验证
5、由于快速还原而带来的高可用行
上面说的,反正我是信了,还是那个6G多的库,全备用了5分钟,还原也只用了5分钟。兄弟们,记住一点,要是真到了用备份来还原数据的时候,你还原几个小时,老板会有想法的!呵呵。
操作系统:CentOS release 6.5
MySQL: 5.6.21
一、安装
yum install
yum install percona-xtrabackup
二、开始使用
xtrabackup包含innobackupex,xtrabackup,xbcrypt,xbstream这几个工具。Innobackupex支持MyISAM,InnoDB。所有,我选择使用innobackupex。
1.创建备份用户,你懂的,最小权限
mysql> create user'bkuser'@'localhost' identified by 'bk2015';
Query OK, 0 rows affected (0.16sec)
mysql> grant reload,locktables,replication client on *.* to 'bkuser'@'localhost';
Query OK, 0 rows affected (0.00sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01sec)
2.使用innobackupex进行数据库全备
innobackupex --user=bkuser--password=bk2015 /mnt/backups
--user 提供连接数据库的用户名
--password 连接数据库的密码
/mnt/backups 备份文件的存储路径
命令执行完成后在/mnt/backups目录下生成了2015-02-03_15-11-51目录,该目录就是我们当前数据库的一个完整备份。该目录是innobackupex自动生成的目录,有一个参数可以控制该选项--no-timestamp,如果加上该参数,将不会自动生成目录,备份创建在提供的路径下。该参数在脚本中使用比较方便。
3.使用完整备份进行数据库还原
还原准备工作
innobackupex --apply-log/mnt/backups/2015-02-03_15-11-51
--apply-log 创建的备份中可能有些未提交的事务,需要回滚或者从日志进行回放
还原
停止mysql服务,
service mysqld stop
备份原有的mysql数据目录
mv /mnt/data/mysql /mnt/data/mysql20150203
执行还原操作
innobackupex --copy-back/mnt/backups/2015-02-03_15-11-51/
改变目录权限,启动服务
chown –R mysql.mysql /mnt/data/mysql
service mysqld start
4.innobackupex增量备份
增量备份需要一次完成备份为基础,在全备的基础上,下次备份仅备份当前时间到上次完备基础上变化的数据。最大的好处是节约磁盘空间。当然,不好的地方是还原,还原的流程将变的复杂
4.1 首先进行全备
innobackupex --user=bkuser --password=bk2015 /mnt/backups
在备份目录2015-02-03_15-11-51中有个xtrabackup-checkpoints,内容如下:
backup_type = full-backuped
from_lsn = 0
to_lsn = 1291135
创建增量备份
innobackupex --incremental /mnt/backups --incremental-basedir=/mnt/backups/2015-02-03_15-11-51--incremental 使用该参数创建增量备份
--incremental-basedir 指定上一次备份的目录,比如这是完整备份后的第一次增备,该目录是完备的目录,如果这是第二次增备,则该目录是第一次增备的目录
检查增备目录的文件中的xtraback_checkpoint文件内容,会发现,lsn发生了变化
backup_type = incrementalfrom_lsn = 1291135to_lsn = 1352113
5.增量备份的还原
5.1 还原准备工作
流程: --apply-log 应用到全备目录,第一次增备,第二增备……第N次增备,全部应用完成后相当于全备+所有增备 的一个新的全备。
innobackupex --apply-log --redo-only BASE-DIR
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2BASE-DIR 全备目录
INCREMENTAL-DIR-1 第一次增备
INCREMENTAL-DIR-2 第二次增备
--redo-only 重要,,每次增备都需要指定该参数,除了最后一次。否则未提交的事务将执行rollback。
以上步骤完成后,再次执行
innobackupex --apply-log BASE-DIR剩下的步骤按照全备的方式还原即可
MySQL管理之使用XtraBackup进行热备
MySQL开源备份工具Xtrabackup备份部署
MySQL Xtrabackup备份和恢复
用XtraBackup实现MySQL的主从复制快速部署【主不锁表】
安装和使用 Percona 推出的 Xtrabackup 备份 MySQL
XtraBackup 的详细介绍:请点这里
XtraBackup 的下载地址:请点这里
本文永久更新链接地址:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

全表掃描在MySQL中可能比使用索引更快,具體情況包括:1)數據量較小時;2)查詢返回大量數據時;3)索引列不具備高選擇性時;4)複雜查詢時。通過分析查詢計劃、優化索引、避免過度索引和定期維護表,可以在實際應用中做出最優選擇。

InnoDB的全文搜索功能非常强大,能够显著提高数据库查询效率和处理大量文本数据的能力。1)InnoDB通过倒排索引实现全文搜索,支持基本和高级搜索查询。2)使用MATCH和AGAINST关键字进行搜索,支持布尔模式和短语搜索。3)优化方法包括使用分词技术、定期重建索引和调整缓存大小,以提升性能和准确性。

是的,可以在 Windows 7 上安裝 MySQL,雖然微軟已停止支持 Windows 7,但 MySQL 仍兼容它。不過,安裝過程中需要注意以下幾點:下載適用於 Windows 的 MySQL 安裝程序。選擇合適的 MySQL 版本(社區版或企業版)。安裝過程中選擇適當的安裝目錄和字符集。設置 root 用戶密碼,並妥善保管。連接數據庫進行測試。注意 Windows 7 上的兼容性問題和安全性問題,建議升級到受支持的操作系統。

聚集索引和非聚集索引的區別在於:1.聚集索引將數據行存儲在索引結構中,適合按主鍵查詢和範圍查詢。 2.非聚集索引存儲索引鍵值和數據行的指針,適用於非主鍵列查詢。

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

MySQL 數據庫中,用戶和數據庫的關係通過權限和表定義。用戶擁有用戶名和密碼,用於訪問數據庫。權限通過 GRANT 命令授予,而表由 CREATE TABLE 命令創建。要建立用戶和數據庫之間的關係,需創建數據庫、創建用戶,然後授予權限。

MySQL 和 MariaDB 可以共存,但需要謹慎配置。關鍵在於為每個數據庫分配不同的端口號和數據目錄,並調整內存分配和緩存大小等參數。連接池、應用程序配置和版本差異也需要考慮,需要仔細測試和規劃以避免陷阱。在資源有限的情況下,同時運行兩個數據庫可能會導致性能問題。

MySQL支持四種索引類型:B-Tree、Hash、Full-text和Spatial。 1.B-Tree索引適用於等值查找、範圍查詢和排序。 2.Hash索引適用於等值查找,但不支持範圍查詢和排序。 3.Full-text索引用於全文搜索,適合處理大量文本數據。 4.Spatial索引用於地理空間數據查詢,適用於GIS應用。
