mysql基本操作及AB主从复制的实现

一、mysql的备份与恢复

  备份数据库:(将数据库dbname备份为dbname_backup.sql)

      c:\>mysqldump -h localhost -u root -p dbname>dbname_backup.sql

  备份表格:(将数据库dbname里的表mytable备份在C盘mytable.txt)

      c:\>mysqldump -h localhost -u root -p dbname mytable>c:\mytable.txt

  恢复数据库:

  c:\>mysqladmin -h localhost -u root -p create 新dbname  

  c:\>mysqldump -h localhost -u root -p 新dbname <dbname_backup.sql


二、MySQL AB主从复制的实现

mysql  AB复制一对多结构:     

                       B
                    /
                 A ――  C
                    \
                      D
     若slave节点过多,这种方式master节点会负载过多,可以采用线性结构以减轻master的压力。

mysql的AB复制线性结构:
                                                     
                A(master)――――B(slave1)――――C(slave2)

A和B单向同步:
 A:
  #vi /etc/my.cnf
     log-bin=mysql-bin     #启动二进制日志系统
    binlog-do-db=test     #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步 westos库,再添加一行“binlog-do-db=westos”,以此类推
    server-id=1        #必须为 1 到 232�C1 之间的一个正整数值
    binlog-ignore-db=mysql         #禁止同步 mysql 数据库

  #mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000003 |      106 | test         | mysql            |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)

  #mysql>grant replication slave,reload,super on *.* to john@'192.168.0.37' identified by 'westos';           //授权

  #mysql> flush privileges;

 B:
  #vi /etc/my.cnf
       server-id=2

  #mysql> change master to master_host='192.168.0.36',master_user='john',master_password='westos',master_log_file='mysql-bin.000003',master_log_pos=106;
  #mysql>show slave status\G,            \G以列表形式
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes          确保这两个线程启动,若没启动执行mysql>slave start;

A和B已经同步后加C时:
 B上的操作:                        
 1、sync data(mysqldump test>test.sql)       
 2、B grant授权
 3、vi /etc/my.cnf          添加如下
     log-bin=mysql-bin
     binlog-do-db=test
     binlog-ignore-db=mysql
     log-slave-updates                 // 为了让slave也能充当master,
                                       //写relay-log的时候也会写到bin-log    
 /etc/init.d/mysqld restart
C上操作如上一步B

AB双向同步和单(主主复制)向同步方法差不多,只需要将主从单向复制时的步骤反过来对应在设置以便即可。即主从服务器上同时运行master和slave。

你可能感兴趣的:(mysql,mysql,AB复制,Mysql备份与恢复)