MySQL如何快速重建主从

MySQL如何快速重建主从,第1张

备份:

[sql] view plain copy

mysqldump -uroot -p -S /tmp/mysql3306.sock --single-transaction --add-drop-database --master-data=1 --database tms,test >test_backup.sql

--single-transaction : 一致性备份,在备份开始前, 先执行START TRANSACTION命令,以此来获得备份的一致性,当前该参数只对INNODB存储引擎有效。当启用该参数并进行备份时, 确保没有其他任何的DDL语句执行,因为一致性读并不能隔离DDL语句。

--add-drop-database: 备份里会有创建删除数据库的命令, 要和-DATABASE一起使用。

--master-data:通过该参数产生的备份转存文件主要用来建立一个SLAVE REPLICATION。 当VALUE的值为1时,转存文件中记录CHANGE MASTER语句,当VALUE的值为2时,CHANGE MASTER语句被写成SQL注释。默认情况下, VALUE的值为空。

停止原从库的SLAVE复制:

[sql] view plain copy

mysql>stop slave

Query OK, 0 rows affected (0.00 sec)

mysql>reset slave all

Query OK, 0 rows affected (0.08 sec)

mysql>show slave status\G

Empty set (0.00 sec)

在从库进行SOURCE:

[sql] view plain copy

source /apps/test_backup.sql

待恢复完成后,可以根据备份文件里提供的BINLOG POSTION来启动REP:

[sql] view plain copy

mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.93',MASTER_PORT=3306,MASTER_USER='replication',MASTER_PASSWORD='replication',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=69295895

Query OK, 0 rows affected (0.00 sec)

mysql>flush privileges

Query OK, 0 rows affected (0.04 sec)

第一步,创建数据库表t_tree_info,命令如下:

create table t_tree_info(

id int(8),

tno int(4),

tname varchar(20),

tdesc varchar(100)

)

如下图所示

第二步,向表里插入3条数据,插入后查看表记录,如下图所示:

第三步,创建数据库索引tree_name,命令如下:

create index tree_name on t_tree_info (tname(20))

如下图所示:

第四步,查看数据库表索引,利用show命令

show index from t_tree_info

如下图所示:

第五步,重建索引,利用repari命令

repair table t_tree_info quick

如下图所示:

第六步,索引创建好了,在不使用该索引时,可以删除

drop index tree_name on t_tree_info

如下图所示:

30G的数据要跑24小时,哈哈,建议如下的步骤进行:

建表(不要主键);

插入数据;

重新建立索引和主键;

因为在有索引的情况下插入数据时,插入一条就要重新建立索引一次,所以应该在没有任何索引的情况插入数据,然后建立索引就搞一次索引。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8507323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存