federated存储引擎实现跨服务器的数据访问

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【前言】数据库之间的跨服务器的访问在实际的工作中经常用到,最常见的是不同数据库的数据比对和数据抽取。针对这个需求ORACLE可以通过透明网关和DBLINK的方式来满足;MySQL提供了存储引擎federated可以实现该功能;   【1】FEDERATED的安装...

【前言】数据库之间的跨服务器的访问在实际的工作中经常用到,最常见的是不同数据库的数据比对和数据抽取。针对这个需求ORACLE可以通过透明网关和DBLINK的方式来满足;MySQL提供了存储引擎federated可以实现该功能;

 

【1】FEDERATED的安装

首先检查数据库当前存储引擎的安装情况,默认的情况下FEDERATED的存储引擎不会随着数据库进行安装的;

1.1 检查数据库当前存储引擎的安装脚本:show engines

image

当前的数据库没有安装FEDERATED;

 

1.2 通过INSTALL PLUGIN的方式安装federated存储引

mysql> install plugin federated soname 'ha_federated.so';

Query OK, 0 rows affected, 1 warning (0.08 sec)

mysql> show engines;

image

显示当前FEDERATED存储引擎已经安装好,但是未启用;

 

1.3 启动FEDERATED存储引擎,修改/etc/my.cnf参数,在[mysqld]下面添加:federated,重启mysql

mysql> show engines
image

 

【2】FEDERATED的使用

当要访问远程的表时,需要在本地的数据库创建一个具有同样表结构使用FEDERATED存储引擎的表,当访问这个表的时候,系统会自动远程访问到远程的数据库表;

 

测试步骤和环境说明

在服务器A 数据库test下面创建表john

mysql>CREATE TABLE `john` (  `id` varchar(32) DEFAULT NULL,UNIQUE KEY `index-123` (`id`) )

ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

mysql> insert into john values(1),(2),(3);
Query OK, 3 rows affected (0.11 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from john;
+------+
| id   |
+------+
| 1    |
| 2    |
| 3    |
+------+

 

在服务器B 数据库test下面创建相应的表federated_john

mysql> CREATE TABLE federated_john (
    ->   `id` varchar(32) DEFAULT NULL,
    ->   UNIQUE KEY `index-123` (`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    -> ENGINE=FEDERATED CONNECTION='mysql://root:123456@192.168.47.167:3306/test/john';

 

mysql> select * from federated_john;
+------+
| id   |
+------+
| 1    |
| 2    |
| 3    |
+------+
3 rows in set (0.37 sec) #请注意执行时间

mysql> insert into federated_john values(4),(5),(6);    #可以通过federated_john修改数据
Query OK, 3 rows affected (0.16 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from federated_john;
+------+
| id   |
+------+
| 1    |
| 2    |
| 3    |
| 4    |
| 5    |
| 6    |
+------+
6 rows in set (0.04 sec)

 

在服务器A下面查询

mysql> select * from john;
+------+
| id   |
+------+
| 1    |
| 2    |
| 3    |
| 4    |
| 5    |
| 6    |
+------+
6 rows in set (0.00 sec)   #数据同样被修改;

 

在服务器B下面查看存储数据,只有表结构并没有相应的数据

image

 

【3】连接脚本注意事项,federated连接字符串的格式说明

mysql> CREATE TABLE federated_john (
    ->   `id` varchar(32) DEFAULT NULL,
    ->   UNIQUE KEY `index-123` (`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    -> ENGINE=FEDERATED CONNECTION='mysql://root:123456@192.168.47.167:3306/test/john';

其中CONNECTION的格式如下:

mysql://user_name[:password]@host_name[:port_num]/db_name/tbl_name

 

【总结】利用federated存储引擎构建表的时候,可以快速实现跨数据库的访问和修改,为一些特殊场景的应用提供了良好的解决办法;

由于是跨主机的访问,所以当表数量级别达到十万以上的时候,整个访问的速度相对本机有很明显的效率问题。

......................................................................................................................................................................………………………………………………………………………………….

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

技术博客:猎人笔记                                                数据库技术群:367875324 (请备注数据库类型)

......................................................................................................................................................................…………………………………………………………………………………….

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
存储 数据挖掘 Windows
服务器数据恢复—V7000存储raid5故障导致LUN无法访问的数据恢复案例
服务器数据恢复环境: 三台V7000存储,共有64块SAS硬盘(其中有三块热备盘,其中一块已启用)组建了数组raid5阵列。分配若干LUN,上层安装Windows server操作系统,数据分区格式化为NTFS文件系统。 服务器故障: V7000存储中有多块硬盘出现故障离线,阵列失效,LUN无法访问。需要恢复卷中所有数据(主要为dcm文件)。
|
9天前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
22天前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
27 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
2月前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
27天前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
47 3
|
27天前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
2月前
|
存储 弹性计算 安全
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
阿里云服务器ECS提供了丰富的计算型实例规格族,专为满足不同场景下的高性能计算需求而设计。包括计算型实例规格族c8y、计算型实例规格族c7、计算型实例规格族c8i等热门计算型实例规格,以及网络增强型的c7nex、密集计算型的ic5等其他计算型实例规格,每一种规格族都经过精心优化,确保在计算性能、存储效率、网络吞吐和安全特性等方面达到最佳平衡。本文将详细解析阿里云服务器ECS中的多个计算型实例规格族,包括它们的核心特点、适用场景、实例规格及具体指标数据,为用户在云计算资源选型时提供全面参考。
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
50 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
17天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
17天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?

热门文章

最新文章