精华:诚征ORACLE问题处理方法(开发,管理等),供大家参考。。。

LGQDUCKY 2004-09-07 09:57:12
ORACLE版块很久没有对问题解决的方法做汇总了,

现在小弟愿意出“资”200,把处理方法汇总,希望斑竹也能

借鉴下ORACLE中国用户讨论组的模式,对ORALCE版块进行整理

具体文章:

http://www.cnoug.org/viewthread.php?tid=17716

新手必读,内容十分详细。


希望大家给与支持,请勿灌水。。。。 谢谢大家。。
...全文
459 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianxian 2004-09-28
  • 打赏
  • 举报
回复
up 学习
bzszp 2004-09-28
  • 打赏
  • 举报
回复
同意chanet(牧师)
大家把问题的大概在题目上表示清楚
这样既有利于快速的解决问题,也有利于整理faq。

借此祝 飘兄 以及oracle版xdjm们仲秋节快乐!
LGQDUCKY 2004-09-28
  • 打赏
  • 举报
回复
测试环境9I

SQL> select server from v$session where audsid=USERENV('SESSIONID');

SERVER
---------
DEDICATED

查询到的当前会话所使用的服务进程类型,查询结果为DEDICATED说明为当前用户提供服务的

是一个专用服务进程。如果当前用户不是DBA用户,则同时也说明数据库正处于专用服务器模式。

一般我都是使用 dbca 设置服务器操作模式。
leano 2004-09-27
  • 打赏
  • 举报
回复
支持!!!!!!
LGQDUCKY 2004-09-27
  • 打赏
  • 举报
回复
明天中秋节结帖,祝大家中秋节快乐。。
lijins 2004-09-27
  • 打赏
  • 举报
回复
俺是来学习的!谢谢楼主!
kenxuh 2004-09-24
  • 打赏
  • 举报
回复
烤鸡翅膀我最爱吃,顶
zwj0712 2004-09-24
  • 打赏
  • 举报
回复
下面是我遇到的问题并且在网上找到的解决资料,分享一下。
错误现象:
因误操作,数据库中某一数据文件被误删,
控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,
显示以下错误
ORA-01033: ORACLE initialization or shutdown in progress

模拟现象:

create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/

关闭所有服务stop.bat

net stop "OracleWebAssistant0"
net stop "OracleOraHome81TNSListener"
net stop "OracleServiceORADB"

shutdown

在操作系统中删除test.ora文件

重新启动服务start.bat

net start "OracleWebAssistant0"
net start "OracleOraHome81TNSListener"
net start "OracleServiceORADB"

服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
显示ORA-01033: ORACLE initialization or shutdown in progress


解决方法:

先让该数据文件脱机,就可以打开数据库
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount

--ARCHIVELOG模式命令,文件名要大写
svrmgrl>alter database datafile 'C:\TEST.ORA' offline;

--NOARCHIVELOG模式命令
svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;

svrmgrl>alter database open;


--查询数据文件联、脱机状态
SQL> select file#,name,status from v$datafile;

SQL> drop tablespace test;

表空间已丢弃。


dinya2003 2004-09-24
  • 打赏
  • 举报
回复
飘兄:
最近有点忙,没有支持点问题解决办法.不好意思啊.

UP一下, :)

顺祝大家中秋快乐.
bluelamb 2004-09-24
  • 打赏
  • 举报
回复
学习
NewCenturyNewPage 2004-09-24
  • 打赏
  • 举报
回复
收藏,谢谢。
LGQDUCKY 2004-09-23
  • 打赏
  • 举报
回复
穿过防火墙连接数据库
[在服务器端的SQLNET.ORA应类似
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
注册表的HOME0加[HKEY_LOCAL_MACHINE]
USE_SHARED_SOCKET=TRUE
zhaokeke2004 2004-09-23
  • 打赏
  • 举报
回复
支持

限制特定IP访问数据库
以前有文档说增加或修改protocol.ora文件,
在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法。

在sqlnet.ora中增加如下部分
-----------------------------
#### 来自 protocol.ora 的属性 ####

tcp.validnode_checking=yes

#允许访问的IP
tcp.invited_nodes=(ip1,ip2……)

#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)

之后重新启动监听器即可

需要注意的地方:
1、tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主
2、一定要许可或不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响。
3、修改之后,一定要重起监听才能生效,而不需要重新启动数据库
4、任何平台都可以,但是只适用于TCP/IP协议
AHUA1001 2004-09-21
  • 打赏
  • 举报
回复
我也用ORACLE,能不能先告诉我为什么选择ORACLE而不是IBM的DB2或者其它啊?
biliky 2004-09-21
  • 打赏
  • 举报
回复
没有多少料,只能跟着大虾们学习学习。顺便接点分。:)
LGQDUCKY 2004-09-21
  • 打赏
  • 举报
回复
机器异常断电,oracle不能正常启动,可以mount,不能open。数据库未备份过。
错误码:
At startup, the database will mount, but gives the following errors at open:
ORA-00312: "online log %s thread %s: '%s'"
Cause: This message reports the filename for details of another message.
Action: Other messages will accompany this message. See the
associated messages for the appropriate action to take.
ORA-00322: "log %s of thread %s is not current copy"
Cause: Check of log file header at database open found that an online log
appears to be an incorrectly restored backup.
Action: Restore correct file or reset logs.

解决方法描述:
首先检查ORACLE_HOME 和ORACLE_SID在startup参数中是否正确,如果不正确重新startup。

Recover the loss of an inactive, online redo log group.

SQL>ALTER DATABASE CLEAR LOGFILE 'filename';

If there is more than one LOGFILE in the redo log group then you must
specify all the log files.

For example, the following fails:

SVRMGR> alter database clear logfile '/vobs/oracle/dbs/log3.log';
alter database clear logfile '/vobs/oracle/dbs/log3.log'
*
ORA-1514: error in log specification: no such log
ORA-1517: log member: '/vobs/oracle/dbs/log3.log

But, specifying all the log files in the group works:
SVRMGR> ALTER DATABASE CLEAR LOGFILE ('/vobs/oracle/dbs/t4.log','/vobs/oracle/;
Statement processed.

介绍一个意外情况,如果上面的方法不成功,数据库还是不能open,采用recover,restore都不成功,说明logfile可能已经损坏,数据库打开需要做一致性检查,所以不能正常打开。因为数据库未作过备份,为了尽可能地减少损失,采用打开数据库,然后立刻导出数据的方法。
oracle有一个不推荐的方法,可以使数据库在不进行一致性检查的方式下打开数据库。
做法:
1。为保险起见,将数据库的系统表空间,数据文件,控制文件均做一次备份:copy。
2。在初始化配置文件中(init.ora)加上:
_allow_resetlogs_corruption=true
_corrupted_rollback_segments=(将所有rollback_segments=(...)的内容加到这里)
将rollback_segments=(...)前加上#
3。startup mount
recover database until cancel;
cancel
alter database open resetlogs;
此时数据库已经可以打开了,请立刻将数据export出来,然后重新安装oracle,重新建立database,再将数据import。
注意:这种方法属于数据库的不完全恢复,最后提交的sql可能会丢失,毕竟能够尽可能地减少损失,可以试试。
以上操作我均做过测试。
北极海hein 2004-09-17
  • 打赏
  • 举报
回复
学习一下.
bzszp 2004-09-17
  • 打赏
  • 举报
回复
sqlplus中refcursor的使用

16:00:10 SQL> VARIABLE v_cur REFCURSOR;
16:03:21 SQL> BEGIN
16:03:26 2 OPEN :v_cur FOR SELECT * FROM TB;
16:03:44 3 END;
16:03:47 4 /

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.93
16:03:48 SQL> PRINT v_cur;

COL1 COL2 COLNEW
---------- ------------------------------ --------------------
A aaa aaa
A aab aab
A aac aac
B bba bba
B bbb bbb
B bbc bbc
B bbd bbd
C ccc ccc
c TEMP TEMP
d ddd ddd
e eee eee

已选择11行。

已用时间: 00: 00: 00.63
16:03:58 SQL>
leborety 2004-09-17
  • 打赏
  • 举报
回复
这不来了么!
LGQDUCKY 2004-09-17
  • 打赏
  • 举报
回复
中秋节结帖,大家快点来领分了
加载更多回复(17)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧