Posts Tagged ‘oracle’
三.案例分析
一客户发现一重要TABLE资料被删除,初步断定被删除的时间为2004年12月27日3点-5点,资料量大概为50万笔,请求紧急援助,恢复被删除的数据。。。
1.方案分析
1.1客户数据库状况
A)IBM AIX系统, oracle 8.1.7
B)数据库处于归档模式
C)用RMAN备份,NO CATALOG
D)硬盘上有当天的RMAN备份后的文件
1.2方案选择
A)方案一:不完全恢复法
A1)先COLD FULL BACKUP
A2)居于时间点的不完全恢复
A3)EXP被删掉的TABLE
A4)用刚才做的冷备做完全恢复
A5)IMP被删掉的TABLE
缺点:所需时间长,可能会丢失小部分数据单COLD BACKUP就需要两个小时,需两次SHUTDOWN DATABASE
B)方案二:用LOGMINER恢复
B1)修改初始话参数:utl_file_dir
环境:
OS:Window XP+SP2
oracle 9.2.0.1.0 Enterprise Edition
SID:RMAN
ORACLE_BASE: G:\ oracle \
ORACLE_HOME : G:\ oracle \ora92
一.安装LogMiner
以SYS身份登陆,执行如下脚本:
SQL>@%ORACLE_HOME%\rdbms\admin\dbmslm.sql
Package created.
Grant succeeded.
SQL>@%ORACLE_HOME%\rdbms\admin\dbmslmd.sql
Procedure created.
No errors.
Grant succeeded.
PL/SQL procedure successfully completed.
Package created.
注:第一个脚本是创建DBMS_Logmnr包的,用来分析日志文件,第二个脚本用来创建DBMS_Logmnr_D包,该包用来创建数据字典。
一. 修改instance name
1. Windows环境
1).用oradim新建一个instance,比如:TEST
oradim –NEW –SID TEST –STARTMODE m
oradim –EDIT –SID TEST –STARTMODE a
2).建立相关目录
A) 在%ORACLE_BASE%\admin下新建TEST目录
B) 在TEST下建bdump,cdump,udump,pfile,create等目录
3).修改或新建初始化参数文件,并设定如下参数:
instance_name=TEST
core_dump_dest=’d:\ oracle \admin\test\cdump’
user_dump_dest=’d:\ oracle \admin\test\udump’
4).将修改过的参数文件命名为:
spfileTEST.ORA(SPFILE)
initTEST.ORA(PFILE)
5).设置环境变量,指定新的SID
set ORACLEL_SID=TEST
今天一客户执行如下命令时报错:
SQL> connect john/wanghong@john
ERROR: ORA-01034: oracle not available
ORA-27101: shared memory realm does not exist
该错误多数是由于ORACLE_HOME或ORACLE_SID设置不当造成的,如果是Windows,则多半是由于多个instance造成的,解决方法如下:
1.设定好正确的ORACLE_HOME和ORACLE_SID
在Unix&Linux下,在profile里设置正确的ORACLE_HOME和ORACLE_SID或者手工临时指定:
export ORACLE_HOME=/opt/ oracle /8.1.7
export ORACLE_SID=test
在Windows中在注册表里添加ORACLE_HOME及ORACLE_SID,并设置正确,也可以手工临时指定:
set ORACLE_SID=TEST
问题:一客户出现 oracle undo tablespace不断增长并无法回缩
解决方法:
1.新建一新的undo tablespace,如:undotbs2
2.alter system set undo_tablespace=undotbs2 scope=both;
3.drop tablespace undotbs1 including contents and datafiles;
但这是事后的解决方法,如何让 oracle 自动管理的undo tablespace自动收缩,如何合理的设置undo tablespace的大小,正在寻找答案中……
今天有一客户在编译一proc*c application时发生如下错误:
“libclntsh.so is up to date”
在metalink上查找该内容,解决方法如下:(Note:153677.1)
fact: Precompilers 8
fact: PRO*C
fact: Solaris Operating System (SPARC)
symptom: Building Pro*C application fails
symptom: ‘libclntsh.so’ is up to date
cause: You are missing the “build” target in the make command.
fix:Build your Pro*C application using the “build” target as
follows:
make -f demo_proc.mk build OBJS=progname.o EXE=progname(For c++ use the “cppbuild” target)
今天在自己电脑上手工启动listener时出现如下错误:
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=bright)(PORT=1521)))
TNS-12546: TNS: 拒绝许可
TNS-12560: TNS: 协议适配器错误
TNS-00516: 拒绝许可
32-bit Windows Error: 13: Permission denied
奇怪!以前都好好的,怎么会报这种错误?难道是权限不够?查看一下当前的用户,没问题呀,是管理员权限,而且也是ORA_DBA群组成员!难道是目录权限不够?一查看也没问题呀!那就奇怪了….难道是端口有冲突?赶紧执行:
C:\>netstatActive Connections Proto Local Address Foreign Address State
TCP bright:912 bright:1323 ESTABLISHED
TCP bright:912 bright:1331 ESTABLISHED
TCP bright:912 bright:1332 ESTABLISHED
TCP bright:1323 bright:912 ESTABLISHED
TCP bright:1331 bright:912 ESTABLISHED
TCP bright:1332 bright:912 ESTABLISHED
TCP bright:1521 baym-cs331.msgr.hotmail.com:1863 ESTABLISHED
TCP bright:2202 ip-32-1-168-192.rev.dyxnet.com:ftp CLOSE_WAIT
TCP bright:2207 ip-32-1-168-192.rev.dyxnet.com:ftp CLOSE_WAIT
TCP bright:2360 ip-32-1-168-192.rev.dyxnet.com:ftp CLOSE_WAIT
[...]