如何在两台服务器之间安全迁移MySQL数据库

如何在两台服务器之间安全迁移MySQL数据库,第1张

   迁移MySQL数据库通常只需要几个简单的步骤,但是由于您要转移的数据量可能比较庞大,因此一般耗时也会比较长。

 

     

 

    下面的步骤将指导您如何从旧的服务器上导出MySQL数据库,对它进行安全加固;然后将其复制并导入到新的服务器上,以保证数据的完整。

 

    将MySQL数据库导出至转储文件(dump file)

 

    Oracle提供了一个名为mysqldump的工具,允许您轻松地将数据库结构和其数据导出到一个SQL的转储文件。您可以使用如下的命令:

 

    1mysqldump -u root -p --opt [database name] > [database name]sql 

 

    不过,请注意如下几点:

 

    我们可以使用--single-transaction的标志,以避免数据库在导出数据的过程中被锁死。这样能够在将数据导出到转储文件的同时,您仍可继续在旧的数据库上更新数据。不过请注意,那些在导出进程已经开始之后被更新的数据,是不会被导入转储文件之中的。

 

    在运行该命令之前,请务必将[database name]替换成您的实际数据库名称。

 

    请输入您自己的用户名和相对应的密码,并确保该用户具有备份数据库所需的权限。

 

    安全加固备份文件

 

    在大多数情况下,数据是一家企业的最重要的资产。因此,我们不希望数据库的各种备份被暴露在不受保护的服务器上,因为这样有可能会造成错误地泄露,甚至会出现被黑客窃取等更为糟糕的状况。

 

    因此,通常您可以尝试的做法是:压缩、加密文件,然后删除原文件。在Linux *** 作系统上,请使用以下的命令对已压缩文件进行加密:

 

    1zip --encrypt dumpzip dbsql 

 

    在压缩开始之前,系统将提示您输入密码。

 

    传输备份文件

 

    至此,我们已经获得了一个加密的转储文件。下面让我们通过网络使用SCP命令,将其传输到新的服务器上:

 

    1scp /path/to/source-file user@host:/path/to/destination-folder/ 

 

    将MySQL转储导入新服务器

 

    通过上面一步,我们已将备份文件传到了新的服务器上,下面让我们来进行解密和提取:

 

    1unzip -P your-password dumpzip 

 

    为了存储空间和安全方面的原因,一旦文件导入成功,请记得删除其对应的转储文件。

 

    您可以使用以下的命令来导入文件:

 

    1mysql -u root -p newdatabase < /path/to/newdatabasesql 

 

    在新服务器上验证导入的数据

 

    现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。

 

    我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。

 

    该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。

 

    1SELECT   

    

    2TABLE_NAME,   

    

    3TABLE_ROWS  

 

    4FROM   

    `

    5information_schema``tables`  

 

    6WHERE   

    `

    7table_schema` = 'YOUR_DB_NAME'; 

 

    此外,我建议您检查各个表中数字列的MIN和MAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。

 

    此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。

 

    另一种导出和导入的选项

 

    我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。

 

    该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。

 

    而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了。

 

    因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。

 

    当然,如果您非要尝试一下的话,可以使用如下的命令:

 

    1mysqldump -u root -pPassword --all-databases | ssh user@new_hosthostcom 'cat - | mysql -u root -pPassword' 

 

    重要提示

 

    请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(>

 

    请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。

 

    请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。

 

    如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。

 

    在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的性能问题。

 

    在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了

1、首先登录云服务器控制台,并在左侧导航中单击服务迁移。
2、其次单击新建,选择实例迁移,准备并确认建立好迁入准备,单击下一步。
3、然后选择所在地域,填写任务名称、COS链接和需要迁入的云服务器等迁入配置信息,单击完成,成功建立迁移任务。
4、最后返回数据迁移管理页面,迁移任务完成即可。

英方云迁移解决方案提供了包括评估和分析、方案设计、环境准备、迁移实施、测试验证和系统割接的6个阶段,14道工序,和包括i2Move在内的3个迁移工具。

评估和分析:

确定迁移范围和目标,结合系统需求调研表,涵盖业务系统信息(业务名称、业务系统、业务分类、使用状态、对接系统等)主机信息(部署架构、IP地址、内外网访问情况、系统重要程度、可允许的宕机时间和最佳迁移 *** 作建议时间、中间件等) *** 作系统信息(CPU、内存、磁盘容量、OS版本等)数据库信息(数据名称、数据库类型、版本、高可用、数据量、备份策略等);

方案设计:

根据评估的分析报告,设计迁移的实施方案,涵盖迁移场景的分类、特殊迁移场景、迁移方案、实施步骤、预知的迁移挑战和风险、应对方案,并针对客户和合作方提供迁移前的分工计划表以及培训计划等;

环境准备:

迁移目标的基础资源准备,包括计算、存储、网络、数据库环境、新账号、密码、待迁移系统管理员权限设置、迁出和迁移资源对应表,以及迁移软件客户端安装;

迁移实施:

系统迁移信息配置,数据库迁移、服务器迁移、服务器集群迁移,启动迁移任务和进度观察;

测试验证:

迁移后的系统稳定性、数据一致性、完整性等验证;

系统割接:

建立切割计划表,确定各个业务系统的切割时间窗口,进行业务验证,确定是否进行执行回退方案;

这里主要介绍的是基于 Linux(CentOS7) 系统,不同服务器集群之前的数据迁移。Elasticsearch 可以通过快照(snapshot)相关的命令对索引进行备份和恢复。(这个备份是增量的,同一个索引在第一次备份的基础上进行第二次备份只会备份新变化的数据)

假定旧集群有三个节点,分别对应三台服务器: 192168110 、 192168111 、 192168112

在旧集群中指定 192168110 作为 NFS(Network File System)服务端,其它两台服务器作为 NFS 客户端,分别安装 NFS:

以下步骤只需要在 NFS 服务端执行。

创建数据共享目录,目录结构可以根据自己的实际情况修改:

修改配置文件:

相关参数的含义如下:

重启 NFS 服务端:

最后确保 NFS 保客户端能够访问 NFS 服务端的数据共享目录。

以下步骤需要在每台 NFS 客户端服务器执行。

在 NFS 客户端服务器创建数据挂载目录,这里方便起见,目录结构和 NFS 服务端共享目录一致:

将 NFS 服务端共享目录挂载到各个 NFS 客户端:

这样所有的 ES 节点就可以使用同一个数据共享目录。

在旧集群每个 ES 节点的 elasticsearchyml 中,设置 ES 快照仓库目录为前边 NFS 配置的数据共享目录,也就是 ES 数据要备份到的目录:

修改完成后重启 ES 服务。

连接旧集群中某一个节点发送 PUT 请求来创建快照仓库,例如使用 192168110 节点,可以使用 Postman、Kibana 发送请求:

或者直接在对应节点的服务器上执行如下命令:

创建索引的快照就是对索引进行备份,如下发送一个 PUT 请求来生成 index_1 、 index_2 索引的快照:

或者:

可以在 NFS 的数据共享目录中( /opt/data/es_backup )得到最终生成的索引快照文件。

查看快照仓库的信息:

查看指定快照:

查看仓库中所有的快照信息:

删除指定快照:

删除快照仓库:

参考文章第一部分的内容,在新集群的服务器上搭建 NFS 环境。

给新集群每个 ES 节点配置快照仓库的目录,也就是新集群中的 NFS 数据共享目录:

连接新集群中某个 ES 节点发送 PUT 请求创建快照仓库,和之前的一样:

先将旧集群中生成的索引快照文件拷贝到新集群的快照仓库目录下。

再连接集群中的某 ES 个节点,发送 POST 请求从索引快照中恢复数据:

或者:

如果不要参数,则是恢复快照中的全部索引:

一般情况下,我们会结合索引的大小,在旧群集中生成指定索引的快照文件,然后拷贝到新集群的快照仓库来恢复索引数据,恢复完后就可以删除对应的索引快照文件(如果有需要的话也可以备份起来),重复这个步骤直到所有索引数据迁移而完毕。

如果集群中的数据量比较大,比如上百个G,整个迁移过程还是比较耗时的,耐心等待吧。

最强蜗牛 终于开启了转服模式咯,玩家们可以转换服务器咯,不过转服也是有一定条件限制的哦,现在就带来具体条件规则吧~

如果蜗爷只是想要大概了解转服,近期内并没转服需求的话,可以通过简略说明,大概了解转服的限制和影响。

1、已经度过新手期的玩家,在通过转服检测后就可以进行转服;

2、当前所在服务器和想要转入的目标服务器都开放转服后,才可以转服;

3、角色每次转服,需要花费5000白蝌蚪,首次为1折,即500白蝌蚪;

4、转服后,无法参加当周的活动排名,同时原服务器上的排名信息将被清除;

5、角色转服后,会进入30天的冷却期,在冷却期内无法再次转服。

1、转服需要满足哪些条件?

由于转服是一项涉及角色数据的 *** 作,所以必须满足特定条件,才可以进行转服。需要的条件及说明如下:

已经度过新手期:

指当前服务器的新服活动和囤积已经结束,如果当前已经参加周活动,则表示满足该条件。

未加入俱乐部:

如果角色当前已经加入了俱乐部,需要退出后才能进行转服。

-当前角色此前没有转服,或距离上次转服已经超过30天:

每个角色转服后,都会进入30天的转服冷却期,在此期间内,无法通过转服检测。冷却期只会影响当前角色,不会影响同账号下其他的角色转服。

当前服务器已开放转服:

服务器所在的区组开放转服后,在设置中的服务器选择界面,就可以在底部看到转服按钮,如果没有看到转服按钮,则表示区组的转服功能尚未开放。

目标服务器允许转入:

服务器允许转入的条件如下:

a、目标服务器没有创建过角色:如果想要转入已经有角色的服务器,则需要先将该角色进行转出 *** 作;

b、目标服务器的开服时间,不得晚于当前角色创建时间72小时:即只能转入开服时间更早或和角色创建时间相近的服务器,角色创建时间和开服时间,都可以在转服界面中查看;

c、目标服务器的昨日在线人数,不超过8000;


将数据从一台服务器移动到另一台服务器的过程。迁移就是移动的意思,游戏服务器迁移是将数据从一台服务器移动到另一台服务器的过程的意思。游戏服务器(有时也称为主机)是多人游戏中官方指令来源的服务器。

数据迁移(又称分级存储管理,hierarchical storage management,hsm)是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的 数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一 级磁盘上。对于用户来说,上述数据迁移 *** 作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高了。
数据迁移是将很少使用或不用的文件移到辅助存储系统(如磁带或光盘)的存档过程。这些文件通常是需在未来任何时间可进行方便访问的图像文档或历史信息。迁移工作与备份策略相结合,并且仍要求定期备份。还包括电脑数据迁移,迁移旧电脑(旧系统)中的数据、应用程序、个性化设置等到新电脑(新系统),在系统升级后很有必要。
对数据的检查包括以下6个方面。
(1)数据格式检查。检查数据的格式是否一致和可用,目标数据要求为number型。
(2)数据长度检查。检查数据的有效长度,对于char类型的字段转换到varchar类型中,需要特别关注。
(3)区间范围检查。检查数据是否包含在定义的最大值和最小值的区间中。例如年龄为300或录入日期为4000—1—1显然有问题。
(4)空值、默认值检查。检查新旧系统定义的空值、默认值是否相同,不同数据库系统对空值的定义可能不同,需要特别关注。
(5)完整性检查。检查数据的关联完整性。如记录引用的代码值是否存在,特别需要注意的是有些系统在使用一段时间后,为了提高效率而去掉了外键约束。
(6)一致性检查。检查逻辑上是否存在违反一致性的数据,特别是存在分别提交 *** 作的系统。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12704455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)