90
Oracle 10g/11g Database 常用功能与内置包 赵元杰 北京群环域科技有限公司 2012.2

1. Oralce 11g 常用功能与内置包 (90 页)+

Embed Size (px)

Citation preview

Page 1: 1. Oralce 11g 常用功能与内置包 (90 页)+

Oracle 10g/11g Database

常用功能与内置包

赵元杰 北京群环域科技有限公司

2012.2

Page 2: 1. Oralce 11g 常用功能与内置包 (90 页)+

内容提要

♠版本功能与内置包 ♠开发者需了解的内置包 ♠ DBA需了解的内置包 ♠ DSA需了解的内置包 ♠参考

Page 3: 1. Oralce 11g 常用功能与内置包 (90 页)+

3/75

Oracle 功能与内置包

♠ Oracle功能与内置包关系: ♠许多开发者不喜欢PL/SQL,也喜欢内置包 ♠不了解新功能是由内置包写成,图形界面也要调用内置包来完成处理

♠许多新功能提供完善的API ♠ API 最简单方法就是 PL/SQL ♠ API 可采用JAVA 接口 ♠ API也可使用C/C++ 接口

Page 4: 1. Oralce 11g 常用功能与内置包 (90 页)+

Oracle 功能关键点

♠ Oracle 功能的内幕

♠对应的数据字典 ♠内设置包 ♠相应的参数

♠ Oracle 功能的表面

♠图形界面有相应栏目 ♠命令如何使用 ♠资料有功能介绍 ♠ API方法

Page 5: 1. Oralce 11g 常用功能与内置包 (90 页)+

Oracle 系统新功能与内置包

♠ Oracle 系统内置包与参考资料 ♠ Oracle 8i Supplied PL/SQL Packages Reference 共1036页 ♠ Oracle 9i Supplied PL/SQL Packages and Types Reference 共2008页 ♠ Oracle 10g Database PL/SQL Packages and Types Reference 共4164页 ♠ Oracle11g R1 Database PL/SQL Packages and Types Reference 共5100页

♠ Oracle 功能的表面 ♠ 图形界面有相应栏目 ♠ 命令如何使用 ♠ 资料有功能介绍 ♠ API方法

Page 6: 1. Oralce 11g 常用功能与内置包 (90 页)+

6/30

Oracle 系统新功能与内置包

♠ Oracle 新功能变化相关内容 ♠ 许多新功能=包+参数+数据字典

功能 内置包 参数 相关视图/数据字典

Resumable

(9i开始)

DBMS_RESUMABLE RESUMABLE_TIMEO

UT

DBA_RESUMABLET

DBA_OUTSTANDING_ALERTS

FLASHBACK

(10g 开始)

DBMS_FLASHBACK RECYCLEBIN

DB_FLASHBACK_RE

TENTION_TARGET

v$flashback_database_log

V$FLASHBACK_DATABASE_L

OGFILE

v$flashback_database_stat

DBA_RECYCLEBIN

Automatic

Diagnostic

Repository

(11g 开始)

DBMS_SQLDIAG DIAGNOSTIC_DEST V$ADR_BASE

V$ADR_HOME

V$Diag_info

Page 7: 1. Oralce 11g 常用功能与内置包 (90 页)+

7/75

Oracle 9i 新增加的包

Oracle9i 新支持包列表 DBMS_AQELM DBMS_ENCODE

DBMS_FGA DBMS_FLASHBACK

DBMS_LDAP DBMS_LIBCACHE

DBMS_LOGMNR_CDC_PUBLISH DBMS_LOGMNR_CDC_SUBSCRIBE

DBMS_METADATA DBMS_ODCI

DBMS_OUTLN_EDIT DBMS_REDEFINITION

DBMS_TRANSFORM DBMS_WM

DBMS_XMLGEN DBMS_XMLQUERY

DMBS_XMLSAVE UTL_ENCODE

UTL_URL

Page 8: 1. Oralce 11g 常用功能与内置包 (90 页)+

8/75

Oracle 9i 新增加的包

Oracle9i R2新支持包列表 DBMS_APPLY_ADM DBMS_CAPTURE_ADM

DBMS_LOGSTDBY DBMS_MGWADM

DBMS_MGWMSG DBMS_PROPAGATION_ADM

DBMS_RULE DBMS_RULE_ADM

DBMS_STORAGE_MAP DBMS_STREAMS

DBMS_STREAMS_ADM DBMS_XDB

DBMS_XDBT DBMS_XDB_VERSION

DBMS_XMLDOM DBMS_XMLPARSER

DBMS_XPLAN DBMS_XSLPROCESSOR

Page 9: 1. Oralce 11g 常用功能与内置包 (90 页)+

9/75

Oracle 10g 新的内置包

Oracle 10g R2 新的内置包

DBMS_AQELM

DBMS_AQIN

DBMS_CHANGE_NOTIFICATION

DBMS_DB_VERSION

DBMS_EPG

DBMS_ERRLOG

DBMS_EXPFIL

Page 10: 1. Oralce 11g 常用功能与内置包 (90 页)+

10/75

Oracle 10g 新的内置包

Oracle 10g R2 新的内置包

DBMS_FILE_GROUP

DBMS_PREDICTIVE_ANALYTICS

DBMS_PREPROCESSOR

DBMS_RLMGR

DBMS_TDB

SDO_NET_MEM

UTL_NLA

Page 11: 1. Oralce 11g 常用功能与内置包 (90 页)+

11/75

Oracle 10g 新修订的内置包

Oracle 10g R2 新修订的内置包

DBMS_ADVISOR

DBMS_APPLY_ADM

DBMS_AQ

DBMS_AQADM

DBMS_CAPTURE_ADM

DBMS_CDC_PUBLISH

DBMS_CRYPTO

DBMS_DATA_MINING

DBMS_DATA_MINING_TRANSFORM

DBMS_DATAPUMP

DBMS_DDL

DBMS_DESCRIBE

DBMS_FGA

DBMS_FILE_TRANSFER

DBMS_LOB

DBMS_LOGMNR

DBMS_LOGMNR_D

DBMS_LOGSTDBY

DBMS_METADATA

DBMS_MGWADM

Page 12: 1. Oralce 11g 常用功能与内置包 (90 页)+

12/75

Oracle 10g 新修订的内置包

Oracle 10g R2 新修订的内置包

DBMS_MGWMSG

DBMS_MONITOR

DBMS_OUTLN_EDIT

DBMS_OUTPUT

DBMS_PROPAGATION_ADM

DBMS_REDEFINITION

DBMS_REPAIR

DBMS_RESOURCE_MANAGER

DBMS_RULE_ADM

DBMS_SCHEDULER

DBMS_SERVER_ALERT

DBMS_SERVICE

DBMS_SESSION

DBMS_SPACE

DBMS_SPACE_ADMIN

DBMS_SQLTUNE

DBMS_STATS

DBMS_STREAMS

DBMS_STREAMS_ADM

DBMS_STREAMS_TABLESPACE_ADM

Page 13: 1. Oralce 11g 常用功能与内置包 (90 页)+

13/75

Oracle 10g 新修订的内置包

Oracle 10g R2 新修订的内置包

DBMS_TTS

DBMS_UTILITY

DBMS_WORKLOAD_REPOSITORY

DBMS_XDB

DBMS_XDBZ

DBMS_XMLDOM

DBMS_XMLSCHEMA

DBMS_XPLAN

DBMS_XSLPROCESSOR

SDO_CS

SDO_TOPO_MAP

SDO_UTIL

UTL_I18N

Page 14: 1. Oralce 11g 常用功能与内置包 (90 页)+

14/75

Oracle 11g 新的内置包

Oracle 11g R2 新支持的内置包

APEX_CUSTOM_AUTH

APEX_APPLICATION

APEX_ITEM

APEX_UTIL

DBMS_ADDM

DBMS_DBFS_HS

DBMS_ASSERT

DBMS_AUTO_TASK_ADMIN

DBMS_AUTO_TASK_IMMEDIATE

DBMS_AUDIT_MGMT

DBMS_AW_STATS

DBMS_COMPARISON

DBMS_COMPRESSION

DBMS_CONNECTION_POOL

DBMS_CSX_ADMIN

DBMS_CUBE

DBMS_CUBE_ADVISE

DBMS_DBFS_CONTENT

DBMS_DBFS_CONTENT_SPI

DBMS_DBFS_HS

DBMS_DBFS_SFS

DBMS_DG

Page 15: 1. Oralce 11g 常用功能与内置包 (90 页)+

15/75

Oracle 11g 新的内置包

Oracle 11g R2 新支持的内置包

DBMS_DST

DBMS_HM

DBMS_HPROF

DBMS_HS_PARALLEL

DBMS_METADATA_DIFF

DBMS_MGD_ID_UTL

DBMS_NETWORK_ACL_ADMIN

DBMS_NETWORK_ACL_UTILITY

DBMS_PARALLEL_EXECUTE

DBMS_RESCONFIG

DBMS_RESULT_CACHE

DBMS_SPM

DBMS_SQLDIAG

DBMS_STREAMS_ADVISOR_ADM

DBMS_STREAMS_HANDLER_ADM

DBMS_WORKLOAD_CAPTURE

DBMS_WORKLOAD_REPLAY

DBMS_XA

DBMS_XDB_ADMIN

DBMS_XDBRESOURCE

DBMS_XEVENT

DBMS_XMLINDEX

Page 16: 1. Oralce 11g 常用功能与内置包 (90 页)+

16/75

Oracle 11g 新的内置包

Oracle 11g R2 新支持的内置包

DBMS_XMLTRANSLATIONS

DBMS_XPLAN

SDO_CSW_PROCESS

SDO_GEOR_ADMIN

SDO_OLS

SDO_PC_PKG

SDO_TIN_PKG

SDO_WFS_LOCK

SDO_WFS_PROCESS

SEM_APIS

SEM_PERF

SEM_RDFCTX

SEM_RDFSA

UTL_MATCH

UTL_SPADV

Page 17: 1. Oralce 11g 常用功能与内置包 (90 页)+

17/75

Oracle 11g 新修订的内置包

Oracle 11g R2 新修订的内置包

DBMS_ADVISOR

DBMS_APPLY_ADM

DBMS_AQ

DBMS_AQADM

DBMS_CAPTURE_ADM

DBMS_CDC_PUBLISH

DBMS_CDC_SUBSCRIBE

DBMS_CQ_NOTIFICATION

DBMS_DATA_MINING

DBMS_DATA_MINING_TRANSFOR

M

DBMS_DATAPUMP

DBMS_EXPFIL

DBMS_FLASHBACK

DBMS_HS_PASSTHROUGH

DBMS_LOB

DBMS_LOGSTDBY

DBMS_METADATA

DBMS_MGWADM

DBMS_MVIEW

DBMS_OUTLN

DBMS_PARALLEL_EXECUTE

Page 18: 1. Oralce 11g 常用功能与内置包 (90 页)+

18/75

Oracle 11g 新修订的内置包

Oracle 11g R2 新修订的内置包

DBMS_PREDICTIVE_ANALYTICS

DBMS_PROPAGATION_ADM

DBMS_RESOURCE_MANAGER

DBMS_RLMGR

DBMS_RULE_ADM

DBMS_SCHEDULER

DBMS_SERVER_ALERT

DBMS_SESSION

DBMS_SPACE

DBMS_SQL

DBMS_SQLPA

DBMS_SQLTUNE

DBMS_STATS

DBMS_STREAMS

DBMS_STREAMS_ADM

DBMS_STREAMS_TABLESPACE_AD

M

DBMS_TRACE

DBMS_UTILITY

DBMS_WORKLOAD_REPOSITORY

DBMS_XDB

Page 19: 1. Oralce 11g 常用功能与内置包 (90 页)+

19/75

Oracle 11g 新修订的内置包

Oracle 11g R2 新修订的内置包

DBMS_XMLINDEX

DBMS_XMLSCHEMA

DBMS_XPLAN

ORD_DICOM

UTL_HTTP

UTL_IDENT

UTL_INADDR

UTL_RECOMP

UTL_SMTP

UTL_SPADV

UTL_TCP

Page 20: 1. Oralce 11g 常用功能与内置包 (90 页)+

20/75

10g新功能与内置包举例

♠ Oracle 10g新功能 ♠闪回新功能-DBMS_FLASHBACK ♠自动存储管理-DBMS_ASM ♠数据泵-DBMS_PUMP ♠ UTL_COMPRESS ♠ UTL_MAIL

Page 21: 1. Oralce 11g 常用功能与内置包 (90 页)+

21/75

11g新功能与内置包举例

♠ Oracle 11g 新功能

♠两个表比较-DBMS_COMPARISON ♠连接池-DBMS_CONNECTION_POOL ♠健康管理-DBMS_HM

Page 22: 1. Oralce 11g 常用功能与内置包 (90 页)+

22/75

11g内置包-DBMS_COMPARISON ♠ DBMS_COMPARISON

♠ 比较两个对象的差异 ♠ $ORACLE_HOME/rdbms/admin/dbmscmp.sql

♠ DBMS_COMPARISON相关的数据字典 ♠ DBA_COMPARISON ♠ DBA_COMPARISON_COLUMNS ♠ DBA_COMPARISON_SCAN ♠ DBA_COMPARISON_SCAN_SUMMARY ♠ DBA_COMPARISON_SCAN_VALUES ♠ DBA_COMPARISON_ROW_DIF

Page 23: 1. Oralce 11g 常用功能与内置包 (90 页)+

23/75

11g内置包-DBMS_SQLPA ♠ DBMS_SQLPA

♠ SQLPA=SQL Performance Analyzer

♠ 11g版本了解 SQL 执行计划以及 SQL 性能 ♠ 通过SPA可根据各种更改类型(如初始化参数更改、优化程序统计刷新和数据库升级)播放特定的 SQL 或整个的 SQL 负载,然后生成比较报告,帮助您评估它们的影响

♥ SPA 使用顺序:

♥ 1.捕获 SQL workload(工作量) ♥ 2.改变前执行工作量 ♥ 3.进行改变 ♥ 4.测试改变前执行工作量 ♥ 5.比较性能

Page 24: 1. Oralce 11g 常用功能与内置包 (90 页)+

24/75

11g内置包-DBMS_SPM ♥ 11g SPM=SQL Plan Management:

♥ SPM就是SQL Plan Management,是11g 自我管理(或自动性)发展的新功能

♥ 通过SPM,Oracle自动去判断某个SQL的新的执行计划是否更加合理(成本更低)

♥ 只有在新的执行计划比原来的执行计划更好的情况下,它才会被使用,从而有效的保护了执行计划的稳定性,进而保证了SQL语句的执行效率。

♥ DBMS_SPM包

♥ DBMS_SPM包来管理SQL Plan

♥ SPM是一个预防机制,它记录并评估SQL的执行计划,将已知的高效的SQL执行计划建立为SQL Plan Baselines

♥ SQL Plan Baseline的功能是保持SQL的性能而不必关注系统的改变

Page 25: 1. Oralce 11g 常用功能与内置包 (90 页)+

11g健康检查-DBMS_HM包

♠ 11g 健康检查包-DBMS_HM:

♠ 可在SQL或API中使用 : SQL> select name from v$hm_check order by 1;

NAME

----------------------------------------------------------------

All Control Files Check

All Datafiles Check

Archived Log Check

Block IO Revalidation Check

CF Member Check

DB Structure Integrity Check

Data Block Integrity Check

Dictionary Integrity Check

Failure Simulation Check

HM Test Check

IO Revalidation Check

Log Group Check

Log Group Member Check

Logical Block Check

Redo Integrity Check

Redo Revalidation Check

Single Datafile Check

Transaction Integrity Check

Txn Revalidation Check

Undo Segment Integrity Check

21 rows selected.

Page 26: 1. Oralce 11g 常用功能与内置包 (90 页)+

11g健康检查-DBMS_HM包

♠ 11g 健康检查包-DBMS_HM:

♠ 可在SQL或API中使用 : SQL> exec dbms_hm.run_check('DB Structure Integrity Check',’indy_2’);

PL/SQL procedure successfully completed.

SQL> select run_id,name,check_name from v$hm_run where name=’indy_2’;

RUN_ID NAME CHECK_NAME

---------- -------------------------------- --------------------------------

681 indy_2 DB Structure Integrity Check

SQL> set long 1000000000

SQL> select dbms_hm.get_run_report('indy_2') from dual;

DBMS_HM.GET_RUN_REPORT('INDY_2')

--------------------------------------------------------------------------------

Basic Run Information

Run Name : indy_2

Run Id : 761

Check Name : DB Structure Integrity Check

Mode : MANUAL

Status : COMPLETED

Start Time : 2007-08-15 14:51:47.986255 -04:00

End Time : 2007-08-15 14:51:48.003219 -04:00

Error Encountered : 0

Source Incident Id : 0

Number of Incidents Created : 0

Page 27: 1. Oralce 11g 常用功能与内置包 (90 页)+

27/75

内容提要

♠版本功能与内置包 ♠开发者需了解的内置包 ♠ DBA需了解的内置包 ♠ DSA需了解的内置包 ♠参考

Page 28: 1. Oralce 11g 常用功能与内置包 (90 页)+

28/75

开发者与内置包

♠ 10g版本的内置包与用户:

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> select owner,count(*) from dba_objects

2 where object_type ='PACKAGE' group by owner

3* order by count(*) desc ;

OWNER COUNT(*)

------------------------------ ----------

SYS 519

CTXSYS 71

SYSMAN 71

MDSYS 47

OLAPSYS 45

Page 29: 1. Oralce 11g 常用功能与内置包 (90 页)+

29/75

开发者与内置包

♠ 11g版本的内置包与用户:

SQL> set pagesize 99

SQL> select owner,count(*) from dba_objects

2 where object_type ='PACKAGE' group by owner

3 order by count(*) desc ;

OWNER COUNT(*)

------------------------------ ----------

SYS 591

SYSMAN 187

FLOWS_030000 174

CTXSYS 70

MDSYS 69

OLAPSYS 45

XDB 30

ORDSYS 27

WKSYS 22

WMSYS 22

Page 30: 1. Oralce 11g 常用功能与内置包 (90 页)+

30/75

开发者与内置包

♠ 专用的内置包在各个用户名下 ♠ 软件人员需大概了解主要内置包的名称:

用户 用途

SYSMAN 管理Oracle数据库的用户

FLOWS_030000 DBA用的在APEX version 3.0 环境

CTXSYS Oracle Text用户

MDSYS Oracle Spatial用户

OLAPSYS OLAP元数据结构的用户

XDB Oracle XML DB用户

Page 31: 1. Oralce 11g 常用功能与内置包 (90 页)+

31/75

开发者与内置包

♠ 专用的内置包在各个用户名下 ♠ 软件人员需大概了解主要内置包的名称:

用户 用途

ORDSYS Oracle interMedia管理用户

WKSYS Oracle UltraSearch用户

WMSYS Oracle Data Mining account用户

EXFSYS 用于角色管理等的内部用户

ORDPLUGINS Oracle interMedia user

DBSNMP EM中管理带来的用户

ORACLE_OCM Oracle Configuration Manager用户

Page 32: 1. Oralce 11g 常用功能与内置包 (90 页)+

32/75

开发者与内置包

♠ Oracle 公司早就为你想好了: ♠不怕不知道;就怕想不到 ♠不了解内置包,你可做一些多余的工作

♠ 如何了解内置包 ♠知道名称与功能即可 ♠使用看例子,看例子没能解决问题,深入研究 ♠从网上搜索可能更快,但你至少有一个内置包的名称吧!!

Page 33: 1. Oralce 11g 常用功能与内置包 (90 页)+

33/75

Oracle 11g内嵌包 ♠ 提供数据库基本支持;在 SYS 模式下

连接到:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

select owner,count(*) from dba_objects

where object_type ='PACKAGE' group by owner order by count(*) desc ;

OWNER COUNT(*) ------------------------------ ---------- SYS 591 SYSMAN 187 FLOWS_030000 174 CTXSYS 70 MDSYS 69 OLAPSYS 45 XDB 30 ORDSYS 27 WKSYS 22 WMSYS 22 EXFSYS 18 ORDPLUGINS 5 DBSNMP 3 ORACLE_OCM 3 SYSTEM 1(DBMS_REPCAT_AUTH)

Page 34: 1. Oralce 11g 常用功能与内置包 (90 页)+

34/75

Oracle 11g内嵌包 ♠ Oracle 功能与内置包

♠ SYS是通用的内置包,其他用户是专用:

用户 功能

SYS Oracle 系统常用的内置包

SYSMAN 超级系统管理用户

FLOWS_030000 Application Express 用户

CTXSYS Oracle Text 产品的用户,用于全文检索

MDSYS Oracle Spatial and Oracle interMedia

OLAPSYS 联机分析用户(OLAP 元数据结构)

Page 35: 1. Oralce 11g 常用功能与内置包 (90 页)+

35/75

Oracle 的内嵌(Built-In) 包 ♠ 多数schema的模式都有内置包,下面按用户列表查询: SQL> show user

USER 为 "SYS"

col object_name for a30

col owner for a12

select owner,object_name from dba_objects where object_type ='PACKAGE'

order by owner, object_type;

OWNER OBJECT_NAME

------------ ------------------------

SYS STANDARD

SYS DBMS_STANDARD

SYS DBMS_REGISTRY

SYS DBMS_REGISTRY_SERVER

SYS XML_SCHEMA_NAME_PRESENT

SYS UTL_RAW

SYS DBMS_ADVISOR

SYS PLITBLM

Page 36: 1. Oralce 11g 常用功能与内置包 (90 页)+

36/75

开发有关内置包-DBMS_OUTPUT

♠ DBMS_OUTPUT内置包: ♠ 用于输出变量结果

♠ 可输出字符类型数据

♠ 用于调试阶段的结果显示

♠ 建议: ♠ PL/SQL调试中使用

♠ 使用前要设置会话变量:set serveroutput on

♠ 在PL/SQL中用DBMS_OUTPUT.PUT_LINE实现结果输出

Page 37: 1. Oralce 11g 常用功能与内置包 (90 页)+

37/75

开发有关内置包-DBMS_METADATA

♠ DBMS_METADATA内置包:

♠用于输出对象元数据

♠可输出表、视图、存储过程等对象的元数据

♠此外还用于返回XML等

♠ 建议:

♠建议开发人员与管理人员都要熟悉它

♠在系统的迁移时非常有用

♠建议直接在SQL命令下使用

Page 38: 1. Oralce 11g 常用功能与内置包 (90 页)+

38/75

开发有关内置包-DBMS_JOB

♠ DBMS_JOB内置包: ♠ 用于设置需要定时运行的作业

♠ 许多需要定时运行的PL/SQL程序可使用

♠ 使用这个包设置作业前先确保PL/SQL是可用

♠ 建议: ♠ 有规律运行的PL/SQL应用可使用

♠ 设置作业的关键是运行时间与再次运行时间

♠ 如果需要设置较多作业时,建议进行时间规划,避免过多作业在同时间运行

Page 39: 1. Oralce 11g 常用功能与内置包 (90 页)+

39/75

开发有关内置包-DBMS_SCHEDULER

♠ DBMS_SCHEDULER 内置包: ♠ 10g新增加的功能,用于设置定时运行作业日程

♠ 这个包是对DBMS_JOB的增强

♠ 使用这个包设置作业日常,以进行全面的资源管理

♠ 建议: ♠ 对于一般的作业,可直接使用DBMS_JOB完成

♠ 设置多个作业,建议使用通过DBMS_SCHEDULER实现

♠ 设置前,要整体时间规划,避免过多作业在同时间运行

♠ 管理员可从EM直接进行设置使用

Page 40: 1. Oralce 11g 常用功能与内置包 (90 页)+

40/75

开发有关内置包-DBMS_SQL

♠ DBMS_SQL内置包: ♠ 用于PL/SQL动态编程

♠ 在PL/SQL中使用DDL语句,必须使用动态

♠ PL/SQL中不能确定的DML语句也要用动态

♠ 建议: ♠ 不得已时不要再PL/SQL使用动态

♠ 动态语句运行效率低下

♠ 如果需要动态,则考虑立即的动态

Page 41: 1. Oralce 11g 常用功能与内置包 (90 页)+

41/75

开发有关内置包-DBMS_PIPE

♠ DBMS_PIPE内置包: ♠ 用于进程间的通信

♠ 一般在PL/SQL中使用,也可在C/C++或JAVA中使用

♠ 管道包实现各进程间数据的双向传递和续传

♠ 建议: ♠ 编写特殊应用或软件产品时使用

♠ 可使用管道包实现工作流处理

♠ 一些要求实时的数据传递可采用管道包来实现,而不要采用触发器

Page 42: 1. Oralce 11g 常用功能与内置包 (90 页)+

42/75

开发有关内置包-DBMS_ALERT

♠ DBMS_ALERT内置包: ♠ 与DBMS_PIPE包类似,用于信息的订阅-发布

♠ 在多线程中使用

♠ 建议: ♠ 编写特殊应用或软件产品时使用

♠ 信息的订阅与发布情况下使用

♠ 可在开发的软件产品中使用

Page 43: 1. Oralce 11g 常用功能与内置包 (90 页)+

43/75

开发有关内置包-UTL_MAIL

♠ UTL_MAIL内置包: ♠ 10g新增加的包,用于邮件的发送

♠ 9i之前使用UTL_SMTP包,UTL_SMTP 发送信息大小 < 3000 字符

♠ UTL_MAIL包实现与日常发送邮件一样功能

♠ 建议: ♠ 要使用这个,以sysdba 安装

♠ 了解环境的配置使用

♠ 了解API方法

Page 44: 1. Oralce 11g 常用功能与内置包 (90 页)+

44/75

开发有关内置包- UTL_FILE

♠ UTL_FILE内置包: ♠ 用于在OS路径下对文件的I/O操作

♠ 类似在C语言的文件打开写入关闭等

♠ 可用于产生需要的文件,比如写文本文件等

♠ 建议: ♠ 这个包对OS路径需要读写权限,但不要轻易授予这样的权限

♠ 可对OS路径文件进程读写,在开发专门软件时使用,比如在应用中运行用户将结果转换为PDF文件或将图像存储为BMP文件等

Page 45: 1. Oralce 11g 常用功能与内置包 (90 页)+

45/75

开发有关内置包- DBMS_PROFLER

♠ DBMS_PROFILER内置包: ♠ 用于对PL/SQL程序的优化分析

♠ 这个跟踪PL/SQL程序中的语句的运行情况

♠ 可用于PL/SQL性能的问题分析

♠ 建议: ♠ 这个包平时不要使用,当问题较难确定时使用

♠ 建议在会话中使用,注意及时结束使用

Page 46: 1. Oralce 11g 常用功能与内置包 (90 页)+

46/75

开发有关内置包- DBMS_HPROF

♠ DBMS_HPROF内置包: ♠ 11g 新支持的内置包,用于替代DBMS_PROFILE包

♠ 这个跟踪PL/SQL程序中的语句的运行情况

♠ 可用于PL/SQL性能的问题分析

♠ 建议: ♠ 11g版本可使用这个包,使用这个包需要安装,如connect

HR/HR; @?/rdbms/admin/dbmshptab.sql

♠ 10g及之前的版本只能使用DBMS_PROFILE

Page 47: 1. Oralce 11g 常用功能与内置包 (90 页)+

47/75

开发有关内置包-DBMS_CONNECTION_POOL

♠ DBMS_CONNECTION_POOL内置包: ♠ 11g 新支持的内置包

♠ 用于设置数据库常驻连接池

♠ 解决连接池的负荷平衡问题

♠ 建议: ♠ 当环境架构是Web时,可采用这个包来设置数据库常驻连接池

♠ 了解DRCP(Database Resident Connection Pooling)技术

Page 48: 1. Oralce 11g 常用功能与内置包 (90 页)+

48/75

开发有关内置包-DBMS_SHARED_POOL

♠ DBMS_SHARED_POOL内置包: ♠ 用于将PL/SQL程序等驻留在共享内存里;也可从共享内存读出被缓存的对象;

♠ 缓存的目的是解决某个PL/SQL程序被淘汰出共享内存的问题

♠ 建议: ♠ 如果希望使用这个包,要以sysdba登录并运行

ORACLE_HOME}/rdbms/admin/dbmspool.sql 脚本;

♠ 授权给用户即可使用这个包;建议不要将过多PL/SQL程序缓存在共享池内以免起反作用

Page 49: 1. Oralce 11g 常用功能与内置包 (90 页)+

49/75

开发有关内置包-DBMS_APPLICATION_INFO

♠ DBMS_APPLICATION_INFO内置包: ♠ 用于交换环境中执行处理的时间点信息

♠ DBMS_APPLICATION_INFO 可以设置SESSION的MODULE,ACTION,CLIENT INFO等状态信息 ,跟踪定位出问题的程序

♠ 建议: ♠ 这个包可以在PL/SQL块、批处理程序中调用该包,建议在存储过程中调用

♠ 了解会话跟踪 技术

Page 50: 1. Oralce 11g 常用功能与内置包 (90 页)+

50/75

开发有关内置包-DBMS_LOB

♠ DBMS_LOB内置包: ♠ 用于处理LOB数据,包括读、写、追加等

♠ DBMS_LOB可以实现对大对象的各种处理

♠ 建议: ♠ 如果你不是采用功能较强的(如C/C++、JAVA)工具处理LOB对象的话,使用DBMS_LOB包是最佳选择

♠ 可在PL/SQL中使用,也可在Pro*C中使用

♠ 建议不要采用LONG或LONG RAW类型

Page 51: 1. Oralce 11g 常用功能与内置包 (90 页)+

51/75

开发有关内置包-DBMS_COMPARISON

♠ DBMS_COMPARISON内置包: ♠ 11g新增加的包,用于比较和修复两个表数据 ♠ 在Stream中使用,因源数据目标数据可能发生差异

♠ 建议: ♠ 如果应用环境需要进行从源数据同步到目标表(转换或集成)的时候,可使用这个包实现数据的比较与修复

♠ 需要以sysdba登录,并运行{ORACLE_HOME}/rdbms/admin/dbmscmp.sql 脚本完成包的创建

♠ 建议研究包的使用

Page 52: 1. Oralce 11g 常用功能与内置包 (90 页)+

52/75

开发有关内置包-DBMS_ADVISOR

♠ DBMS_ADVISOR内置包: ♠ 10g新增加的包,用于进行数据库各种优化

♠ 可对表、索引、撤销等的优化作出建议

♠ 建议:

♠ 对于较复杂的应用性能问题,可研究这个包的用法,建议开发与DBA都要关心

♠ 相关的包: ♠ DBMS_SQLDIAG

♠ DBMS_SQLTUNE

♠ DBMS_WORKLOAD_REPOSITOR

Page 53: 1. Oralce 11g 常用功能与内置包 (90 页)+

53/75

DBMS_ADVANCED_REWRITE

♠ DBMS_ADVANCED_REWRITE内置包: ♠ Version 10.1 or greater

♠ Grant CREATE MATERIALIZED VIEW

♠ Set QUERY_REWRITE_INTEGRITY= TRUSTED

Page 54: 1. Oralce 11g 常用功能与内置包 (90 页)+

54/75

DBMS_ADVANCED_REWRITE

dbms_advanced_rewrite.declare_rewrite_equivalence (

name VARCHAR2,

source_stmt VARCHAR2,

destination_stmt VARCHAR2,

validate BOOLEAN := TRUE,

mode VARCHAR2 := 'TEXT_MATCH');

BEGIN

dbms_advanced_rewrite.declare_rewrite_equivalence(

'UW',

'SELECT srvr_id FROM servers INTERSECT SELECT srvr_id

FROM serv_inst',

'SELECT srvr_id FROM servers s WHERE EXISTS (

SELECT srvr_id

FROM serv_inst i

WHERE s.srvr_id = i.srvr_id)',

TRUE,

'TEXT_MATCH');

END;

/

Page 55: 1. Oralce 11g 常用功能与内置包 (90 页)+

55/75

DBMS_FLASHBACK.TRANSACTION_BA

CKOUT

DECLARE

xa sys.xid_array := sys.xid_array();

BEGIN

xa.extend;

xa(1) := '04000700A2020000';

dbms_flashback.transaction_backout(1, xa);

END;

/

dbms_flashback.transaction_backout(

numtxns NUMBER,

xids xid_array,

options BINARY_INTEGER DEFAULT NOCASCADE,

scnhint NUMBER DEFAULT 0);

Page 56: 1. Oralce 11g 常用功能与内置包 (90 页)+

56/75

内容提要

♠版本功能与内置包 ♠开发者需了解的内置包 ♠ DBA需了解的内置包 ♠ DSA需了解的内置包 ♠参考

Page 57: 1. Oralce 11g 常用功能与内置包 (90 页)+

57/75

DBA有关内置包-DBMS_COMPARISON

♠ DBMS_FLASHBACK内置包: ♠ 10g新增加的包,用于闪回所做过的DML数据

♠ 主要是用于人为的操作错误

♠ 建议:

♠ 如果需要对某些错误操作的数据进行恢复,需要确定时间点或SCN号

♠ 一般建议在EM上使用,如果确定存在困难,可在命令状态下使用

♠ 特殊情况下在PL/SQL中使用

Page 58: 1. Oralce 11g 常用功能与内置包 (90 页)+

58/75

DBA有关内置包-DBMS_DATAPUMP

♠ DBMS_DATAPUMP内置包: ♠ 用于API的实现数据泵的包

♠ 可直接在PL/SQL使用

♠ 建议:

♠ 对于一些软件产品的备份功能来说,可采用自动的PL/SQL方式 ,这样可避免用户学习expdp/impdp命令

♠ 参考10g/11g 原版资料。

Page 59: 1. Oralce 11g 常用功能与内置包 (90 页)+

59/75

DBA有关内置包-DBMS_LOGMNR

♠ DBMS_LOGMNR内置包:

♠ 用于对日志文件进行分析,以输出某个时间段内的DML数据

♠ 这个包也可对归档文件进行分析,还可生成相反操作的DML语句

♠ 主要用于解决审计等问题

♠ 建议: ♠ 这个挖掘日志文件数据,以了解日志文件的DML情况

♠ 对特殊错误的DML进行恢复时,这个包比从备份中恢复要好,因为它只对错误做恢复

Page 60: 1. Oralce 11g 常用功能与内置包 (90 页)+

60/75

DBA有关内置包-DBMS_RESOURCE_MANAGER

♠ DBMS_RESOURCE_MANAGER内置包: ♠ 用于对Oracle系统资源进行管理

♠ Oracle系统资源包括CPU、 内存、撤销表空间等

♠ 主要用于复杂环境的资源分配与管理

♠ 建议: ♠ 建议在用户类别多,资源紧张情况使用这包

♠ 先对用户的角色、权限、优先等进行规划,然后使用这个包进行配置

Page 61: 1. Oralce 11g 常用功能与内置包 (90 页)+

61/75

DBA有关内置包-DBMS_RESOURCE_MANAGER

♠ DBMS_RCVCAT内置包: ♠ 用于对数据进行恢复

♠ RMAN是命令方式,DBMS_RCVCAT 是提供的API接口

♠ 主要用于复杂环境的资源分配与管理

♠ 建议: ♠ 建议在命令或EM环境下使用

♠ 特殊情况下在PL/SQL使用这个包,如开发软件产品等

Page 62: 1. Oralce 11g 常用功能与内置包 (90 页)+

62/75

DBA有关内置包-DBMS_SPACE

♠ DBMS_SPACE内置包: ♠ 用于对段空间进行管理

♠ 段是占用存储空间的对象,表、索引等

♠ 主要用于存储空间的有效管理

♠ 建议: ♠ 标准版不支持

♠ 在段存储问题较大时可采用这样的方法管理

Page 63: 1. Oralce 11g 常用功能与内置包 (90 页)+

63/75

DBA有关内置包-DBMS_MONITOR

♠ DBMS_MONITOR内置包: ♠ 10g中引入内置包,可跟踪从客户机到中间层、再到后端数据库的任何用户的会话

♠ 用于标识创建大量工作量的特定用户

♠ 建议:

♠ 在多层架构下,建议采用这个包跟踪会话,以确定问题的原因

♠ 建议与DBMS_ APPLICATION_INFO包一起考虑

♠ 相关的包有DBMS_SERVICE、DBMS_SESSION等

Page 64: 1. Oralce 11g 常用功能与内置包 (90 页)+

64/75

DBA有关内置包-DBMS_SESSION

♠ DBMS_SESSION内置包: ♠ 功能是跟踪客户会话

♠ 用于性能问题的跟踪与安全的控制

♠ 建议: ♠ 如果希望进行安全的自动管理,可研究这个包的使用

♠ 参考David Kurtz的文章

♠ 与安全相关的内容是SYS_CONTEXT

Page 65: 1. Oralce 11g 常用功能与内置包 (90 页)+

65/75

DBA有关内置包-DBMS_SUPPORT

♠ DBMS_SUPPORT内置包: ♠ 这个包用于 跟踪SQL 语句等

♠ 用于性能的监控,如SQL性能等问题

♠ 默认安装,这个包不被安装

♠ 建议: ♠ conn / as sysdba

♠ @?rdbms\admin\dbmssupp.sql

♠ GRANT execute ON dbms_support TO uwclass;

♠ CREATE PUBLIC SYNONYM dbms_support FOR dbms_support;

Page 66: 1. Oralce 11g 常用功能与内置包 (90 页)+

66/75

DBA有关内置包-DBMS_SYSTEM

♠ DBMS_SYSTEM内置包: ♠ 这个包用于会话的跟踪

♠ 用于性能用户性能监控和数据搜集

♠ 建议: ♠ 对怀疑的会话进行跟踪,跟踪完成最后取消跟踪

♠ 跟踪所产生的结果被记录到跟踪文件中,跟踪文件路径为$ORACLE_HOME/udump

Page 67: 1. Oralce 11g 常用功能与内置包 (90 页)+

67/75

DBA有关内置包-DBMS_LOCK

♠ DBMS_LOCK内置包: ♠ 可对所操作的数据进行锁定

♠ 用于多用户下可能产生同时进行DML操作冲突的控制

♠ 一般默认下,Oracle只能对表进行内部机制所提供的锁

♠ 建议:

♠ 如果应用系统所操作的对象可能出现读写冲突时,建议你研究这个包的用法

♠ 参考原版文章

Page 68: 1. Oralce 11g 常用功能与内置包 (90 页)+

68/75

DBA有关内置包-DBMS_UTILITY

♠ DBMS_UTILITY内置包: ♠ 这个包是多种过程的集合,它放置了许多的过程,如

DBMS_UTILITY.ANALYZE_SCHEMA、dbms_utility.active_instances 等

♠ 用于复杂的应用开发

♠ 建议:

♠ 如果你开发以个复杂的应用,可使用这个实现各种处理

♠ 相关包:DBMS_ODCI

Page 69: 1. Oralce 11g 常用功能与内置包 (90 页)+

69/75

DBA有关内置包-DBMS_SQLTUNE

♠ DBMS_SQLTUNE内置包(11g新): ♠ 这个包用于SQL性能分析

♠ 提供了一个精确地评估前后性能变化的完整的数据库工作负载的方法。

♠ 用于复杂的应用开发

♠ 建议: ♠ 开发人员与DBA可使用这个包对SQL问题进行分析

♠ 相关包: DBMS_SQLDIAG

Page 70: 1. Oralce 11g 常用功能与内置包 (90 页)+

70/75

DBA有关内置包-DBMS_SQLDIAG

♠ DBMS_SQLDIAG内置包: ♠ 这个包用于SQL性能诊断

♠ 提供创建和执行SQL Repair Advisor的诊断任务的方法。

♠ 用于存在问题的SQL诊断

♠ 建议: ♠ 开发人员与DBA可使用这个包对SQL问题进行分析

♠ 参考资料: Oracle 11g数据库管理艺术

Page 71: 1. Oralce 11g 常用功能与内置包 (90 页)+

71/75

DBA有关内置包-DBMS_STATS

♠ DBMS_STATS内置包: ♠ 这个包用于对数据库段对象进行统计

♠ 提供对表、索引、Cluster等进行统计,为CBO提供优化数据。

♠ 用于CBO优化模式

♠ 建议: ♠ DBA可使用这个包对相关表、索引进行统计

♠ 参考资料: Oracle 原版

Page 72: 1. Oralce 11g 常用功能与内置包 (90 页)+

72/75

DBA有关内置包- DBMS_RESUMABLE

♠ DBMS_RESUMABLE内置包: ♠ 这个包用于对各中表空间进行自动管理

♠ 提供对表永久表空间撤销表空间、临时表空间的使用出现问题自动处理方法

♠ 建议: ♠ DBA可使用这个包对一些旧的应用进行预防性的维护,因为一旦扩展失败意味着DML数据失败

♠ 参考资料: Oracle 原版

Page 73: 1. Oralce 11g 常用功能与内置包 (90 页)+

73/75

DBA有关内置包- DBMS_REPAIR

♠ DBMS_REPAIR内置包: ♠ 用于对坏块进行修理

♠ 可以发现、标识并修改数据文件中的坏块

♠ 检查到的坏块标注出来,使随后的dml操作跳过该块。

♠ 建议: ♠ DBA可使用这个包对坏块进行诊断

♠ 从性能角度出发,也可使用这个包进行诊断

♠ 参考资料: Oracle 原版

Page 74: 1. Oralce 11g 常用功能与内置包 (90 页)+

74/75

DBA有关内置包- DBMS_HM

♠ DBMS_HM内置包: ♠ 11g版本引入;HM是Health Management的缩写

♠ 用于Oracle数据库进行健康管理

♠ 可报告存在问题的信息

♠ 建议: ♠ DBA可使用这个包对Oracle系统进行诊断

♠ 一般可从EM中使用,但也要理解输出的结果

♠ 相关包: DBMS_IR

Page 75: 1. Oralce 11g 常用功能与内置包 (90 页)+

75/75

DBA有关内置包- DBMS_WM ♠ DBMS_WM内置包:

♠ 9i 版本引入;11g版本增加更多的功能 ♠ 用于工作空间管理(Workspace Manager ) ♠ 提供了为不同表建立不同版本的架构

♠ 开发团队建议: ♠ 允许开发人员和DBA在同一个数据库中对数据的多版本进行管理。

♠ 它使用作为虚拟环境的工作区组织管理产品数据,保留数据的多个版本。

♠ 相对于传统的数据版本管理方式,能更加节约时间、资金投入和人员投入

Page 76: 1. Oralce 11g 常用功能与内置包 (90 页)+

76/75

内容提要

♠版本功能与内置包 ♠开发者需了解的内置包 ♠ DBA需了解的内置包 ♠ DSA需了解的内置包 ♠参考

Page 77: 1. Oralce 11g 常用功能与内置包 (90 页)+

77/75

新的职位-Oracle 系统安全员 ♠ DSA 数据库安全员:

♠ DSA=database security administrator

♠ 为了实现真正的责权分离,许多RDBMS新添DSA ♠ 要实现DBA/DSA/在责权分离,需要安装Oracle Database Vault 产品

♠ Oracle Database Vault: ♠ 实现职责分离、加强内部控制 ♠ 限制DBA和超级用户对业务数据的访问 ♠ 定制和强制实施个性化的安全规则 ♠ 提供各种详细的安全报告用于法规审计

Page 78: 1. Oralce 11g 常用功能与内置包 (90 页)+

内置包与授权建议

♠ Oracle 系统下存在风险的包: ♠ dbms_sql

♠ utl_file

♠ utl_mail

♠ utl_inaddr

♠ utl_tcp

♠ dbms_lob

♠ dbms_xmlgen

♠ dbms_aw_xml

♠ ctxsys.drithsx

♠ ordsys.ord_dicom

♠ kupp$proc

Page 79: 1. Oralce 11g 常用功能与内置包 (90 页)+

内置包与授权建议

♠ Oracle 9i/10g系统下面包不要轻易授权一般用户: ♠ UTL_SMTP

♠ UTL_TCP

♠ UTL_HTTP

♠ UTL_FILE

♠ DBMS_OBFUSCATION_TOOLKIT

♠ DBMS_RANDOM

♠ Oracle 11g已经不允许从外部来使用: ♠ UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP等

Page 80: 1. Oralce 11g 常用功能与内置包 (90 页)+

内置包使用与授权建议

♠ 撤销将内置包授予Public 公共帐号 ♠ 撤销 Public 权限样例

SQL> show USER User is SYSTEM

SQL> revoke execute on utl_httpfrom public force;

SQL> revoke execute on utl_tcp from public force;

SQL> revoke execute on utl_filefrom public force;

SQL> revoke execute on utl_inaddrfrom public force;

SQL> revoke execute on utl_smtpfrom public force;

SQL> revoke execute on utl_dbwsfrom public force;

SQL> revoke execute on dbms_lobfrom public force;

SQL> revoke execute on dbms_randomfrom public force;

SQL> revoke execute on dbms_obfuscation_toolkit from public force;

Page 81: 1. Oralce 11g 常用功能与内置包 (90 页)+

内置包使用与授权建议

♠ 撤销将内置包授予Public 公共帐号 ♠ 撤销 Public 权限样例

SQL> show USER User is SYSTEM

SQL> revoke execute on dbms_crypto_toolkitfrom public force;

SQL> revoke execute on dbms_advisorfrom public force;

SQL> revoke execute on dbms_ldapfrom public force;

SQL> revoke execute on dbms_ldap_utlfrom public force;

SQL> revoke execute on dbms_jobfrom public force;

SQL> revoke execute on dbms_scheduler from public force;

SQL> revoke execute on dbms_ddlfrom public force;

SQL> revoke execute on dbms_epgfrom public force;

SQL> revoke execute on dbms_xmlgenfrom public force;

SQL> revoke execute on dbms_aw_xmlfrom public force;

SQL> revoke execute on ctxsys.drithsxfrom public force;

SQL> revoke execute on ordsys.ord_dicomfrom public force;

Page 82: 1. Oralce 11g 常用功能与内置包 (90 页)+

内置包使用与授权建议

♠ dbms_sql包在10g的处理 ♠ 11g及以上已经修正

SQL> show USER User is SYS

SQL> create role ROLE_DBMSSQL;

SQL> grant execute on dbms_sql to ROLE_DBMSSQL;

SQL> spool grantdbmssql.sql

SQL> select distinct 'grant ROLE_DBMSSQL to "'||owner||'";' from

all_dependencies where referenced_name = 'DBMS_SQL' and owner not

in ('PUBLIC');

SQL> spool off

SQL> @grantdbmssql

SQL> revoke execute on dbms_sql from PUBLIC;

Page 83: 1. Oralce 11g 常用功能与内置包 (90 页)+

防止外部端口的访问

♠ 对象类型 ♠ HTTPUriType :

--as user SYS

SQL> revoke execute on HTTPUriType from public force;

Page 84: 1. Oralce 11g 常用功能与内置包 (90 页)+

防止外部端口的访问

♠ 不建议使用口令文件 ♠ 如果使用口令文件,则建议设置:

SQL> show USER

User is SYSTEM

REMOTE_OS_AUTHENT = FALSE

Page 85: 1. Oralce 11g 常用功能与内置包 (90 页)+

触发器监控数据库

♠ 监控DDL 操作触发器-DDLTrigger ♠ 以sysdba登录

SQL> create or replace trigger DDLTrigger

AFTER DDL ON DATABASE

DECLARE

rc VARCHAR(4096);

BEGIN

begin

rc:=utl_http.request ('http://192.168.2.201/user='||ora_login_user||';DDL_TYPE='||ora_sysevent||';

DDL_OWNER='||ora_dict_obj_owner||';DDL_NAME='||ora_dict_obj_name||';

sysdate='||to_char(sysdate, 'YYYY-MM-DD hh24:mi:ss');

exception

when utl_http.REQUEST_FAILEDthen null;

end;

END;

/

Page 86: 1. Oralce 11g 常用功能与内置包 (90 页)+

触发器监控数据库

♠ 监控DDL 操作触发器-Logon Trigger ♠ 以sysdba登录

create or replace trigger sec_logon

after logon on database

DECLARE

rc VARCHAR(4096);

begin

begin

rc:=utl_http.request('http://192.168.2.201/logon_user='||user||';sessionid='||sys_context('USERENV','SES

SIONID')||';host='||sys_context('USERENV','HOST')||';ip='||ora_client_ip_address||';sysdate='||to_char(sys

date, 'YYYY-MM-DD hh24:mi:ss'));exception when utl_http.REQUEST_FAILEDthen null;

end;

End sec_logon;

/

Page 87: 1. Oralce 11g 常用功能与内置包 (90 页)+

触发器监控数据库

♠ 监控DDL 操作触发器-Error Trigger ♠ 以sysdba登录

CREATE OR REPLACE TRIGGER after_error

AFTER SERVERERROR ON DATABASE

DECLARE pragma autonomous_transaction;

id NUMBER;

sql_textORA_NAME_LIST_T;

v_stmtCLOB; n NUMBER;

BEGIN

n := ora_sql_txt(sql_text);

IF n >= 1 THENFOR i IN 1..n LOOP

v_stmt:= v_stmt|| sql_text(i);

ND LOOP;

END IF;

FOR n IN 1..ora_server_error_depth LOOP

IF ora_server_error(n) in (

'900','906','907','911','917','920','923','933','970','1031','1476','1719','1722','1742','1756','1789','1790','2424

7','29257','29540') THEN

INSERT INTO system.oraerrorVALUES (SYS_GUID(), sysdate, ora_login_user, ora_client_ip_address,

ora_server_error(n), ora_server_error_msg(n), v_stmt);

END IF;

END LOOP;

END after_error;

/

Page 88: 1. Oralce 11g 常用功能与内置包 (90 页)+

审计数据库

♠ Oracle 系统审计 ♠ 以sysdba登录

Declare

jj integer := 666666;--job number

begin

sys.dbms_ijob.submit(JOB=>jj, LUSER =>'SYS',PUSER =>'SYS', CUSER =>'SYS', NEXT_DATE =>

sysdate, INTERVAL =>null, BROKEN =>false, WHAT =>' declarejjinteger := '||jj||';

begin

execute immediate ''alter system archivelog current'';

sys.dbms_ijob.remove(jj);

delete from sys.aud$ where obj$name= ''DBMS_IJOB'';

commit;

end;', sys.dbms_ijob.run(jj);

end;

/

Page 89: 1. Oralce 11g 常用功能与内置包 (90 页)+

审计数据库

♠ Oracle 系统审计 ♠ 以sysdba登录

AUDIT CREATE USER BY ACCESS;

AUDIT ALTER USER BY ACCESS;

AUDIT DROP USER BY ACCESS;

AUDIT CREATE ROLE BY ACCESS;

AUDIT SELECT ON DBA_USERS BY ACCESS;

AUDIT CREATE EXTERNAL JOB BY ACCESS; --10g

Rel.1

AUDIT CREATE JOB BY ACCESS; --10g

AUDIT CREATE ANY JOB BY ACCESS;

AUDIT CREATE ANY LIBRARY BY ACCESS;

AUDIT ALTER DATABASE BY ACCESS;

AUDIT ALTER SYSTEM BY ACCESS;

AUDIT AUDITSYSTEM BY ACCESS;

AUDIT EXEMPT ACCESS POLICY BY ACCESS;

AUDIT GRANT ANY PRIVILEGE BY ACCESS;

AUDIT GRANT ANY ROLE BY ACCESS;

AUDIT ALTER PROFILE BY ACCESS;

AUDIT CREATE ANY PROCEDURE BY ACCESS;

AUDIT ALTER ANY PROCEDURE BY ACCESS;

AUDIT DROP ANY PROCEDURE BY ACCESS;

AUDIT CREATE PUBLIC DATABASE LINK BY ACCESS;

AUDIT CREATE PUBLIC SYNONYM BY ACCESS;

AUDIT EXECUTE ON DBMS_FGA BY ACCESS;

AUDIT EXECUTE ON DBMS_RLS BY ACCESS;

AUDIT EXECUTE ON DBMS_FILE_TRANSFER BY

ACCESS;

AUDIT EXECUTE ON DBMS_SCHEDULER BY

ACCESS;

AUDIT EXECUTE ON DBMS_JOB BY ACCESS;

AUDIT SELECT ON SYS.V_$SQL BY ACCESS;

AUDIT SELECT ON SYS.GV_$SQL BY ACCESS;

AUDIT EXECUTE ON SYS.KUPP$PROC BY ACCESS;

AUDIT EXECUTE ON DBMS_XMLGEN BY ACCESS;

AUDIT EXECUTE ON DBMS_NETWORK_ACL_ADMIN

BY ACCESS; --11g

Page 90: 1. Oralce 11g 常用功能与内置包 (90 页)+

91/75

内置包资源参考

♠ Oracle原厂: ♠ Oracle® Database ♠ PL/SQL Packages and Types Reference

♠ 11g Release 1 (11.1.)

♠ B28419-02

♠ OCP: ♠ 11g:D52601GC10-Oracle Database 10g: Advanced PL/SQL

♠ 10g:Oracle Database 10g: Advanced PL/SQL