我当前应用复杂 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
现在思考只作表同步
问题现在我的表大概有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
解决方案 »
- Lost connection to MySQL server during query
- into outputfile的一个问题
- 问下MYSQL Cluster和master slave的问题
- mysql(服务器版本: 5.0.51b-community-nt-log)乱码,查了很多资料也不行,请高手指点
- mysql安装与启动问题
- 为何数据库中的记录显示不到网页上?
- 庆祝国庆※石油大学50周年校庆※加入CSDN论坛1个月-发喜糖!!!
- 连接错误信息
- C语言连接MYSQL,怎样检测这个句柄是否在用
- mysql left join 关联查询很慢
- mysql select对游标的影响!100分!熟悉游标的进!
- 版主ACMAIN_CHM来接分!
(注:一定要启用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
replicate-do-table=dbname.tablename2
。主不用重启
从重启就ok