Bo's Oracle Station

查看: 2636|回复: 0

课程第20/21次(2018-07-29星期日上下午)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2018-7-29 10:02:52 | 显示全部楼层 |阅读模式
做新特性书后习题(SG3)P273,找到Support Workbench包:
/u01/app/oracle/acfsmounts/acfs_db1/station36.example.com_orcl/sysman/emd/state/ORA7445qc_20180729095554_COM_1.zip

ADRCI打包:
  1. [oracle@station36 state]$ adrci

  2. ADRCI: Release 11.2.0.1.0 - Production on Sun Jul 29 10:19:53 2018

  3. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

  4. ADR base = "/u01/app/oracle"
  5. adrci> help

  6. HELP [topic]
  7.    Available Topics:
  8.         CREATE REPORT
  9.         ECHO
  10.         EXIT
  11.         HELP
  12.         HOST
  13.         IPS
  14.         PURGE
  15.         RUN
  16.         SET BASE
  17.         SET BROWSER
  18.         SET CONTROL
  19.         SET ECHO
  20.         SET EDITOR
  21.         SET HOMES | HOME | HOMEPATH
  22.         SET TERMOUT
  23.         SHOW ALERT
  24.         SHOW BASE
  25.         SHOW CONTROL
  26.         SHOW HM_RUN
  27.         SHOW HOMES | HOME | HOMEPATH
  28.         SHOW INCDIR
  29.         SHOW INCIDENT
  30.         SHOW PROBLEM
  31.         SHOW REPORT
  32.         SHOW TRACEFILE
  33.         SPOOL

  34. There are other commands intended to be used directly by Oracle, type
  35. "HELP EXTENDED" to see the list

  36. adrci> help SET HOMES

  37.   Usage:  SET HOMES | HOME| HOMEPATH <homepath_str1 homepath_str2 ...>

  38.   Purpose: Set the ADR homes to query in the current ADRCI session.

  39.   Arguments:
  40.     <homepath_str1 homepath_str2 ...>: The paths of the home,
  41.     relative to the ADR base.

  42.   Note:
  43.     The "diag" directory name can be omitted from the homepath_str.
  44.     If the specified path contains multiple homes, for instance, it is
  45.     set to the database ID which is running RAC. All of the ADR homes
  46.     corresponding to the instances of the database will be added to the
  47.     current ADRCI home settings.

  48.   Example:  
  49.     set homepath diag/rdbms/aime3/aime3 diag/rdbms/aime3/aime32
  50.     set homepath rdbms/aime3

  51. adrci> set homepath diag/rdbms/orcl/orcl
  52. adrci> SHOW PROBLEM

  53. ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
  54. *************************************************************************
  55. PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME                             
  56. -------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
  57. 1                    ORA 7445 [qcstda()+720]                                     17177                2018-07-29 09:47:11.634000 +08:00      
  58. 1 rows fetched

  59. adrci> help ips

  60. HELP IPS [topic]
  61.    Available Topics:
  62.         ADD
  63.         ADD FILE
  64.         ADD NEW INCIDENTS
  65.         CHECK REMOTE KEYS
  66.         COPY IN FILE
  67.         COPY OUT FILE
  68.         CREATE PACKAGE
  69.         DELETE PACKAGE
  70.         FINALIZE PACKAGE
  71.         GENERATE PACKAGE
  72.         GET MANIFEST
  73.         GET METADATA
  74.         GET REMOTE KEYS
  75.         PACK
  76.         REMOVE
  77.         REMOVE FILE
  78.         SET CONFIGURATION
  79.         SHOW CONFIGURATION
  80.         SHOW FILES
  81.         SHOW INCIDENTS
  82.         SHOW PACKAGE
  83.         UNPACK FILE
  84.         UNPACK PACKAGE
  85.         USE REMOTE KEYS
  86. adrci> help CREATE PACKAGE
  87. DIA-48433: Unknown help topic

  88. adrci>  help ips CREATE PACKAGE

  89.   Usage:  IPS CREATE PACKAGE
  90.              [INCIDENT <incid> | PROBLEM <prob_id> | PROBLEMKEY <prob_key> |
  91.               SECONDS <seconds> | TIME <start_time> TO <end_time>]
  92.              [CORRELATE BASIC | TYPICAL | ALL]

  93.   Purpose: Create a package, and optionally select contents for the package.

  94.   Arguments:
  95.     <incid>:      ID of incident to use for selecting package contents.
  96.     <prob_id>:    ID of problem to use for selecting package contents.
  97.     <prob_key>:   Problem key to use for selecting package contents.
  98.     <seconds>:    Number of seconds before now for selecting package contents.
  99.     <start_time>: Start of time range to look for incidents in.
  100.     <end_time>:   End of time range to look for incidents in.

  101.   Options:
  102.     CORRELATE BASIC:   The package will include the incident dumps, and the
  103.                        incident process trace files.
  104.                        Additional incidents can be included automatically,
  105.                        if they share relevant correlation keys.
  106.     CORRELATE TYPICAL: The package will include the incident dumps, and all
  107.                        trace files that were modified in a time window around
  108.                        each incident.
  109.                        Additional incidents can be included automatically,
  110.                        if they share relevant correlation keys, or occurred
  111.                        in a time window around the main incidents.
  112.     CORRELATE ALL:     The package will include the incident dumps, and all
  113.                        trace files that were modified between the first
  114.                        selected incident and the last selected incident.
  115.                        Additional incidents can be included automatically,
  116.                        if they occurred in the same time range.

  117.   Notes:
  118.     If no package contents are specified (incident, problem, etc), an empty
  119.     package will be created. Files and incidents can be added later.
  120.     If no correlation level is specified, the default level is used.
  121.     The default is normally TYPICAL, but it can be changed using the command
  122.     IPS SET CONFIGURATION.

  123.   Example:
  124.     ips create package incident 861;
  125.     ips create package time '2006-12-31 23:59:59.00 -07:00' to
  126.         '2007-01-01 01:01:01.00 -07:00';

  127. adrci> IPS CREATE PACKAGE PROBLEM 1
  128. Created package 2 based on problem id 1, correlation level typical
  129. adrci> help ips GENERATE PACKAGE

  130.   Usage:  IPS GENERATE PACKAGE <package_id> [IN <path>]
  131.              [COMPLETE | INCREMENTAL]

  132.   Purpose: Create a physical package (zip file) in target directory.

  133.   Arguments:
  134.     <package_id>: ID of package to create physical package file for.
  135.     <path>:       Path where the physical package file should be generated.

  136.   Options:
  137.     COMPLETE:    The package will include all package files, even if a
  138.                  previous package sequence has been generated.
  139.                  This is the default.
  140.     INCREMENTAL: The package will only include files that have been added
  141.                  or changed since the last package generation.

  142.   Notes:
  143.     If no target path is specified, the physical package file is generated
  144.     in the current working directory.

  145.   Example:
  146.     ips generate package 12 in /tmp

  147. adrci> ips generate package  2 in /home/oracle/
  148. cp: omitting directory `/u01/app/oracle/product/11.2.0/grid/log/station36/racg/racgmain'
  149. cp: omitting directory `/u01/app/oracle/product/11.2.0/grid/log/station36/racg/racgeut'
  150. cp: omitting directory `/u01/app/oracle/product/11.2.0/grid/log/station36/racg/racgevtf'
  151. Generated package 2 in file /home/oracle/ORA7445qc_20180729102305_COM_1.zip, mode complete
  152. adrci> help ips

  153. HELP IPS [topic]
  154.    Available Topics:
  155.         ADD
  156.         ADD FILE
  157.         ADD NEW INCIDENTS
  158.         CHECK REMOTE KEYS
  159.         COPY IN FILE
  160.         COPY OUT FILE
  161.         CREATE PACKAGE
  162.         DELETE PACKAGE
  163.         FINALIZE PACKAGE
  164.         GENERATE PACKAGE
  165.         GET MANIFEST
  166.         GET METADATA
  167.         GET REMOTE KEYS
  168.         PACK
  169.         REMOVE
  170.         REMOVE FILE
  171.         SET CONFIGURATION
  172.         SHOW CONFIGURATION
  173.         SHOW FILES
  174.         SHOW INCIDENTS
  175.         SHOW PACKAGE
  176.         UNPACK FILE
  177.         UNPACK PACKAGE
  178.         USE REMOTE KEYS
  179. adrci> ips SHOW PACKAGE
  180.    PACKAGE_ID             1
  181.    PACKAGE_NAME           ORA7445qc_20180729095554
  182.    PACKAGE_DESCRIPTION   
  183.    DRIVING_PROBLEM        1
  184.    DRIVING_PROBLEM_KEY    ORA 7445 [qcstda()+720]
  185.    DRIVING_INCIDENT       17177
  186.    DRIVING_INCIDENT_TIME  2018-07-29 09:47:11.634000 +08:00
  187.    STATUS                 Generated (4)
  188.    CORRELATION_LEVEL      Typical (2)
  189.    PROBLEMS               1 main problems, 0 correlated problems
  190.    INCIDENTS              1 main incidents, 0 correlated incidents
  191.    INCLUDED_FILES         47

  192.    PACKAGE_ID             2
  193.    PACKAGE_NAME           ORA7445qc_20180729102305
  194.    PACKAGE_DESCRIPTION   
  195.    DRIVING_PROBLEM        1
  196.    DRIVING_PROBLEM_KEY    ORA 7445 [qcstda()+720]
  197.    DRIVING_INCIDENT       17177
  198.    DRIVING_INCIDENT_TIME  2018-07-29 09:47:11.634000 +08:00
  199.    STATUS                 Generated (4)
  200.    CORRELATION_LEVEL      Typical (2)
  201.    PROBLEMS               1 main problems, 0 correlated problems
  202.    INCIDENTS              1 main incidents, 0 correlated incidents
  203.    INCLUDED_FILES         47

  204. adrci>
复制代码

看体检报告:
  1. adrci> help SHOW REPORT

  2.   Usage:  SHOW REPORT <report_type> <report_id>

  3.   Purpose: Show a report for the specified report type and ID.
  4.            Currently we only support report type of hm_run.

  5.   Arguments:
  6.     <report_type>: The type of the requested report.
  7.     <report_id>  : The requested report ID.

  8.   Notes:
  9.     If currently there is no browser set, the report contents will be
  10.     displayed through ADRCI channels (terminal or spool file). To get
  11.     the report displayed through some browser, use command " set browser".
  12.     For example:  
  13.          "set browser mozilla"

  14.   Example:  
  15.     show report hm_run <hm_run_name>

  16. adrci> SHOW HM_RUN

  17. ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
  18. *************************************************************************

  19. **********************************************************
  20. HM RUN RECORD 1
  21. **********************************************************
  22.    RUN_ID                        1
  23.    RUN_NAME                      HM_RUN_1
  24.    CHECK_NAME                    DB Structure Integrity Check
  25.    NAME_ID                       2
  26.    MODE                          2
  27.    START_TIME                    2018-06-24 00:29:09.236385 +08:00
  28.    RESUME_TIME                   <NULL>
  29.    END_TIME                      2018-06-24 00:29:29.691936 +08:00
  30.    MODIFIED_TIME                 2018-06-24 00:29:29.691936 +08:00
  31.    TIMEOUT                       0
  32.    FLAGS                         0
  33.    STATUS                        5
  34.    SRC_INCIDENT_ID               0
  35.    NUM_INCIDENTS                 0
  36.    ERR_NUMBER                    0
  37.    REPORT_FILE                   <NULL>

  38. **********************************************************
  39. HM RUN RECORD 2
  40. **********************************************************
  41.    RUN_ID                        101
  42.    RUN_NAME                      HM_RUN_101
  43.    CHECK_NAME                    DB Structure Integrity Check
  44.    NAME_ID                       2
  45.    MODE                          2
  46.    START_TIME                    2018-07-20 17:12:36.588339 +08:00
  47.    RESUME_TIME                   <NULL>
  48.    END_TIME                      2018-07-20 17:12:36.678562 +08:00
  49.    MODIFIED_TIME                 2018-07-20 17:12:36.678562 +08:00
  50.    TIMEOUT                       0
  51.    FLAGS                         0
  52.    STATUS                        5
  53.    SRC_INCIDENT_ID               0
  54.    NUM_INCIDENTS                 0
  55.    ERR_NUMBER                    0
  56.    REPORT_FILE                   <NULL>

  57. **********************************************************
  58. HM RUN RECORD 3
  59. **********************************************************
  60.    RUN_ID                        132
  61.    RUN_NAME                      HM_RUN_132
  62.    CHECK_NAME                    DB Structure Integrity Check
  63.    NAME_ID                       2
  64.    MODE                          2
  65.    START_TIME                    2018-07-20 17:15:42.394074 +08:00
  66.    RESUME_TIME                   <NULL>
  67.    END_TIME                      2018-07-20 17:15:42.511570 +08:00
  68.    MODIFIED_TIME                 2018-07-20 17:15:42.511570 +08:00
  69.    TIMEOUT                       0
  70.    FLAGS                         0
  71.    STATUS                        5
  72.    SRC_INCIDENT_ID               0
  73.    NUM_INCIDENTS                 0
  74.    ERR_NUMBER                    0
  75.    REPORT_FILE                   <NULL>

  76. **********************************************************
  77. HM RUN RECORD 4
  78. **********************************************************
  79.    RUN_ID                        187
  80.    RUN_NAME                      HM_RUN_187
  81.    CHECK_NAME                    DB Structure Integrity Check
  82.    NAME_ID                       2
  83.    MODE                          2
  84.    START_TIME                    2018-07-20 17:18:21.804811 +08:00
  85.    RESUME_TIME                   <NULL>
  86.    END_TIME                      2018-07-20 17:18:22.087471 +08:00
  87.    MODIFIED_TIME                 2018-07-20 17:18:22.087471 +08:00
  88.    TIMEOUT                       0
  89.    FLAGS                         0
  90.    STATUS                        5
  91.    SRC_INCIDENT_ID               0
  92.    NUM_INCIDENTS                 0
  93.    ERR_NUMBER                    0
  94.    REPORT_FILE                   <NULL>

  95. **********************************************************
  96. HM RUN RECORD 5
  97. **********************************************************
  98.    RUN_ID                        227
  99.    RUN_NAME                      HM_RUN_227
  100.    CHECK_NAME                    DB Structure Integrity Check
  101.    NAME_ID                       2
  102.    MODE                          2
  103.    START_TIME                    2018-07-20 17:21:52.121467 +08:00
  104.    RESUME_TIME                   <NULL>
  105.    END_TIME                      2018-07-20 17:21:52.303101 +08:00
  106.    MODIFIED_TIME                 2018-07-20 17:21:52.303101 +08:00
  107.    TIMEOUT                       0
  108.    FLAGS                         0
  109.    STATUS                        5
  110.    SRC_INCIDENT_ID               0
  111.    NUM_INCIDENTS                 0
  112.    ERR_NUMBER                    0
  113.    REPORT_FILE                   <NULL>

  114. **********************************************************
  115. HM RUN RECORD 6
  116. **********************************************************
  117.    RUN_ID                        282
  118.    RUN_NAME                      HM_RUN_282
  119.    CHECK_NAME                    DB Structure Integrity Check
  120.    NAME_ID                       2
  121.    MODE                          2
  122.    START_TIME                    2018-07-20 17:23:32.182072 +08:00
  123.    RESUME_TIME                   <NULL>
  124.    END_TIME                      2018-07-20 17:25:21.772877 +08:00
  125.    MODIFIED_TIME                 2018-07-20 17:25:21.772877 +08:00
  126.    TIMEOUT                       0
  127.    FLAGS                         0
  128.    STATUS                        5
  129.    SRC_INCIDENT_ID               0
  130.    NUM_INCIDENTS                 0
  131.    ERR_NUMBER                    0
  132.    REPORT_FILE                   <NULL>

  133. **********************************************************
  134. HM RUN RECORD 7
  135. **********************************************************
  136.    RUN_ID                        322
  137.    RUN_NAME                      HM_RUN_322
  138.    CHECK_NAME                    DB Structure Integrity Check
  139.    NAME_ID                       2
  140.    MODE                          2
  141.    START_TIME                    2018-07-20 17:25:23.186918 +08:00
  142.    RESUME_TIME                   <NULL>
  143.    END_TIME                      2018-07-20 17:25:40.453752 +08:00
  144.    MODIFIED_TIME                 2018-07-20 17:25:40.453752 +08:00
  145.    TIMEOUT                       0
  146.    FLAGS                         0
  147.    STATUS                        5
  148.    SRC_INCIDENT_ID               0
  149.    NUM_INCIDENTS                 0
  150.    ERR_NUMBER                    0
  151.    REPORT_FILE                   <NULL>

  152. **********************************************************
  153. HM RUN RECORD 8
  154. **********************************************************
  155.    RUN_ID                        442
  156.    RUN_NAME                      HM_RUN_442
  157.    CHECK_NAME                    DB Structure Integrity Check
  158.    NAME_ID                       2
  159.    MODE                          2
  160.    START_TIME                    2018-07-20 18:00:20.001915 +08:00
  161.    RESUME_TIME                   <NULL>
  162.    END_TIME                      2018-07-20 18:00:20.089325 +08:00
  163.    MODIFIED_TIME                 2018-07-20 18:00:20.089325 +08:00
  164.    TIMEOUT                       0
  165.    FLAGS                         0
  166.    STATUS                        5
  167.    SRC_INCIDENT_ID               0
  168.    NUM_INCIDENTS                 0
  169.    ERR_NUMBER                    0
  170.    REPORT_FILE                   <NULL>

  171. **********************************************************
  172. HM RUN RECORD 9
  173. **********************************************************
  174.    RUN_ID                        462
  175.    RUN_NAME                      HM_RUN_462
  176.    CHECK_NAME                    DB Structure Integrity Check
  177.    NAME_ID                       2
  178.    MODE                          2
  179.    START_TIME                    2018-07-20 18:05:10.662224 +08:00
  180.    RESUME_TIME                   <NULL>
  181.    END_TIME                      2018-07-20 18:05:10.759137 +08:00
  182.    MODIFIED_TIME                 2018-07-20 18:05:10.759137 +08:00
  183.    TIMEOUT                       0
  184.    FLAGS                         0
  185.    STATUS                        5
  186.    SRC_INCIDENT_ID               0
  187.    NUM_INCIDENTS                 0
  188.    ERR_NUMBER                    0
  189.    REPORT_FILE                   <NULL>

  190. **********************************************************
  191. HM RUN RECORD 10
  192. **********************************************************
  193.    RUN_ID                        482
  194.    RUN_NAME                      HM_RUN_482
  195.    CHECK_NAME                    DB Structure Integrity Check
  196.    NAME_ID                       2
  197.    MODE                          2
  198.    START_TIME                    2018-07-20 18:09:06.535263 +08:00
  199.    RESUME_TIME                   <NULL>
  200.    END_TIME                      2018-07-20 18:09:06.614967 +08:00
  201.    MODIFIED_TIME                 2018-07-20 18:09:06.614967 +08:00
  202.    TIMEOUT                       0
  203.    FLAGS                         0
  204.    STATUS                        5
  205.    SRC_INCIDENT_ID               0
  206.    NUM_INCIDENTS                 0
  207.    ERR_NUMBER                    0
  208.    REPORT_FILE                   <NULL>

  209. **********************************************************
  210. HM RUN RECORD 11
  211. **********************************************************
  212.    RUN_ID                        522
  213.    RUN_NAME                      HM_RUN_522
  214.    CHECK_NAME                    DB Structure Integrity Check
  215.    NAME_ID                       2
  216.    MODE                          2
  217.    START_TIME                    2018-07-20 18:11:53.238307 +08:00
  218.    RESUME_TIME                   <NULL>
  219.    END_TIME                      2018-07-20 18:11:53.317098 +08:00
  220.    MODIFIED_TIME                 2018-07-20 18:11:53.317098 +08:00
  221.    TIMEOUT                       0
  222.    FLAGS                         0
  223.    STATUS                        5
  224.    SRC_INCIDENT_ID               0
  225.    NUM_INCIDENTS                 0
  226.    ERR_NUMBER                    0
  227.    REPORT_FILE                   <NULL>

  228. **********************************************************
  229. HM RUN RECORD 12
  230. **********************************************************
  231.    RUN_ID                        722
  232.    RUN_NAME                      DicoCheck
  233.    CHECK_NAME                    Dictionary Integrity Check
  234.    NAME_ID                       24
  235.    MODE                          0
  236.    START_TIME                    2018-07-29 09:54:47.567222 +08:00
  237.    RESUME_TIME                   <NULL>
  238.    END_TIME                      2018-07-29 09:54:49.330225 +08:00
  239.    MODIFIED_TIME                 2018-07-29 10:23:42.243971 +08:00
  240.    TIMEOUT                       10000000
  241.    FLAGS                         0
  242.    STATUS                        5
  243.    SRC_INCIDENT_ID               0
  244.    NUM_INCIDENTS                 0
  245.    ERR_NUMBER                    0
  246.    REPORT_FILE                   /u01/app/oracle/diag/rdbms/orcl/orcl/hm/HMREPORT_DicoCheck.hm
  247. 12 rows fetched

  248. adrci> show report hm_run DicoCheck
  249. <?xml version="1.0" encoding="US-ASCII"?>
  250. <HM-REPORT REPORT_ID="DicoCheck">
  251.     <TITLE>HM Report: DicoCheck</TITLE>
  252.     <RUN_INFO>
  253.         <CHECK_NAME>Dictionary Integrity Check</CHECK_NAME>
  254.         <RUN_ID>722</RUN_ID>
  255.         <RUN_NAME>DicoCheck</RUN_NAME>
  256.         <RUN_MODE>MANUAL</RUN_MODE>
  257.         <RUN_STATUS>COMPLETED</RUN_STATUS>
  258.         <RUN_ERROR_NUM>0</RUN_ERROR_NUM>
  259.         <SOURCE_INCIDENT_ID>0</SOURCE_INCIDENT_ID>
  260.         <NUM_INCIDENTS_CREATED>0</NUM_INCIDENTS_CREATED>
  261.         <RUN_START_TIME>2018-07-29 09:54:47.567222 +08:00</RUN_START_TIME>
  262.         <RUN_END_TIME>2018-07-29 09:54:49.330225 +08:00</RUN_END_TIME>
  263.     </RUN_INFO>
  264.     <RUN_PARAMETERS>
  265.         <RUN_PARAMETER>TABLE_NAME=ALL_CORE_TABLES</RUN_PARAMETER>
  266.         <RUN_PARAMETER>CHECK_MASK=ALL</RUN_PARAMETER>
  267.     </RUN_PARAMETERS>
  268.     <RUN-FINDINGS>
  269.         <FINDING>
  270.             <FINDING_NAME>Dictionary Inconsistency</FINDING_NAME>
  271.             <FINDING_ID>723</FINDING_ID>
  272.             <FINDING_TYPE>FAILURE</FINDING_TYPE>
  273.             <FINDING_STATUS>OPEN</FINDING_STATUS>
  274.             <FINDING_PRIORITY>CRITICAL</FINDING_PRIORITY>
  275.             <FINDING_CHILD_COUNT>0</FINDING_CHILD_COUNT>
  276.             <FINDING_CREATION_TIME>2018-07-29 09:54:47.613851 +08:00</FINDING_CREATION_TIME>
  277.             <FINDING_MESSAGE>SQL dictionary health check: invalid column number 8 on object TAB$ failed</FINDING_MESSAGE>
  278.             <FINDING_MESSAGE>Damaged rowid is AAAAACAABAAAUhPAAB - description: Object SCOTT.TABJFV is referenced</FINDING_MESSAGE>
  279.         </FINDING>
  280.     </RUN-FINDINGS>
  281. </HM-REPORT>
  282. adrci>
复制代码
能做的体检项目(默认安装装版本,并不是都可以):
  1. select  * from v$hm_check;
复制代码
   IDNAMENAME_NLSCLSIDCLS_NAMEFLAGSINTERNAL_CHECKOFFLINE_CAPABLEDESCRIPTION
11HM Test CheckHM Test Check1GENERIC35YYCheck for health monitor functionality
22DB Structure Integrity CheckDB Structure Integrity Check2PERSISTENT_DATA4098NYChecks integrity of all database files
325CF Block Integrity CheckCF Block Integrity Check2PERSISTENT_DATA4098NYChecks integrity of a control file block
43Data Block Integrity CheckData Block Integrity Check2PERSISTENT_DATA4098NYChecks integrity of a data file block
54Redo Integrity CheckRedo Integrity Check2PERSISTENT_DATA4098NYChecks integrity of redo log content
65Logical Block CheckLogical Block Check2PERSISTENT_DATA4097YNChecks logical content of a block
710Transaction Integrity CheckTransaction Integrity Check2PERSISTENT_DATA4096NNChecks a transaction for corruptions
811Undo Segment Integrity CheckUndo Segment Integrity Check2PERSISTENT_DATA4096NNChecks integrity of an undo segment
912No Mount CF CheckNo Mount CF Check2PERSISTENT_DATA19YYChecks control file in NOMOUNT mode
1031Mount CF CheckMount CF Check2PERSISTENT_DATA19YYChecks control file in mount mode
1113CF Member CheckCF Member Check2PERSISTENT_DATA4115YYChecks a multiplexed copy of the control file
1214All Datafiles CheckAll Datafiles Check2PERSISTENT_DATA4115YYChecks all datafiles in the database
1315Single Datafile CheckSingle Datafile Check2PERSISTENT_DATA4115YYChecks a data file
1430Tablespace Check CheckTablespace Check2PERSISTENT_DATA19YYChecks a tablespace
1516Log Group CheckLog Group Check2PERSISTENT_DATA4115YYChecks all members of a log group
1617Log Group Member CheckLog Group Member Check2PERSISTENT_DATA4115YYChecks a particular member of a log group
1718Archived Log CheckArchived Log Check2PERSISTENT_DATA4115YYChecks an archived log
1819Redo Revalidation CheckRedo Revalidation Check2PERSISTENT_DATA4115YYChecks redo log content
1920IO Revalidation CheckIO Revalidation Check2PERSISTENT_DATA4115YYChecks file accessibility
2021Block IO Revalidation CheckBlock IO Revalidation Check2PERSISTENT_DATA4115YYChecks file accessibility
2122Txn Revalidation CheckTxn Revalidation Check2PERSISTENT_DATA4113YNRevalidate corrupted transaction
2223Failure Simulation CheckFailure Simulation Check2PERSISTENT_DATA4131YYCreates dummy failures
2324Dictionary Integrity CheckDictionary Integrity Check2PERSISTENT_DATA4096NNChecks dictionary integrity
2426ASM Mount CheckASM Mount Check3ASM8195YYDiagnose mount failure
2527ASM Allocation CheckASM Allocation Check3ASM8194NYDiagnose allocation failure
2628ASM Disk Visibility CheckASM Disk Visibility Check3ASM8195YYDiagnose add disk failure
2729ASM File Busy CheckASM File Busy Check3ASM8195YYDiagnose file drop failure

  1. select  * from v$diag_info;
复制代码
   INST_IDNAMEVALUE
11Diag EnabledTRUE
21ADR Base/u01/app/oracle
31ADR Home/u01/app/oracle/diag/rdbms/orcl/orcl
41Diag Trace/u01/app/oracle/diag/rdbms/orcl/orcl/trace
51Diag Alert/u01/app/oracle/diag/rdbms/orcl/orcl/alert
61Diag Incident/u01/app/oracle/diag/rdbms/orcl/orcl/incident
71Diag Cdump/u01/app/oracle/diag/rdbms/orcl/orcl/cdump
81Health Monitor/u01/app/oracle/diag/rdbms/orcl/orcl/hm
91Default Trace File/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_25214.trc
101Active Problem Count0
111Active Incident Count0

请用以下命令看alter日志:
  1. adrci> show alert -p "message_text like '%7445%'"

  2. ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
  3. *************************************************************************
  4. Output the results to file: /tmp/alert_25468_3086_orcl_1.ado
复制代码

c.png


在Support Workbench中解决600:
d.png

->
e.png
->
f.png
->
h.png
->
实施补丁:
i.png
实施成功:
j.png

---------------------------压缩
索引的压缩

  1. SQL> select  count(*) from tnewf05_a;

  2.   COUNT(*)
  3. ----------
  4.          0

  5. SQL> begin
  6.   2    for i in 1..22
  7.   3    loop
  8.   4      insert into tnewf05_a values('A');
  9.   5    end loop;
  10.   6  end;
  11.   7  /

  12. PL/SQL procedure successfully completed.

  13. SQL> commit;

  14. Commit complete.

  15. SQL> select  count(*) from tnewf05_a;

  16.   COUNT(*)
  17. ----------
  18.         22

  19. SQL> create index inewf05_a  on tnewf05_a(a) ;

  20. Index created.

  21. SQL> drop index inewf05_a;

  22. Index dropped.

  23. SQL>  create index inewf05_a  on tnewf05_a(a) compress;

  24. Index created.

  25. SQL>
复制代码
  1. select  * from dba_extents e
  2.   where e.owner='HR' and e.segment_name='TNEWF05_A';
  3.   
  4. select  * from dba_extents e
  5.   where e.owner='HR' and e.segment_name='INEWF05_A';
复制代码
--------建一下带不同默认压缩选项的表空间:
  1. create tablespace tbs_nocompression datafile size 10M autoextend on;
  2. create tablespace tbs_basic datafile size 10M autoextend on default compress basic;
  3. create tablespace tbs_oltp datafile size 10M autoextend on default compress for oltp;
  4. create tablespace tbs_query datafile size 10M autoextend on default compress for query;
  5. create tablespace tbs_archive datafile size 10M autoextend on default compress for archive;
复制代码
  1. select  t.tablespace_name, t.def_tab_compression, t.compress_for  from dba_tablespaces t
  2. where t.tablespace_name in ('TBS_NOCOMPRESSION',
  3.                                                   'TBS_BASIC', 'TBS_OLTP',
  4.                                                    'TBS_QUERY',
  5.                                                    'TBS_ARCHIVE');
复制代码
   TABLESPACE_NAMEDEF_TAB_COMPRESSIONCOMPRESS_FOR
1TBS_NOCOMPRESSIONDISABLED
2TBS_BASICENABLEDBASIC
3TBS_OLTPENABLEDOLTP
4TBS_QUERYENABLEDQUERY HIGH
5TBS_ARCHIVEENABLEDARCHIVE LOW

  1. --hr--                                                   
  2. create table t_nocompression (a varchar2(200)) tablespace tbs_nocompression;
  3. create table t_basic (a varchar2(200)) tablespace tbs_basic;
  4. create table t_oltp (a varchar2(200)) tablespace tbs_oltp;
复制代码
  1. --hr-error--
  2. create table t_query (a varchar2(200)) tablespace tbs_query;
  3. create table t_archive (a varchar2(200)) tablespace tbs_archive;
复制代码
z.png


  1. --hr--
  2. begin
  3.    for i in 1..400
  4.    loop
  5.       insert into t_nocompression values('AAAAAAAAAAAAAAAAAAAA');
  6.    end loop;
  7.    commit;
  8. end;
  9. --hr--
  10. begin
  11.    for i in 1..400
  12.    loop
  13.       insert into t_basic values('AAAAAAAAAAAAAAAAAAAA');
  14.    end loop;
  15.    commit;
  16. end;
  17. --hr--
  18. begin
  19.    for i in 1..400
  20.    loop
  21.       insert into t_oltp values('AAAAAAAAAAAAAAAAAAAA');
  22.    end loop;
  23.    commit;
  24. end;  
复制代码
  1. --hr--
  2. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  3. from user_tables t where t.TABLE_NAME   in ('T_NOCOMPRESSION','T_BASIC','T_OLTP');
复制代码
   TABLE_NAMEPCT_FREECOMPRESSIONCOMPRESS_FORTABLESPACE_NAME
1T_BASIC0ENABLEDBASICTBS_BASIC
2T_NOCOMPRESSION10DISABLED TBS_NOCOMPRESSION
3T_OLTP10ENABLEDOLTPTBS_OLTP

  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1121AAAACF
2279AAAACE

每个块里头能放多少行跟预估的差不多:(8192*0.9-256)/25
                                                           ( 块大小*(1-pctfree)-块头)/(20个A+5字节的行头和列长)=284

  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic  group by  substr(rowid, 10, 6 );
复制代码
之前的这种插入根本就 没有触发basic压缩,还是让你插入,只是同上t_nocompression的这种压缩:
  1. begin
  2.    for i in 1..400
  3.    loop
  4.       insert into t_basic values('AAAAAAAAAAAAAAAAAAAA');
  5.    end loop;
  6.    commit;
  7. end;
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
190AAAACF
2310AAAACE

每个块里头能放多少行跟预估的差不多:(8192*-256)/25
                                                           ( 块大小*1-块头)/(20个A+5字节的行头和列长)=317

  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_oltp  group by  substr(rowid, 10, 6 );  
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1400AAAACE

---------------------------------------------------------
  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  2.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
14001

  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid)
  2.       from hr.T_BASIC group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
14001

  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP',row_id => rowid)
  2.       from hr.T_OLTP group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_OLTP',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
14002

HR直接创建这些表:
  1. create table t_basic2 (a varchar2(200)) tablespace tbs_nocompression compress;
  2. create table t_oltp2 (a varchar2(200)) tablespace tbs_nocompression compress for oltp;
  3. --hr-error--
  4. create table t_query2 (a varchar2(200)) tablespace tbs_nocompression compress for query;
  5. create table t_archive2 (a varchar2(200)) tablespace tbs_nocompression compress for archive;
复制代码
  1. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  2. from user_tables t where t.TABLE_NAME   in ('T_NOCOMPRESSION','T_BASIC','T_OLTP',  'T_BASIC2','T_OLTP2' );
复制代码
   TABLE_NAMEPCT_FREECOMPRESSIONCOMPRESS_FORTABLESPACE_NAME
1T_BASIC0ENABLEDBASICTBS_BASIC
2T_BASIC20ENABLEDBASICTBS_NOCOMPRESSION
3T_NOCOMPRESSION10DISABLED TBS_NOCOMPRESSION
4T_OLTP10ENABLEDOLTPTBS_OLTP
5T_OLTP210ENABLEDOLTPTBS_NOCOMPRESSION

  1. --hr
  2. insert /*+ append */ into t_basic2 select  * from t_basic;

  3. commit;
复制代码
  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic2  group by  substr(rowid, 10, 6 );
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1400AAAACL

  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC2',row_id => rowid)
  2.       from hr.T_BASIC2 group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC2',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
14002


改一个现成表为压缩表:
  1. --hr--
  2. alter table t_nocompression compress for oltp;

  3. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  4. from user_tables t where t.TABLE_NAME='T_NOCOMPRESSION';
复制代码
   TABLE_NAMEPCT_FREECOMPRESSIONCOMPRESS_FORTABLESPACE_NAME
1T_NOCOMPRESSION10ENABLEDOLTPTBS_NOCOMPRESSION
对旧的数据是完全没有动:
  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  2.    from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
14001

对新的数据:
  1. --hr--
  2. begin
  3.    for i in 1..400
  4.    loop
  5.       insert into t_nocompression values('AAAAAAAAAAAAAAAAAAAA');
  6.    end loop;
  7.    commit;
  8. end;
复制代码
  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1279AAAACF
2279AAAACE
3242AAAACG

-SYS:
  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  2.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
18001
alter 完之后必须挪动表空间:
  1. --hr--
  2. alter table t_nocompression move tablespace tbs_nocompression;
  3. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_nocompression  group by  substr(rowid, 10, 6 );   
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1149AAAACU
2651AAAACT

  1. --sys--
  2. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  3.       from hr.T_NOCOMPRESSION  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
18002

------------------------------BASIC压缩:
  1. --hr
  2. insert /*+ append */ into t_basic2 select  * from t_basic;
  3. commit;
复制代码
  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic2  group by  substr(rowid, 10, 6 );  
复制代码
由于直接路径加载,在高水位线之后,所以还是两个块,还要挪动一下表空间:
   COUNT(*)SUBSTR(ROWID,10,6)
1400AAAACM
2400AAAACL

  1. --hr--
  2. alter table t_basic2 move tablespace tbs_nocompression;
复制代码
  1. select  count(*)  , substr(rowid, 10, 6 ) from hr.t_basic2  group by  substr(rowid, 10, 6 );  
复制代码
   COUNT(*)SUBSTR(ROWID,10,6)
1725AAAACD
275AAAACE

  1.     --sys--
  2.     select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid)
  3.           from hr.T_basic2  group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_NOCOMPRESSION',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
18002

------------------------BASIC压缩的另外触发条件:
  1. create table hr.t_basic_big compress as select  * from dba_source;
复制代码
  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid)
  2.       from hr.T_BASIC_BIG group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid);
复制代码

如下图所示,会有一小部分没有压缩:
Screenshot.png

   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
143241
26190842


  1. alter table t_basic_big nocompress;
复制代码
  1. select  t.TABLE_NAME, t.PCT_FREE , t.COMPRESSION , t.COMPRESS_FOR, t.TABLESPACE_NAME
  2. from user_tables t where t.TABLE_NAME  ='T_BASIC_BIG';
复制代码
   TABLE_NAMEPCT_FREECOMPRESSIONCOMPRESS_FORTABLESPACE_NAME
1T_BASIC_BIG0
DISABLED USERS

  1. alter table t_basic_big pctfree 10;
  2. alter table  t_basic_big move tablespace users;
复制代码
  1. select   count(*)  ,    dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid)
  2.       from hr.T_BASIC_BIG group by     dbms_compression.get_compression_type(ownname => 'HR',tabname => 'T_BASIC_BIG',row_id => rowid);
复制代码
   COUNT(*)DBMS_COMPRESSION.GET_COMPRESSI
16234081

  1. declare
  2.   v_blkcnt_cmp number;
  3.   v_blkcnt_uncmp  number;
  4.   v_row_cmp number;
  5.   v_row_uncmp number;
  6.   v_cmp_ratio number;
  7.   v_comptype_str  varchar2(200);
  8. BEGIN
  9. DBMS_COMPRESSION.GET_COMPRESSION_RATIO(scratchtbsname => 'USERS',
  10.                                                                                              ownname =>'HR',
  11.                                                                                              tabname =>'T_BASIC_BIG',
  12.                                                                                              partname =>null,
  13.                                                                                              comptype => 2,
  14.                                                                                              blkcnt_cmp => v_blkcnt_cmp,
  15.                                                                                              blkcnt_uncmp =>  v_blkcnt_uncmp,
  16.                                                                                              row_cmp =>v_row_cmp,
  17.                                                                                              row_uncmp => v_row_uncmp,
  18.                                                                                              cmp_ratio =>  v_cmp_ratio,
  19.                                                                                              comptype_str =>v_comptype_str);                                                  
  20. DBMS_OUTPUT.PUT_LINE('Blk count compressed = ' || v_blkcnt_cmp);
  21. DBMS_OUTPUT.PUT_LINE('Blk count uncompressed = ' || v_blkcnt_uncmp);
  22. DBMS_OUTPUT.PUT_LINE('Row count per block compressed = ' || v_row_cmp);
  23. DBMS_OUTPUT.PUT_LINE('Row count per block uncompressed = ' || v_row_uncmp);
  24. DBMS_OUTPUT.PUT_LINE('ratio: '||v_cmp_ratio);
  25. DBMS_OUTPUT.PUT_LINE('Compression type = ' || v_comptype_str);
  26. end;
复制代码

Blk count compressed = 1474
Blk count uncompressed = 2058
Row count per block compressed = 85
Row count per block uncompressed = 60
ratio: 1.39620081411126187245590230664857530529
Compression type = "Compress For OLTP"


BASIC压缩不能删除列:
  1. create table t_basic_col( a  number , b varchar2(20))  compress ;
  2. insert into t_basic_col values ( 1,'A') ;
  3. commit;
  4. create table t_oltp_col( a  number , b varchar2(20))  compress  for oltp;
  5. insert into t_oltp_col values ( 1,'A') ;
  6. commit;
  7. select  * from  t_basic_col;
  8. select  * from t_oltp_col;
  9. alter table  t_basic_col drop column b;
复制代码
a.png
  1. alter table t_oltp_col drop column b;
  2. select  * from t_oltp_col;
复制代码

SAA快速调优:
  1. SQL> conn / as sysdba
  2. Connected.
  3. SQL> exec dbms_stats.gather_table_stats('HR','T_BASIC_BIG');

  4. PL/SQL procedure successfully completed.

  5. SQL> begin
  6.   2   dbms_advisor.QUICK_TUNE(ADVISOR_NAME=>'SQL Access Advisor',
  7.   3                           TASK_NAME=>'MYSAA1',
  8.   4                           ATTR1=>'select sum(line) from hr.t_basic_big group by text',
  9.   5                           TEMPLATE=>'SQLACCESS_WAREHOUSE');
  10.   6  end;
  11.   7  /

  12. PL/SQL procedure successfully completed.
复制代码

aa.png







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-19 10:48 , Processed in 0.047793 second(s), 27 queries .

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