Author: mac
-
DBA圈友链交流
这几年国内的DBA圈子也进入了WEB 2.0的时代,这极大的丰富了DBA之间交流的方式,也让大量的知识和案例得到有效的交流。这是在WEB 1.0时代所不能想象的,在WEB 1.0时代可用的知识源头可能只有少数的几个,部分文档甚至会被珍藏当做秘籍。WEB 2.0对于DBA来说是分享的时代,也是技术经验更快提升的环境。 在我的个人站点上收录了这几年工作中的一些经验和收集的文档。 为了更好的促进WEB 2.0时代的Oracle技术交流,希望能和天南地北各路DBA广交朋友,现征求Oracle圈内朋友的站点交换友情链接。 简单2点要求如下: 1. 站点最好要有30篇以上原创的Oracle相关文章,不一定是database领域的,只要和Oracle有关即可 2. 最好是独立域名的站点,如果是挂靠在wordpress那么也可以 3. 如果你现在还没有独立的站点,看到这篇帖子后,为什么不尝试build一个呢,这可比安装配置Oracle简单多了,wordpress+Linux hosting+mysql+php会是最佳的选择! 如果有意请在本贴内回复,或者MAIL至本人邮箱:[email protected]。
-
Script:RAC Failover检验脚本loop.sh
以下脚本可以用于验证RAC中FAILOVER的可用性: loop.sh nohup sqlplus su/su@failover @verify.sql & sleep 1 nohup sqlplus su/su@failover @verify.sql & sleep 1 nohup sqlplus su/su@failover @verify.sql & sleep 1 nohup sqlplus su/su@failover @verify.sql & sleep 1 verify.sql (检验SQL) REM set pagesize 1000 REM the following query is for TAF connection verification col sid format 999 col serial# format 9999999 col failover_type…
-
Script:Diagnostic Resource Manager
以下脚本可以用于诊断Oracle 10g以后的Resource Manager信息: set echo on; set linesize 300; set pages 1000; set numwidth 10; set trimspool on; col VALUE for a30; col ATTRIBUTE for a15; col GRANTEE for a25; col CPU_METHOD for a15; col COMMENTS for a30; col MGMT_METHOD for a15; col STATUS for a10; alter session set nls_date_format=’yyyy/mm/dd hh24:mi:ss’; spool info.lst; SELECT SYSDATE…
-
Exadata Sun Infiniband初识
Exadata infiniband的默认root密码一般是welcome1: 查看infiniband的版本: # nm2version (Note: The command ‘nm2version’ is deprecated and will be removed from future releases. Please use ‘version’ instead) SUN DCS 36p version: 1.3.3-2 Build time: Apr 4 2011 11:15:19 SP board info: Manufacturing Date: 2010.04.24 Serial Number: “XXXXXX” Hardware Revision: 0x0005 Firmware Revision: 0x0000 BIOS version: SUN0R100 BIOS date: 06/22/2010…
-
查看Exadata的版本
可以通过imagehistory和imageinfo2个命令查看Exadata的dbserver和cellnode的版本, 例如: DBSERVER: [root@db01 ~]# imagehistory Version : 11.2.2.4.2.111221 Image activation date : 2012-08-09 15:08:29 -0400 Imaging mode : fresh Imaging status : success Version : 11.2.3.1.1.120607 Image activation date : 2012-08-14 19:16:01 -0400 Imaging mode : patch Imaging status : success [root@db01 ~]# imageinfo Kernel version: 2.6.18-274.18.1.0.1.el5 #1 SMP Thu Feb 9 19:07:16…
-
Script:List Grid Control Jobs
以下脚本可以用于列出Grid Control中的定式作业: SET verify OFF SET linesize 255 SET pagesize 128 SET trimout ON SET trimspool ON SPOOL jobdump.log ALTER SESSION SET nls_date_format=’MON-DD-YYYY hh:mi:ss pm’; COLUMN status format a15 COLUMN job_name FORMAT a64 COLUMN job_type FORMAT a32 COLUMN job_owner FORMAT a32 COLUMN job_status format 99 COLUMN target_type format a64 COLUMN frequency_code format a20 COLUMN interval…
-
Script:GridControl Repository Health Check
以下脚本可以用于检查Grid Control(OMS) Repository的健康程度: set linesize 130 set pagesize 50000 Set feedback off set heading off SPOOL RepositoryHealth.log PROMPT ********* Report to capture the Health of the EM Grid Control Repository ****** Prompt Prompt *** EM Vital Statistics *** Prompt ——————————– — Total number of targets monitored by EM select ‘Total Targets=’, TO_CHAR(count(*)) from mgmt_targets; —…
-
Script:诊断Scheduler信息
以下脚本可以用于针对10g以后的Scheduler信息: set long 400 set pagesize 1000 set linesize 120 column log_date format a37 column operation format a8 column status format a6 column additional_info format a400 column systimestamp format a37 column next_start_date format a40 column start_date format a40 column manual_open_time format a40 column manual_duration format a40 column duration format a40 column end_date format a40 column…
-
Script:优化crs_stat命令的输出
在10g RAC中我们常用crs_stat命令查看CRS资源的状态,但是crs_stat命令的输出并不完整。可以通过以下脚本来优化crs_stat的输出: ————————— Begin Shell Script ——————————- #!/usr/bin/ksh # # Sample 10g CRS resource status query script # # Description: # – Returns formatted version of crs_stat -t, in tabular # format, with the complete rsc names and filtering keywords # – The argument, $RSC_KEY, is optional and if passed to the script, will #…
-
了解DBMS_OUTPUT包
DBMS_OUTPUT程序包是我们在Oracle开发过程中常用的一个包体,使用该包我们可以从存储过程、包或触发器发送信息(messages)。Oracle推荐在debug PL/SQL程序时使用该程序包,不推荐使用该包来做报表输出或其他格式化输出之用。 概述 DBMS_OUTPUT包主要用于调试PL/SQL程序,或者在SQL*PLUS命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名PL/SQL程序块,而该块出于某种目的使用DBMS_OUTPUT包来显示一些信息。 在该DBMS_OUTPUT包中存在2个存储过程,它们是PUT_LINE和PUT过程,使用这2个Procedure可以做到将信息存放到PL/SQL的Buffer中,以便其他的触发器、存储过程、程序包来读取。在独立的PL/SQL程序或匿名块中,我们还可以使用GET_LINES和GET这2个存储过程来将存放在PL/SQL Buffer中的信息输出(display)到屏幕。 如果该DBMS_OUTPUT包被禁用了,那么所有对其子程序(subprogram)的调用都将被忽略。这样用户可以设计应用程序,仅在客户端程序能够处理这些信息的时候启用这些子程序。 安全模型 必须使用SYS用户运行$ORACLE_HOME/rdbms/admin/dbmsotpt.sql,该脚本会为DBMS_OUTPUT创建同义词,并将该包的执行权限赋予PUBLIC角色。 操作提示 若不调用GET_LINE函数,或者不在SQL*PLUS中将信息(information)输出到屏幕的话,那么缓存的信息(buffered message)最终将被忽略。 SQL*PLUS会在SQL语句或匿名PL/SQL块调用结束后调用GET_LINES过程 在SQL*PLUS中输入SET SERVEROUTPUT ON,将启动下面语句的效果: DBMS_OUTPUT.ENABLE (buffer_size => NULL); 输出不再有限制(no limit on the output) 不推荐在应用程序代码中调用ENABLE或DISABLE过程,因为这将导致如SQL*PLUS这种外部工具无法正常控制输出与否。 注意使用DBMS_OUTPUT传送的message在实际执行该DBMS_OUTPUT的子程序或触发器执行完成之前都不会实际被发送。这也就导致了在整个运行过程中不会有信息被写出,所以用DBMS_OUTPUT包做日志输出的话只能等到整个子程序结束才会有日志出现。 程序异常 DBMS_OUTPUT子程序可能引发ORA-20000错误,同时其OUTPUT存储过程可能返回以下错误: DBMS_OUTPUT 可能遇到的错误 错误号 描述 ORU-10027: Buffer缓存溢出 ORU-10028: 行长溢出 规则和限制 最大的单行长度是32767 bytes字节 默认的buffer大小时20000 bytes字节,最小的buffer为2000 bytes字节,最大没有限制 使用示例 示例1:在触发器生成输出 我们可以使用一个触发器来打印正在调试进程的一些信息,譬如你可以在触发器中调用以下代码: DBMS_OUTPUT.PUT_LINE(‘I got here:’||:new.col||’ is the new value’); 若启用了DBMS_OUTPUT包,那么由PUT_LINE所生成的文本将被缓存到Buffer中,之后我们可以通过以下代码获取该Buffer中的信息:…