A. Oracle 11g 新功能概要(70 页)

70
Oracle Database 11g 新功能概要 赵元杰 北京群环域科技有限公司 2012.2

description

 

Transcript of A. Oracle 11g 新功能概要(70 页)

Page 1: A. Oracle 11g 新功能概要(70 页)

Oracle Database

11g 新功能概要

赵元杰

北京群环域科技有限公司

2012.2

Page 2: A. Oracle 11g 新功能概要(70 页)

2/60

内容提要

♠ 11g 淘汰的功能与产品

♠ 11g 安装与升级

♠ 11g 产品新功能

♠ 11g 管理新功能

♠ 11g 新实用程序

♠ 参考资源

Page 3: A. Oracle 11g 新功能概要(70 页)

3/60

为什么要“与时俱进 ”

♠ Larry Ellison

♠ 锋芒必露

♠ 我自己成功不算成功,要所有的对手都后失败才算成功

♠ 喜欢标新立异,经常将产品的名称改来改去

♠ 产品改名频繁

♠ 非常看准市场

♠ 产品测试阶段就做好了宣传

♠ 产品名称一改,别人以为是新的产品!

Page 4: A. Oracle 11g 新功能概要(70 页)

4/60

MTS到Shared Server

♠ Oracle R6

♠ Oracle 7之前,登录一个用户就需要分配一定的主机资源,即使会话不需要资源也不能释放

♠ 技术人员跳到Sybase ,在Sybase上先推出MTS

♠ 开始攻击Oracle技术不行,在北京出现:Oracle总部搬到哪里Sybase总部也搬到那里

♠ Oracle 7的变化

♠ 也推出MTS技术

♠ 与Sybase技术平起平坐

♠ 双方相互攻击转向“透明”上

Page 5: A. Oracle 11g 新功能概要(70 页)

5/60

MTS到Shared Server

♠ Oracle 9i

♠ Oracle 9i是一个过度版本

♠ MTS正式变为共享服务器

♠ 此外,许多产品的名称与技术叫法都变

♠ Oracle 10g/11g

♠ 10g继续完善9i未完善的技术

♠ 有的新功能也推出,但都是少量

♠ 11g继续完善10g的功能

♠ 10g/11g 最大变化就是管理智能化

Page 6: A. Oracle 11g 新功能概要(70 页)

6/60

MTS到Shared Server

♠ Oracle 10g/11g

♠共享服务器基本不用管理,因为系统自动管理

♠ 10g/11g 的OCP都没有介绍共享服务器的内容,意思是管理不用关注“共享服务器”

♠要关注就是在大量并发用户环境下才需要将Oracle

设置成共享模式即可

Page 7: A. Oracle 11g 新功能概要(70 页)

7/60

从rollback segment到undo tablespace

♠ Oracle 8i

♠ Oracle 8i是一个旧技术终止的版本

♠ 回滚段技术并不是不好,问题是文档出现误导

♠ 回滚段的原因是没有自动调整(其实自动调回滚段很简单)

♠ 出现ORA-01555错误

♠ Oracle 9i/10g/11g

♠ 从9i版本可以使用撤销表空间,你也可继续使用回滚段管理你的Oracle 9i/10g环境

♠ 当然撤销表空间有1个好处是,提交后也可短时间内恢复

♠ 撤销表空间也同样出现ORA-01555

Page 8: A. Oracle 11g 新功能概要(70 页)

8/60

从rollback segment到undo tablespace

♠ Oracle 10g/11g版本

♠建议使用撤销表空间

♠撤销表空间对于的数据文件要大,至少5GB以上

♠出现ORA-01555,可调UNDO_RETENTION与增加数据文件

Page 9: A. Oracle 11g 新功能概要(70 页)

9/60

从字典管理到本地管理表空间

♠ DMT与LMT表空间

♠字典管理表空间(Dictionary Managed

Tablespace简称DMT )

♠本地管理表空间(Locally Managed Tablespace

简称LMT)

♠ DMT时代的结束原因是大容量磁盘的到来

♠ LMT的建议是新的管理机制

Page 10: A. Oracle 11g 新功能概要(70 页)

10/60

从RAW到ASM

♠ Oracle早期系统与早期存储

♠ RAW意思是原始设备或裸设备

♠ 将存储系统分区但不用OS 格式化的存储

♠ 可提供I/O速度,Oracle系统早就支持将数据存储到RAW上

♠ Oracle 系统与存储

♠ 存储五花八门,有内置磁盘,有网络存储等

♠ 存储系统影响到Oracle系统性能,因为数据量越来越大

♠ RAW 存在不足就是分区后不能灵活更改

Page 11: A. Oracle 11g 新功能概要(70 页)

11/60

从RAW到ASM

♠ Oracle 10g/11g ASM

♠ ASM好处就是系统自动优化存储

♠ Oracle系统ASM配置需要条件

♠大型系统选择ASM很大,现在流行的是集中的管理(Data Hub)

♠ Oracle 12g的可能

♠听说12g就不支持RAW了

♠ RAW 是否不再受宠,主要近年确实很少被用户使用

Page 12: A. Oracle 11g 新功能概要(70 页)

12/60

从RULE到CBO

♠ Oracle 优化器

♠ Oracle 8i之前,建议用RULE

♠ Oracle 9i/10g/11g建议用CBO

♠ Oracle 将来变化

♠ 12c 管理自动化

♠ 12c 管理智能化

♠ 语句优化智能化,

♠ 我们DBA 还干什么,设计总是不自动化,近年软件还是要人工写代码,当然中国的用户更不合适软件的自动化,此外,测试与高水平的技术支持行业国内较弱。

Page 13: A. Oracle 11g 新功能概要(70 页)

13/60

Oracle 版本历史

♠ Oracle 版本历史:

♠ 1978 Oracle V1;

♠ ...

♠ 5.1.A/5.1.B 1988

♠ 6.x 1992

♠ 7.3 1996

♠ 8.0 1997 Oracle 8

♠ 8.1.5 1999 Oracle 8i Release 1

♠ 8.1.6 1999 Oracle 8i Release 2

♠ 8.1.7 2000 Oracle 8i Release 3

♠ 9.1 2001 Oracle 9i Release 1

♠ 9.2 2002 Oracle 9i Release 2

♠ 10.1 2004 Oracle 10g Release 1

♠ 10.2 2005 Oracle 10g Release 2 ( XE ! )

♠ 11.1 2007 Oracle 11g Release 1

♠ 11.2 2009 Oracle 11g Release 2

Page 14: A. Oracle 11g 新功能概要(70 页)

14/60

系统的问题诊断的进化

♠系统问题检查的不断进化:

♠ 6.x: dumps, traces, timed statistics

♠ 7.x: wait events

♠ 8.x: Statspack

♠ 10g: ASH/AWR/ADDM

♠ 11g: Self-diagnosability。

Page 15: A. Oracle 11g 新功能概要(70 页)

15/60

iSQL*Plus与 SQLPLUSW说GoodBye!

♠ Oracle 11g 淘汰了存在安全问题的产品

♠ Oracle 11g 不包括iSQL*Plus

♠ Oracle 11g 不包括SQL*Plus图形方式(sqlplusw.exe)

♠ Oracle 11g 还包括SQL*Plus(命令方式)

♠ Oracle 11g 全面支持 Oracle SQL Developer

♠ Oracle SQL Developer 建议使用SQL与PL/SQL 开发

♠ SQL*Plus 对BLOB,CLOB及BFILE 增强

Page 16: A. Oracle 11g 新功能概要(70 页)

16/60

优化工具的变化

♠ Oracle 8i之前

♠ UTLBSTAT/UTLESTAT

♠ Oracle 8i/9i/10g

♠ 10g 推荐使用Statspack 诊断性能

♠ 11g Statspack 继续使用

♠ Oracle 10g/11g 推荐

♠ AWR(Automatic Workload Repository)

♠ ADDM(Automatic database Diagnostic Monitor)

Page 17: A. Oracle 11g 新功能概要(70 页)

17/60

SQL*Plus与SQL Developer

♠SQL*Plus 还可使用

♠SQL*Plus 11g 支持 BLOB 与 BFILE

Page 18: A. Oracle 11g 新功能概要(70 页)

18/60

内容提要

♠ 11g 淘汰的功能与产品

♠ 11g 安装与升级

♠ 11g 产品新功能

♠ 11g 管理新功能

♠ 11g 新实用程序

♠ 参考资源

Page 19: A. Oracle 11g 新功能概要(70 页)

19/60

Oracle 11g安装界面

♠ 安装界面风格

♠ 与10g类似

Page 20: A. Oracle 11g 新功能概要(70 页)

20/60

Oracle 11g 升级

♠ 低版本升级到11g方法

♠ Database Upgrade Assistant

♠ Manual Upgrades

♠ Export/Import

♠ SQL*Plus Copy

♠ 升级的路径- DBUA/手工

♠ Oracle 9.2.0.4 (or higher)

♠ Oracle 10.1.0.2 (or higher)

♠ Oracle 10.2.0.1(or higher) (10.2.0.3 for CW)

Page 21: A. Oracle 11g 新功能概要(70 页)

21/60

Oracle 11g 升级

♠ Upgrade to 11g – Select Database

♠ Database Upgrade Assistant

Page 22: A. Oracle 11g 新功能概要(70 页)

22/60

Oracle 11g 升级

♠ Upgrade to 11g - Logging

♠ Database Upgrade Assistant

Note Logging

Page 23: A. Oracle 11g 新功能概要(70 页)

23/60

内容提要

♠ 11g 淘汰的功能与产品

♠ 11g 安装与升级

♠ 11g 产品新功能

♠ 11g 管理新功能

♠ 11g 新实用程序

♠ 参考资源

Page 24: A. Oracle 11g 新功能概要(70 页)

24/60

Oracle 继续变革

Database Vault

Grid Computing

In-Memory Database Cache

Automatic Storage Mgmt

Self Managing Database

XML Database

Oracle Data Guard

Real Application Clusters

Flashback Query

Virtual Private Database

Built in Java VM

Partitioning Support

Built in Messaging

Object Relational Support

Multimedia Support

Data Warehousing Optimizations

Parallel Operations

Distributed SQL & Transaction Support

Cluster and MPP Support

Multi-version Read Consistency

Client/Server Support

Platform Portability

Commercial SQL Implementation

Oracle 2 Oracle 9i

Oracle 5

Oracle 6

Oracle 7

Oracle 8

Oracle 8i

Oracle 10g

Page 25: A. Oracle 11g 新功能概要(70 页)

25/60

Oracle 产品变化特点

♠ 原有功能增强

♠ 内存动态调整-10g 支持SGA动态调整,11g支持SGA+PGA 动态调整

♠ Flashback – 10g 对DML +Drop 进行闪回,11g 增强闪回归档功能

♠ 有的增加不易看到,如V$SESSION增加许多列

♠ 新增加功能

♠ 11g 新增 数据库重放

♠ 11g 新增 Oracle SecureFiles

♠ 过去版本,控制不到OS路径下的文件,所以不安全

Page 26: A. Oracle 11g 新功能概要(70 页)

26/60

Oracle 产品变化特点

♠ 新增功能-表面的体现:

♠ OEM 栏目与提示的变化

♠ SQL 语句 个别有变化

♠ 实用程序 变化或新的实用程序

♠ 资料有功能介绍

♠ 新增功能-内部的体现(隐藏):

♠ 新的数据字典或视图

♠ 新的内置包

♠ 新的参数

♠ 新的语句或新的子句

Page 27: A. Oracle 11g 新功能概要(70 页)

27/60

Oracle 新功能关键点

♠ Oracle 11g 缓存数据-Result Cache

♠参数result_cache_mode= FORCE :

Page 28: A. Oracle 11g 新功能概要(70 页)

28/60

11g 新功能-安全

♠口令的严谨问题

♠可对口令采用大小写敏感,如:

sec_case_sensitive_logon = true

--可动态设置:

ALTER SYSTEM SET

Page 29: A. Oracle 11g 新功能概要(70 页)

29/60

11g 新功能-安全 ♠ 采用默认口令的视图

♠ 11g增加新视图DBA_USERS_WITH_DEFPWD

♠ 用于显示那些具有缺省口令的用户,如:

SQL> desc DBA_USERS_WITH_DEFPWD

名称 是否为空? 类型

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

USERNAME NOT NULL VARCHAR2(30)

SQL> select * from dba_users_with_defpwd;

USERNAME

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

DIP

MDSYS

XS$NULL

SPATIAL_WFS_ADMIN_USR

OUTLN

OLAPSYS

……

XDB

WMSYS

SI_INFORMTN_SCHEMA

已选择20行。

Page 30: A. Oracle 11g 新功能概要(70 页)

30/60

11g 新功能-安全

♠表空间数据加密

♠可对表空间设置加密算法,如:

create tablespace secure1

datafile '/db1/1.dbf' size 1M

encryption using 'AES128'

default storage (encrypt)

--

SQL> desc v$encrypted_tablespaces

Name Null? Type

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

TS# NUMBER

ENCRYPTIONALG VARCHAR2(7)

ENCRYPTEDTS VARCHAR2(3)

Page 31: A. Oracle 11g 新功能概要(70 页)

31/60

11g 新功能-闪回归档

♠ 11g 新增加归档

♠例如:

create flashback archive FB1

tablespace TS1

retention 1 year

-- alter table ACCOUNTS flashback archive FA1;

--

alter flashback archive FA1 purge before scn

1234567;

Page 32: A. Oracle 11g 新功能概要(70 页)

32/60

Oracle 11g 新功能-自动内存管理

♠ 11g 自动内存

♠ Memory_target –动态

♠ Memory_max_size – 非动态

♠ 11g 自动内存大小计算:

♠ Memory_target= sga_max_size+

♠ max(pga_aggregate_target,

♠ results of (select value from v$pgastat where

name='maximum PGA allocated'; )

Page 33: A. Oracle 11g 新功能概要(70 页)

33/60

Oracle 11g 新功能-自动内存管理

♠ 用于替换下面参数:

♠ Sga_max_size

♠ Sga_size (采用默认配置)

– Db_cache_size

– Large_pool_size

– Streams_pool_size

♠ Pga_aggregate_target

Shared_pool_size

Java_pool_size

Page 34: A. Oracle 11g 新功能概要(70 页)

34/60

Oracle 11g 新功能-自动内存管理

♠ 还需要配置:

♠ Log_buffer

♠ Keep, Recycle 及 非默认块大小缓冲区

Page 35: A. Oracle 11g 新功能概要(70 页)

35/60

Oracle 11g 新功能-自动内存管理

♠ V$MEMORY_TARGET_ADVICE (参考 AWR):

♠ 查询视图信息

SQL> select * from v$memory_target_advice

order by memory_size_factor;

MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME

ESTD_DB_TIME_FACTOR

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

176 .5 126 1.1443

264 .75 110 1

352 1 110 1

440 1.25 110 1

528 1.5 109 .99

616 1.75 109 .99

704 2 109 .99

Page 36: A. Oracle 11g 新功能概要(70 页)

36/60

Oracle 11g 新功能-自动内存管理

♠ 11g Automatic Memory Tuning

♠自动内存调整

Page 37: A. Oracle 11g 新功能概要(70 页)

37/60

11g新功能- Database Replay

♠ 数据库重放

♠ 使用数据库重放来捕获完整的数据库负载,以便您可以随意进行“重放”

♠ 11g 将为您带来诸多好处。新的数据库重放工具好似数据库内的 DVR。使用该独特的方法,可如实地以二进制文件格式捕获 SQL 级别以下的所有数据库活动,然后在同一数据库或不同数据库内进行重放

♠ 数据库重放与另一个工具 SQL 性能分析器共同构成了 Oracle 数据库 11g 的“真正应用测试”选件。

Page 38: A. Oracle 11g 新功能概要(70 页)

38/60

11g新功能- Database Replay

♠ 数据库重放的工作顺序如下

♠ 1. 启动一个记录数据库活动的捕获流程。

♠ 2. 该流程将活动写入名为“capture files”的特殊文件,该文件位于 /capture directory/ 目录中。

♠ 3. 稍后,停止捕获流程,将这些捕获文件移至位于

/replay directory/ 目录中的测试系统。

♠ 4. 启动一个重放流程和若干重放客户端,以重放这些捕获文件。

♠ 5. 这些捕获文件将在测试数据库上应用。

Page 39: A. Oracle 11g 新功能概要(70 页)

39/60

11g新功能-SQL Performance Analyzer

♠ SQL 性能分析器

♠ SQL Performance Analyzer (SPA) 性能分析器,简称SPA

♠ SPA可播放特定的 SQL或整个的 SQL 负载等

♠ Select语句不使用索引问题:

♠ 将 optimizer_index_cost_adj 参数的值由默认的 100

该小些,如10;但是可能带来另外的问题;

♠ 修改这个参数带来的问题可通过SPA来确定

Page 40: A. Oracle 11g 新功能概要(70 页)

40/60

11g新功能-SQL Access Advisor

♠ SQL Access Advisor

♠ 10g版本可以分析索引、物化视图等

♠ 11g 中的 SQL Access Advisor 还可以分析表和查询以识别可能的分区策略 — 这在设计最佳模式时可以提供很大帮助

♠ 11g 中,SQL Access Advisor 现在可以提供与整个负载相关的建议,包括考虑创建成本和维护访问结构。

♠ SQL Access Advisor 用法:

♠ 在OEM中使用:…单击Advisor Central;

♠ 可通过内置包来使用

Page 41: A. Oracle 11g 新功能概要(70 页)

41/60

11g新功能-新进程

♠ 11g 新增加一组进程

♠ 11g 中除了原来的必须的进程外,还增加下面的进程:

进程 名称 描述

ACMS 内存服务器原子控

制文件

仅适用于 RAC 实例中。执行分布式 SGA 更新

时,ACMS 可确保在所有实例上发生更新。如果某

个实例上的更新失败,此进程也会在所有实例上回

滚更新。可将 ACMS 视为两阶段提交协调器进程,

用于 RAC 集群中的 SGA 更新。

DBRM 数据库资源管理

执行资源规划和其他与资源管理器相关的任务

DIA0 诊断进程 0 检测挂起情况和死锁。将来可能会引入多个进程,

因此将名称设置为 diag0。将来如果引入其他进程,

将分别命名为 dia1、dia2 等。

Page 42: A. Oracle 11g 新功能概要(70 页)

42/60

内容提要

♠ 11g 淘汰的功能与产品

♠ 11g 安装与升级

♠ 11g 产品新功能

♠ 11g 管理新功能

♠ 11g 新实用程序

♠ 参考资源

Page 43: A. Oracle 11g 新功能概要(70 页)

43/60

11g新功能-expdp新功能

♠ Expdp实用程序是10g 推出的导出/导入工具:

♠ 只能在10g 及以上版本运行

♠ 替代原来 exp/imp 工具

♠ 速度比exp/imp快

♠ Expdp实用程序在11g 新一些参数:

♠ 压缩

♠ 加密

♠ 映射

Page 44: A. Oracle 11g 新功能概要(70 页)

44/60

11g新功能-expdp新功能

♠ Expdp 压缩功能:

♠ 从Oracle 10.2 可是带压缩

♠ 11g 增强压缩功能

♠ COMPRESSION=ALL

♠ COMPRESSION=DATA_ONLY

♠ COMPRESSION=METADATA_ONLY

♠ COMPRESSION=NONE

expdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr_comp.dmp

COMPRESSION=METADATA_ONLY

Page 45: A. Oracle 11g 新功能概要(70 页)

45/60

11g新功能-expdp新功能 ♠ Expdp 加密功能:

♠ 从Oracle 10.2 可在export/import加密

♠ 11g 提供3种加密方法: ♠ Transparent encryption employing the Oracle Wallet

♠ Password-based encryption

♠ Dual mode (combines above two)

♠ Expdp 加密参数:

♠ ALL enables encryption for all data and metadata in the export operation

♠ DATA_ONLY specifies that only data is written to the dump file set in encrypted format

♠ ENCRYPTED_COLUMNS_ONLY specifies that only encrypted columns are written to the

♠ dump file set in encrypted format

♠ METADATA_ONLY specifies that only metadata is written to the dump file set in encrypted

♠ format .

♠ NONE disables compression for the entire export operation

expdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr_enc.dmp

JOB_NAME=enc1

ENCRYPTION=data_only ENCRYPTION_PASSWORD=foobar

Page 46: A. Oracle 11g 新功能概要(70 页)

46/60

11g新功能-expdp新功能

♠ Expdp Remap_Table功能:

♠ 11g 可在IMPDP中利用REMAP_TABLE将导入表重新映射到T_NEW表中

impdp hr DIRECTORY=dpump_dir1

DUMPFILE=expschema.dmp

TABLES=hr.employees REMAP_TABLE=hr.employees:emps

Page 47: A. Oracle 11g 新功能概要(70 页)

47/60

11g新功能-expdp新功能

♠ Expdp Remap_Tablespace功能:

♠ 11g 可在IMPDP中利用REMAP_TABLESPACE将导入表空间重新映射到新的表空间中

impdp hr REMAP_TABLESPACE=tbs_1:tbs_6

DIRECTORY=dpump_dir1

DUMPFILE=employees.dmp

Page 48: A. Oracle 11g 新功能概要(70 页)

48/60

11g 新功能-自动诊断库

♠ Automatic Diagnostic Repository (ADR)

♠旧版本使用下面路径存储相关文件:

♠ User_dump_dest

♠ Background_dump_dest

♠ Core_dump_dest

♠ 11g版本使用下面路径存储相关文件:

♠ $ORACLE_BASE/diag/{product}/{database}/{instan

ce}

♠例如:/u01/app/oracle/diag/rdbms/orcl/orcl

Page 49: A. Oracle 11g 新功能概要(70 页)

49/60

11g 新功能-自动诊断库

♠ Automatic Diagnostic Repository (ADR)

♠ ADR使用的路径结构

Page 50: A. Oracle 11g 新功能概要(70 页)

50/60

11g 新功能-自动诊断库

♠ ADR使用V$DIAG_INFO(新视图)

♠ 日志文件可以XML格式

♠ 查询日志路径

SQL> select * from v$diag_info;

INST_ID NAME VALUE

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

1 Diag Enabled TRUE

1 ADR Base C:\ORACLE\PRODUCT

1 ADR Home

C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\rob11gr4

Page 51: A. Oracle 11g 新功能概要(70 页)

51/60

11g 新功能-自动诊断库

♠ ADR与相关路径文件

♠ 各种日志文件与路径

Page 52: A. Oracle 11g 新功能概要(70 页)

52/60

11g 新功能-ADRCI

♠ ADR对应新的工具

♠ 实用程序ADRCI是 ADR Command line utility

C:\oracle\product\11gBetaR4\db_01\NETWORK\ADMIN>adrci

adrci>>show alert -tail

ADR Home = C:\oracle\product\diag\rdbms\rob11gr4\rob11gr4:

************************************************************2007-06-02

00:42:47.398000 -06:00

Logminer Bld: Lockdown Complete. DB_TXN_SCN is

UnwindToSCN (LockdownSCN) is 1832443

2007-06-02 00:42:48.929000 -06:00

db_recovery_file_dest_size of 2048 MB is 83.44% used. This is a

user-specified limit on the amount of space that will be used by this

database for recovery-related files, and does not reflect the amount of

space available in the underlying filesystem or ASM diskgroup.

2007-06-02 00:43:45.586000 -06:00

Page 53: A. Oracle 11g 新功能概要(70 页)

53/60

11g 新功能-ADRCI

♠ ADR对于新的工具

♠ 实用程序ADRCI用法:

adrci> command

adrci> help

--

adrci> help show tracefile

adrci> set homepath /diag/rdbms/orclbi/orclbi2

adrci> show homes

ADR Homes: /diag/rdbms/orclbi/orclbi2

Page 54: A. Oracle 11g 新功能概要(70 页)

54/60

11g 新功能-ADRCI

♠ ADR对于新的工具

♠ 实用程序ADRCI用法:

adrci> command

adrci> SHOW ALERT –TAIL

adrci> SHOW ALERT -TAIL 50

--查看跟踪文件:

adrci>SHOW TRACEFILE

adrci> SHOW TRACEFILE %mmon%

Page 55: A. Oracle 11g 新功能概要(70 页)

55/60

11g 新功能-ADR相关包

♠ ADR对应内置包

♠ ADR内置包是DBMS_HM:

BEGIN DBMS_HM.RUN_CHECK('Dictionary Integrity Check',

'my_run'); END;

Page 56: A. Oracle 11g 新功能概要(70 页)

56/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包用于比较两个对象的差异

♠ DBMS_COMPARISON内置包使用步骤:

♠ Create_comparison

♠ Execute compare

♠ Analyze differences

♠ Converge objects

Page 57: A. Oracle 11g 新功能概要(70 页)

57/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 1.Create_comparison

BEGIN

DBMS_COMPARISON.CREATE_COMPARISON

( comparison_name => ‘compare_emp_and_clone’

, schema_name => ’scott’

, object_name => ‘emp’

, dblink_name => null

, remote_schema_name=>’scott’

, remote_object_name=>’EMP_COPY’

);

END;

Page 58: A. Oracle 11g 新功能概要(70 页)

58/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 2. Execute Compare

DECLARE

consistent BOOLEAN;

scan_info DBMS_COMPARISON.COMPARISON_TYPE;

BEGIN

consistent := DBMS_COMPARISON.COMPARE

( comparison_name => ‘compare_emp_and_clone’

, scan_info => scan_info

, perform_row_dif => TRUE

);

DBMS_OUTPUT.PUT_LINE(’Scan ID: ‘||scan_info.scan_id);

IF consistent=TRUE THEN

DBMS_OUTPUT.PUT_LINE(’No differences were found.’);

ELSE

DBMS_OUTPUT.PUT_LINE(’Differences were found.’);

END IF;

END;

Scan ID: 79

Differences were found.

PL/SQL procedure successfully completed.

Page 59: A. Oracle 11g 新功能概要(70 页)

59/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 3. Analyze Differences

SELECT s.scan_id

, c.COMPARISON_NAME

, c.SCHEMA_NAME

, c.OBJECT_NAME

, s.CURRENT_DIF_COUNT

FROM USER_COMPARISON c

, USER_COMPARISON_SCAN_SUMMARY s

WHERE c.COMPARISON_NAME = s.COMPARISON_NAME

AND s.scan_id = 79

SCAN_ID Comparison Schema Object Diff

Name Name Name

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

79 COMPARE_EMP_AND_CLONE SCOTT EMP 10

Page 60: A. Oracle 11g 新功能概要(70 页)

60/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 3. Analyze Differences(part1)

SELECT c.COLUMN_NAME

, r.INDEX_VALUE

, case

when r.LOCAL_ROWID is null

then ‘No’

else ‘Yes’

end LOCAL_ROWID

, case

when r.REMOTE_ROWID is null

then ‘No’

else ‘Yes’

end REMOTE_ROWID

FROM USER_COMPARISON_COLUMNS c

, USER_COMPARISON_ROW_DIF r

, USER_COMPARISON_SCAN s

Page 61: A. Oracle 11g 新功能概要(70 页)

61/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 3. Analyze Differences(part2)

WHERE c.COMPARISON_NAME = ‘COMPARE_EMP_AND_CLONE’

AND r.SCAN_ID = s.SCAN_ID

AND s.last_update_time > systimestamp - 1/24/15

AND r.STATUS = ‘DIF’

AND c.INDEX_COLUMN = ‘Y’

AND c.COMPARISON_NAME = r.COMPARISON_NAME

ORDER

BY r.INDEX_VALUE

Page 62: A. Oracle 11g 新功能概要(70 页)

62/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 3. Analyze Differences(part3)

Index Column Index Value Local Row Exists? Remote Row Exists?

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

EMPNO 1313 No Yes

EMPNO 7369 Yes Yes

EMPNO 7499 Yes Yes

EMPNO 7521 Yes Yes

EMPNO 7654 Yes Yes

EMPNO 7788 Yes No

EMPNO 7876 Yes Yes

EMPNO 7900 Yes Yes

EMPNO 7902 Yes No

EMPNO 7934 Yes Yes

10 rows selected.a

Page 63: A. Oracle 11g 新功能概要(70 页)

63/60

11g 新功能-比较包

♠ DBMS_COMPARISON内置包样例

♠ 4. Converge (会合)

DECLARE

scan_info DBMS_COMPARISON.COMPARISON_TYPE;

BEGIN

DBMS_COMPARISON.CONVERGE

( comparison_name => ‘compare_emp_and_clone’

, scan_id => 79

, scan_info => scan_info

, converge_options => DBMS_COMPARISON.CMP_CONVERGE_LOCAL_WINS

);

DBMS_OUTPUT.PUT_LINE(’Local Rows Merged: ‘||scan_info.loc_rows_merged);

DBMS_OUTPUT.PUT_LINE(’Remote Rows Merged: ‘||scan_info.rmt_rows_merged);

DBMS_OUTPUT.PUT_LINE(’Local Rows Deleted: ‘||scan_info.loc_rows_deleted);

DBMS_OUTPUT.PUT_LINE(’Remote Rows Deleted: ‘||scan_info.rmt_rows_deleted);

END;

Local Rows Merged: 0

Remote Rows Merged: 9

Local Rows Deleted: 0

Remote Rows Deleted: 1

PL/SQL procedure successfully completed.

Page 64: A. Oracle 11g 新功能概要(70 页)

64/60

11g 新功能-查询重写包

♠ DBMS_ADVANCED_REWRITE包语法

♠ 这个包的语法:

dbms_advanced_rewrite.declare_rewrite_equivalence (

name VARCHAR2,

source_stmt VARCHAR2,

destination_stmt VARCHAR2,

validate BOOLEAN := TRUE,

mode VARCHAR2 := 'TEXT_MATCH');

Page 65: A. Oracle 11g 新功能概要(70 页)

65/60

11g 新功能-查询重写包

♠ DBMS_ADVANCED_REWRITE包样例

♠ 样例:

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 66: A. Oracle 11g 新功能概要(70 页)

66/60

DBMS_FLASHBACK.TRANSACTION_BAC

KOUT

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 67: A. Oracle 11g 新功能概要(70 页)

67/60

DBMS_PCLXUTIL

dbms_pclxutil.build_part_index ( jobs_per_batch IN NUMBER DEFAULT 1, procs_per_job IN NUMBER DEFAULT 1, tab_name IN VARCHAR2 DEFAULT NULL, idx_name IN VARCHAR2 DEFAULT NULL, force_opt IN BOOLEAN DEFAULT FALSE);

CREATE INDEX ix_prof_hist ON prof_hist(prof_history_id) LOCAL UNUSABLE; exec dbms_pclxutil.build_part_index(3,1,'PROF_HIST', 'IX_PROF_HIST', TRUE);

Page 68: A. Oracle 11g 新功能概要(70 页)

68/60

DBMS_REDEFINITION

ABORT_REDEF_TABLE

CAN_REDEF_TABLE

COPY_TABLE_DEPENDENTS

FINISH_REDEF_TABLE

REGISTER_DEPENDENT_OBJECTS

START_REDEF_TABLE

SYNC_INTERIM_TABLE

UNREGISTER_DEPENDENT_OBJECT

Page 69: A. Oracle 11g 新功能概要(70 页)

69/60

DBMS_SPACE

ASA_RECOMMENDATIONS (auto seg advisor)

CREATE_INDEX_COST

CREATE_TABLE_COST

FREE_BLOCKS

ISDATAFILEDROPABLE_NAME

OBJECT_DEPENDENT_SEGMENTS

OBJECT_GROWTH_TREND

OBJECT_SPACE_USAGE

UNUSED_SPACE

VERIFY_SHRINK_CANDIDATE

... AND MORE...

Page 70: A. Oracle 11g 新功能概要(70 页)

70/60

升级11g 建议

♠ 升级的必要性

♠ 考虑Oracle的技术支持问题