通过FEDERATED存储引擎同步两实例间的表数据

需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据。

方案:通过FEDERATED来完成跨势力的查询
FEDERATED存储引擎表只会创建表结构,不会存储表数据,可以通过建表语句中的CONNECTION [=] 'connect_string'来指定访问远端数据的连接方式connect_string:
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
[http://dev.mysql.com/doc/refman/5.7/en/federated-create-connection.html](url)
测试实施:
1.本地环境:

[root@test-01 ~]# uname -a
Linuxtest-01 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@test-01 ~]# mysql --version
mysql Ver 14.14 Distrib 5.6.17, for linux-glibc2.5 (x86_64) using EditLine wrapper


2.创建FEDERATED存储引擎并启动

mysql> show engines
-> ;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+


默认是支持的,在配置文件中加入federated选项,并重启服务
3.实例1A上:

GRANT select ON test.t TO 'TEST'@'%' IDENTIFIED BY 'test';


4.实例B上:

mysql> CREATE TABLE `test`.`fd_test_t` ( `id` int(11) DEFAULT NULL ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://root:root@host:6666/test/t'; 
Query OK, 0 rows affected (0.00 sec)


到目前为止操作结束,现在在B上执行

mysql> select \* from fd_test_t;
+------+
| id |
+------+
| 1 |
+------+

 


就可以看到A表中test.t的数据了

---恢复内容结束---

---恢复内容开始---

通过FEDERATED存储引擎同步两实例间的表数据
需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据。
方案:通过FEDERATED来完成跨势力的查询
FEDERATED存储引擎表只会创建表结构,不会存储表数据,可以通过建表语句中的CONNECTION [=] 'connect_string'来指定访问远端数据的连接方式connect_string:
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
[http://dev.mysql.com/doc/refman/5.7/en/federated-create-connection.html](url)
测试实施:
1.本地环境:

[root@test-01 ~]# uname -a
Linuxtest-01 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@test-01 ~]# mysql --version
mysql Ver 14.14 Distrib 5.6.17, for linux-glibc2.5 (x86_64) using EditLine wrapper


2.创建FEDERATED存储引擎并启动

mysql> show engines
-> ;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+


默认是支持的,在配置文件中加入federated选项,并重启服务
3.实例1A上:

GRANT select ON test.t TO 'TEST'@'%' IDENTIFIED BY 'test';


4.实例B上:

mysql> CREATE TABLE `test`.`fd_test_t` ( `id` int(11) DEFAULT NULL ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://root:root@host:6666/test/t'; 
Query OK, 0 rows affected (0.00 sec)


到目前为止操作结束,现在在B上执行

mysql> select \* from fd_test_t;
+------+
| id |
+------+
| 1 |
+------+

 


就可以看到A表中test.t的数据了

---恢复内容结束---

转载于:https://www.cnblogs.com/Bccd/p/8496779.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值