我当前应用复杂 oltp频繁从库不能及时埂新
现在思考只作表同步
问题现在我的表大概有10几个   (不知道如何写配置文件
能否让主库不重启 只修改从库配置文件 重启从库完成所有操作????
  )
附后(不知道是否可用)
mysql如何同步表
我有两台LINUX服务器,192.168.0.1(/database/mysql/var/myhome)和192.168.0.2(/usr /local/mysql/var/),mysql的存放路径不一样,我想把1服务器myhome库里的几个表同步到2服务器/usr/local /mysql/var/下的另外一个库里,该如何定义呢,请你指教下。
下面是我的操作,同步不过去,麻烦你指点下如何定义。谢谢
机器1:
log-bin
server-id=1
sql-bin-update-same //同步形式
binlog-do-db=myhome //要同步的数据库
机器B
log-bin
server-id=2
sql-bin-update-same
binlog-do-db=testmaster-host=1192.168.0.1
master-user=root
master-password=123456
master-port = 3306 //连接端口
master-connect-retry=60
replicate-do-db=myhome
replicate-do-table=myhome.tbl_name //只同步表
log-slave-updates

解决方案 »

  1.   

    同机MySQL数据库主从同步配置方案1、配置主库my.iniport=3306datadir=”C:/Program Files/MySQL/MySQL Server 5.0/Data/”server-id=1log-bin=mysql-bin
    (注:一定要启用logbin功能才能进行同步备份。如果只想对某个数据库或者某个数据库的某些表做同步,那么还需要增加binlog-do-db参数进行限制,格式:binlog-do-db = dbname)
    2、配置从库my.iniport=3307datadir=”D:/Program Files/MySQL/MySQL Server 5.0/Data/”server-id=2#启用从库日志,这样可以进行链式复制log-slave-updates#从库是否只读,0表示可读写,1表示只读(可选项)read-only=1#只复制某个表(如果只想对某个数据库或者某个数据库的某些表做同步,需要选择这项)replicate-do-table=dbname.tablename#只复制某些表(可用匹配符。功能同上参数。)replicate-wild-do-table=dbname.tablename%#只复制某个库(如果对多个数据库做同步,那么可以用多行来表示。)replicate-do-db = dbname#只复制某些库(可用匹配符。)replicte-wild-do-db=dbname%#不复制某个表replicate-ignore-table=dbname.tablename#不复制某些表replicate-wild-ignore-table=dbname.tablename%#不复制某个库(如果忽略多个数据库的同步,那么可以用多行表示。)replicate-ignore-db=mysql#复制完的sql语句是否立即从中继日志中清除,1表示立即清除(可选项)relay-log-purge = 1
    3、设置主库连接到主库中,创建复制用户C:\>mysql -uroot -ppassword -P3306mysql> grant replication slave on *.* to ‘backup’@'localhost’ identified by ‘123456′;Query OK, 0 rows affected (0.00 sec)
    锁住主库的table,以便备份数据文件到从库进行初始化mysql> flush tables with read lock;Query OK, 0 rows affected (0.00 sec)显示主库状态,注意记下当前二进制日志文件名和positionmysql> show master status;+———————–+———–+——————-+————————+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+———————-+————+——————-+————————+| mysql-bin.000001 |      98 | backup      |    mysql        |+———————-+————+——————-+————————–+1 row in set (0.00 sec)
    4、设置从库另外开启一个cmd,启动从库连接到从库进行配置C:\>mysql -uroot -ppassword -P3307mysql> CHANGE MASTER TO    -> MASTER_HOST=’localhost’,    -> MASTER_USER=’backup’,    -> MASTER_PASSWORD=’backup’,    -> MASTER_LOG_FILE=’mysql-bin.000001′,    -> MASTER_LOG_POS=98;Query OK, 0 rows affected (0.01 sec)注意到这里master_log_file和master_log_pos就是前面show master status的结果。启动复制进程mysql> start slave;Query OK, 0 rows affected (0.00 sec)至此配置基本完成,在主库解开table的锁定mysql> unlock tables;Query OK, 0 rows affected (0.00 sec)最后在从服务器中执行如下操作:
    mysql>show slave status \G;
    如果下面三项显示为这样,则表示已经启动正常。
    Slave_IO_State: Waiting for master to send event
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
      

  2.   

    replicate-do-table=dbname.tablename 
    replicate-do-table=dbname.tablename2
    。主不用重启
    从重启就ok