假设一个场景:在某一天,我需要将my01上的某些表转移到另一台机器my02上,都有哪些方法可以实现?至于转移的目的可能有很多,比如my01磁盘不够了,我对DB进行拆分;比如用性能更好(差)的my02代替my01;比如线上环境与线下环境进行数据备份….
针对这个问题,你肯定会马上想出下面的方法:
- 从my01上SELECT出来,保存到一个文本文件里,再INSERT到my02上去;
- 如果是myisam表,直接从my01将文件scp到my02上去;
第一种方法可行,但是存在两次数据落地(my01->本地磁盘,本地磁盘->my02),并且在转移过程中,存在字符转义(不可见字符)的情况,可能导致数据不一致情况出现。
第二种方法再好不过了,但假如这个转移表的需求是一个日常的工作,生产环境的mysql服务器出于安全考虑又不允许我们scp,或者这个表不是myisam的,那就行不通了。
那么,我们用federated表来试试吧。你应该想到了,我是这么做的:
- 在my02上建立一个federated表,connection指向my01的待转移表;
- 在my02上执行下列SQL:
INSERT INTO 新表 SELECT * FROM federated表
- 在my02上DROP掉federated表,至此,工作完成。
不过,mysql在编译安装时默认并没有包含federated引擎,并且即使安装了,启动mysql服务的时候也需要额外增加参数才能使用federated表。我相信很少有生产环境满足这两个条件。不过,为了用得爽,做一些改变又何乐而不为呢?
分享到:
相关推荐
MySQL联邦(Federated)引擎是一种特殊的存储引擎,它的设计目标是允许MySQL数据库跨越不同的服务器进行数据集成,类似于Oracle数据库中的DBLINK功能。这个引擎使得用户可以在本地数据库中查询和操作远程MySQL服务器...
使用FEDERATED引擎实现数据库用户表同步 FEDERATED引擎是MySQL中的一种存储引擎,用于实现分布式数据库系统中的数据同步。下面是使用FEDERATED引擎实现数据库用户表同步的详细知识点: 什么是FEDERATED引擎 ...
MySQL的FEDERATED引擎提供了一种解决办法,使得在不同数据库之间实现数据表的同步成为可能。本文主要介绍如何利用FEDERATED引擎来实现两个数据库用户表的同步。 首先,我们需要确保MySQL服务器支持FEDERATED引擎。...
MySQL中的Federated存储引擎允许数据库在不同服务器之间透明地操作远程数据,类似于Oracle的DBLink功能。这种特性使得跨数据库系统的数据集成变得简单,尤其在多系统交互或分布式环境中非常有用。 **1. Oracle的...
Federated存储引擎允许MySQL在一个服务器上访问远程服务器上的表,仿佛这些表是本地表一样。在使用Federated引擎前,首先需要确保它在MySQL中已被启用。如果默认未开启,可以通过编辑配置文件(如Windows下的my.ini...
- Federated存储引擎允许在不同服务器之间分布数据,一个表可以是一个远程服务器上的表的映射,适合分布式环境。 7. **CSV** - CSV存储引擎将数据存储为逗号分隔值格式,便于与其他系统交换数据。 8. **...
在MySQL中,通过Federated存储引擎可以实现一个MySQL服务器(服务器B)访问另一个MySQL服务器(服务器A)的数据表。这种机制允许用户在不复制数据的情况下,直接查询远程数据库中的数据。 **Federated引擎特点**: ...
在实验中,我们使用 MySQL 8.0 查看了支持的存储引擎,包括 InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、EXAMPLE、FEDERATED、Archive、Merge 等。不同的存储引擎有不同的特点和使用场景,在选择存储引擎时需要根据...
MySQL的Federated引擎是一种特殊的存储引擎,它允许你在本地数据库中创建一个表,该表的数据实际上存储在远程MySQL服务器上。这种引擎的主要目的是提供跨数据库的透明访问,类似于Oracle的DBLINK功能。下面我们将...
6. **FEDERATED**:FEDERATED引擎允许在远程MySQL服务器上执行查询,如同本地表一样操作。这用于分布式查询和数据整合,但性能受到网络延迟的影响。 7. **ARCHIVE**:ARCHIVE引擎主要用于存储大量历史数据,这些...
MySQL存储引擎学习 MySQL存储引擎是MySQL数据库管理系统的核心组件之一,负责数据的存储和提取。...不同的存储引擎具有不同的特点和使用场景,选择合适的存储引擎对于数据库的性能和可靠性具有非常重要的影响。
而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎,MySQL的核心就是存储引擎。 ;MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、...
当使用FEDERATED存储引擎创建表时,MySQL只会在本地数据库目录下创建一个表定义文件(.frm文件),而不会存储任何实际数据。这意味着表的所有数据实际上存储在远程服务器上,本地只是保存了一个指向远程表的连接...
MySQL 不同实例间跨库联表查询-(1) MySQL engine 储存引擎 描述 InnoDB 具有行锁定和外键的事务安全表。新表的默认存储引擎。如果您具有MySQL经验但不 熟悉,请参阅 第15章,InnoDB存储引擎,尤其是第15.1...
在MySQL课程中,深入理解存储引擎是至关重要的,因为不同的存储引擎有着不同的特性和适用场景,这直接影响到数据库的性能、可靠性和可用性。 1. **MySQL 存储引擎概述** 存储引擎是MySQL数据库管理系统中的核心...
MySQL存储引擎是数据库管理系统的核心组件,它决定了数据如何在MySQL中存储、检索和管理。不同的存储引擎具有不同的特性和用途,以适应各种应用场景。在MySQL中,存储引擎主要负责数据的物理存储方式、事务处理、...
1. **检查FEDERATED引擎**:FEDERATED存储引擎允许你在远程服务器上的表像本地表一样使用。首先,你需要确认MySQL服务器是否已安装并启用了FEDERATED引擎。可以执行`SHOW ENGINES;`来查看,如果FEDERATED显示为NO,...
3. **灵活性**:MySQL允许在同一服务器或方案中使用多种不同的存储引擎,这意味着可以在不同表之间使用最适合的存储引擎来满足特定的需求。 #### 三、存储引擎的关键组件 在讨论存储引擎的具体实现之前,我们先来...