oracle 常见问题解决

上传人:飞*** 文档编号:54387978 上传时间:2018-09-12 格式:PPT 页数:32 大小:462KB
返回 下载 相关 举报
oracle 常见问题解决_第1页
第1页 / 共32页
oracle 常见问题解决_第2页
第2页 / 共32页
oracle 常见问题解决_第3页
第3页 / 共32页
oracle 常见问题解决_第4页
第4页 / 共32页
oracle 常见问题解决_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《oracle 常见问题解决》由会员分享,可在线阅读,更多相关《oracle 常见问题解决(32页珍藏版)》请在金锄头文库上搜索。

1、Welcome,李云凌 Oracle公司广州办事处技术支持部,问题:如果误删了某个datafile,数据库起不来怎么办? 解决: sqldba connect internal startup mount alter database datafile filename offline drop alter database open 备份Tablespace中的数据,问题:如果误删了redo log文件,数据库起不来怎么办? 解决: 如果删掉的日志文件为Inactive sqldbastartup mount sqldbaalter database drop logfile filenam

2、e sqldbaalter database add logfile filename recover database until cancel CONTINUE,CONTINUEalter database open reset logs 如果删掉的日志文件为current 或active, 联系oracle 的技术支持部门,然后采取相应的措施,问题:如何修改数据库的名字? 解决: sqldbaalter database backup controfile to trace; 在?/rdbms/log目录下,找到最新生成的trace文件ora_nnnn.trc, nnnn表示一个数字 E

3、dit该trace文件,找到create controlfile命令 ,存于 一个文件ccf.sql 修改旧命令为: create controlfile set database newdbname resetlogs CONTINUE,CONTINUE 备份所有旧的control file 编辑initsid.ora, 修改db_name=newdbname sqldbastartup nomount sqldbaccf sqldbaalter database open,问题:如何修改SID? 解决: 修改环境变量ORACLE_SID = newsid mv init.ora init.

4、ora,问题:DBA如何得知某一user/process所执行的sql语句的具体内容? 解决: select saddr, user_name, sql_text from v$open_cursor where user_name = ,问题:DBA如何区分v$session中windows client的osuser? 解决: 在oracle.ini文件中加入 USERNAME= 或 USERNAME= sqldbaselect saddr,osuser from v$session; 可通过saddr在v$cursor中查出该用户所执行的SQL语句,问题:如何得知tablespace的剩

5、余空间有多少? 解决: select sum(bytes), sum(blocks) from sys.dba_free_space where tablespace_name = tbsname,问题:如何为一个Transaction指定Rollback Segment? 解决: set transaction use rollback segment rollback_segs 原则: OLTP或小的transaction指定到小的rollback segment 大数据量修改的transaction指定到大的rollback segment 修改正在进行长查询的table的transac

6、tion指定到大的rollback segment,问题:如何做online backup? 解决: database 必须使用archivelog mode sqldbaalter tablespace begin backup 使用操作系统命令备份属于该tablespace的datafiles sqldbaalter tablespace end backup,问题:为什么有时非oracle用户不能使用oracle? 解决: 检查?/bin/oracle的mode是否为4751 检查.profile文件中是否设置环境变量 ORACLE_HOME ORACLE_SID ORACLE_TERM

7、 PATH,问题:为什么有时输入的汉字查询出来是问号? 原因:Client端和Server端字符集设置不一致 解决: 检查Server的字符的设置 select value from nls_database_parameters where parameter=NLS_CHARACTERSET 使client端的字符集设置与Server端相同 unix: 环境变量NLS_LANG windows: 在oracle.ini文件这设置NLS_LANG NLS_LANG=American_America.zhs16cgb231280,问题:如何手工进行relink? 解决: cd ?/rdbms/

8、lib make -f oracle.mk install cd ?/sqlplus/lib make -f sqlplus.mk install,问题:当启动一个非正常关闭的数据库时,出现 oracle 正在运行,请先关闭它? 怎么办? 原因:数据库启动后,会在?/dbs目录下产生一个 名为 sgadefsid.dbf的文件,当oracle 非正常关闭时, 该文件没有被删除,导致重新启 动oracle时出错 解决:手工删除sgadefsid.dbf文件,然后启动数据库,问题:如何解决DBA-314错误? 错误:不能attach到缺省主机 原因:缺省主机设置不正确 解决: 检查环境变量是否设置

9、正确 ORACLE_SID ORACLE_HOME 检查oracle用户是否属于DBA组 检查oracle可执行文件是否被破坏,relink,问题:如果一个rollback segment的状态为Need Recovery怎么办? Need Recover 表示oracle试图回退一个事务表中的没有提交的事务时失败 原因: 所涉及的目标属于一个offline的datafile或tablespace undo涉及的目标被破坏或rollback segment被破坏 CONTINUE,CONTINUE 解决: 确认所有的tablespace和datafile都online,如果不能解决则做以下的步

10、骤 在initsid.ora中加入 event=?0015 trace name context forever level 10 shutdown数据库然后重新启动 在?/rdbms/log找到startup时生成的trace file, 在trace file中,可找到下列信息: error recover tx(#,#) object #,CONTINUE 根据object #在sys.dba_objects表中查出该object的 名字 将该object drop掉 在initsid.ora文件中删去event,shutdown数据库然后重新启动 如果问题仍没有解决,则需恢复rollb

11、ack segment,问题:如何把一个User的Schema从一个Tablespace移到另一个Tablespace? 解决: 将用户的Schema export出来 Drop原来的用户 在新的Tablespace中重新建用户 将用户的Schema import到新建用户中,问题:如何解决ORA-1547错? 错误:在某个tablespace中无法申请一个指定size的extent 原因: 在Import时无法继续分配Rollback Segment Tablespace中没有足够的空余连续空间 解决 Import时指定参数Commit=y, 设置大的Buffer 检查剩余空间 sys.db

12、a_free_space 增加datafile 调整storage参数,问题:如何解决sqlplus注册时出现Warning:Profile Information are not load? 原因:Product和User Profile Table 没有生成 解决: sqlplus system/manager SQL?/sqlplus/admin/pupbld.sql,问题:如何减少GPF的发生? 原因:windows系统资源(内存)降低导致GPF 解决: 减少windows系统资源的使用以防止出现GPF 避免同时打开多个应用 减少装载到windows中的font个数 windows w

13、allpaper 使用最新的video/network driver 避免在不同的目录下有相同的动态连接库(.dll) CONTINUE,CONTINUE 出现GPF后的解决方法: reboot 检查文件系统是否有文件被破坏 SCANDISK/CHKDSK HIMEM.SYS和EMM386.SYS必须在其他driver之前装载,而且不要装载到高端内存 在autoexec.bat中设置环境变量 SET TEMP=C:TEMP 在autoexec.bat中删除SHARE.EXE, 在SYSTEM.INI中用 VSHARE.386代替 CONTINUE,CONTINUE 在CONFIG.SYS, 设

14、置: BUFFERS=60, 0 FILES=60 如果上述方法不能解决问题,请联系Oracle技术支持部门,问题:pro*c 1.5 for windows在字符集为zhs16cgb231280 环境下如何进行编译才能防止出现GPF? 解决: 将字符集(NLS_LANG)设为US7ASCII 编译 将字符集改回为ZHS16CGB231280 运行,问题:在developer 2000中,如何用ctrl-c中断查询? 解决: 在oracle.ini文件中加入参数: CNTL_BREAK = ON,问题:如何得知oracle可执行文件连接的sql*net v1 driver和sql*net v2

15、 adapter 解决: 在$ORACLE_HOME/bin下 $ drivers oracle 查sql*net v1 driver $ adapters oracle 查sql*net v2 adapter $ drivers sqlplus $ adapters sqlplus,问题:如何解决ORA3113错? 错误:通讯通道中止 原因:通讯不正常结束 解决: 检查是否有用户服务进程不正常死亡,Alert.log 检查Sql*Net Driver是否连接到oracle可执行程序 检查服务器网络是否正常 检查同一个网上是否有两个同样名字的节点 检查同一个网上是否有重复的IP地址,感谢您的光临!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号