1. 新建slave设置复制坐标
a.) 5.5之前以及5.6未开启GTID复制的场合:
MASTER_PORT=3306,
MASTER_USER='xxxx',
MASTER_PASSWORD='xxxx',
MASTER_LOG_FILE='xxxx',
MASTER_LOG_POS=xxxx;
b. ) 5.6开启GTID复制的场合:
CHANGE MASTER TO MASTER_HOST='xxxx',
MASTER_PORT=3306,
MASTER_USER='xxxx',
MASTER_PASSWORD='xxxx',
MASTER_AUTO_POSITION=1;
2. 跟踪查看丛库复制延迟
while true ;do mysql -uuser -ppass -e "show slave status \G" | grep "Master_Log_File: \| Read_Master_Log_Pos: \| Relay_Master_Log_File: \| Exec_Master_Log_Pos: \| Seconds_Behind_Master:"; echo; sleep 1; done;
3. 跟踪查看MySQL事务执行过程中修改了多少行数据,对插入,更新,删除有效,其它场景未验证。
while true ;do mysql -uuser -ppass -e "select * from information_schema.INNODB_TRX where trx_mysql_thread_id=7959619 \G" | grep "trx_rows_modified:"; echo; sleep 1; done;
4.使用xtrabackup/innobackupex备份数据库
参考链接:http://blog.youkuaiyun.com/u010027484/article/details/51488552
a.)全量备份
#使用tar流备份全部db schema
/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/innobackupex --defaults-file=$MY_CNF --tmpdir=$TMP_DIR --ibbackup=/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/xtrabackup --user=user --password=password --slave-info --stream tar $DATA_DIR | ssh $REMOTE_HOST "cat - > /vobiledata/tmp/${LOCAL_HOST}.mysqldata.tar.lzma"
#使用xbstream流备份全部db schema
./innobackupex --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx--stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
"cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C /vobiledata/mysqldata/" > innobackupex.log 2>&1
./innobackupex --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx --databases="db1 db2" --stream=xbstream /vobiledata/mysqldata/ |ssh root@$REMOTE_HOST
"cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C /vobiledata/mysqldata/" > innobackupex.log 2>&1
-- 注意 --databases参数值要用引号括起来
b.)增量备份
#
5.使用xtrabackup/innobackupex重建数据库
#解压数据库备份文件
tar -xi --lzma -f ${db_data_package_file}
#还原数据库
innobackupex-1.5.1 --user=root --apply-log --defaults-file={mysql_conf_file} --ibbackup=/usr/bin/xtrabackup_51 --use-memory=2046M ${mysql_data_dir}
#innobackupex-1.5.1 --user=root --copy-back --defaults-file=${mysql_conf_file} --use-memory=2046M --no-lock ${mysql_data_dir}
6.忘记mysql登陆密码了怎么办,执行下面的命令,只需简单三步就可绕过mysql 授权表启动,然后匿名登陆到mysql取回密码,前提是你得有重启mysql服务器的权限。
/etc/init.d/mysql stop;
/usr/local/mysql/bin/mysqld --skip-grant-tables;
mysql;
7. 查看sql语句锁信息
select * from processlist pl, innodb_trx trx, INNODB_LOCKS lk where lk.lock_trx_id = trx.trx_id and trx.trx_mysql_thread_id = pl.id limit 1 \G
select a.trx_mysql_thread_id 'brocking process', a.trx_state, c.trx_mysql_thread_id 'brocked process', c.trx_state, c.trx_query 'brocked sql' from INNODB_TRX a, INNODB_LOCK_WAITS b, INNODB_TRX c where a.trx_id = b.blocking_trx_id and c.trx_id = b.requesting_trx_id;