另外我调用一下命令,出现内容如下
svrmgr> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FI
RST_CHAN FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- --
-------- ---------
1 1 36125 204800 1 NO CURRENT
5226479 04-11? -0
2 1 36124 204800 1 NO INACTIVE
5226378 04-11? -0
已选择 2 行svrmgr>select * from v$logfile;
GROUP# STATUS MEMBER---------- ------- -----------------------------------------------------------
---------------------
1 C:\ORAWIN95\DATABASE\LOG2ORCL.ORA 2 C:\ORAWIN95\DATABASE\LOG1ORCL.ORA已选择 2 行大家帮帮我..高手们..很急啊~~~
svrmgr> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FI
RST_CHAN FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- --
-------- ---------
1 1 36125 204800 1 NO CURRENT
5226479 04-11? -0
2 1 36124 204800 1 NO INACTIVE
5226378 04-11? -0
已选择 2 行svrmgr>select * from v$logfile;
GROUP# STATUS MEMBER---------- ------- -----------------------------------------------------------
---------------------
1 C:\ORAWIN95\DATABASE\LOG2ORCL.ORA 2 C:\ORAWIN95\DATABASE\LOG1ORCL.ORA已选择 2 行大家帮帮我..高手们..很急啊~~~
出现如下错误:ORA-1113Can not open database
上面的信息中我没看出来是不是处于归档模式下)?
查看数据库是否在归档模式下:
SQL>conn sys as sysdba
SQL>archive log list;
已连接
SVRMGR> archive log list;
数据库记录方式 无档案方式
自动化档案库 已禁止
档案库目的地 C:\orawin95\RDBMS80\
最久的联机记录顺序 36124
当前记录顺序 36125因为是给客户用的,客户事先没有做什么备份工作(他们不会oracle);
现在只有oracle的备份,如果以上操作有误,
我们还有备份的oracle 就是把所有的orawin95目录给备份下来了...
密码
ORA-01017: ?????? / ???????
SVRMGR> connect sys as sysdba
密码
已连接
SVRMGR> archive log list;
数据库记录方式 无档案方式
自动化档案库 已禁止
档案库目的地 C:\orawin95\RDBMS80\
最久的联机记录顺序 36124
当前记录顺序 36125
归档日志了。在这种情况下的恢复有几种方式供你选择:1、首先关闭数据库,将所有的数据库物理文件copy到新的备份
目录(主要是防止用以前的备份恢复失败了还有备份可用,
这些物理文件包括:所有数据文件,联机重做日志文件,
控制文件,参数文件);
2、将以前的Oracle物理备份文件copy回到现在的物理文件所在的
目录覆盖已损坏的物理文件,注意这步必须在第一步已完成后
才能进行操作,否则搞坏了别怪我:);这里的物理文件跟第一
步中的一样,参数文件可以除外,因为现有的参数文件应该能
用;
3、打开数据库;如果以上操作没有问题,为了最大程度恢复数据,可以继续做:
4、备份控制文件:
SQL>alter database backup controlfile to trace;
这样在C盘的Oracle安装目录./udmp/下有一个刚生成的跟踪文件,
用记事本打开此文件,你会找到创建控制文件的原始脚本;
5、关闭数据库,将第一步中的备份文件copy回来,覆盖现在的物理
文件,打开数据库至Nomount状态:
SQL>startup nomount
将第四步中创建控制文件的原始脚本拷贝过来,重新创建控制文件:
SQL>CREATE CONTROLFILE ...
打开数据库:
SQL>alter database open resetlogs;如果没有太大必要的话,4、5步还是不要做了,出问题的机率较大。
祝好运!
但还是有点问题..
第2步,把以前的数据备份拷贝过来,,好像有点行不通
客户只把出了错误的数据库给了我们,,也就是说,我们现有的数据都是错误的.
而且客户根本就没有做过任何备份.还有你说的需要备份的文件是不是指orawin95\database低下的文件?
比如INITORCL.ORA, LOG2ORCL.ORA,LOG1ORCL.ORA等等...
还要麻烦一下您了.
如果你是默认安装的话,需要备份的文件应该在
c:\orawin95\oradata\...\下,扩展名是.dbf,.ctl,.rdo或.log
这下面一般有数据文件,联机重做日志文件,控制文件。不过你上面指的目录里有参数文件INITORCL.ORA,及联机重做日志文件。
这些文件均需要备份,最重要的是保护好上面的数据文件,联机重做日志文件,控制文件。如果找不到控制文件,你把参数文件拷贝出来,打开看看里面的参数配置里有其绝对路径。
步骤如下
svrmgr>connect sys as sysdba;
svrmgr>startup mount;
已起动 ORACLE 事例
全部系统全局区域 5138580 字节
Fixed Size 47252 字节
Variable Size 4608000 字节
Database Buffers 409600 字节
Redo Buffers 73728 字节
已装入数据库
SVRMGR> alter database backup controlfile to trace;
语句已处理
SVRMGR> shutdown immediate
ORA-01109: ??????
已卸下数据库
已关闭 ORACLE 事例然后把备份的数据文件拷贝回来执行如下的操作:
SVRMGR> connect sys as sysdba;
密码
已连接
SVRMGR> shutdown immediate
ORA-01034: ORACLE not available
SVRMGR> startup nomount;
已起动 ORACLE 事例
全部系统全局区域 5138580 字节
Fixed Size 47252 字节
Variable Size 4608000 字节
Database Buffers 409600 字节
Redo Buffers 73728 字节
SVRMGR> create controlfile 'C:\orawin95\RDBMS80\trace\ORA07632.TRC';
create controlfile 'C:\orawin95\RDBMS80\trace\ORA07632.TRC'
*
ORA-01967: CREATE CONTROLFILE?????启动数据库,还是不可以..
Dump file C:\orawin95\RDBMS80\trace\ORA07632.TRC
Wed Jan 12 17:07:30 2005
ORACLE V8.0.4.0.0 - Production vsnsta=0
vsnsql=c vsnxtr=3
Windows 95 V5.0, OS V8.147, CPU type 586
Oracle8 Personal Edition Release 8.0.4.0.0 - Production
PL/SQL Release 8.0.4.0.0 - Production
Windows 95 V5.0, OS V8.147, CPU type 586
Instance name: orclRedo thread mounted by this instance: 1Oracle process number: 10pid: 1dd0
Wed Jan 12 17:07:30 2005
Wed Jan 12 17:07:30 2005*** SESSION ID:(9.1) 2005.01.12.17.07.30.984
# The following commands will create a new control file and use it
# to open the database.
# Data used by the recovery manager will be lost. Additional logs may
# be required for media recovery of offline data files. Use this
# only if the current version of all online logs are available.
# WARNING! The current control file needs to be checked against
# the datafiles to insure it contains the correct files. The
# commands printed here may be missing log and/or data files.
# Another report should be made after the database has been
# successfully opened.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORACLE" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 16
MAXLOGHISTORY 13043
LOGFILE
GROUP 1 'C:\ORAWIN95\DATABASE\LOG2ORCL.ORA' SIZE 200K,
GROUP 2 'C:\ORAWIN95\DATABASE\LOG1ORCL.ORA' SIZE 200K
DATAFILE
'C:\ORAWIN95\DATABASE\SYS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\USR1ORCL.ORA',
'C:\ORAWIN95\DATABASE\RBS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\TMP1ORCL.ORA',
'C:\ORAWIN95\DATABASE\OASYS.ORA',
'C:\ORAWIN95\DATABASE\OADAT.ORA',
'C:\ORAWIN95\DATABASE\OAMED.ORA',
'C:\ORAWIN95\DATABASE\OAIDX.ORA',
'C:\ORAWIN95\DATABASE\DBMNG.ORA',
'C:\ORAWIN95\DATABASE\OARBK.ORA'
;# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE# Database can now be opened normally.
ALTER DATABASE OPEN;
CREATE CONTROLFILE REUSE DATABASE "ORACLE" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 16
MAXLOGHISTORY 13043
LOGFILE
GROUP 1 'C:\ORAWIN95\DATABASE\LOG2ORCL.ORA' SIZE 200K,
GROUP 2 'C:\ORAWIN95\DATABASE\LOG1ORCL.ORA' SIZE 200K
DATAFILE
'C:\ORAWIN95\DATABASE\SYS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\USR1ORCL.ORA',
'C:\ORAWIN95\DATABASE\RBS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\TMP1ORCL.ORA',
'C:\ORAWIN95\DATABASE\OASYS.ORA',
'C:\ORAWIN95\DATABASE\OADAT.ORA',
'C:\ORAWIN95\DATABASE\OAMED.ORA',
'C:\ORAWIN95\DATABASE\OAIDX.ORA',
'C:\ORAWIN95\DATABASE\DBMNG.ORA',
'C:\ORAWIN95\DATABASE\OARBK.ORA'
;我把跟踪里面的这段放在svrmgr里面执行.
svrmgr>select * from v%recover_file;
svrmgr>select d.name, t.name from v$datafile d, v$tablespace t where d.ts# = d.ts# and d.file# in (1,4,6);C:\ORAWIN95\DATABASE\SYS1ORCL.ORA
C:\ORAWIN95\DATABASE\TMP1ORCL.ORA
C:\ORAWIN95\DATABASE\OADAT.ORA
所以你试过重新创建控制文件吗?刚才我测试过,这样可以解决问题,但这
样的后果是当前重做日志文件里还没写到数据文件里的数据丢失。具体操作方法:
SQL>conn sys as sysdba
SQL>shutdown immediate
SQL>startup nomount
SQL>CREATE CONTROLFILE REUSE DATABASE "ORACLE" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 16
MAXLOGHISTORY 13043
LOGFILE
GROUP 1 'C:\ORAWIN95\DATABASE\LOG2ORCL.ORA' SIZE 200K,
GROUP 2 'C:\ORAWIN95\DATABASE\LOG1ORCL.ORA' SIZE 200K
DATAFILE
'C:\ORAWIN95\DATABASE\SYS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\USR1ORCL.ORA',
'C:\ORAWIN95\DATABASE\RBS1ORCL.ORA',
'C:\ORAWIN95\DATABASE\TMP1ORCL.ORA',
'C:\ORAWIN95\DATABASE\OASYS.ORA',
'C:\ORAWIN95\DATABASE\OADAT.ORA',
'C:\ORAWIN95\DATABASE\OAMED.ORA',
'C:\ORAWIN95\DATABASE\OAIDX.ORA',
'C:\ORAWIN95\DATABASE\DBMNG.ORA',
'C:\ORAWIN95\DATABASE\OARBK.ORA';
SQL>alter database open;注意:当然在进行操作前一定不要忘了备份上面目录中的文件及其它一些相关文件。