XtraBackup是percona公司提供的开源工具,以热备Innodb表著称而被广泛采用。
XtraBackup对Innodb的备份之所以是热备,无需锁表,是基于Innodb自身的崩溃恢复机制,它首先复制所有的Innodb数据文件,这样复制出来的文件肯定是不一致的,然后对每个文件进行崩溃恢复处理,最终达到一致。就和MySQL在启动Innodb的时候一样,会通过比较数据文件头和redo log文件头信息来检查数据是否是一致的,如果不一致就尝试通过前滚(把redo log中所有提交的事务写入数据文件)和回滚(从数据文件中撤销所有redo log中未提交的事务引起的修改)来使数据达到最终一致。
This works because InnoDB maintains a redo log, also called the transaction log. This contains a record of every change to InnoDB's data. When InnoDB starts, it inspects the data files and the transaction log, and performs two steps. It applies committed transaction log entries to the data files, and [...]
在使用xtrabackup备份MySQL的时候,可以用stream参数指定输出流的格式,目前只能选择tar方式。使用这个tar4ibd程序进行打包。这个程序包含在xtrabackup的源码中,需要单独安装,如果没有安装,指定stream=tar参数会报以下错误:
innobackupex: Starting to backup InnoDB tables and indexes innobackupex: from original InnoDB data directory '/home/mysql/3306/data' innobackupex: Backing up as tar stream 'ibdata1' sh: tar4ibd: command not found innobackupex: tar returned with exit code 127. innobackupex: Error: Failed to stream '/home/mysql/3306/data/ibdata1': at xtrabackup-1.6/innobackupex line 336.
innobackupex: Starting to backup InnoDB tables and indexes
innobackupex: from [...]
XtraBackup是Percona公司搞的一个开源的备份工具,是目前开源软件里做的最好的一款MySQL备份工具,在全球有着广泛的用户群体。
前天(2011年4月12日)刚刚发布的版本是1.6,官方页面显示的链接地址还有点问题,实际的下载的地址是:
http://www.percona.com/downloads/XtraBackup/
我下载的是源码:http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gz
[root@localhost backup]# wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gz --16:30:34-- http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gz Resolving www.percona.com... 65.49.72.130 Connecting to www.percona.com|65.49.72.130|:80... connected. HTTP request sent, awaiting response... 302 Found Location: /downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gz [following] --16:30:35-- http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/source/xtrabackup-1.6.tar.gz Reusing existing connection to www.percona.com:80. HTTP request sent, awaiting response... 200 OK Length: 49867645 (48M) [application/x-gzip] Saving to: `xtrabackup-1.6.tar.gz' 100%[=====================>] 49,867,645 61.5K/s in 16m [...]
很多人使用order by rand()的方式随机返回一些记录,这其实是非常低效的,示例一下:
mysql> explain select id from u_user where id> round(rand()*(select max(id) from u_user)) limit 5; +----+-------------+--------+-------+---------------+---------+---------+------+------+------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+------+------+------------------------------+ | 1 [...]
搭建Dual Master其实和Msater Slave是一样的,就是反过去再做一遍而已,互为主从。 1、修改配置文件,一般要注意以下几个参数: binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema replicate-ignore-db = mysql replicate-ignore-db = performance_schema replicate-ignore-db = information_schema binlog_format=mixed server-id = 1 其中replicate开头的几个参数只影响从库。 2、建立一个专门的用于复制的用户,锁主库表 mysql> flush tables with read lock; Query OK, 0 rows affected (0.00 sec) mysql> grant replication slave on *.* to 'repl'@'%' identified by 'slave'; Query OK, 0 rows affected (0.00 [...]
技术组织
最近评论
- passenger 发表在《一个完整的Oracle建表的例子》
- tudou 发表在《Oracle增大redo log file的方法》
- Yousri 发表在《如何在mac下长期使用SecureCRT》
- Amazon SES筆記 « What's Going On 发表在《如何使用Amazon的邮件服务SES》
- 如何使用Amazon的邮件服务SES | 半瓶 发表在《为Postfix增加DKIM功能》
- pary 发表在《为Postfix增加DKIM功能》
历史归档
广告位

