扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、为了使新服务器的配置和引入尽可能简单,整理您当前使用的服务器是必要的。因此,数据迁移是删除任何冗余或过期页面、备份、电子邮件和用户帐户的最佳时间。这意味着您将传输的数据量减少到最小,另一方面,您可以从目标系统上的所需资源中获得更大的价值。
创新互联服务项目包括湘阴网站建设、湘阴网站制作、湘阴网页制作以及湘阴网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,湘阴网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到湘阴省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
2、您应该为关闭活动服务器进程制定准确的计划,以便以后不会出现数据丢失导致的复杂情况。指定应停止对文件、脚本和配置所做的任何更改的时间,并尽可能临时阻止对数据库的访问。也可以稍后更新您的数据库。在大多数情况下,数据传输是通过完整的服务器备份进行的。
1、在搬迁现场拉设警戒线,严禁非工作人员进入搬迁作业现场。
2、设备在搬迁前,现场安全监护人员应先检查并清除途中的障碍物。
3、设备吊装开始前,必须对车辆行驶路线及吊装作业时,是否会对路途中线路造成破坏,起重重物前检查起重设备及绳索是否符合载荷要求等进行确定,确保吊装作业的安全进行。
4、拆卸与迁移时,必须服从领导的统一指挥,严禁作业人员上下抛掷工具和物件,严禁同时起吊两件以上重物,严禁在起吊臂上或高处位置存放拆装工具和物件。在整体竖起或放到设备时,作业人员应离开设备倒俯范围。
5、起吊时要专人指挥,起吊臂下方严禁站人。
6、设备必须安装在平整、坚实的场地上,遇松软的场地必须先掂实,并加掂基台木和木板。
7、拆除设备时,一定要先切断电源在进行拆除,严禁带电拆除。
8、拆除设备要安排有经验的工人进行作业,以避免对设备造成损伤。
9、装车后要绑紧捆牢,行车时要匀速行驶,特别是上下坡要注意。
10、搬迁作业前必须组织所有参与搬迁人员学习本安全措施。
迁移MySQL数据库通常只需要几个简单的步骤,但是由于您要转移的数据量可能比较庞大,因此一般耗时也会比较长。
下面的步骤将指导您如何从旧的服务器上导出MySQL数据库,对它进行安全加固;然后将其复制并导入到新的服务器上,以保证数据的完整。
将MySQL数据库导出至转储文件(dump file)
Oracle提供了一个名为mysqldump的工具,允许您轻松地将数据库结构和其数据导出到一个SQL的转储文件。您可以使用如下的命令:
1.mysqldump -u root -p --opt [database name] [database name].sql
不过,请注意如下几点:
我们可以使用--single-transaction的标志,以避免数据库在导出数据的过程中被锁死。这样能够在将数据导出到转储文件的同时,您仍可继续在旧的数据库上更新数据。不过请注意,那些在导出进程已经开始之后被更新的数据,是不会被导入转储文件之中的。
在运行该命令之前,请务必将[database name]替换成您的实际数据库名称。
请输入您自己的用户名和相对应的密码,并确保该用户具有备份数据库所需的权限。
安全加固备份文件
在大多数情况下,数据是一家企业的最重要的资产。因此,我们不希望数据库的各种备份被暴露在不受保护的服务器上,因为这样有可能会造成错误地泄露,甚至会出现被黑客窃取等更为糟糕的状况。
因此,通常您可以尝试的做法是:压缩、加密文件,然后删除原文件。在Linux操作系统上,请使用以下的命令对已压缩文件进行加密:
1.zip --encrypt dump.zip db.sql
在压缩开始之前,系统将提示您输入密码。
传输备份文件
至此,我们已经获得了一个加密的转储文件。下面让我们通过网络使用SCP命令,将其传输到新的服务器上:
1.scp /path/to/source-file user@host:/path/to/destination-folder/
将MySQL转储导入新服务器
通过上面一步,我们已将备份文件传到了新的服务器上,下面让我们来进行解密和提取:
1.unzip -P your-password dump.zip
为了存储空间和安全方面的原因,一旦文件导入成功,请记得删除其对应的转储文件。
您可以使用以下的命令来导入文件:
1.mysql -u root -p newdatabase /path/to/newdatabase.sql
在新服务器上验证导入的数据
现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。
我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。
该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。
1.SELECT
2.TABLE_NAME,
3.TABLE_ROWS
4.FROM
`
5.information_schema`.`tables`
6.WHERE
`
7.table_schema` = 'YOUR_DB_NAME';
此外,我建议您检查各个表中数字列的MIN和MAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。
此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。
另一种导出和导入的选项
我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。
该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。
而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了。
因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。
当然,如果您非要尝试一下的话,可以使用如下的命令:
1.mysqldump -u root -pPassword --all-databases | ssh user@new_host.host点抗 'cat - | mysql -u root -pPassword'
重要提示
请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(https://dev.mysql点抗 /doc/refman/5.7/en/upgrading.html)。
请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。
请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。
如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。
在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的性能问题。
在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流