oracle处理手记-200907

20090718-01

问题:

RMAN> recover database;的时候碰到

RMAN-03002: recover 命令 (在 07/18/2009 21:36:09 上) 失败
ORA-19698: D:ORACLEORADATALBMISREDO01.LOG 来自不同数据库: id=3075821044, db_
name=LBMIS

处理:

这是在做模拟rman恢复的时候碰到的问题,这是由于自己手动创建数据库实例后,没有把REDO的文件删除,导致遗留的REDO文件和恢复的数据库不一致的问题,把REDO文件删掉,restore database,再recover database 就OK了

20090718-02

问题:

SQL> connect / as sysdba
已连接。
SQL> recover database until cancel
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成

处理:

这是因为在模拟rman恢复所拷贝的控制文件与备份数据文件存在时间点的差异造成的,我是先拷了控制文件再做的rman增量备份,其实做rman增量备份对会触发控制文件的变动,使用一致的控制文件和数据备份文件可以解决,也可以增加参数选项,SQL> recover database until cancel using backup controlfile,在提示中cancel就可以

20090719-01

查看控制文件快照

RMAN> show snapshot controlfile name;

20090719-02

查看数据备份文件

RMAN> list backup;

20090720-01

问题:

SQL> connect / as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误


但tnsping 能够ping通

处理:

这是在windows 下面碰到的情况,windows中oracle的数据库不一定要启动,但服务service中的进程必须启动,才可以使用connect / as sysdba 进行连接

而linux不一样,linux没有所谓的注册表信息,只要有init参数文件在,就可以connect / as sysdba 到一个空闲进程,平时使用的时候得注意它的连接提示信息,是连接到进程还是连接到空闲进程

20090720-02

问题:类似的问题

connect / as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误

处理:

这个也是windows下的,是后面装了oracle client的影响

C:Documents and SettingsAdministrator>tnsping lbmis

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 15-7月 -
2009 22:03:21 Copyright (c) 1997, 2005, Oracle. All rights reserved.

已使用的参数文件:
D:oracleproduct10.2.0client_1networkadminsqlnet.ora


已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = china-2bdc00768)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = lbmis))) OK (20 毫秒)

可以看出,它使用的参数文件为client_1networkadminsqlnet.ora下的文件,

lsnrctl start

Oracle Net 监听程序启动:
正在运行监听程序控制:
D:oracleproduct10.2.0client_1binlsnrctl start

LISTENER监听这里也可以看出,当前默认识别的是client下的listener.ora和tnsnames.ora

所以在安装了客户端后再使用oracle的命令的话最好是先转换到相应的bin路径下

总结:安装了oracle client后,bin路径会产生冲突,默认会是到后装的bin中,
解决方法,指定oracle服务器的bin
D:oracleproduct10.2.0db_1BIN>tnsping lbmis
D:oracleproduct10.2.0db_1BIN>lsnrctl start
在oracle服务器的bin目录下运行tnsping 命令和lsnrctl 命令

20090720-03

用户不能自己为自己 GRANT/REVOKE 权限

20090721-01

问题:

C:Documents and SettingsAdministrator>rman target /

恢复管理器: Release 10.2.0.1.0 - Production on 星期六 7月 18 11:36:36 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-04005: 目标数据库中存在错误:
ORA-12560: TNS: 协议适配器错误

处理:

这也是windows下碰到的情况,需要启动net oracle的实例服务

20090726-01

问题:

ORA-19815: WARNING: db_recovery_file_dest_size of 21474836480 bytes is 85.09% used, and has 3202272256 remaining bytes available.
Wed Jun 17 09:13:28 2009
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************

ORA-19815: WARNING: db_recovery_file_dest_size of 21474836480 bytes is 100.00% used, and has 0 remaining bytes available.
Wed Jun 17 09:16:33 2009
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************

处理:

这是快速恢复区flash_recovery_area的大小影响的,在归档模式下flash_recovery_area到达80%的时候,alert.log会有警告提示,到100%的时候数据库就宕了

1.增大flash_recovery_area对应的db_recovery_file_dest_size参数值;

2.及时做归档日志的备份

3.在导入数据时建议先改为非归档模式

20090726-02

问题:

Wed Jun 17 09:16:33 2009
Errors in file /oracle/admin/lzmis/bdump/lzmis_arc1_5545.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 45243904 bytes disk space from 21474836480 limit

处理:

这是在扩展表空间的时候碰到的,当时想用一个文件分200G,不行,有大小限制,限制单个表空间文件在33G以内,最大可以设32G

20090726-03

问题:

Errors in file /oracle/admin/lzmis/udump/lzmis_ora_18195.trc:
ORA-27052: unable to flush file data
Linux-x86_64 Error: 116: Stale NFS file handle
Additional information: 1
ORA-19510: failed to set size of 131071 blocks for file "/oracle/rmanbackup/rmanbackup/incr/incrbackup_df690071677_s2_s4.rmb" (blocksize=8192)
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 116: Stale NFS file handle

处理:

本来是通过NFS服务将windows的文件夹共享给linux,linux远程挂载windows的文件夹用来做备份,这是在windows的机器宕机后linux出现的提示信息

20090726-04

问题:

[oracle@lzmis bdump]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jul 20 19:29:17 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

SQL> connect test/test@oanet as sysdba
ERROR:
ORA-12537: TNS:connection closed

处理:

这是一个客户的web服务出现了问题,weblogic刷屏,系统无法登录,weblogic后台日志:[java.sql.SQLException: Io 异常: The Network Adapter could not establish the con
nection]

首先,检查oracle的警告日志,未发现问题,但sqlplus连接不上,client em也连接不上,提示TNS连接已关闭,也尝试过重启监听服务,但问题依旧

然后想重启oracle,但shutdown immediate的时候有报错,

SQL> connect / as sysdba
Connected to an idle instance.
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-00020: maximum number of processes (%s) exceeded

查看监听日志:

20-JUL-2009 17:52:34 * (CONNECT_DATA=(SID=lzmis)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.150.1.22)(PORT=3992)) * establish * lzmis * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe

无法建立连接

再检查alert.log警告日志,有报

Mon Jul 20 20:10:09 2009
Process m000 died, see its trace file
Mon Jul 20 20:10:09 2009
ksvcreate: Process(m000) creation failed

google了一下,m000是oracle的expdp进程,难道是expdp的影响??

首先要让oracle能正常关闭:

[root@lzmis ~]# ps -ef|grep oracle|more //--使用命令查看oracle的所有进程,总共158

[root@lzmis ~]# ps -ef|grep m000 //--使用命令查看m000的进程id

[root@lzmis ~]# kill -9 20277 //--杀死m000进程的id:20277,或者父进程id: 20213

然后可以连接进去oracle了,shutdown immediate

重启oracle,再重启weblogic应用服务,启动之后能运行了一下,但马上又是刷屏,又死掉了

分析检查之后发现是weblogic的JDBC连接数的问题,前面我们调整了一下它,调大了JDBC的最大连接数,它们之和达到了140,再加上oracle和自身进程,已经超过了所设置的processes参数,当时processes设置的是150

处理结果:

最后调大oracle的processes参数即可

SQL> connect test/test@oanet as sysdba
Connected.
SQL> show parameter processes

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 150
SQL> alter system set processes=500 scope=both;
alter system set processes=500 scope=both
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> alter system set processes=500 scope=spfile;

System altered.

//--both代表同时改memory和spfile,但processes这个参数无法两个一起修改,memory就是实时改,不必重启


[root@lzmis bdump]# more alert*.log|grep control //--在警告日志中查找control关键字的信息

[root@lzmis bdump]# more alert*.log|grep 01555 //--在警告日志中查找01555关键字的信息

[root@lzmis bdump]# tail -f alert*.log //--实时查看警告日志信息

[root@lzmis bdump]# tail -n 30 alert*.log //--查看警告日志的最后30行

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22036495/viewspace-1024376/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22036495/viewspace-1024376/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值