Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql,数据库/服务器之间的数据迁移(现在迁移,以后定期更新)_Php_Mysql_Database - Fatal编程技术网

Php Mysql,数据库/服务器之间的数据迁移(现在迁移,以后定期更新)

Php Mysql,数据库/服务器之间的数据迁移(现在迁移,以后定期更新),php,mysql,database,Php,Mysql,Database,这是一个有点抽象的问题,但同时也很简单。除了导出/导入之外,我不知道最好的方法,由于权限问题,我不能这样做。所以我需要一些替代品 在一台服务器上,我们将其称为1.2.3。我有一个包含两个模式的数据库,Rdb和test。这些模式分别有27个和3个表。该数据库存储来自我们电话系统的呼叫信息,但我们只有读卡器访问权限,因此除了选择和加入数据记录和信息之外,我们所能做的非常有限 然后我有了一个生产数据库服务器,用我的主模式称之为3.2.1,我想把前面的30个表放到其中一个生产模式中。迁移完成后,我需要创

这是一个有点抽象的问题,但同时也很简单。除了导出/导入之外,我不知道最好的方法,由于权限问题,我不能这样做。所以我需要一些替代品

在一台服务器上,我们将其称为1.2.3。我有一个包含两个模式的数据库,Rdb和test。这些模式分别有27个和3个表。该数据库存储来自我们电话系统的呼叫信息,但我们只有读卡器访问权限,因此除了选择和加入数据记录和信息之外,我们所能做的非常有限

然后我有了一个生产数据库服务器,用我的主模式称之为3.2.1,我想把前面的30个表放到其中一个生产模式中。迁移完成后,我需要创建一个脚本,该脚本将检查第一个连接上的数据,然后更新生产连接上的新模式,但这是在批量迁移完成之后

不过,我想知道php脚本是否是进行初始迁移的方法。我使用的是MySQL workbench,对于只读数据库,导出向导失败,但是如果界面中有其他方法,那么我就不知道了


这是相当多的数据,我不一定要寻找最快的方法,而是最简单和最安全的方法

对于一次性数据移动,最简单的方法是使用命令行工具mysqldump将表转储到文件中,然后使用mysql加载结果文件。这假设您正在关闭1.2.3,或将重新配置您的电话系统以指向3.2.1或适当更新DNS。此外,如果您可以让手机系统停机以移动数据,那么这就容易多了

我们只有读卡器访问权限,因此除了选择和加入数据记录之外,我们所能做的事情非常有限

这确实限制了你的选择

主/从复制需要复制从权限,您可能需要具有超级权限的用户来创建复制用户。 基于触发器的复制解决方案(如)需要具有CREATE例程的用户才能创建触发器 如果表具有上次更改的时间戳,则提取、转换、加载解决方案(如)将最有效。如果没有,那么您将需要ALTERTABLE权限。 针对不同的目标使用不同的工具

主/从复制通常用于灾难恢复、可用性或读取扩展 在不同环境之间复制某些或所有表的异构复制可以是不同的RDBMS,也可以是以连续但异步的方式复制的不同副本集。 用于批量、每小时/每天/定期数据移动的ETL,能够选择列的子集、聚合、转换时间戳格式、合并多个源,并通常修复数据中需要的任何内容。 这将有助于您真正确定您的情况是什么——是临时数据同步的一次性加载,还是正在进行的实时复制,还是延迟复制

编辑:
查看角色工具包。特别是pt表同步和pt表校验和。他们将对此提供帮助。

主/从复制?我不太熟悉,但听起来这将是一条不错的路线。但我如何在mysql工作台中实现这一点呢?谢谢!Mysql已经安装在两台服务器上,所以我将从第3步开始,看看它是如何运行的。感谢您的详细回答。在与我的团队进行了更多讨论之后,我们认为我们可能会离开当前的数据库,用php创建一个脚本,每15分钟左右运行一次,以检查更新情况,但最初我可以运行相同的脚本,从每个表中选择所有内容,然后插入到服务器上的新表中。在php脚本中有没有已知的好方法可以做到这一点?我的经验是从DBA的角度来看的。我不懂php。我知道已经有工具可以帮助你做你想做的事情。请参阅我的pt表同步编辑。你可能想尝试一下,如果它对你有效的话,可以帮你节省很多精力。另外,初始加载类似于shell命令mysqldump | mysql,我现在正在研究pt table sync,这可能是一个很好的方法,只要我进一步研究一下。这肯定会节省一些精力/时间!再次感谢您的帮助!我在这个工具上运气不好,但我确实找到了一个可以从一个连接复制到另一个连接的sql工具