Java web的具体更新部署(基于Oracle数据库)

备份主要分为应用备份和数据库备份
一、首先对原来的应用进行备份
1、停止tomcat
2、压缩webapps目录下的应用程序,并重命名为(应用名称+日期)
3、拷贝备份文件至非tomcat的备份目录下
二、然后我们要对数据库进行备份,这里我们要用到exp命令(exp是数据的导出命令),在cmd命令窗口下运行一下命令
exp username/[email protected] D:\a.dmp
1、username/userpwd指的是当前用户名和对应密码
2、ORCL指当前数据库的实例名
3、D:\a.dmp指导出的地址和文件名

更新的步骤
1、上传更新程序
2、删除tomcat下备份过的webapps目录下的应用程序、.war包以及work目录下的localhost目录
3、解压应用的更新包至tomcat\webapps目录下
4、修改数据库连接配置(即用户名和对应的密码,D:\tomcat\webapps\thoa\WEB-INF\classes\config下的jdbc中的用户名和用户密码要一致)
5、再次启动tomcat

数据库恢复步骤
首先删除数据库以前的所有表
然后在cmd命令行中运行
imp thoa/[email protected] file=c:\thoa.dmp fromuser=thoa touser=thoa
注释imp表示oracle的导入命令
thoa/[email protected]表示更新哪个实例下的哪个用户下的数据库(thoa/thoa表示用户名和密码 ORCL表示实例名)
file=c:\tmp\thoa.dmp  这个参数是指定要恢复的备份文件位置
fromuser=thoa 这个参数是指定备份的库的用户名
touser=thoa 这个参数指定恢复到当前数据库的用户名

创建表空间的方法
这里我是利用navicat第三方工具远程Oracle数据库的
第一步,连接数据库,如图
第二步,运行创建表空间和创建用户的SQL语句(在新建查询里运行)
CREATE TABLESPACE oa
LOGGING  
DATAFILE 'C:\app\xz\oradata\orcl\oa.dbf' SIZE 100M REUSE   
                AUTOEXTEND ON   
                NEXT 51200K MAXSIZE 1024M;
create user oa  identified by oapwd  default tablespace oa TEMPORARY TABLESPACE temp;
alter user oa quota 1000M on oa;
--grant connect,create table,create view,create trigger, create sequence,create procedure to portal;
grant dba to oa;
这里的用户名为oa,密码为oapwd,创建的表空间名为oa
 

遇到的问题
Oracle错误959 表空间不存在
解决方法:创建不存在的表空间,不用导入数据初始化sql语句,只需导入数据库备份即可(.dmp文件)
并且要修改几个配置文件,这里以我的路径为例(1:D:\tomcat\apache-tomcat-8.5.6\webapps\thoa\WEB-INF\classes中的path.properties中的webpath值改为thoa项目包的实际路径
2:D:\tomcat\apache-tomcat-8.5.6\webapps\thoa\WEB-INF\config中的dbconfig配置文件中的name 和 passward的value全部改为现有的用户名和密码
3:D:\tomcat\apache-tomcat-8.5.6\webapps\thoa\WEB-INF\ini中的attach配置文件新建一个上传目录)
4:D:\tomcat\webapps\thoa\WEB-INF\classes\config下的jdbc中的用户名和用户密码要一致

增量更新
===========================
此包为增量更新包,非完整包,程序更新,无数据库更新。
更新方法如下:
1、解压缩
2、停止tomcat
3、备份原程序(打压缩包至备份目录)
4、将压缩包内按照目录结构,直接覆盖到原来的程序目录
5、删除tomcat缓存目录
6、启动tomcat
注释:更新的时候要选择客户空档期
===========================================
应用模块更新
1、关闭应用服务
2、数据库备份(手动执行数据库的备份脚本)
3、应用备份(将应用服务器下的整个应用包全部压缩备份)
注意:1.如果是新增文件,则直接拷贝到对应的目录下即可,如果是修改文件,则需对原文件先做备份,再修改(通常转为bak文件)
          2.对更新文件做备份,以达到更新记录的目的
4、添加更新模块
5、更新数据库
6、进行模块测试,如不合格,将应用回滚到前一版本