• ADADADADAD

    mysqldump同步数据到生产的注意事项都有哪些[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:00:53

    作者:文/会员上传

    简介:

    1.如果需要从一个实例把数据倒进另一个生产的实例,那么需要注意:使用一下语句dump出来!mysqldump -uroot -p -t --single-transaction=true --skip-disable-keys=false --add-l

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    1.如果需要从一个实例把数据倒进另一个生产的实例,那么需要注意:使用一下语句dump出来!

    mysqldump -uroot -p -t --single-transaction=true --skip-disable-keys=false --add-locks=false --set-gtid-purged=off-B liuwenhe--tables r >/data/backup/r.sql

    注释:

    1)--set-gtid-purged=false 结果文件中不加 SET @@GLOBAL.GTID_PURGED,防止执行报错,因为reset master后才能执行SET @@GLOBAL.GTID_PURGED!

    2)--skip-disable-keys=false 关闭ALTER TABLE `r` DISABLE KEYS这类的关闭索引键操作,否则线上可能索引失效!影响业务

    3)--set-gtid-purged=false结果文件中不带 SET @@SESSION.SQL_LOG_BIN= 0; 也就是说要写binlog,否则不能同步到从库!

    4)--add-locks=false 不加 LOCK TABLES `acct_loan` WRITE; 尤其注意这个,lock之后,只能这个session来操作这个表,并且这个session还不能操作别的表,别的session不能操作该表,具体实验过程:(pxc和简单的主从是一样的效果!)

    (实验1 关于 lock tables r write:

    会话1:

    root@localhost : liuwenhe 18:33:01>LOCK TABLES r WRITE;

    Query OK, 0 rows affected (0.00 sec)

    root@localhost : liuwenhe 18:33:03>insert intor values (1000); #可以操作r表,也可以查看

    Query OK, 1 row affected (0.00 sec)

    root@localhost : liuwenhe 18:33:09>insert intot values (1000);#该session不可以操作t表

    ERROR 1100 (HY000): Table 't' was not locked with LOCK TABLES

    root@localhost : liuwenhe 18:33:15>select count(*) from t;#该session不可以查询别的表

    ERROR 1100 (HY000): Table 't' was not locked with LOCK TABLES)

    会话2:

    root@localhost : liuwenhe 19:04:33>select count(*) from r; #查询等待,

    root@localhost : liuwenhe 18:39:21>insert into r values(10); #dml等待,发现其他session不能操作session1 锁定的表!

    root@localhost : liuwenhe 18:41:36>delete from yy2;#发现会话2可以操作别的表

    Query OK, 3 rows affected (0.04 sec)

    oot@localhost : liuwenhe 19:05:32>select count(*) from yy2;发现可读取r之外的表!

    实验2 关于 lock table r read;

    会话1:

    root@localhost : liuwenhe 18:45:38>lock table r read;

    Query OK, 0 rows affected (0.00 sec)

    root@localhost : liuwenhe 18:47:17>select count(*) from t;#发现不可以读取r之外的表

    ERROR 1100 (HY000): Table 't' was not locked with LOCK TABLES

    root@localhost : liuwenhe 18:47:51>delete from t; #不可以操作r之外的表

    ERROR 1100 (HY000): Table 't' was not locked with LOCK TABLES

    root@localhost : liuwenhe 18:47:28>select count(*) from r;#可以读取r表

    +----------+

    | count(*) |

    +----------+

    |5 |

    +----------+

    1 row in set (0.00 sec)

    root@localhost : liuwenhe 18:47:39>insert into r values (10);#不可以操作r表

    ERROR 1099 (HY000): Table 'r' was locked with a READ lock and can't be updated

    会话2:

    root@localhost : liuwenhe 18:53:02>delete from t limit 1;#会话2可以操作t表

    Query OK, 1 row affected (0.01 sec)

    root@localhost : liuwenhe 18:53:47>select count(*) from yy2; #会话2可以查看其它表

    +----------+

    | count(*) |

    +----------+

    |0 |

    +----------+

    1 row in set (0.00 sec)

    root@localhost : liuwenhe 18:54:29>delete from r;#等待,不能操作session1锁定的表r

    root@localhost : liuwenhe 18:55:20>select * from r; #可以查看session1锁定表!

    +------+

    | id|

    +------+

    |10 |

    总结:

    lock tables t write:当前会话能读写该表,但是不能读写其它的表;其它会话可以读写其它的表,但是不可以读写该表;

    lock table r read: 当前会话只能能读该表,但是不能操作该表,也不能读写其它的表,其它会话可读但不可写该表,可读写其它的表)

    mysqldump同步数据到生产的注意事项都有哪些.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqldump