如何在两台服务器之间安全迁移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网站上的升级说明来进行统一(请参见(https://devmysqlcom/doc/refman/57/en/upgradinghtml)。

 

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

 

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

 

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

 

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

 

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

第一,根据自建数据数据量、MySQL版本以及访问量等信息申请对应的云数据库实例,申请云数据库实例完成后,联系云数据库的腾讯云技术人员调整云数据库和云服务器之间的网络配置。

第二,迁移数据库:

1、使用mysqldump导出自建数据库的数据,注意记录binlog的文件和位置(如需帮助请咨询云数据库技术人员),然后使用mysql命令导入至对应的云数据库实例中。推荐使用云数据库多线程导入导出工具。

2、在自建数据库上给云数据库的同步用户授权,授权语句范例如下:

GRANT REPLICATION SLAVE,FILE ON TO 'replication'@'%' IDENTIFIED BY 'test123';

3、在导入数据后根据备份的binlog位置和binlog文件使用change master命令配置从自建数据库到云数据库的主从同步。范例如下:

CHANGE MASTER TO MASTER_HOST='101110',MASTER_USER='replication',MASTER_PASSWORD='test123',MASTER_LOG_FILE='mysql-bin000012', MASTER_LOG_POS=106;

第三,迁移后数据校验:数据同步完成之后,可以使用数据抽样、对比表数量、库数量或者使用专业的对比工具确认数据是否完整。

第四,业务切换数据库:校验数据完整后,请选择适当时间来做业务的平滑切换,将业务连接的数据库切换至云数据库,切换后请务必检查自建数据库是否还有请求进来,避免出现还有请求连接到自建数据库的情况。

第五,断开自建数据库和云数据库主从同步:

1、切换后业务正常后,业务侧在云数据库上执行如下命令断开自建数据库到云数据库的主从同步。

2、断开主从同步后通知云数据库的技术人员恢复之前调整的网络。

如果您基于更高的性能、更灵活的扩展或供应商替换要求,您可能需要迁移现有的在线项目。因此,您需要解决的因素包括现有的数据、结构、配置等。借助必要的技术、适当的规划和特定软件,您只需将所需的数据传送到新服务器。数据迁移过程的复杂性与项目的复杂性和规模密切相关。作为一个值得信赖的香港服务器租用托管服务提供商,基于Web的互联迷你系列将为您简要介绍在服务器数据迁移期间要注意的事项。

将数据迁移到新的服务器之前 - 合理规划

选择正确的目标服务器是第一步。例如,如果计划更改网站/应用程序,则需要执行其他任务,以便在重新定位期间不必处理这些任务。无论是将数据从一个服务器(例如香港服务器)迁移到另一个服务器,还是新的服务器结构是基于集群的或涉及多个不同的系统,它也是不同的。

更改服务器体系结构时,必须更改配置,不管是不同的操作系统、不同的软件版本还是不同的控制面板。即使只是切换到功能更强大的同类型服务器,仍然需要相应地配置应用程序和服务,以便能够利用额外内存、改进的cpu性能或增加内存容量。

请注意,无论是选择简单的性能升级还是完全更改服务器体系结构,都应提前为移动设备创建最佳条件。这些因素包括足够的存储空间和计算能力、30%到40%的缓冲区或详细的扩展计划以及快速的网络连接。

当数据迁移到另一台服务器?

如果您租用服务器资源,您可能没有充分考虑托管服务的成本。供应商提供的各种软件包在内容提供方面有所不同,即可用性、数据安全性和支持。因此,有必要在选择之前比较不同的软件包。迁移数据的另一个原因可能是您希望减轻it部门的压力。在这种情况下,it托管服务解决方案将是一个不错的选择。它不仅承载服务器,还由提供者维护和更新。例如,使用稳定的网络互连香港服务器租赁服务,您可以选择不同级别的技术服务包来简化您的IT管理工作。

为即将进行的迁移组织当前服务器

为了使新服务器的配置和引入尽可能简单,有必要整理当前使用的服务器。因此,数据迁移是删除任何冗余或过期页面、备份、电子邮件和用户帐户的最佳时间。这意味着您可以最小化传输的数据量,另一方面,您可以从目标系统上所需的资源中获得更多的价值。

此外,还应该制定关闭活动服务器进程随后因数据损失而不会出现并发症,精确的计划。指定时间应停止对文件,脚本和配置做任何改动,并尽可能暂时阻止对数据库的访问。您也可以稍后更新数据库。在大多数情况下,数据传输通过一个完整的服务器备份进行。

服务器的数据迁移是如何工作的?

迁移数据最简单的方法是使用实际状态的一对一备份副本。在进行必要的配置和调整之前,将其转移到新的服务器硬件,然后可以测试其是否有效。最后,您可以调整dns或ip设置,这将允许您在新系统上实时启动Web项目。虽然这种方法通常需要系统管理员的支持,但是很容易计划和执行。但是,这意味着当前服务器将完全暂停,在数据迁移期间,您将无法访问或使用您的网站。

如果提供需要连续数据库访问的服务,则需要一个混合迁移解决方案来保持当前服务器处于活动状态。在这种情况下,应将服务器上的当前数据库声明为“master”,然后在配置完成后将新数据库从属为“slave”。这使得两个应用程序能够实时同步。如果两个数据库处于相同状态,请反转角色,以便新数据库成为主数据库。这意味着您的项目可以在数据迁移期间继续可用。

什么样的资源可以用来将数据迁移到新的服务器?

有几种工具和服务可以简化服务器迁移。例如,如果只想移动数据而不调整操作系统或其他软件,则不应放弃控制面板。这些服务器管理器可以帮助您创建数据备份,然后将它们迁移到新服务器。所需的配置工作负载是最小的。像wordpress这样的内容管理系统也可以使用简单的ftp和备份应用程序进行传输,并且通常提供自己的插件来迁移链接的数据库。这些过程大多是自动化的。

对于更复杂的项目,root权限总是会带来好处:使用ssh,您可以通过相应的命令行将完整的数据库(包括所有权限和用户数据)转移到新服务器。例如,可以使用mysql转储向目标系统发送mysql数据库的副本。作为微软的sql服务器用户,您甚至可以使用内置功能来实现这一点。

但是,您也可以外包服务器数据的迁移:许多托管服务提供商不仅为客户提供用于手动服务器数据传输的特定软件,而且还为数据迁移提供了积极的支持。此外,还有一些服务专门用于Web项目的迁移和全天候服务的可用性-无论是从一个共享服务器转移到另一个共享服务器,还是要替换提供者,还是计划切换到服务器集群。

服务器迁移期间可能会出现什么问题?

需要连续稳定的网络连接才能根据需要传输服务器数据。因此,在服务器迁移期间,连接问题是最常见的错误源。如果连接断开,它可以完全终止传输,这意味着它从一开始就重新启动。然而,短期连接问题通常不会被注意到,也不会导致进程终止。但是,在某些情况下,并非所有数据都可以到达目标服务器,这反过来会影响迁移应用程序的功能。

但是,如果有些文件不能成功地转移到新服务器上,可能有几个原因。尤其是在改变操作系统而不再支持某些文件格式、编程语言等时,会出现兼容性问题。此外,在源计算机和目标计算机上不同的访问权限或密码保护会导致并发症。此外,如果目标系统没有所需的磁盘空间或dns条目没有正确更改,数据迁移可能导致错误。

需要检查服务器数据迁移。

移动到新的服务器的项目可能是一个复杂和繁琐的过程,这取决于项目规模和新目标的体系结构。这就是为什么它应该精心策划和执行良好。下表总结了有关服务器迁移的最重要的问题。

开始菜单--->程序,打开SQL Server Management Studio(即我们的SQL 2005)

连接服务器后,找到我们需要迁移的数据,右键点击属性

在数据库属性里面,点击文件,可查看数据库文件和数据库日志文件的存放路径

确定没有任何其它用户连接到此数据库后,点击该数据库-->任务-->分离

我们可以看到分离以后,刚刚那个数据库,已经不在此列表

进入刚刚我们第3步属性里面看到的数据库文件路径如下图把我们的ZNLCRMmdf数据库文件和ZNLCRM_LogLdf数据库日志文件拷贝到另外一台服务器

在另外台服务器上打开SQL数据库与第1步一样点击数据库--->附加

在附加数据库里面,点击添加,如下图所示

找到刚刚拷贝过来的ZNLCRMmdf文件选中该文件,依次点击确定(注意日志文件会自动一起加载过来)

然后我们就可以看到,一个完整的数据库就直接被迁移过来如下图

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

评估和分析:

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

方案设计:

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

环境准备:

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

迁移实施:

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

测试验证:

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

系统割接:

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

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在两台服务器之间安全迁移MySQL数据库

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情