鸦鸦 发表于 2018-9-30 10:42:12

Mysql操作(待续)

  前提是需要开启表的binlog日志
  log-bin=test-bin
  一、查看binlog的起始位置和结束位置,Pos是起始,End_log_pos是结束
  # mysql -uroot-e "use test;show binlog events"
  +-----------------+-----+-------------+-----------+-------------+-------------------------------------------------------------+
  | Log_name      | Pos | Event_type| Server_id | End_log_pos | Info                                                      |
  +-----------------+-----+-------------+-----------+-------------+-------------------------------------------------------------+
  | test-bin.000001 |   4 | Format_desc |       134 |         245 | Server ver: 5.5.52-MariaDB, Binlog ver: 4                   |
  | test-bin.000001 | 245 | Query       |         1 |         360 | use test; create table t44(id int not null,name char(20)) |
  | test-bin.000001 | 360 | Query       |       134 |         465 | use test; DROP TABLE t44 / generated by server /      |
  | test-bin.000001 | 465 | Stop      |       134 |         484 |                                                             |
  +-----------------+-----+-------------+-----------+-------------+-------------------------------------------------------------+
  # mysqlbinlogtest-bin.000002

  以上这个截图操作是根据binlog位置进行数据恢复
二、全备份
  mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz
  Enter password:
  # ls /opt/backup/
  ops_2016-09-25.sql.gz
  参数说明:
  -B:指定数据库
  -F:刷新日志
  -R:备份存储过程等
  -x:锁表
  --master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息
  三、查询连接的IP几多
  select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;
  四、查询锁表情况
  show status like 'Table%';

  Table_locks_immediate表示立即释放表锁数,Table_locks_waited表示需要等待的表锁数,
  如果Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎,
  因为InnoDB是行锁而MyISAM是表锁,对于高并发写入的应用InnoDB效果会好些。
  示例中的服务器Table_locks_immediate / Table_locks_waited = 235,MyISAM就足够了。
  五、关于报错

  这个的报错是权限的问题,因为互为主备的存放的binlog数不同,我直接从另一个库那里传过去,没改权限导致。



页: [1]
查看完整版本: Mysql操作(待续)