Oracle 官方给出声明DB版本对于dblink连接产生影响

在 Oracle 官方支持站点 MOS 上,最近发布了两篇告警文章

  • Oracle Databases Need to be Patched to a Minimum Patchset/PSU/RU level before April 2019 (Doc ID 2361478.1)
  • Mandatory Patching Requirement for Database Versions 11.2.0.3 or Earlier, Using DB Links (Doc ID 2335265.1)

官方给出了如下声明

对于database link带来影响的原因如下



官方给出的建议如下:



关于两篇文档内容总结如下
1、 通过 DB Link 的查询会同步数据库的 SCN,也就是这个原理会导致很多 SCN 耗尽的 Headroom 问题
2、 如果都是未应用补丁的低版本数据库互访,不会出现问题;但是如果是未应用补丁的低版本和应用了补丁的高版本之间互访,就可能出问题。
3、 如果低版本和高版本互访,在2019年4月之后,跨 DB Link 的访问不一定会出现问题,尤其是 SCN 的增长率维持低位的数据库;但是由于算法的改变,很可能会出现问题,而且概率很高;
4、 引入这样的修改和补丁,是因为 SCN 是 Oracle 的核心机制,过去遇到的 Headroom问题必须获得彻底消除,所以算法需要调整,这是非常核心的改变。
5、 如果数据库全部维持在低版本,或者不通过 DB Link 互访,则无所谓; Oracle 也提供禁用该特性的功能,但是不保证之后不改变。

在 MOS 上文档 1393360.1中,就有各种已知的描述,如果低版本的数据库 SCN 不能抬升,那么就可能遭遇:ORA-19706: invalid SCN 的错误(详情见附件)。

对于Oracle官方给出的该声明,整体建议如下:

方案一:对于低版本和高版本互访的dblink链接进行应用改造,如非必要,请尽可能采用客户端连接的方式进行交互
方案二:对dblink的源端以及目标端数据库进行补丁升级,以符合官方要求版本太低的可进行跨版本升级,但需要先对稳定性以及性能进行调整测试,如SPA等。

不建议:关闭scn新特性

因为当前关闭新特性是为了向下兼容,那么今后新数据库部署,就都需要关闭该功能,但是Oracle 虽然现在提供禁用该特性的功能,却不保证之后不改变,以后也会有诸多功能基于此特性开发,越往后进行应用,覆盖面约广,所以建议在过渡期内升级打patch,而不是等该特性运行后,大面积实行。

参考:http://www.sohu.com/a/225739395_505827

http://ju.outofmemory.cn/entry/354015

Oracle补丁及opatch工具介绍

一. CPU(Critical Patch Update)

    一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁。CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发布的所有CPU的内容。事实上,在CPU之前的安全漏洞修改除去个别例外也被包括在CPU中。Oracle公司只对处于标准技术支持和延长支持期间的产品提供CPU更新,对处于维持支持范围的产品不提供新的CPU.(对于9.2以前的版本,只对处于ECS和EMS期间的版本提供CPU更新。)

    一般对当前补丁发行版及前一个版本提供CPU,但也有只限于当前补丁发行版的例外情形。也就是说,一般需要先安装最新PSR后才可能安装CPU.由于是累积型的定期发布,所以对于某一平台的某一版本,如果两次CPU发布期间没有发现新的安全漏洞,则新发布的CPU与前一版本完全相同。

    可以在以下网址中可以找到CPU发布的信息,只要在Oracle 免费注册一个用户,就可以收到这些补丁的信息。但是,只有技术支持签约用户才可以从metalink下载补丁文件。

    http://www.oracle.com/technology/deploy/security/alerts.htm

    Oracle公司制定的CPU的发布日期大约在一月、四月、七月和十月的最接近15的星期二。

    Critical Patch Updates

    Critical Patch Updates are the primary means of releasing security fixes for Oracle products to customers with valid support contracts. They are released on the Tuesday closest to the 15th day of January, April, July and October. Starting 2011, the scheduled dates for the release of Critical Patch Updates will be on the Tuesday closest to the 17th day of January, April, July and October. The next four dates are:

    12 October 2010

    18 January 2011

    19 April 2011

    19 July 2011

    对于每一个CPU,附有相应的说明文档(Critical Patch Update Note),其中介绍安装过程和注意事项,在安装之前应认真阅读此文档。同样也存在文档“Oracle Critical Patch Update MM YYYY Known Issues for Oracle Database”,其中列出了说明文档中没有给出的新信息。

    二.PSR(Patch Set Release) 和 PSU(Patch Set Update)

    8i,9i,10g,11g这是其主要版本号,每一版本会陆续有两至三个发行版,如10.1,10.2,和 11.1,11.2分别是10g和11g的两个发行版。对于每一个发行版软件中发现的BUG,给出相应的修复补丁。每隔一定时期,会将所有补丁集成到软件中,经过集成测试后,进行发布,也称为PSR(Patch Set Release)。以10.2为例,10.2.0.1.0是基础发行版,至今已有三个PSR发布,每个PSR修改5位版本号的第4位,最新10.2的PSR为10.2.0.4.0。(11.1.0.6.0是11.1的基础发行版,11.1.0.7.0是第一次PSR) 。

    在某个PSR之后编写的补丁,在还没有加入到下一个PSR之前,以个别补丁(Interim Patch)的形式提供给客户。某个个别补丁是针对Oracle公司发现的或客户报告的某一个BUG编写的补丁,多个个别补丁之间一同安装时可能会有冲突,即同一个目标模块分别进行了不同的修改。另外,即便在安装时没有发现冲突,由于没有进行严格的集成测试,运行过程中由于相互作用是否会发生意外也不能完全排除。

    除去修改功能和性能BUG的补丁,还有应对安全漏洞的安全补丁。Oracle公司定期(一年四期)发布安全补丁集,称之为CPU(Critical Patch Updates)。

    由于数据库在信息系统的核心地位,对其性能和安全性的要求非常高。理应及时安装所有重要补丁。另外一个方面,基于同样的理由,要求数据库系统必须非常稳定,安装补丁而导致的系统故障和性能下降同样不可接受。DBA经常面临一个非常困难的选择:对于多个修复重要BUG的个别补丁是否安装。不安装,失去预防故障发生的机会,以后故障发生时,自己是无作为;安装,如果这些补丁中存在着倒退BUG,或者相互影响,以后发生由于安装补丁而造成的故障时,自己则是无事生非!而等待下一个PSR,一般又需要一年时间。因此,出现了PSU(Patch Set Update)。

    PSU解决以下几个问题:

    1. 减轻PSR周期长而带来的不能及时更新的影响;

    2. 解决多个个别补丁冲突和相互影响的问题;

    3. 减轻DBA安装补丁的负担:补丁安装次数,不定期检查补丁发布。

    PSU具有如下特点:

    第一、PSU是PSR的补充,在两次PSR发布之间发布多个PSU,加快更新速度。每个PSU修改5位版本号的第5位。例如,安装此次发布的 PSU后,11.1版本“升级”为11.1.0.7.1;10.2版本为10.2.0.4.2。

    第二、每个PSU中包含25至100个重要补丁,作为一个整体进行严格测试,解决冲突问题,保证系统的稳定性。PSU不仅包括对功能、性能修复的一般补丁,也包括安全补丁。

    第三、PSU定期发布,计划一年分布四次,发布日期与CPU发布日期相同。由于PSU包括同期发布的CPU,只要安装PSU即可。(对部分平台,仍提供单独的CPU,供客户选择)

    第四、如同PSR和CPU一样,PSU是累积型的,即只要安装最新的PSU就自动包括以前所有PSU的内容。

    第五、使用DBA已经熟悉的Opatch工具安装/删除PSU,命令仍是apply和rollback。一个PSU可视作一个个别补丁,安装和删除操作都很简便。

    第六、现有的个别补丁与PSU的关系分为三类:完全独立;是PSU的一部分;与PSU冲突。第一类的个别补丁与PSU相互没有影响,可以独立的安装或删除。对于第二类,在安装PSU之后,自然没有必要安装。若在PSU之前已安装,则在安装PSU时会被自动删除。对于第三类个别补丁,如在PSU之前已安装,必须在安装PSU时删除。客户可以向Oracle公司技术支持部门提出申请,由Oracle负责提供与PSU不冲突的,在PSU之上安装的相应的新的版本。

    PSU的限制:必须是在正常技术支持范围之内的版本(11.2、11.1和10.2),并且PSU只能在最新PSR之上安装。

    三.OPatch 命令

    先看一个官网的Oracle OPatch 的说明:

    Oracle Software Patching Using Opatch

    http://download.oracle.com/docs/cd/B19306_01/em.102/b16227/oui8_opatch.htm

    从9.2版开始,Oracle公司实现了个别补丁安装工具opatch. opatch使用一个称为inventory的系统数据结构(严格说是与oui共享inventory),集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用opatch命令完成,冲突检测也由opatch在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息。

    10g(10.1和10.2)版本中,opatch作为一个标准工具,在安装时自动安装。(安装在$ORACLE_HOME/OPatch下。)而对于9.2版,需要从metalink下载opatch.无论是哪一个版本,系统中是否已经安装opatch,在使用之前,应从metalink下载最新版本的opatch.很遗憾,由于系统实现的问题,10.2使用的opatch与之前版本(10.1和9.2)使用的opatch不兼容,不能混用,这一点必须注意。

    opatch是使用perl编写的脚本程序(其中也使用JAVA API)。使用的perl版本是5.6版,虽然在5.6之前的版本中也可运行,但应尽可能安装5.6或以上的版本的perl. 对于DBA来说一个好消息是,如果安装9.2版软件时保留了HTTP服务器,则在$ORACLE_HOME/Apache下会自动安装perl.(10g会自动安装配置perl和opatch.)

    3.1 opatch命令存放位置

    该命令的存放位置在$ORACLE_HOME下的OPatch目录下。

    -bash-3.2$ pwd

    /u01/oracle/oracle/product/10.2.0/db_1/OPatch

    -bash-3.2$ ls

    docs emdpatch.pl jlib opatch opatch.ini opatch.pl

    -bash-3.2$ ls -lrt

    total 44

    -rw-r–r– 1 oracle oinstall 18107 Apr 18 2005 emdpatch.pl

    -rw-r–r– 1 oracle oinstall 2193 Jun 1 2005 opatch.pl

    -rwxr-xr-x 1 oracle oinstall 5672 Jun 1 2005 opatch

    drwxr-x— 2 oracle oinstall 4096 Apr 21 13:24 jlib

    drwxr-x— 2 oracle oinstall 4096 Apr 21 13:24 docs

    -rw-r–r– 1 oracle oinstall  49 Apr 21 13:24 opatch.ini

    3.2 使用“-help”参数可以获得opatch命令的帮助信息

    -bash-3.2$ ./opatch –help

    Invoking OPatch 10.2.0.1.0

    Oracle interim Patch Installer version 10.2.0.1.0

    Copyright (c) 2005, Oracle Corporation. All rights reserved..

    Oracle Home   : /u01/oracle/oracle/product/10.2.0/db_1

    Central Inventory : /u01/oracle/oraInventory

    from     : /u01/oracle/oracle/product/10.2.0/db_1/oraInst.loc

    OPatch version  : 10.2.0.1.0

    OUI version   : 10.2.0.1.0

    OUI location   : /u01/oracle/oracle/product/10.2.0/db_1//oui

    Log file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_09_03-05-40-CST_Mon.log

    Usage: opatch [ -help ] [ -r[eport] ] [ command ]

    command := apply

    lsinventory

    query

    rollback

    version

    <global_arguments>:= -help   Displays the help message for the command.

    -report  Print the actions without executing (deprecated).

    example:

    'opatch -help'

    'opatch apply -help'

    'opatch lsinventory -help'

    'opatch rollback -help'

    OPatch succeeded.

    这个是10.2.0.1版本的opatch. 在10.2.0.4 版本的opatch命令与之前的又不同,它有添加了几个命令。

    -bash-3.2$ ./opatch –help

    Invoking OPatch 11.1.0.6.6

    Oracle Interim Patch Installer version 11.1.0.6.6

    Copyright (c) 2009, Oracle Corporation. All rights reserved.

    Usage: opatch [ -help ] [ -r[eport] ] [ command ]

    command := apply

    lsinventory

    napply

    nrollback

    rollback

    query

    version

    prereq

    util

    <global_arguments>:= -help   Displays the help message for the command.

    -report  Print the actions without executing.

    example:

    'opatch -help'

    'opatch apply -help'

    'opatch lsinventory -help'

    'opatch napply -help'

    'opatch nrollback -help'

    'opatch rollback -help'

    'opatch prereq -help'

    'opatch util -help'

    OPatch succeeded.

    官网上对命令的一些解释:

    apply

    Installs an interim patch. Refer to "apply Command" for more information.

    napply

    Installs n number of patches (hence napply). Refer to "napply Command" for more information.

    auto

    Applies Oracle Clusterware patches. Refer to "auto Command" for more information.

    lsinventory

    Lists what is currently installed on the system. Refer to "lsinventory Command" for more information.

    query

    Queries a given patch for specific details. Refer to "query Command" for more information.

    rollback

    Removes an interim patch. Refer to "rollback Command" for more information.

    nrollback

    Removes n number of patches (hence nrollback). Refer to "nrollback Command" for more information.

    version

    Prints the current version of the patch tool. Refer to "version Command" for more information.

    在$ORACLE_HOME/OPatch/docs目录下,用指南文件(Users_Guide.txt),其中有详细的命令格式和使用示例,可以参考。

    Opatch执行操作时,除在屏幕输出结果外,还生成日志文件。日志文件的路径和文件名格式如下:

    $ORACLE_HOME/.patch_storage/< patch_id >/< action >-< patch_id >_< mm-dd-yyyy_hh-mi-ss>.log

    其中“patch_id”是Oracle技术支持部门为个别补丁分配的编号。

    3.3 opatch安装个别补丁示例:

    以Patch 5689937 为例。

    3.3.1 patch下载

    从metalink下载补丁的压缩文件p5689937_10201_LINUX.zip.将此文件解压缩至某一目录中。解压缩后,这一补丁的所有文件都在子目录5689937下,目录名就是个别补丁的补丁号,opatch依据目录名获得信息,所以一定不要重命名子目录。

    3.3.2 安装patch

    进入patch文件5689937 目录,在patch的目录下面有一个readme的安装文档,里面有安装步骤和一些问题的处理方法。

    3.3.2.1 关闭数据库和监听

    Shut down all instances and listeners associated with the Oracle home that you are updating.

    3.3.2.2. 进入patch目录,运行opatch apply命令

    -bash-3.2$ cd p5689937_10201_LINUX/

    -bash-3.2$ ls

    5689937 patchmd.xml README.html

    -bash-3.2$ cd 5689937/

    -bash-3.2$ ls

    custom etc files README.txt

    -bash-3.2$ pwd

    /mnt/p5689937_10201_LINUX/5689937

    -bash-3.2$ export PATH=$PATH:/usr/ccs/bin

    -bash-3.2$ $ORACLE_HOME/OPatch/opatch apply

    3.3.2.3 启动实例,运行相关脚本

    -bash-3.2$ cd $ORACLE_HOME/cpu/CPUJan2007/ — 要进入这个目录才能找到脚本

    -bash-3.2$ sqlplus /nolog

    SQL*Plus: Release 10.2.0.1.0 – Production on Mon Aug 9 04:48:19 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL> conn / as sysdba

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area 281018368 bytes

    Fixed Size         1218968 bytes

    Variable Size       83887720 bytes

    Database Buffers     192937984 bytes

    Redo Buffers        2973696 bytes

    Database mounted.

    Database opened.

    SQL> @catcpu.sql

    如果catcpu.sql 脚本报任何无效对象,执行如下脚本:

    SQL> @?/rdbms/admin/utlrp.sql

    可以用如下SQL 检查无效对象:

    SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';

    3.3.3 用inventory 命令查看已经安装的patch

    -bash-3.2$ $ORACLE_HOME/OPatch/opatch lsinventory

    Invoking OPatch 10.2.0.1.0

    Oracle interim Patch Installer version 10.2.0.1.0

    Copyright (c) 2005, Oracle Corporation. All rights reserved..

    Oracle Home   : /u01/oracle/oracle/product/10.2.0/db_1

    Central Inventory : /u01/oracle/oraInventory

    from     : /u01/oracle/oracle/product/10.2.0/db_1/oraInst.loc

    OPatch version  : 10.2.0.1.0

    OUI version   : 10.2.0.1.0

    OUI location   : /u01/oracle/oracle/product/10.2.0/db_1//oui

    Log file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2010_Aug_09_04-55-55-CST_Mon.log

    Lsinventory Output file location : /u01/oracle/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory-2010_Aug_09_04-55-55-CST_Mon.txt

    ——————————————————————————–

    Installed Top-level Products (1):

    Oracle Database 10g                         10.2.0.1.0

    There are 1 products installed in this Oracle Home.

    Interim patches (1) :

    Patch 5689937   : applied on Mon Aug 09 04:43:27 CST 2010

    Created on 8 Jan 2007, 11:48:31 hrs US/Eastern

    Bugs fixed:

    4671216, 4925103, 4604970, 4616376, 5689937, 4288876, 5225798, 5694720

    4754888, 4750469, 4369235, 4751931, 4966716, 5049080, 5242648, 4348230

    5490846, 4630549, 5490936, 5049088

    ——————————————————————————–

    OPatch succeeded.

    或者用$ORACLE_HOME/OPatch/opatch lsinventory –detail 命令查看详细。

    3.4 卸载 opatch

    3.4.1 关闭实例和监听

    SQL> shutdown immediate

    3.4.2 执行opatch命令

    -bash-3.2$ cd $ORACLE_HOME/OPatch/

    -bash-3.2$ ./opatch rollback -id 5689937

    3.4.3 启动实例,执行catcpu_rollback.sql脚本

    -bash-3.2$ cd $ORACLE_HOME/cpu/CPUJan2007/

    -bash-3.2$ sqlplus /nolog

    SQL*Plus: Release 10.2.0.1.0 – Production on Mon Aug 9 05:04:19 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL> conn / as sysdba

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area 281018368 bytes

    Fixed Size         1218968 bytes

    Variable Size      109053544 bytes

    Database Buffers     167772160 bytes

    Redo Buffers        2973696 bytes

    Database mounted.

    Database opened.

    SQL> @catcpu_rollback.sql — 这个脚本在patch的安装目录里也有

    如果在运行中出现无效对象,运行如下脚本:

    SQL> @?/rdbms/admin/utlrp.sql

    检查无效对象:

    SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS = 'INVALID';

    关于Patch的说明就到此。 在后说明一点。 有时我们的生产库遇到一个问题,但是又不能十分确定是否是某个bug的时候,可以先考虑打patch看一下,如果解决了更好,如果不能解决,把patch删掉即可。 这样可以把问题控制在可控的范围内,避免把问题扩大化。

Oracle EBS救急metalink文档编号

0、Oracle Help Center Product Documentation Links (Doc ID 1597048.1)

1、GLBALFIX: GL Balances Corruption Datafix – Master Note (文档 ID 1563019.2);

2、Oracle培训视频:740966.1;

3、EBS Concurrent Processing (CP) Analyzer (文档 ID 1411723.1);

4、E-Business Suite Applications Login Analyzer (文档 ID 2319360.1);

5、EBS BI Publisher (BIP) Analyzer (文档 ID 2032715.1);

6、EBS R12.0.x / R12.1.x : How To Find Location Of Install, Autoconfig, Patching , Clone And Other Logs ? (文档 ID 804603.1);

7、Remote Diagnostic Agent (RDA) – Getting Started (Doc ID 314422.1)。

8、中文文档列表 – Oracle EBS (Enterprise Business Suite) (文档 ID 1553829.1)。

9、EBS 总账分析器 (文档 ID 2509109.1)。

10、EBS数据库性能和统计分析器 (文档 ID 2523910.1)。

11、EBS Internet Expenses (OIE) 分析器 (文档 ID 2516149.1)。

12、并发处理 – EBS并发管理器最佳实践方法 (文档 ID 1591015.1)。

13、EBS 报表 & 打印 分析器 (文档 ID 2515458.1)。

14、E-Business Suite 应用系统登陆分析器 (文档 ID 2516779.1)。

15、11i-12 Report Manager 错误诊断 (文档 ID 1663513.1)。

16、E-Business Suite: WLS (WebLogic Server) Utility (文档 ID 2516784.1)。

17、怎样提高日记账导入的性能和11i里其他总账请求的性能 (文档 ID 1596522.1)。

18、R12: 怎样提高总账和日记账导入的性能 (文档 ID 1541185.1)。

19、bde_chk_cbo.sql – EBS initialization parameters – Healthcheck (文档 ID 174605.1)。

20、All About the SQLT Diagnostic Tool (文档 ID 215187.1)。

21、

22、

23、常见问题:如何使用AWR报告来诊断数据库性能问题 (文档 ID 1523048.1)。

24、

25、

26、EBS的性能调优 (文档 ID 1534688.1)。

27、SQL 自动调优以及 SQL Profile (文档 ID 2331566.1)。

28、bde_last_analyzed.sql Script – Verifies CBO Statistics (文档 ID 163208.1)。

29、SQLT 使用指南 (文档 ID 1677588.1)。

30、java6各版本下载

31、Oracle官方电子文档:http://etrm.oracle.com/pls/trm1222p/etrm_search.search

https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html#license-lightbox

31、更改Oracle登陆界面

Note 174219.1 – How To Change The Logo In The Oracle Application MenuNote 849752.1 – R12 Login Page: How to Personalize the Logo ?
Note 741459.1 – Tips For Personalizing The E-Business Suite r12 Login Page (MainLoginPG)
Note 602995.1 – How To Change The Standard Oracle Logo in R12 Forms
Note 551795.1 – How to change the default branding on the homepage which shown as “E-Business Suite” ?
Note 421636.1 – How to replace the default Oracle Logo with a Customized Logo?
Note 308402.1 – How to display a logo for your application

32、Metalink注册相关问题https://docs.oracle.com/cd/E67898_01/MSREG/toc.htm

33、How to confirm that a Critical Patch Update (CPU) has been installed in Linux / UNIX (文档 ID 821263.1)

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=335413310578441&id=821263.1&_adf.ctrl-state=664sc31mq_248

34、Master Note For OPatch (文档 ID 293369.1)

35、Master Note for Database Proactive Patch Program (文档 ID 756671.1)

36、Database PSU/BP/Update/Revision – Known Issues Master Note (文档 ID 1227443.1)

37、11.1.0.7 Patch Set Updates – List of Fixes in each PSU (文档 ID 1337836.1)

38、Concurrent Processing – Product Information Center (PIC) (Doc ID 1304305.1)

39、EBS Installation Configuration Management (ICM) Application DBA Online Patching (ADOP) Analyzer (Doc ID 2379656.1)

40、E-Business Suite Support Analyzer Bundle Menu Tool (Doc ID 1939637.1)

41、Get Proactive with Oracle E-Business Suite – Product Support Analyzer Index (Doc ID 1545562.1)

42、EBS Database Performance and Statistics Analyzer (Doc ID 2126712.1)

43、 EBS General Ledger Analyzer (GL Analyzer) (Doc ID 2117528.1)

44、Oracle EBS R12 官方参考手册(User Guide, Implementation Guide)

https://docs.oracle.com/cd/B34956_01/current/html/docset.html

45、Oracle E-Business Suite Electronic Technical Reference Manual (eTRM), Release 12.1 and 12.2 (Doc ID 2736939.1)

46、R12: Recommended Browsers for Oracle E-Business Suite ( Doc ID 389422.1 )

47、Is It Safe To Lock The Listed Applications Accounts? (文档 ID 1357196.1)

48、 How Can I Restrict Applications Users To Be Signed In Only Once At Any Time (文档 ID 375403.1)

49、R12: Recommended Browsers for Oracle E-Business Suite (Doc ID 389422.1)

Linux操作系统定时任务crond

Linux操作定时清理固定路径下的文件,可以直接用命令方式。        
1) 执行命令:
     例如:find /u01/DEV/app/fs_ne/inst/DEV_devfin/logs/appl/conc/out/  -mtime +90 -exec rm -f {} \;
     (-mtime +90为删除最后修改时间在90天以前的文件,可自己配置)
2) 在linux上配置定时任务(通过有权限的用户):        
        说明:因为我们使用的是系统的crontab文件,系统的crontab文件路径为:/etc/crontab
        编辑crontab文件: 
         命令:vi /etc/crontab,输入i;进入编辑模式,在文件末尾写入步骤一的命令,配置任务定时时间:
         crontab定时配置说明:  
          *(分)  *(时)   *(天)  *(月)  *(星期)
          crontab中最终写入的命令为: 00 01 * * * root  find /u01/DEV/app/fs_ne/inst/DEV_devfin/logs/appl/conc/out/  -mtime +90 -exec rm -f {} \;(每天凌晨一点开始执行此命令;     
3) 核实定时任务是否执行:
          命令(root): tail /var/spool/mail/appldev       
4) 若定时任务没有执行,输入命令检查服务是否启动service crond status,确保crond状态为 is  running,如果没有则重启service crond restart 即可。

SQL Tuning Health-Check Script (SQLHC) (文档 ID 1366133.1)

Applies to: 
Oracle Database – Personal Edition – Version 10.2.0.1 and later
Oracle Database – Enterprise Edition – Version 10.2.0.1 and later
Oracle Database – Standard Edition – Version 10.2.0.1 and later
Oracle Database Products > Oracle Database Suite > Oracle Database
Information in this document applies to any platform.

Purpose 

Download the SQL Tuning Health-Check Script

SQL Health Check

Download the SQLHC Script Here (.zip archive).

 

What is the SQL Tuning Health-Check Script (SQLHC)?

The SQL Tuning Health-Check Script is a tool developed by the Oracle Server Technologies Center of Expertise. The tool, also known as SQLHC, is used to check the environment in which a single SQL Statement runs, checking Cost-based Optimizer (CBO) statistics, schema object metadata, configuration parameters and other elements that may influence the performance of the one SQL being analyzed.

Licensing (SQLHC requires no license and is FREE)

As in the title of this section, SQLHC requires no license and is FREE. 
Since SQLHC can use information from AWR reports if the Diagnostic or Tuning pack are installed, it asks if these packs are licensed at your site. For more details refer to the licensing section in the SQLHC FAQ:

Document 1454160.1 FAQ: SQL Health Check (SQLHC) Frequently Asked Questions
 

Overview of the SQL Tuning Health-Check Script

An overview video about SQLHC is available here :

Document 1455583.1 SQL Tuning Health-Check Script (SQLHC) Video


The intention of SQLHC is to allow users to avoid SQL Performance from being affected by avoidable problems by ensuring that the environment that an individual SQL runs in is sound.

It does this while leaving "no database footprint" ensuring it can be run on all systems.

When executed for one SQL_ID, this script generates an HTML report with the results of a set of health-checks around the one SQL statement provided. You can find the SQL_ID of a statement from an AWR or ASH report or you can select it from the database using the V$SQL view. See:

Document 1627387.1 How to Determine the SQL_ID for a SQL Statement

Health-checks are performed over:
•CBO Statistics for schema objects accessed by the one SQL statement being analyzed
•CBO Parameters
•CBO System Statistics
•CBO Data Dictionary Statistics
•CBO Fixed-objects Statistics

NOTE: A webcast has been recorded entitled: "How to Improve SQL Performance with the New Health Check Tool?".

This can be found, along with many other recorded webcasts, here:

Document 740964.1 Advisor Webcast Archived Recordings

A FAQ for the SQL Healthcheck script (SQLHC) can be found here:


Document 1417774.1 FAQ: SQLHC HealthCheck Frequently Asked Questions

Additionally, we welcome any additional health-checks that you may suggest. If any specific health-checks are needed and not covered by this script, then as long as the health-check can be produced with a SQL Command (leaving no database footprint ) then these can be implemented in future versions.

Please add comments to this Document for any desired additions.
 

Best Practices

Pro-Active Problem Avoidance and Diagnostic Collection

Although some problems may be unforeseen, in many cases problems may be avoidable if signs are detected early enough. Additionally, if an issue does occur, it is no use collecting information about that issue after the event. SQLHC is one of the tools that support recommend for collecting such diagnostics. For information on suggested uses, other proactive preparations and diagnostics, see:

Document 1482811.1 Best Practices: Proactively Avoiding Database and Query Performance Issues
Document 1477599.1 Best Practices Around Data Collection For Performance Issues

Ask Questions, Get Help, And Share Your Experiences With This Article

Would you like to explore this topic further with other Oracle Customers, Oracle Employees, and Industry Experts?

Click here to join the discussion where you can ask questions, get help from others, and share your experiences with this specific article.
Discover discussions about other articles and helpful subjects by clicking here to access the main My Oracle Support Community page for Database Tuning.

Requirements

Execute this script from SQL*Plus connecting as SYS, DBA or a user with access to Data Dictionary views.

NOTE: The script ADDS NO OBJECTS TO THE DATABASE. It simply reports and advises on existing objects

Configuring

There is no configuration required.

Instructions
1.Login to the database server and set the environment used by the Database Instance
2.Download the "sqlhc.zip" archive file and extract the contents to a suitable directory/folder
3.Connect into SQL*Plus as SYS, a DBA account, or a user with access to Data Dictionary views and simply execute the "sqlhc.sql" script. It will request to enter two parameters:

i.Oracle Pack License (Tuning, Diagnostics or None) [T|D|N] (required)
If site has both Tuning and Diagnostics licenses then specify T (Oracle Tuning pack includes Oracle Diagnostics)


ii.A valid SQL_ID for the SQL to be analyzed.  


For Example:

# sqlplus / as sysdba
SQL> START sqlhc.sql T djkbyr8vkc64h

#SQLHC报告说明

1_health_check.html
    Observations:显示health-checks输出的可能存在问题的项目,确认是否需要更改.例如:对象统计信息过旧
    SQL Text:要检查的sql文本
    Tables Summary:显示相关表的统计信息大概
    Indexes Summary:显示相关索引的统计信息大概
2_diagnostics.html
    SQL Text:要检查的sql文本
    SQL Plan Baselines (DBA_SQL_PLAN_BASELINES):DBA_SQL_PLAN_BASELINES中此sql的plan history
    SQL Profiles (DBA_SQL_PROFILES):DBA_SQL_PROFILES中此sql的profiles
    SQL Patches (DBA_SQL_PATCHES):DBA_SQL_PATCHES中此sql的相关patches
    Cursor Sharing and Reason:GV$SQL_SHARED_CURSOR是此sql的cursor sharing
    Cursor Sharing List:GV$SQL_SHARED_CURSOR中此sql的cursor sharing
    Current Plans Summary (GV$SQL):GV$SQL中此sql的平均消耗
    Current SQL Statistics (GV$SQL):GV$SQL中此sql的消耗
    Historical Plans Summary (DBA_HIST_SQLSTAT):DBA_HIST_SQLSTAT中此sql的历史平均消耗
    Historical SQL Statistics – Delta (DBA_HIST_SQLSTAT):DBA_HIST_SQLSTAT中此sql的历史消耗
    Historical SQL Statistics – Total (DBA_HIST_SQLSTAT):DBA_HIST_SQLSTAT中此sql的历史消耗
    Active Session History by Plan (GV$ACTIVE_SESSION_HISTORY):GV$ACTIVE_SESSION_HISTORY中此sql的session state统计
    Active Session History by Plan Line (GV$ACTIVE_SESSION_HISTORY):GV$ACTIVE_SESSION_HISTORY中此sql的plan line统计
    AWR Active Session History by Plan (DBA_HIST_ACTIVE_SESS_HISTORY):DBA_HIST_ACTIVE_SESS_HISTORY中此sql的session state统计
    AWR Active Session History by Plan Line (DBA_HIST_ACTIVE_SESS_HISTORY):DBA_HIST_ACTIVE_SESS_HISTORY中此sql的plan line统计
    DBMS_STATS System Preferences:DBMS_STATS系统参数
    Tables:表相关的统计信息
    DBMS_STATS Table Preferences:DBMS_STATS表参数
    Table Columns:列相关的统计信息
    Table Partitions:表分区相关的统计信息
    Table Constraints:表上的约束信息
    Tables Statistics Versions:表相关的统计信息
    Indexes:索引相关的统计信息
    Index Columns:索引列相关的统计信息
    Index Partitions:索引分区相关的统计信息
    Indexes Statistics Versions:索引相关的统计信息
    System Parameters with Non-Default or Modified Values:GV$SYSTEM_PARAMETER2中isdefault = 'FALSE' OR ismodified != 'FALSE'的参数
    Instance Parameters:V$SYSTEM_PARAMETER2中的系统参数
    Metadata:表和索引的建立语句
3_execution_plans.html
    SQL Text:要检查的sql文本
    Current Execution Plans (last execution):按child cursor显示此sql的内存中的执行计划
    Current Execution Plans (all executions):按child cursor显示此sql的内存中的执行计划
    Historical Execution Plans:按child cursor显示此sql的awr的执行计划
4_sql_detail.html
    图形化显示sql的运行统计
5_sql_monitor.zip
    图形化显示sql的监控信息
6_10053_trace_from_cursor.trc
    显示sql的10053跟踪文件
8_sqldx.zip
    sql health check数据来源
9_log.zip
    sql health check生成日志

对于SQLHC(SQL Health Check,SQL性能健康检查脚本)工具,Mos文档1626277.1有非常详细的介绍。SQLHC是Oracle Server Technologies Center of Expertise开发的一个工具。SQLHC用于检查单条SQL语句运行的环境,包括基于成本的优化器(CBO)的统计数据,用户对象的元数据定义,配置参数和其它可能影响到目标SQL性能的因素。SQLHC和SQLT工具一样,本身都是免费的,不需要任何许可证(License)。当对某一个SQL_ID运行SQLHC后,该脚本会生成一系列针对该SQL语句健康检查的一份HTML报告。SQLHC会检查的内容包括:① 待分析的单条SQL涉及的用户对象的CBO统计信息;② CBO参数;③ CBO系统统计信息;④ CBO数据字典统计信息;⑤ CBO固定对象(Fixed-Objects)统计信息。

SQLHC运行时不会在数据库中创建任何对象(“数据库中不留足迹”),它只是对已有的对象提供报告和建议,可以确保它在所有系统上运行。SQLHC的脚本需要以SYS、DBA或者能访问数据字典视图的用户通过SQL*Plus连接运行。SQLHC一共包含3个脚本,分别为sqlhc.sql、sqldx.sql和sqlhcxec.sql,其中sqlhc.sql里边会调用sqldx.sql脚本。sqlhcxec.sql是单独执行的,不过该脚本需要输入一个脚本文件作为入参,而且该脚本文件可以包含绑定变量。

本地测试:http://blog.itpub.net/28539951/viewspace-2100920/

SQL 性能健康检查脚本 (SQLHC) (文档 ID 1626277.1)

表收集信息(防止过旧信息):

begin
  fnd_stats.GATHER_TABLE_STATS('SYS', 'TAB$');
end;

EBS系统数据库统计信息收集总结- gather_schema_stats [final]_ITPUB博客

分析一个SCEHMA (EBS系统) :
exec  fnd_stats.GATHER_TABLE_STATS('PA');

分析一个SCEHMA (一般系统) :
exec dbms_stats.gather_schema_stats(
  ownname          => 'HRM',
  options          => 'GATHER AUTO',
  estimate_percent => dbms_stats.auto_sample_size,
  method_opt       => 'for all columns size repeat', — 稳定后推荐repeat
      cascade          =>TRUE,
  degree           => 12
    )

–一天内执行的sql

select a.*,b.*
  from v$sqltext a, v$session b
 where a.sql_id = b.sql_id
   and b.logon_time between sysdate – 1 and sysdate;

 

select * from dba_hist_active_sess_history t;

扩展:

All About the SQLT Diagnostic Tool (文档 ID 215187.1)

技术笔记(小潘的技术记录博客)