先吐槽一下,作为信息系统项目的甲方,因为乙方的项目经理实在是能力有限,完全没有办法理解甲方的需求。完全失去了公信力。项目又不能停下来,作为甲方的技术负责人,呕心沥血研究乙方软件的各种设置方法。今天研究的是如何进行数据恢复。
对方的架构应该很简单,一个tomcat,一个server文件夹,一个doc文件夹以及Oracle数据库。
所以我就想到了先复制tomcat和server,然后通过备份文件还原Oracle数据库即可。在还原Oracle数据库的时候,遇到了SID不同的问题。在tomcat的配置文件里找了好久没找到更改SID的地方,只能退而求其次,更改数据库的SID。
一下内容大部分为转载,在实践过程中,根据问题重新梳理。
1、首先备份控制文件
alter database backup controlfile to trace as 'D:\aa.ctl';
在aa.ctl文件中找到CREATE CONTROLFILE SET DATABASE "WH" RESETLOGS NOARCHIVELOG( Set #2. RESETLOGS case)
将语句中原SID WH更改为要修改的SID OA ,并另存为a.sql
2、创建pfile
create pfile from spfile;
3.重新创建windows下的实例服务
C:\>oradim -NEW -SID oa -startmode manual
4、修改相关目录,在修改的过程中,遇到文件夹被占用的情况,需要在服务中停止后继续。
主要修改数据文件,控制文件,日志文件存放目录(根据自己的实际情况修改):
D:\oradata\bdup --->wtest
C:\app\Administrator\admin\bdup\adump --->wtest
C:\app\Administrator\diag\rdbms\bdup\bdup --->wtest
C:\app\Administrator\product\11.2.0\dbhome_1\database
C:\app\Administrator\product\11.2.0\dbhome_1\database>dir
C:\app\Administrator\product\11.2.0\dbhome_1\database 的目录
2014/03/06 11:28 2,048 hc_bdup.dat ---->hc_wtest.dat
2014/01/15 22:03 2,048 hc_orcl.dat
2014/03/06 08:50 1,203 initbdup.ora ----->initwtest.ora
2014/03/18 15:34 1,149 INITorcl.ORA
2005/12/22 04:07 31,744 oradba.exe
2014/04/10 09:14 7,405 oradim.log
2014/03/05 10:52 2,560 PWDbdup.ora ------>PWDwtest.ora
2014/03/18 17:27 2,560 PWDhjj.ora
2014/03/29 21:47 1,536 PWDorcl.ora
2014/03/04 15:24 104,858,112 REDO04.LOG
2014/03/04 15:24 104,858,112 REDO05.LOG
2014/03/18 10:58 9,748,480 SNCFORCL.ORA
2014/04/10 08:56 13,824 SPFILEBDUP.ORA ------>SPFILEWTEST.ORA
2014/04/05 13:59 3,584 SPFILEORCL.ORA
3.修改参数文件
C:\app\Administrator\product\11.2.0\dbhome_1\database目录下修改initwtest.ora
wtest.__db_cache_size=285212672
wtest.__java_pool_size=16777216
wtest.__large_pool_size=16777216
wtest.__oracle_base='C:\app\Administrator'#ORACLE_BASE set from environment
wtest.__pga_aggregate_target=419430400
wtest.__sga_target=822083584
wtest.__shared_io_pool_size=0
wtest.__shared_pool_size=469762048
wtest.__streams_pool_size=16777216
*.audit_file_dest='C:\app\Administrator\admin\wtest\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_file_record_keep_time=7
*.control_files='D:\oradata\wtest\control01.ctl','D:\oradata\wtest\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='wtest'
*.db_recovery_file_dest='C:\app\Administrator\flash_recovery_area\wtest'
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest='C:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wtestXDB)'
*.fast_start_mttr_target=90
*.job_queue_processes=1000
*.memory_target=1232076800
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=587202560
*.undo_tablespace='UNDOTBS1'
5、
启动数据库C:\>set oracle_sid=wtest
C:\>sqlplus /nolog
startup nomount pfile='实际pfile目录'
@D:\a.sql
6、修改lsnrctl
7、创建临时表空间
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\oradata\wtest\TEMP01.DBF' SIZE 30408704 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
8、还原即可