在项目开发过程中,我们一般搭建局域网进行项目开发,并进行内部测试,发现bug进行修正,最后会把一段时期的开发成果(文件)上传到公网服务器进行展示,一般一段时间更新一次。比如我们这个项目,一周更新一次到两次,这里结合自己的实际操作写一下项目由内部局域网服务器更新到公网服务器的步骤。总体的原则是保证数据的安全,保留原有数据,如果更新失败能够恢复原有的程序数据。
一、项目文件的更新
1 打包局域网(开发)服务器数据
用ssh登录到服务器,cd到开发文件的目录,使用tar将需要备份的文件夹(文件)进行打包,比如需要打包abc目录
tar –cvf devbak20170217.tar abc/
这样就把abc目录打包成了devbak20170217.tar文件。
2 备份公网服务器数据
操作步骤与打包局域网服务器数据类似,将备份的打包文件命名为pubbak20170217.tar。
3 更新公网服务器数据
公网服务区数据已经打包备份,这时可以先将原目录更换名字,比如abc目录,使用
mv abc abc_bak
命令将abc目录更换名称,方便更新出错后的还原。然后将开发服务器的打包数据拷贝进来,然后解包。
tar –xvf devbak20170217.tar
这样就把开发服务器的abc目录解压到了当前目录,然后利用浏览器进行测试,看是否达到预期目的,如果达到了预想的结果,更新任务完成,测试如果没有问题,就可以把abc_bak这个目录删掉,暂时保留pubbak20170217.tar这个备份的打包文件。
二、数据库的更新
服务器的前台显示需要调用后台的数据,也就是数据库的数据,我们在开发过程中,也有可能会更新数据库。在开发过程中尽量保持开发服务器的数据库和公网服务器的数据库一致,这样每次改动都不大。在更新公网数据库之前我们也是要做好备份,我们项目使用的数据库是mysql,项目中使用navicat对数据库进行操作,比较方便。比如,我们现在需要把开发服务器的数据库更新到公网服务器。可按下面的操作进行。
1 备份公网数据库
在对数据库直接增删改之前,一定要先备份数据库。使用navicat先连接数据库,双击需要操作的数据库,在数据库名上点击右键,选择“转储SQL文件…”,会提示你存储数据库,比如我们起名字为abc.sql,把这个备份文件存储到合适的地方。
2 备份开发数据库
操作步骤,和备份公网服务器数据库类似。
3 更新公网数据库表
如果每次改动不大的话,而且我们对改动的数据库表很熟悉,可以只对需要修改的表进行更新,而不是更新整个数据库,这样改动的数据比较少,相对安全一些。不过需要注意的是表之间是否存在关联关系,直接更新数据库表一定要熟悉数据库才行。
具体操作步骤,也是用navicat,在开发服务器上打开需要更新的数据库表,右键点击,选择“转储SQL文件”,在合适的位置保存这个表文件,比如起名t_edf.sql。在公网服务器数据库下有“表”,在“表”上点击右键,选择“运行SQL文件…”,在打开的文件夹中选择刚才存储的SQL文件,打开,这样就更新了一个数据库的表,如果有多个表需要更新,则重复操作。
4 更新公网数据库
如果数据库改动比较多,或者我们对数据库的表间关系不是特别清楚,可以使用更新整个数据库的方法,前提是一定要做好备份。前提是一定要做好备份。前提是一定要做好备份。重要的事情说三遍,如果没有备份,数据库发生问题会很麻烦。这个更新也比较简单,直接在公网服务器上打开数据库,然后在数据库上点击右键,选择刚才保存的开发服务器的sql文件(abc.sql),打开,等待数据更新,更新完毕后关闭。
三 其他需要注意的问题
项目文件包括前台展示的文件、后台管理的文件、后端开发的文件、资源文件(图片、视频、文件等),如果将所有文件都更新,可能花的时间比较长,这时可以选择改动的文件,其他文件不更新,原则是要把改动的文件全部更新。比如这段时间只开发了前台展示的文件,更新的时候就可以不更新后台管理文件和后端开发文件,资源文件一般也要更新,根据具体情况选择。
如果服务器使用的是tomcat服务器,在更新后端开发文件之后,需要重启tomcat才行。如果更新其他文件,不用重启tomcat。
以上操作是在项目中用到的,不过项目还没有上线运营,也就是公网服务器数据库数据更新不是很多,如果运营的话,可能还要选择更新时间,在人少的时候,暂时关闭服务,而且尽量在很短的时间内更新维护数据,运营以后更新可能还会碰到很多新的问题,也应该有更好的解决办法,这需要在以后的工作继续总结,希望大家多提宝贵意见。