设为首页收藏本站language 语言切换
查看: 1586|回复: 1
收起左侧

Oracle版的提问的智慧

[复制链接]
发表于 2013-8-21 17:07:13 | 显示全部楼层 |阅读模式
oracel版的提问智慧

1. 先在google, 论坛,metalink,online document 里搜索.

    在这里提供Oracle 一些常见的连接地址,包括Oracle下载地址,Oracle 对个人用是免费的。所以你可以放心的从官网下,而且我也建议从官网下。注册一个帐号就可以了。免费注册的。

  Oracle 10g 在线文档:http://www.oracle.com/pls/db102/homepage
    Oracle 10g/11g 下载地址: http://www.oracle.com/technology... database/index.html

    在提问前,应该先自己尝试去解决问题。  一些功能和语法,可以直接在onlinedocument中查到。    在alert log里发现了报错信息或者在运行时发现了报错信息,那么,最简单的做法就是将错误信息或者错误号先在google/metalink/论坛里搜索一下。  Oracle 的错误都是以ORA-xxx形式的,可以直接在google 搜索这些关键字。说不定就有解决方法。还可以功过这个网站进行查询相关的错误解释和解决方法:
Http://ora-0600.ora-code.com
http://ora-00067.ora-code.com/
把这里的ora-xxx 换成你自己的错误代码就可以了。


2. 写清楚log, 报错信息,DBversion , OS

    描述不清提问的大忌之一,如“我的SQL出错了”,“我的什么操作,为什么不成功”,"跪求.." , 这些是最典型的错误提问方式。原始的信息是最重要的…
    写清楚DB的version以及OS, 因为在不同的 DBversion , OS之间,很多特性都不一样。
    可以从select * fromv$version 查看到DB version。还有就是出现错误前的一些操作步骤。比如升级。  
    对于unix或者linux平台可以通过uname-a 命令查看相关信息。

3.  实例方面的问题,请贴出alertlog

   常说要养成看alert log的习惯,最好是条件反射,数据库出现问题就去看alert log,这里面有很多非常有用的信息。  alert log的位置,在$ORACLE_BASE/admin/$ORACLE_SID/bdump下。确切的说应该是在 dbparameter background_dump_dest定义的目录底下。如果没有定义background_dump_dest,那么,会在$ORACLE_HOME/rdbms/log底下。  如果在alert log里面提到了TRACEFILE, 最好一起贴出相关的TRACE FILE。   


4.  Network的问题

   和网络相关的元素就那么几个,一个是自身网络的,而是相关参数。 这里面设计到的参数文件包括tnsnames.ora和 listener.ora。这2个配置文件通常都在 $ORACLE_HOME/network/admin底下,如果定义了环境变量TNS_ADMIN,那么配置文件在$TNS_ADMIN底下。
   我们可以手动的修改这些文件,当然不推荐这么做。 因为tnsnames.ora这个文件比较敏感,就是多个空格都会报错,但是对于空格,我们一般是不容易发现的。最好的方法是通过net manager 工具来配置,配完后还可以测试一下。在写地址的时候,尽量写IP地址,不要写机器名。
  还有,在连接其他数据库之前,要确保相应的监听是开启的。 如果说没有开启,是肯定连不上的。
  命令:lsnrctlstart/stop/status
  如果listener不是默认的,还需要加上listener名:lsnrctlstart/stop/status listener_name


5. SQL 相关的内容

    SQL 的问题,基本语法有关系,而且它报错也很明显,可以直接google或者查看在线文档。如果还是不能解决,在发帖的时候,请把相关的表结构和测试数据的创建SQL,index情况,Table的record数,table是否analyze等信息一并贴出来。这样也方便大家一起查看。

    还有对于SQL 性能的,最好一并贴上执行计划。 这样一看也就明了。
    可以在sqlplus 开启autotrace, 在执行命令后也能看到相关的执行计划:
    SQL>set autot on;
    或者通过如下SQL 语句:
(1)SQL>EXPLAINPLAN FOR 你的sql语句;
             如 SQL>EXPLAIN PLANFOR SELECT * FROM EMP WHERE EMPNO=7369;
(2)SELECTplan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));


6.  数据总体性能问题

    关于这类问题,先对数据库的整体状态做个查看。9i可以通过statspack, 10g以后可以用AWR,ASH。
    这些也可以用Toad 等工具,在界面上进行操作。

     还有就是留意数据库服务器的CPU 和内存使用情况。Linux 下可以用vmstat命令或者top命令



发表于 2013-8-22 10:44:16 | 显示全部楼层
楼主强大
沙发 2013-8-22 10:44:16 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 13:11 , Processed in 0.059818 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表