好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

OracleDBA面对全新工作环境应该了解什么

在这里 , 不谈那些大的方面 , 比如了解整个 IT 环境整体情况 , 假设你已经知道了这些 , 接下来需要面对的就是这些一个个活生生的 database 了 . 这里总结了一些一般的思路来面对一个全先的 database, 从而快速了解你面对的环境概要。 这也不是教科书 , 只是

在这里 , 不谈那些大的方面 , 比如了解整个 IT 环境整体情况 , 假设你已经知道了这些 , 接下来需要面对的就是这些一个个活生生的 database 了 . 这里总结了一些一般的思路来面对一个全先的 database, 从而快速了解你面对的环境概要。

这也不是教科书 , 只是一些心得和体会 , 对于这种问题 , 每个人的认识的角度是不一样的。

1、先要了解当前的 Oracle 数据库的版本和平台和相关信息
这个很重要,忙乎了半天还知道你的数据库是哪个版本,跑在什么系统上,那岂不是很悲哀,所以我个人认为这是第一步需要了解的。下面的这些脚本可以帮助你获取你需要的相关信息。

     SELECT    *    FROM   v$version;   
     SELECT    *    FROM   dba_registry_database;   
     SELECT   dbid ,  name ,  open_mode ,  database_role ,  platform_name   FROM   v$instance;   
     SELECT   dbms_utility . port_string   FROM   dual;   
  
      SET   serveroutput   ON     
   declare   
     ver VARCHAR2 (  100  ) ;   
     compat VARCHAR2 (  100  ) ;   
   begin   
     dbms_utility . db_version ( ver ,  compat ) ;   
     dbms_output . put_line (  'Version: '   ||  ver  ||  ' Compatible: '   ||  compat ) ;   
   end;   
    /    

2、其次要了解你的数据库中装了哪些组件

  SELECT     *    FROM   dba_registry   

3、搞清楚这个环境是单机还是集群?
这个判断方法很多,我这里给出一个借助 dbms_utility 来判断的方法。

     SET   serveroutput   ON     
  
    declare   
     inst_tab dbms_utility . instance_table;   
     inst_cnt NUMBER;    
    begin   
       IF   dbms_utility . is_cluster_database then   
        dbms_utility . active_instances ( inst_tab ,  inst_cnt ) ;   
        dbms_output . put_line (  '-'   ||  inst_tab . FIRST ) ;   
        dbms_output . put_line ( TO_CHAR ( inst_cnt )) ;   
     else   
        dbms_output . put_line (  'Not A Clustered Database'  ) ;   
     end   IF  ;   
   end;   
    /    

4、是否配置了 DataGuard?

     SELECT   protection_mode ,  protection_level ,  remote_archive ,     
           database_role ,  dataguard_broker , guard_status   
     FROM   v$database;   

5、是否起用了归档模式?

   conn  /    AS   sysdba   
   archive log list;   
     SELECT   log_mode   FROM   v$database;   

6、是否起用了 flashback database 特性?

     SELECT   flashback_on   FROM   v$database;   

如果是,再进一步查看 FRA 的配置情况
7、是否起用了 force logging 和补充日志?

     SELECT   force_logging , supplemental_log_data_min ,  supplemental_log_data_pk ,     
         supplemental_log_data_ui , supplemental_log_data_fk ,  supplemental_log_data_all   
     FROM   v$database;   

8、了解控制文件的组成

     SELECT    *    FROM   v$controlfile;   

9、了解日志文件的组成

     SELECT   l .   GROUP    #, lf.type, lf.member, l.bytes, l.status LOG_STATUS,      
           lf .   STATUS   LOGFILE_STATUS   
     FROM   v$log l ,  v$logfile lf   
     WHERE   l .   GROUP    # = lf.group#     
     ORDER   BY    1  ,  3 ;   

10、了解参数文件的组成和位置

      SHOW   parameter spfile   
      CREATE   spfile   FROM   pfile ...    
      CREATE   pfile   FROM   spfile;   
      CREATE   spfile   FROM   memory;   
      CREATE   pfile   FROM   memory;   --     记得这个好像是  11g  才有的语法吧    

11、了解 instance 的相关信息

      SELECT   instance_name ,  host_name ,    STATUS   ,  archiver ,     
            database_status ,  instance_role ,  active_state   
      FROM   v$instance;   

12、用户和密码相关
是否使用了缺省密码?
是否使用了 profile?
是否起用了密码验证函数?
用户身份验证的方法?
密码是否区分大小写等。

      SELECT   name ,  value   FROM   gv$parameter   WHERE   name  =   'resource_limit' ;   
      SELECT   profile ,  resource_name ,    LIMIT   FROM   dba_profiles   ORDER   BY    1  ,  2 ;   
  
       SELECT   username ,  profile   FROM   dba_users   WHERE   account_status =  'OPEN'    ORDER   BY    1 ;   
 
 
      SELECT   d . username ,  u . account_status   
      FROM   dba_users_with_defpwd d ,  dba_users u   
      WHERE   d . username  =  u . username   AND   account_status  =   'OPEN'     
       ORDER   BY    2  ,  1 ;   

 
13、是否打开了 BLOCK CHANGE TRACKING

      SELECT   filename ,    STATUS   ,  bytes   FROM   v$block_change_tracking;   

14、起用了那些特性 (Feature)?
DBMS_FEATURE_USAGE_REPORT
 
15、表空间和数据文件的规划
这个大家都很熟悉,就不写了
 
16、字符集相关

      SELECT    *    FROM   database_properties;   

 
17、系统中是否存在 invalid 对象

      SELECT   owner ,  object_type ,  COUNT (*)    
      FROM   dba_objects   
      WHERE   STATUS    =   'INVALID'    
      GROUP   BY   owner ,  object_type;   

18、更进一步的
是否使用了 ASM ?
当前系统的备份方法和策略是什么?
网络文件的配置是如何的?
 
19、查看一下最近的 alert 日志,获取一些有用的信息
20、跑几个性能分析报告,看看最近系统的运行状态如何
21、跑一个 RDA 报告,收集完整的系统状态报告
 
好了,有了这一些基本信息(不完全),你基本上对你新接触的这个系统有了一个大概的了解,接来下,你再慢慢的深入分析,然后制订出一套符合实际情况的运维规范来

查看更多关于OracleDBA面对全新工作环境应该了解什么的详细内容...

  阅读:45次