大家好,今天小编来为大家解答以下的问题,关于服务器的迁移,服务器迁移这个很多人还不知道,现在让我们一起来看看吧!
一、如何在两台服务器之间安全迁移MySQL数据库
迁移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 'cat-| mysql-u root-pPassword'
重要提示
请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(s://dev.mysql./doc/refman/5.7/en/upgrading.html)。
请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。
请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。
如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。
在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的*能问题。
在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询*能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了
二、如何完善物理机到虚拟机的迁移过程
如何完善物理机到虚拟机的迁移过程
现在,物理机到虚拟机的大部分迁移流程都是借助于图形化向导完成的,但是你仍旧可以通过提前实现一些关键的准备工作来完善这个过程。
除了虚拟服务器的能力,虚拟化技术最大的好处之一就是能够将现有的物理服务器迁移至虚拟环境当中,并且不需要重装操作系统。所有人都关注于vMotion和HA迁移这两项技术,但是物理机到虚拟机(P2V)的迁移特*也已经成为虚拟化的基础,因为很少有企业会在购买新的服务器之后,放弃现有的服务器和应用程序。物理机到虚拟机的迁移到是一种经过检验、可靠的方式,可以将之前的物理设备转移到新的虚拟环境当中。现在,整个P2V流程都是基于图形化向导的,但是通过一些额外的方式可以让你成为一名P2V专家,确保自己以正确的方式管理虚拟化环境。
清理服务器
也许这件事情不值得拿出来单独讨论,但是还是要强调需要对将要导入的服务器进行清理。显示隐藏的系统文件、移除所有由曾经登陆过服务器的23个用户产生的垃圾文件。当然,他们中的一些可能会在回收站中留下几十GB的数据——这些数据不应该成为P2V的一部分。使用目录大小排序工具,寻找体积最大的文件,这些都会增加你的P2V迁移时间,并且占用昂贵的共享存储空间。
用户目录也是需要检查的关键区域,在进行工作之前,一些开发人员可能会将程序文件复制到桌面上,他们还有可能将这些程序文件存储在本地硬盘的临时文件夹当中;一个好的目录大小排序工具可以帮助你快速找到他们。Inter缓存文件当中同样会包含一些体积较大的文件,而这些文件通常只被使用一次,并且不会从服务器上被移除。传统的临时文件和目录当中也包含一些不再需要的数据,桌面和profile文件夹往往成为包含大量程序文件和目录的地方,这样会浪费几十GB的存储空间。
检测资源使用情况
通常物理服务器的硬件资源都不能被充分利用,而对服务器进行虚拟化正是要解决这个问题。我们会对硬件资源利用率较低的服务器进行虚拟化,所以如果将服务器中的硬件资源复制到虚拟化环境当中是非常浪费的,因为这些资源本可以由多台服务器共享使用。
需要检查的主要硬件种类包括CPU、内存、网卡和存储。连续监控服务器一周时间,记录下资源的使用情况。当为虚拟服务器分配资源时,可以使用这些数据作为基准。需要记住的关键一点是当你监控的是一台CPU使用率在50%的老旧服务器时,在虚拟化之后的新硬件平台上,其CPU使用率可能会大大降低。
根据操作系统设定CPU数量和内存大小标准,相比于根据物理服务器配置过度分配硬件资源、之后逐步进行缩减,这种以标准为基础进行扩展的方式是一种更为经济的解决方案。
卸载厂商相关的软件
对于大多数物理服务器来说,制造商都会预先配置软件和驱动,用来支持特定的硬件平台。而在虚拟服务器进入生产环境之前,这些软件需要从新的操作系统上被移除。确保所有的和厂商相关的软件,包括管理软件都被移除,这一点非常关键。哪怕只遗留一个这样的软件也会导致CPU使用率大幅上升,因为这些软件会不断重复地寻找特定的硬件。在你卸载了所有此类软件之后,你可以检查服务器运行的服务,确保没有任何厂商相关的软件仍然存在。完成这些操作之后,可以安装基于hypervisor的工具,来为虚拟机提供新的驱动。
卸载厂商驱动时,需要注意配置你的虚拟机使用两个虚拟CPU启动。第一次,需要使用两个CPU启动虚拟服务器,即便你计划服务器在正常情况下只需要一个CPU。在服务器被虚拟化之后第一次重启时,许多特定厂商的驱动将会寻找并不存在的硬件,这样会导致CPU使用率达到100%。使用两个CPU启动可以允许你卸载和厂商相关的软件,而不必像只有单个CPU那样,和其他程序争夺CPU周期。
借助于一些物理机到虚拟机迁移工具,现在可以在新的虚拟机当中禁用特定服务了。但是这种方式不能起到很大帮助作用,因为你需要找到所有的服务,但是它们中的一些可能没有被明确标注。另外一个可能的问题是在一些情况当中,禁用它们可能会影响服务器正常启动,除非它们被正确卸载,这样操作系统才能使用本地的操作系统组件替换厂商驱动。
三、服务器迁移
客户由于以下原因可能会要进行OA的迁移
1)项目实施阶段,通过某项测试,把通过测试的机器的OA环境搬迁到另一台机上
2) OA应用服务器硬件升级或故障,为了不影响OA正常使用,需要搬迁
3) OA应用做双机互备,双机热备等
此OA应用服务迁移如果涉及OA数据库的变动,请参考『迁移OA数据库』。
1.相同操作系统间迁移,如从一台windows2003系统机器迁移到另一台windows2003系统机器
把$OA_HOME目录拷贝到另一台机器相同路径下(如果拷贝到另一台机器的路径不相同,方法请参考跨操作系统迁移,来修改路径参数);
2.跨操作系统迁移(如从windows操作系统迁移到linux)或者在同一台机器下不同路径下迁移
将$OA_HOME目录压缩成.tar格式,然后上传到目录机器上,解压到需要的路径下
请检查以下这些文件,将路径修改成实际的路径:
1.$OA_HOME/TomcatX/conf/server.xml文件Context path="/oa" docBase=" E:/OA/firstframe/web"中docBase的值
或者$OA_HOME/ApusicX/config/server.xml文件lication name="oa" base=" E:/OA/firstframe/web"中base的值
2.$OA_HOME/firstframe/bin/set-server-env.bat(非windows环境:$OA_HOME/firstframe/bin/init.sh)文件中OA_HOME,J*A_HOME,JRE_HOME等参数的路径值
3.$OA_HOME/firstframe/resources/firstframe.properties文件中constant.main_storage_dir的值(OA公文处理表单等文件的存放目录路径)
注意:由windows操作系统迁移至其他操作系统,要将数据库中各模块附件中路径的反斜杠全部改成正斜杠,脚本如下:
--oracle脚本:update archive2_attach set serverfile=replace(serverfile,'
','/');update archives_attach set serverfile=replace(serverfile,'
','/');update books_info set serverfile=replace(serverfile,'
','/');update bulletins_attach set serverfile=replace(serverfile,'
','/');update calendar_attach set serverfile=replace(serverfile,'
','/');update docex_fileattach set serverfile=replace(serverfile,'
','/');update fileman set serverfile=replace(serverfile,'
','/');update forum_attachment set serverfile=replace(serverfile,'
','/');update knowledge_attach set serverfile=replace(serverfile,'
','/');update meeting_attach set serverfile=replace(serverfile,'
','/');update messages_attach set serverfile=replace(serverfile,'
','/');update news_attach set serverfile=replace(serverfile,'
','/');update workflow_fileattach set serverfile=replace(serverfile,'
','/');update workflow_signature set serverfile=replace(serverfile,'
','/');update workflow_wordtemplate set serverfile=replace(serverfile,'
','/');update workflow_websign set serverfile=replace(serverfile,'
','/');mit;
--mssql脚本:update archive2_attach set serverfile=replace(serverfile,'
','/')update archives_attach set serverfile=replace(serverfile,'
','/')update books_info set serverfile=replace(serverfile,'
','/')update bulletins_attach set serverfile=replace(serverfile,'
','/')update calendar_attach set serverfile=replace(serverfile,'
','/')update docex_fileattach set serverfile=replace(serverfile,'
','/')update fileman set serverfile=replace(serverfile,'
','/')update forum_attachment set serverfile=replace(serverfile,'
','/')update knowledge_attach set serverfile=replace(serverfile,'
','/')update meeting_attach set serverfile=replace(serverfile,'
','/')update messages_attach set serverfile=replace(serverfile,'
','/')update news_attach set serverfile=replace(serverfile,'
','/')update workflow_fileattach set serverfile=replace(serverfile,'
','/')update workflow_signature set serverfile=replace(serverfile,'
','/')update workflow_wordtemplate set serverfile=replace(serverfile,'
','/')update workflow_websign set serverfile=replace(serverfile,'
','/')go
因为中间件缓存中保存了原来路径参数,影响OA使用,所以在启动OA服务之前请清删除OA缓存文件,$OA_HOME/ApusicX/deploy或$OA_HOME/TomcatX/work/Catalina/localhost目录下的所有文件夹,启动OA服务后重新申请license,如中间件是apusic,还需要重新申请apusic的license,请联系实施人员申请。