大家把遇到过的问题和解决方法都SHARE一下,便于TX们能够参考。
由于版本不同,所以建议都标明平台信息。
请勿灌水,问问题的跟贴,将一律删除。
---------------------------------------------------------------
统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
模拟现象:
可通过重建数据文件来恢复,前提是归档日志文件保存完整
先将数据库设置为归档模式
SQL*Plus
conn system/manager
--创建实验表空间
create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/
--创建实验用户
drop user test cascade;
create user test identified by test default tablespace test;
grant connect,resource to test;
conn test/test
create table a(a number);
insert into a values(1);
insert into a select * from a; --反复插入,达到100万条
commit;
--关闭数据库
SVRMGR> connect internal
SVRMGR> alter system switch logfile; --强制归档
SVRMGR> alter system switch logfile;
SVRMGR> alter system switch logfile;
SVRMGR> shutdown
--操作系统下删除test.ora文件
--重新启动数据库
SVRMGR> connect internal
SVRMGR> startup
这时,可以mount上,但无法打开,因为数据文件test.ora不存在,
显示错误如下:
ORA-01157: ????/?????? 8 - ??? DBWR ????
ORA-01110: ???? 8: 'C:\TEST.ORA'
SVRMGR> connect internal
SVRMGR> startup mount
SVRMGR> alter database create datafile 'c:\test.ora';
SVRMGR> set autorecovery on
SVRMGR> recover datafile 'c:\test.ora';
SVRMGR> alter database open;
conn test/test
select count(*) from a; --数据又恢复到100万条
--删除实验表空间
conn system/manager
alter tablespace test offline;
drop tablespace test INCLUDING CONTENTS;
drop user test;
--如果是非归档模式,也可以运用以上方法,
--前提是:输入记录所占空间的大小不超过所有联机日志文件的大小
--即:用联机日志文件来恢复
---------------------------------------------------------------
系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
错误现象:
因硬盘有坏道,一个控制文件损坏了,或人工误删一个控制文件,
控制面板的Oracle相关服务可以启动成功,但用SQL*Plus无法连接,
显示以下错误
ORA-01034: ORACLE not available
解决方法:
C:>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown abort
修改init.ora(C:\Oracle\admin\oradb\pfile\init.ora)文件,使无法使用的控制文件不在control_files参数中定义
修改前
control_files = ("C:\Oracle\oradata\oradb\control01.ctl", "C:\Oracle\oradata\oradb\control02.ctl",
"C:\Oracle\oradata\oradb\control03.ctl")
修改后
control_files = ("C:\Oracle\oradata\oradb\control01.ctl", "C:\Oracle\oradata\oradb\control02.ctl")
svrmgrl>startup
注意:最少要有两个控制文件的存在,即使一个也可以正常应用
---------------------------------------------------------------
极力推荐:
Redhat Linux下oracle安装:
http://www.puschitz.com/InstallingOracle9i.html
Oracle初始化参数:
http://www.orafaq.com/parms/parmsall.htm
Oracle9i Database Online Documentation(Release 2 (9.2))
http://tahiti.oracle.com/pls/db92/db92.homepage
Oracle Software Download:
http://otn.oracle.com/software/index.html(需注册一个用户)
---------------------------------------------------------------
好!整理好!大家参考呀
1。问题出现1:(数据库8I)
数据库使用过程中掉电,导致数据库进程挂起或是文件检查点不统一
而且数据库没有归档:
解决方法1:
因为数据库的连机日志是循环写的,日志文件记载了数据库的操作
:如果索引我们所以我们首先要做的工作
就是冷备份数据库所有的数据库文件(日志文件,数据文件,控制文件等)
因为用RECOVER恢复启动数据库是要从新写日志的,如果不成功还可以用备份
来用其他的方法:
你在服务器端,用SVRMGRL命令
SVRMGRL> connect internal;
SVRMGRL> SHUTDOWN IMMEDIATE;
SVRMGRL> STARTUP MOUNT;
SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'数据库能正常启动的近一次的时间'
如2003-12-12:12:12:12
SVRMGRL> ALTER DATABASE OPEN resetlogs;
如果日志里有足够的信息,一般情况下都能正常恢复:(因为我们只要这几个日志文件
,所以为什么不要在做太多操作,先备份,每做一次检查点都会写日志)。
---------------------------------------------------------------
有些时侯可能你的库处于非归档的模式下,而你的联机重做日志又currupted,你的数据文件不能完成完全的恢复。而这时当你试图打开数据库时,oracle提示你用resetlogs选项,当你使用该选项时oracle又不允许你使用该选项,总之你想打开数据库,可就是打不开。
步骤:
1、最好做一个物理的库的全备
2、使用sqlplus 启动库至mount
sqlplus /nolog
sql>connect internal
sql>startup mount
3、确保所有的数据文件都处于"END BACKUP"状态
sql>set pages 0 feedback off lines 132
sql>spool alter_df.sql
sql>SELECT 'alter database datafile ' ¦ ¦file_name ¦ ¦' END BACKUP;' from v$datafile;
sql>spool off
sql>@alter_df.sql
4、试着打开数据库
sql>alter database open;
如数据库成功打开,余下的都不需要做了,到此为止
5、如果你在打开时被要求进行恢复,使用"UNTIL CANCEL"这种进行恢复,然后再发出ALTER DATABASE OPEN RESETLOGS这个命令
sql>recover database until cancel;
sql>alter database open resetlogs;
6、如果数据库仍不能打开,把库down掉
sql>shutdown immediate
7、在init
1<sid>.ora中加入如下参数
2_allow_resetlogs_corruption=TRUE
38、执行如下语句
4sql>connect internal
5sql>startup mount
6sql>@alter_df.sql
7sql>alter database open
89、如在alter database open时仍旧报错,使用until cancel恢复
9sql>recover database until cancel;
10sql>alter database open resetlogs;
1110、经过"9",数据库一定被打开了,数据库被打开后,马上执行一个full export
1211、down掉库,去掉_all_resetlogs_corrupt参数
1312、重建库
1413、import并完成恢复
1514、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;
16//===
17这种办法仅仅是在没有办法的办法后使用,满足以下条件
181、没有备份
192、损坏或丢失的当前的联机日志
203、当前日志中包含未提交或回滚的事务。
21注意,此方法不仅是在不归档数据库中,如果归档了,但是没有任何可用备份也是一样。
22
23注意,当前联机日志的损坏或丢失对数据库的打击的巨大的,
24数据库的一致性的保证就是联机日志,而联机日志丢了,数据库的一致性可能就没有保证
25这也就是以上步骤中从10开始的原因。
26
27如果损坏的不是当前日志,或当前日志没有同步的需要(没有未完成的事务)
28可以通过
29alter database clear [unarchived] logfile group n
30来重建日志组
31
32_ALLOW_RESETLOGS_CORRUPTION我也用过,不是像贴子中说的10一定能成功,如果数据库失败的时候报的是ora-368错误,这样做肯定不行,请大家注意!
33\---------------------------------------------------------------
34
35各位老大们,这个问题如何解决呢?
36我首先在Oracle中建立了一个表,表名称为D_BELONGSTYEL(全是大写,是通过Sql语句生成的)。
37然后用DTS从ASA数据库中导入表名称为D_BelongStyle的表(含数据),DTS显示需要创建目的表,我就点了确认,结果在Oracle中同时存在D_BELONGSTYEL和D_BelongStyle两个表,想删除D_BelongStyle刷新后却发现删除的是D_BELONGSTYEL,而D_BelongStyle还在,但是一旦用Sql语句查询就会提示“表或视图不存在”,但是在PL/SQL DEVELOPER中右键“VIEW”时却没有出错。
38\---------------------------------------------------------------
39
40ORACLE常用傻瓜問題1000問全集
41http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=3229&h=1#14005
42\---------------------------------------------------------------
43
44花点时间整理了本版快的一些帖子,不完整,遇见好的帖子希望大家继续补上
45
46oracle安装
47http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=56&h=1#100
48http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=57&h=1#107
49http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=572&h=1#1655
50http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=1254&h=1#3760
51http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=1468&h=1#4373
52http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=1896&h=1#5886
53http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=1279&h=1#3827
54
55奔腾4上win2000环境下无法安装oracle8i的问题
56http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=12&h=1#12
57
58NT下如何彻底删除Oracle?
59http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=13&h=1#14
60
61连接两台Oracle服务器
62http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=19&h=1#21
63http://www.oracle.com.cn/cgi-bin/topic_show.cgi?id=983&h=1&bpg=1&age=0</sid>