MySQL开启Federated引擎以及使用示例

简述

Federated引擎可以让我们访问远程MySQL数据库中的数据。查询本地Federated表时,自动从远程数据库表中提取数据。本地只存储表的定义,表的数据还是存储在远程数据库中。

MySQL Federated是MySQL数据库中的一种特殊的存储引擎,它允许用户在不同的MySQL服务器之间共享数据。这种存储引擎的原理是将数据存储在远程MySQL服务器上,然后通过本地MySQL服务器来访问这些数据。
这种方法可以使用户在不同的MySQL服务器之间共享数据,而不需要复制数据或者进行数据同步。

MySQL Federated存储引擎的
优点:
(1)可以在不同的MySQL服务器之间共享数据,而不需要复制或进行数据同步。减少数据冗余,提高数据的一致性和可靠性。
(2)可以提高系统的可扩展性和可维护性,无需复杂的数据同步和管理。

缺点:
(1)远程MySQL服务器出现故障或网络故障,那本地MySQL服务器将无法访问远程MySQL服务器上的数据。
(2)MySQL Federated存储引擎的性能可能受到网络延迟和带宽限制的影响。

原理和Oracle中的dblink类似。

默认情况下,MySQL并未启用Federated引擎,如果要启用,必须使用federated配置启动。

sqlserver跨数据库查询mysql数据

简介

我们知道同种类型数据库,本地数据库要想和远程数据库建立连接:

  • oracle使用dblink
  • sqlserver使用链接服务器
  • mysql使用Federated引擎

大型项目尤其是高并发项目中,不推荐直接在本地数据库与远程数据库之间建立连接。但小型项目中,某些场景下使用数据库之间的连接,反而能让我们更方便的进行系统集成与数据查询。所以凡事无绝对,不同的应用场景考虑不同的技术。

本文我们主要讲述的是不同类型数据库跨库查询数据,如何在sqlserver中直接查询mysql数据。

不同类型数据库之间不能直接建立连接,在这里我们使用mysql-connector-odbc通过ODBC数据源来实现sqlserver跨数据库数据查询mysql数据。

环境说明:
sqlserver版本: Microsoft SQL Server 2008 R2 (RTM)
mysql版本: 5.7.31
mysql-connector-odbc-8.0.28-winx64.msi

MySQL数据库全量备份脚本(Windows版)

MySQL数据库全量备份bat(Windows)脚本,备份核心逻辑:

  1. mysqldump全量导出数据库文件;
  2. 压缩备份文件;
  3. 备份脚本由Windows计划任务定时触发;

创建Windows计划任务核心命令如下:

schtasks /create /F /tn %taskName% /tr %cd%\bin\mysql_backup.bat /sc daily /st 18:00

详细脚本如下: