发布网友 发布时间:2022-04-25 21:09
共2个回答
热心网友 时间:2022-04-08 20:15
MySql的备份命令
myisam引擎
#mysqlmp -uroot -pxxx -A -B -F --master-data=2 -x --events >/opt/name.sql.gz
innodb引擎
#mysqlmp -uroot -pxxx -A -B -F --master-data=2 --events --single-transaction | gzip>/opt/name.sql.gz
--master-data 这个参数在建立slave数据库的时候会用到,当这个参数的值为1的时候,mysqlmp出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置。默认情况下这个值是1 当这个值是2的时候,chang master to也是会写到mp文件里面去的,但是不会有上面那个作用了 --master-data=1 (--master-data=2注释) 表示在mp过程中记录主库的binlog和pos点,并在mp文件中不注释掉这一行,即恢复时会执行; -F 切割binlog参数
-A 备份所有库 -B, --databases 备份数据时使用-B参数,会在备份数据中增加建库及use库的语句 使用-B参数,后面可以接多个库,否则只能有一个库,之后的都被认为是表
--single-transaction 适合innodb事务数据库备份(可代替锁表) 设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在mp期间,如果其他innodb引擎的线程修改了表的数据并提交,对该mp线程的数据并无影响. :InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(mp)时,不会看到其他会话已经提交了的数据。
-x,--lock-all-tables Locks all tables across all databases. This is achieved by taking a global read lock for the ration of thewhole mp. Automatically turns --single-transaction and --lock-tables off.
-l, --lock-tables Lock all tables for read.
热心网友 时间:2022-04-08 21:33
可以考虑把所有的库名都写到一个database的文本里面,一个库一行