11.2.0.4 Patch Set – Availability and Known Issues

Known Issues specific to the 11.2.0.4 Patch Set

11.2.0.4 is in Free Extended Support since 1-Feb-2015.
See Note:1067455.1 for details.
Patch Sets 11.2.0.2 and higher are supplied as full releases.
See Note:1189783.1 for details.
  • See Note:880782.1 for Support Status and Alerts affecting 11.2.0 releases.

This note lists known install / alert issues specific to the 11.2.0.4 Patch Set.
It should be read in conjunction with the platform specific Patch Set release note (sometimes referred to as the README).This note includes details of:

  • Generic comments not included in the Patch Set READMEs
  • Known install issues specific to 11.2.0.4, both generic and port specific
  • Bugs introduced in 11.2.0.4 (which do not affect 11.2.0.3)
  • Alerted issues which affect 11.2.0.4
  • Availability details for 11.2.0.4 by platform

This note does NOT list ALL issues which affect this Patch Set.
To get an indication of other issues known to affect this release you can search My Oracle Support for “Patches” which exist for your platform / release.

11.2.0.4 README Additions

These are additions to the Patch Set README which are not documented in seperate notes. Links to the most recent versions of the “Patch Set Notes” (READMEs) for each platform are included in the Availability section below.

  • Changes between Patch Sets
      Please be aware that any given Patch Set can have slightly different structure sizes compared to your current installation and can include optimizer changes. Hence is it advisable to review any parameter settings which are close to their limit and check execution plans and resource usage of any critical SQL.
  • Composite Patches
      11.2.0.4 supports Composite Patches . This patching method can reduce the need to obtain replacement overlay patches when a new Patch Set Update is installed. Please see Note:1376691.1 for details of composite patches.

Latest Critical Patch Update

For information about Critical Patch Updates see the Oracle Technology Network page “Critical Patch Updates and Security Alerts“. Note that for Database, Critical Patch Updates are a subset of each Patch Set Update. The latest Patch Set Update for this release is listed in the next section. For further information about Patch Set Updates see Note:854428.1.

Document Summary
Being Written ORA-28000 “the account is locked” attempting to log in as a remote SYSDBA user if SYS account is locked
Note:467881.1 Critical Patch Update Advisory (Jul 2015)
Note:2005667.1 Critical Patch Update Availability for Database Products (Jul 2015)

 

Current Recommended Patches

For information about Recommended Patches for the RDBMS see Note:756671.1 .

Patch Set Updates

Document Description Rolling RAC Patch Download
Note:21150851.8 Combo of 11.2.0.4.4 OJVM PSU and 11.2.0.4.7 DB PSU (Jul 2015) Part Patch:21150851
Note:21068539.8 Oracle JavaVM Component 11.2.0.4.4 Database PSU (Jul 2015) (OJVM PSU) No Patch:21068539
Note:20760982.8 11.2.0.4.7 (Jul 2015) Database Patch Set Update (DB PSU) Yes Patch:20760982
Note:19852360.8 Oracle JavaVM Component 11.2.0.4.1 Database PSU – Generic JDBC Patch (Oct 2014) Yes Patch:19852360

Grid Infrastructure

Document Description Rolling RAC Patch Download
Note:21150864.8 Combo of 11.2.0.4.4 OJVM PSU and 11.2.0.4.7 GI PSU (Jul 2015) Part Patch:21150864
Note:20996923.8 11.2.0.4.7 (Jul 2015) Grid Infrastructure Patch Set Update (GI PSU) Yes Patch:20996923
Note:19852360.8 Oracle JavaVM Component 11.2.0.4.1 Database PSU – Generic JDBC Patch (Oct 2014) Yes Patch:19852360

Exadata

Document Description Rolling RAC Patch Download
Note:888828.1 Recommended Patch Information for Exadata Database Machine and Exadata Storage Server

Miscellaneous Fixes

Document Description Rolling RAC Patch Download
Note:20208022.8 AIX: 11.2.0.4 N-apply patch for critcal AIX fixes – Bundle #1 Yes Patch:20208022

11.2.0.4 Alerts / Issues

This section lists alerts and important issues relevant to 11.2.0.4 .

General Alerts / Issues

Bug/Doc Fixed in PSU/Bundle Description Updated
Note:1935285.1P* 11.2.0.4.9 Windows Bundle Re-Uploaded (downloads prior to 14th October 2014 are bad) 20/Oct/2014
Note:1608167.1*D ORA-1555 / ORA-600 [ktbdchk1: bad dscn] ORA-600 [2663] in Physical Standby after switch-over – superseded 07/Jul/2015
18310722*E Prevent same file usage in same ASM DISKGROUP with OMF and LOG/DB_FILE_NAME_CONVERT which may cause LOST WRITE / stale block errors in a Physical Standby configuration – superseded 09/Jul/2015
20144308+ ORA-27086 or ORA-1182 RMAN May Overwrite a SOURCE Database File during TTS, TSPITR, etc when OMF is used in SOURCE. ORA-1578 ORA-1122 in SOURCE afterwards 14/Jul/2015
20208022PM AIX: 11.2.0.4 N-apply patch for critcal AIX fixes – Bundle #1 15/Jun/2015
19296555+ 11.2.0.4.BP12 Query with simple select predicates returns wrong results in mixed Exadata 18/Dec/2014
18304693+ 11.2.0.4.BP12 Suboptimal higher cost plan chosen for Cost-Based Query Transformation – superseded 19/Jul/2015
10194190P+ 11.2.0.4.BP09 Solaris: Process spin and/or ASM and DB crash if RAC instance up for > 248 days 11/Aug/2014
Note 1944645.1* 11.2.0.4.6 ORA-600 [kdblkcheckerror]..[6266] corruption with self-referenced chained row. ORA-600 [kdsgrp1] / Wrong Results / ORA-8102 14/Jul/2015
18508861+ 11.2.0.4.5 Create datafile on RAW can produce a corrupt file header / causes ORA-17515 and crash in 11.2.0.4 19/Jan/2015
17761775+ 11.2.0.4.2 ORA-600 [kclchkblkdma_3] ORA-600 [3020] or ORA-600 [kcbchg1_16] Join of temp and permanent table in RAC might lead to corruption – superseded 11/Sep/2014
17752121+E 11.2.0.4.2 ORA-600 [kclchkblkdma_3] ORA-600 [3020] RAC diagnostic/fix to avoid a block being modified in Shared Mode and prevent corruption – Superseded 01/Jun/2015

Upgrade Issues

Bug/Doc Fixed in PSU/Bundle Description Updated
18255105 11.2.0.4.BP16 Patch for upgrade scripts to identify histograms affected by fix of bug 15898932 12/Apr/2015
19291380 11.2.0.4.BP15 ORA-38802/ORA-38803/ORA-38804 from CREATE EDITION or SET EDITION during upgrade 14/Apr/2015
19513710 11.2.0.4.BP08 kfdx.o is missing from 11.2.0.4 Exadata bundle 7 / ORA-7445 [kfdxwork] 11/Dec/2014
17501491 11.2.0.4.1 ODM API version is not correct for odm_mkdir call in 11.2.0.4 – superseded 14/Jul/2014

 

Notable fixes included in 11.2.0.4

This section lists fixes / enhancements in 11.2.0.4 which may cause a notable change in behaviour.

19191702C Proxy user database link fails with ORA-01017 / ORA-02063 in 11.2.0.4 and above – event to allow old behaviour
13543207EC Allow Partial Filter push down on UNION ALL View – superseded
13502700C OS audit file naming algorithm can be slow

 

Issues introduced in 11.2.0.4

This section lists bugs introduced in 11.2.0.4 (if any). Such issues may be either serious or trivial but the aim is to list them all to help customers assess the risk of applying the Patch Set on top of 11.2.0.3

Bug/Doc Fixed in PSU/Bundle Description Updated
20951038 SGA memory corruption with audRegFailedObj() on the stack 14/Jul/2015
20879889 Open cursor leak from DML on table with a materialized view log 16/Apr/2015
20675347P AIX: ORA-7445 [kghstack_overflow_internal] or ORA-600 [kghstack_underflow_internal_2] in 11.2.0.4 on IBM AIX 30/Apr/2015
20324808 Wrong Results for Hash Join With Subquery Pruning on CHAR Columns 19/Feb/2015
20173686D Slow parsing with Fix for bug 12433153 enabled 02/Jul/2015
20047253 ORA-7445 [jom_check_package_access] after upgrade to 11.2.0.4 14/Jul/2015
19978292 ORA-7445 under kauxalo() when running MERGE using table/view with XMLtype column 13/Dec/2014
19791273 Poor UPDATE SQL performance due to space search cache for updates on ASSM segment 12/Apr/2015
19689979 ORA-8103 or ORA-600 [ktecgsc:kcbz_objdchk] or Wrong Results on PARTITION table after TRUNCATE in 11.2.0.4 or above 14/Jul/2015
19626063 ORA-7445 [kkdcgcr] in RAC with fix 13916228 20/Apr/2015
19576559 Wrong results from Join Predicate Pushdown 18/Jan/2015
19487518 ORA-600 [qccprg:ocistmtprepare2] [1031] from CDC Purge 05/Nov/2014
19487099P AIX: ORA-17503 and ORA-17515 when upgrading and using raw devices 17/Sep/2014
19277582 Logminer hangs on IOT when specifying COMMITTED_DATA_ONLY 12/Nov/2014
19161509P Windows: dNFS operations takes longer on 11.2.0.4 than on 11.2.0.3 18/Jan/2015
19055321 dump on koksiop using anydata datatype, group by cube and fix for bug 13687104 present 14/Jul/2015
18881811 Data pump import of wrapped PLSQL corrupts the body 12/Apr/2015
18876528 Overestimated Cardinality With Star Transformation And Bug Fix 13076238 present 15/Jun/2015
18779636 Wrong results from SQL with a subquery in a DECODE expression 31/Oct/2014
18759589 ORA-22 on Shared Database Link after upgrade to 11.2.0.4 or 12.1 20/Apr/2015
18748254 ORA-600 [qkeAddDependentExpr:2] or dump under koksOpnRsltNotPQable() / qknLazOpn() 11/Aug/2014
18671497 Spin during parse in 11.2.0.4 with fix 15996156 enabled 12/Nov/2014
18644187 Correlated set subquery not unnested with fix for 16765564 – superseded 04/Nov/2014
18559920 Wrong results from XMLtype virtual column 16/Jun/2014
18458318 Low quality font image file created using stored Java after upgrade to 11.2.0.4 23/Apr/2014
18455956 RMAN “restore primary controlfile” doesn’t convert role of controlfile 23/May/2014
18421653 Suboptimal XQuery performance (Unoptimized XML construct detected) 16/Jun/2014
18353141 Wrong result from analytical query with NLS_SORT set 14/Jul/2015
18166577 Java stored procedure fails with ORA-29532 in 11.2.0.4/12.1.0.1 30/May/2014
18141472 Session spin in/under kksObsoleteCursor can cause “library cache lock” waits and/or ORA-4021 10/Mar/2014
18115594 Suboptimal plan due to lack of semi-join elimination with fix 13704562 present – superseded 05/Nov/2014
18101696 Database Resource Manager Crashes Standby Instance with ORA-1489 After Turning Apply On 04/Mar/2015
18045331 ORA-7445 [atbepucs] during exchange partition 15/Jun/2015
17956707 ORA-904 executing SQL over a database link 19/Mar/2015
17897511 ORA-1000 from query on DBA_TABLESPACE_USAGE_METRICS after upgrade to 11.2.0.4 – superseded 11/Sep/2014
17852660 ORA-907 using indicator variables with CURSOR_SHARING if fix 14053457 present 03/Apr/2014
17732353 ORA-28000 “the account is locked” attempting to log in as a remote SYSDBA user if SYS account is locked 15/Jun/2015
17654904 ORA-7445 [kauxalo] from EXPLAIN of an INSERT with XDB 03/Apr/2014
17564984 Java stored procedure fails to compile when enum classes are used 30/May/2014
17551261 ORA-904 “from$_subquery$_003”.<column_name> with query rewrite 17/Jun/2015
17158897 Linux x86-64: Slow read performance with direct NFS 01/Jun/2015
14772891 Increased CPU use using Adaptive Cursor Sharing in 11.2.0.4 25/Nov/2014
14033503 Excessive shared pool memory consumption when using Adaptive Cursor Sharing in 11.2.0.4 25/Nov/2014
18255105I 11.2.0.4.BP16 Patch for upgrade scripts to identify histograms affected by fix of bug 15898932 12/Apr/2015
18940497 11.2.0.4.BP13 ORA-600 [6856] or ORA-600 [kdblkcheckerror] [6126] by UPDATE on COMPRESS table with chained rows 14/Apr/2015
18417036 11.2.0.4.BP13 insert /*+append*/ produce wrong results after upgrade to 11.2.0.4 14/Apr/2015
19174639 11.2.0.4.BP12 Plan regression in 11.2.0.4 – OJPPD not occurring when expected 14/Jul/2015
18665660 11.2.0.4.BP12 High child cursor counts due to OPTIMIZER_MISMATCH with Optimizer_features_enable=9.2.0 10/Dec/2014
17564992 11.2.0.4.BP12 Wrong results with fix for bug 12999577 present 08/Feb/2015
17328159 11.2.0.4.BP12 ORA-600 [16609] with fix for bug 13622515 present 08/Feb/2015
18317074 11.2.0.4.BP11 Query fails with ORA-600[xtydty2ldi] using function based index 08/Feb/2015
16199543 11.2.0.4.BP10 Incorrect WSDL generated forDBMS_XDB.EXISTRESOUCE 08/Feb/2015
18418934 11.2.0.4.BP09 ORA-600 [kkqjpdpvpd: no join pred found.] from JPPD with window functions 12/Apr/2015
17501296 11.2.0.4.BP09 ORA-604 / PLS-306 attempting to delete rows from table with Text index after upgrade to 11.2.0.4 14/Jul/2015
18160822 11.2.0.4.BP06 ORA-4030 after upgrade to 11.2.0.4 – superseded 19/Mar/2015
18440047 11.2.0.4.7 ORA-600 [kglGetSO-null-parent] while invalidating objects in an Editioned database 23/Jul/2015
18856999 11.2.0.4.6 Wrong results (wrong cursor) with schema table masking public synonym 14/Apr/2015
18723434 11.2.0.4.6 DBA_TABLESPACE_USAGE_METRICS.tablespace_size can be incorrect for ASM tablespaces after applying 11.2.0.4 14/Apr/2015
18456514 11.2.0.4.6 ORA-12705 in Logical Standby database after upgrade to 11.2.0.4 14/Apr/2015
18384537 11.2.0.4.6 Process spin in opipls() / ORA-4030 for “kgh stack” memory 12/Apr/2015
18384391 11.2.0.4.6 Assorted ORA-600 errors possible with fix for bug 16402712 present 14/Apr/2015
18325460 11.2.0.4.6 EXEMPT ACCESS POLICY not working correctly in RAC 14/Apr/2015
18315328 11.2.0.4.5 ORA-1866 after upgrade to 11.2.0.4 08/Feb/2015
18973907 11.2.0.4.4 Memory corruption / various ORA-600/ORA-7445 using database links between 11.2.0.4/12.1.0.1 and earlier versions – superseded 10/Dec/2014
18230522 11.2.0.4.4 ORA-7445 [kkpamCheckTransJoin] from full partition-wise join on REFERENCE partitioned object 13/Oct/2014
18018515 11.2.0.4.3 High CPU in qctHasFakeBind (can cause ‘cursor: pin S wait on X’ waits) 28/Jul/2015
17397545 11.2.0.4.3 ORA-600 [kdtigetrow-2] / buffer cache errors from MERGE statement with LOG ERRORS INTO 22/Jun/2015
17614227 11.2.0.4.2 Exadata ASM rebalance takes a long time after flash failure / cell reboot 15/Jul/2014
17437634 11.2.0.4.2 ORA-1578 or ORA-600 [6856] transient in-memory corruption on TEMP segment during transaction recovery / ROLLBACK (eg: after Ctrl-C) 15/Jul/2014
17325413 11.2.0.4.2 Drop column with DEFAULT value and NOT NULL definition ends up with dropped column data hitting disk leading to corruption 28/Jul/2015
16180763 11.2.0.4.2 ORA-600 [pmuocons#9: unhandled type] in PLSQL with user defined objects 08/Feb/2015
17443671 11.2.0.4.1 Exadata block repair may invalidate cache lines 11/Feb/2014

11.2.0.4 Availability

The following 11.2.0.4 Patch Sets are currently available.
Note that any “Latest Readme” links here point to the latest Patch Set Notes for each platform which may contain information which is more recent than the Patch Set Notes downloaded with the Patch Set itself. Platform specific install / upgrade issues are listed under each heading but also see above for GENERIC issues.For unlisted platforms check Note:742060.1 for the Release Schedule.

In the table clicking on the hyperlinks beginning with “Patch” should take you directly to the relevant patch download page, clicking on the “ReadMe” link should take you directly to the latest version of the ReadMe for the Patch Set, and clicking on “Certification” shows certification information for the platform.

HP-UX PA-RISC 32-bit Client Certification
11.2.0.4 Patch 13390677 released 03-JAN-2014 ReadMe
HP-UX PA-RISC (64-bit Oracle) Certification
11.2.0.4 Patch 13390677 released 03-JAN-2014 ReadMe
HPUX Itanium 32-bit Client Certification
11.2.0.4 Patch 13390677 released 10-OCT-2013 ReadMe
HPUX Itanium 64-bit Certification
11.2.0.4 Patch 13390677 released 10-OCT-2013 ReadMe
IBM AIX Based Systems 32-bit Client Certification
11.2.0.4 Patch 13390677 released 10-OCT-2013 ReadMe
IBM AIX Based Systems (64-bit) Certification
11.2.0.4 Patch 13390677 released 10-OCT-2013 ReadMe
19487099P AIX: ORA-17503 and ORA-17515 when upgrading and using raw devices
20208022PM AIX: 11.2.0.4 N-apply patch for critcal AIX fixes – Bundle #1
20675347P AIX: ORA-7445 [kghstack_overflow_internal] or ORA-600 [kghstack_underflow_internal_2] in 11.2.0.4 on IBM AIX
IBM Linux on System z (32-bit client)
11.2.0.4 Patch 13390677 released 09-JAN-2014 ReadMe
IBM Linux on System z (64-bit) Certification
11.2.0.4 Patch 13390677 released 09-JAN-2014 ReadMe
Linux Certification
11.2.0.4 Patch 13390677 released 28-AUG-2013 ReadMe
Linux x86-64 Certification
11.2.0.4 Patch 13390677 released 27-AUG-2013 ReadMe
Note:888828.1MP Recommended Patch Information for Exadata Database Machine and Exadata Storage Server
Oracle Solaris on x86 32-bit Client
11.2.0.4 Patch 13390677 released 29-AUG-2013 ReadMe
Oracle Solaris on x86-64 Certification
11.2.0.4 Patch 13390677 released 29-AUG-2013 ReadMe
Oracle Solaris on Sparc 32-bit Client Certification
11.2.0.4 Patch 13390677 released 29-AUG-2013 ReadMe
Oracle Solaris on Sparc 64-bit Certification
11.2.0.4 Patch 13390677 released 29-AUG-2013 ReadMe
Windows 32-bit Certification
11.X » Server Patches on Microsoft Platforms Note:161549.1
11.2.0.4 Patch 13390677 released 26-OCT-2013 ReadMe
Windows 64-bit (x86-64) Certification
11.X » Server Patches on Microsoft Platforms Note:161549.1
11.2.0.4 Patch 13390677 released 26-OCT-2013 ReadMe
19161509P Windows: dNFS operations takes longer on 11.2.0.4 than on 11.2.0.3
Note:1935285.1P* 11.2.0.4.9 Windows Bundle Re-Uploaded (downloads prior to 14th October 2014 are bad)

Symbols used in this document

In the lists above

  • ‘*’ indicates that an alert exists for that issue.
  • ‘+’ indicates a particularly notable issue / bug.
  • See Note:1944526.1 for details of other symbols used

Oracle 数据库保护之手_Maclean_Liu

session download here :https://www.askmac.cn/wp-content/uploads/2015/01/2014年Orcl-con_数据库保护之手_Maclean_Liu.pdf

 

 

Exadata的3D展示

Exadata的3D展示

 

Oracle Exadata Database Machine X5-2

 

 

 

Oracle Exadata Database Machine X4-8

 

Oracle Streams 10gR2 流复制操作手册

 

本文永久链接地址:https://www.askmac.cn/archives/oracle-streams-10gr2-%E6%B5%81%E5%A4%8D%E5%88%B6%E6%93%8D%E4%BD%9C%E6%89%8B%E5%86%8C.html

Oracle Streams 10gR2 流复制操作手册

介绍:

1.1简介

这个文档简单介绍了oracle stream 并且探讨了其技术构架和命名规则。

介绍了常见的监控和故障排除的脚本。

1.2 背景:

oracle streams 可以传递和管理数据,事务和事件存在一个数据库中的一个数据流里面,或者从一个数据库到另一个。这个流路径可以将信息传递到已知的目标端。这个解决方案是一个新的特性比传统的解决方案(捕获和管理事件,然后再共享这些事件到其他的数据库和应用。)功能更强大和更灵活。

1.3 范围和应用:

这篇文档将检查streams环境监控的步骤。这也包含进行问题处理和debug的存储过程和脚本。

1.4 相关的文档:

Streams Replication Administrator’s Guide

Streams Concepts and Administration

 

2综述:

oracle streams 是一个综合信息集成解决方案。它不仅提供细粒度的控制复制的方式而且可以让用户完全控制从主库到复制库的路径变化。它允许用户建立集中和辐射型的网络结构,并且能够支持多个复制库(askmac.cn)。

 

 

Oracle Streams 从在线日志(事务日志)里捕获数据库表的变化和记录复制的细节。有一个专门的UNIX进程(捕获进程),从重做日志中捕捉流特定变化和格式。每一个捕获做为一个事件,称为逻辑变更记录(LCR  logical change record)。

规则用于确定哪些更改可以被捕获进程捕获,然后被复制。

LCR 存储在 流队列中并且通过一个标准的数据库连接,传递到远程目标端。传递到远程目标端的LCRs存储在另一个队列中,等待 应用进程 去使用这些队列, 从而应用到目标数据库对应的表上。

高级流数据复制过程的示意图如下所示:

 

Oracle Streams 提供了3个基础元素来允许用户控制:放入流中的信息、流经过的节点的路由、流经过每个节点所发生的事件、如何终止流。

这个 oracle streams 的构架是非常灵活的。

如上图所示,流包含3个基本的元素:

1、捕获:

通过一个明确的API,来从重做日志或用户信息中捕捉DML或DDL事件。

2、暂留:

用来在2个数据库之间存储和传递事件(askmac.cn)。

 

3、应用:

通过一个明确的API,在目标数据库或应用程序上应用DML或DDL事件。

 

 

2.1捕获

oracle stream 支持捕获事件(数据库的变化和应用程式生成的消息)到暂留区域中

这些事件在2个方面被捕获。隐式的捕获是服务在源数据上捕获DML和DDL 事件。

显式捕获允许应用程序显式地生成事件,并放置它们到暂留区域。

在隐式捕获中,捕获进程从日志文件中提取和检索变化的数据,或者从当前的联机日志文件中提取,如果必要的话还可以从归档中提取。在检索数据之后,抽取进程固定将格式固定到LCR中,并将其放置到暂留区域等待进一步处理。捕获进程能够智能地,以定义好的规则来过滤LRCs。因此,只有那些被需求的对象的改变被捕获。

用户的应用程序可以显示的将用户消息,用事件的形式展现在暂留区域中。这些消息可以以LCRs格式化,

而后被应用引擎所使用,或被其他的用户进程格式化后使用。

 

2.2 暂留

一旦事件被捕获,将被放置到暂留区域中。这个区域是提供了一个队列服务,用来存储和管理捕获到的事件。其提供一个影藏的安全区域,用来审计和追踪LCR中的数据。

使用者检查暂留区域的内容,并确定是否有他们所需求的事件。一个使用者可以是自定义的引用进程、其他的暂留区域(通常在一个不同的系统上)、默认的应用程序(askmac.cn)。

传递

如果使用者是另一个暂留区,在合适的时候,这些事件被传递到另外的暂留区中,无论是相同的数据库或者远程数据库。为了简化网络拓扑和减少带宽消耗,事件不需要发送到所有的数据库和应用上。当然啦,它们可以直接通过1个或多个系统上的暂留区来到达目标系统。例如,一个事件可能通过一个中心数据库传递,但是这个数据库并不应用此事件。一个单独的暂留区域可以存储多个数据库上的事件,从而简化安装和配置。

 

2.3 应用

暂留区域的事件被应用引擎所使用,在那些变化的地方,被数据库或其他的应用程序应用。oracle 流有一个灵活的应用引擎,运行用户使用标准的或者自定义的功能。它允许在必要的时候进行数据转换。提供一个明确的队列给应用开发人员使用,来让oracle stream 知道应用上的变化数据,而且也可以利用上Oracle Streams的变化捕获和传递的特性。

默认的应用

默认的应用引擎,以DML和DDL变化的形式,来应用那些显式或隐式捕获到的LCRs。

默认的应用引擎会自动检测冲突,例如目标端行记录已经发生了改变,行记录里面没有预期的值。如果检测到了冲突,那么有一些常规的解决方案可以调用。

用户自定义的应用函数

应用引擎可以将LCRS或者用户消息 发到一个用户自定义的函数上。这样在处理事件的时候就更为的灵活了。

一个典型应用中的自定义函数,可以在应用到本地表之前,以LCR的形式来重新格式化数据。例如:字段格式、对象名、字段名的映射转换,或者用来更新那些 源数据库中可能不存在的对象。

显示的队列

用户应用可以显示的从暂留区域中声明一个 LCRs或者用户消息的队列。这个队列运行用户可以高效的访问 stream中暂留区的数据。streams 可以将消息发送给那些注册过的PL/SQL 或OCI函数,此时应用程序多出一个轮询新消息的选择。当然应用程序可以轮询或者等待目标消息在暂留区中变的可用。

 

2.4规则

streams 运行用户使用特定的规则,来控制信息的共享和发送。在最高的级别上,用户可以显示的在表,方案或者全局(数据库)层面定义哪些变化需要捕获、传递和应用。

在更复杂的需求中,例如:在给定的位置应用特定的数据子集,用户可以定义一个规则就类似在sql查询中的where条件一样。在必要的时候,规则可以存放到一起形成一个规则集合。

 

2.5 转换

转换是一种对象形式在抓取和应用中的变化,或者持有数据的改变。

转换可以包含表中特定位置字段的数据类型的变化,在一个指定的位置增加一个表的字段,或者在一个特别的位置包含一个表的数据子集。

一个转换可以在入队之前被指定,用来在插入到暂留区之前,将消息转化成正确的类型。它也可以在传递的时候指定,在发送到远端地点之前用来构造数据子集。最后,它也可以在出队或者本地应用的时候被指定,

用适当地方式,格式化消息到指定位置。

 

2.6 管理性

有几个工具可以用于配置、管理和监控一个流环境。主要的接口是一些 oracle 提供的 PL/SQL包。

为了帮助用户配置、管理和监控他们的流环境,oracle  在 Grid Control 中 提供了 流工具。用户可以用工具来生成,那些修改和配置流环境的脚本。此外,stream的数据字典视图也给用户提供了一些关于他们stream环境的信息。

Oracle Streams Commander (OSC) 也提供了一些关于特定流的指标。

3 准备

3.1

软件版本:

10gR2 推荐的Pacth 是10.2.0.3 (5337014) 可以参考Metalink 437838.1 来进行打 stream 的patch。自行确认补丁patch 是否被安装

10.2.0.3 上的补丁建议:

Bug Number      Description Comment
6081550   一个 10.2.0.3 Data Guard Logminer/Logical Standby 的跟踪bug 包含修复stream 捕获的bug
6081547 一个 10.2.0.3 Data Guard Physical Standby 的跟踪bug 包含bug5399901(归档日志可以会长时间搜索控制文件)
6267873 MLR关于Logmnr的bugs  6017440, 6067600,6064864  首先安装 6081550,然后移除6067600  再应用6267873
6043052          库缓存泄露导致的ORA-4031的bug
6375952  MLR关于Logmnr的bugs 6067611和 6163622  假设6081550 已经安装,移除MLR patch 6067611 然后应用6375952.6375952包含了
5093060 stream的bug:5000LCR的限制,在应用端引发多余的溢出控制

 

3.2 数据库参数:

以下参数是从10g 中抽出的一部分,stream最佳的实践文档可以在Metalink上找到。在配合了stream的数据库上确认参数是合适的。

设置SGA的自动管理,将SGA_TARGET设置为非0值。设置streams_pool_size=200M这样最小的流池为200m,而且会自动的根据工作负载来调整。

参数和建议 默认值 描述
_job_queue_interval=1 默认:5 工作队列的扫描时间间隔(秒)
aq_tm_processes 未设置 这个参数应该从init.ora移除,因为其是自动调整的。如果要设置,可以设置为1
COMPATIBLE = 10.2.0 默认:10.0.0范围:9.2.0-当前版本

不要修改

这个参数指定了数据库服务必须保持的兼容性。这样在不同兼容级别可以进行交互。在10g R1 中使用流技术,这个参数必须设置为10.1.0 或者更高。如果是10 R2 这个参数必须设置为 10.2.0或者更高

 

GLOBAL_NAMES =true 默认:false范围:ture 或者false

可修改

在使用DB link的时候是否需要设置名称和数据库名称一致。在是用stream在数据库之间共享信息的时候,所有参与到流环境的数据库的这个参数设置为true
JOB_QUEUE_PROCESSES=4 默认:0范围:0-1000

可修改

为每个实例指定 job进程的队列数(j000-j999)。job队列进程句柄由DBMS_JOB创建。在流环境的库中这个参数最小设置为2,表示同一时刻job能同时运行的数目为2
LOG_ARCHIVE_DEST_n 默认:无范围:无

可修改

定义最多10个的归档地址,n可以是1-10.如果这个数据库是源端并且有捕获进程,那么一个指定的归档地址必须被指定。

如果本地的捕获进程启用,则需要指定一个本地的路径去存储归档日志。

在下游的流使用捕获 ,要将日志文件通过日志传输服务传递到下游数据库中应用,最少有一个归档路径必须制定到有捕获进程的下游数据库中。

参考 Oracle Data Guard Concepts和Administration

LOG_ARCHIVE_DEST_STATE_n 默认:enable范围:alternate,reset,defer,enable

可修改

为响应的归档路径指定状态和LOG_ARCHIVE_DEST_n对应。确保在有捕获进程的下游数据库的归档路径状态是 enable
OPEN_LINKS          默认:4范围0-255

不要修改

指定在一个会话中并发连接远程数据库的最大数目。这些并发的连接包含DB link 和那些使用单独进程的外部存储过程、暗盒。

在stream中确保这个参数在4以上。

PARALLEL_MAX_SERVERS 默认值来自一下参数:CPU_COUNT

PARALLEL_ADAPTIVE

_MULTI_USER

PARALLEL_AUTOMAT

IC_TUNING

范围:0-3599

可以修改

指定实例在执行和恢复过程中的最大并发数。如果需要增加,oracle实例将在启动的时候从这里面的数值来增加进程。

在流环境中,每个捕获和应用进程可能使用并发服务。设置这个参数为合适的值来满足并发服务的需要。

PROCESSES 默认值:来源于PARALLEL_MAX_SERVERS

范围 6-操作系统上限

不要修改

指定操作系统用户可以同时连接到oracle的最大数。确保这个值能够运行所有的后天进程,比如:锁,job队列进程,并发服务进程。在流环境中,捕获和应用进程是使用的后台进程,传递任务是用的job队列进程。
REMOTE_ARCHIVE_ENABLE 默认:true范围:true 或false

不要修改

是否允许归档发送到远程目标端和接收远程发来的归档。在源端和下游使用了抓取服务的数据库上,这个参数都要设置为true
SESSIONS 默认: (1.1 * PROCESSES) + 5范围:1-231

不要修改

指定在系统中能被创建的最大的会话数。在流环境中要保证这个参数的值够用,一个后台进程需要一个会话。
SGA_MAX_SIZE 默认:在启动的时候初始化SGA

范围:0-操作系统限制

不要修改

指定数据库实例生存周期内的SGA最大值。一个数据库存在多个抓取进程,这个值需要大一些。
SGA_TARGET >0 默认:0(自动SGA管理关闭)范围:64-操作系统依赖

可以修改

指定SGA组件的总大小。如果这个参数设为非0值,那么流池将被ASMM管理。
SHARED_POOL_SIZE=0 默认:32位–32MB,64位-84MB范围:最小的粒度-操作系统限制

可修改

定义shared_poold的大小。其中包含了 共享游标,存储过程,控制类结构和其他结构。如果SGA_TARGET和STREAM_POOL_SIZE设置为0,那么将从buffer cache

中获取此参数的10%来作为流池的大小。

STREAMS_POOL_SIZE >200M 默认:0范围 0-操作系统依赖 指定流池的大小。流池包含缓冲队列消息.流池还用于并发捕获、应用时的内部通信。如果SGA_TARGET初始化参数设置为非0的值,那么流池的大小将被ASSM指定、STREAMS_POOL_SIZE指定一个最小的值

这个参数是和可变的值,如果这个值在数据库运行的时候减小到0,此时流进程和其job将无法运行。

你可以按下列因素来增加流池的大小:

每个并行的捕获进程10MB

每个消息队列缓冲区10MB或者更大。LCRS就存放在消息队列缓冲区中。

每个并行的应用进程1MB。

你可以参考v$streams_poll_advice 来给这个参数一个合适的值。

例如:假设捕获进程并行度设置为3,那么流池要增加30MB。假设应用进程并行度是5,那么流池要增加5MB。

 

TIMED_STATISTICS = FALSE 默认:如果STATISTICS_LEVEL设置为TYPICAL或者ALL则为true,否则为fasle。

STATISTICS_LEVEL默认值是TYPICAL

范围:true 或false

可修改

指定是否进行与时间的相关统计信息收集。如果设置为true ,就在流池的动态视图中收集运行时间的统计信息。那些包含运行时间信息的视图:

V$STREAMS_CAPTURE,

V$STREAMS_APPLY_COORDINATOR,

V$STREAMS_APPLY_READER,

V$STREAMS_APPLY_SERVER

UNDO_RETENTION 默认:900(s)范围:0-232-1 (32位的最大值)

可修改

指定以秒为单位的撤销信息保留在数据库中的时间。 

如果数据库运行1个或多个捕获进程,确保这个保留时间要足够长。如果你不确定的话,最少设置这个值为3600.如果出现ORA-1555快照太旧的错误,可以增加这个参数,指导错误消失。确保undo表空间足够大来适应此参数的设置。

3.3 网络连通性:

当使用WAN来传递流时,增加SDU(session data unit)来提高传输的性能。可以在sqlnet.ora中设置(参考:

Database Net Services Administrator’s Guide,http://docs.oracle.com/cd/B19306_01/network.102/b14212/performance.htm)

10g中最大值是32K。在网络传输中的SDU值由发送和接收端的连接来决定:最小的SDU值作用于2个端点间的任何单独的联系。为了提高stream在传递过程中的效率,接收端的sqlnet.ora必须包含default_sdu_size的参数。在发送端的tnsnames.ora中特定的连接服务中也要包含SDU的定义。
调整 TCP/IP 网络参数可以显著的提高WAN 中的性能。这个参数可能稍微有些不同,是依赖于操作系统的。在linux中可以如下设置到/etc/sysctl.conf中 sysctl -p 启用:

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

 

增加 TCP自动缓冲限制#最小,默认,最大字节数:

net.ipv4.tcp_rmem = 4096 87380 16777216

net.ipv4.tcp_wmem = 4096 65536 16777216

此外SEND_BUF_SIZE和RECV_BUF_SIZE 在sqlnet.ora中增大配置也能提高系统性能。

这些参数的大小就是发送和接收传递消息时使用的缓冲大小。这些参数最好在精细地分析系统影响后,再进行增加。
更多详细详细,可以回顾Oracle Net Services Guide

 

3.4权限:

为了创建捕获和应用进程,stream的管理者必须拥有DBA权限。这个权限必需在源端数据库和目标端数据库,显式的进行赋权:

grant dba to strmadmin;

此外,一些其他的权限需要通过GRANT_ADMIN_PRIVILEGE 过程来赋予。所有使用stream的数据库中stream管理员的方案(strmadmin)都要进行:

BEGIN

DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(‘STRMADMIN’);

END;

/
3.5 源端的配置:

下面建议适用于源端数据库,即那些有捕获进程的数据库。

3.5.1 强制日志模式

以效率为目的使用的nologging选项,可能加快一些数据库的数位。但是在流保护下的环境不适用。

从oracle 9.2开始,oracle 提供了一个参数来防止这些情况发生。这就是 forced logging。

在主库上用下列命令开启forced logging:

alter database force logging;

如果明确的知道在数据库层面开启forced logging,会导致太多的日志开销。你可以在其他粒度上开启force logging,如在表空间级别。

这个只指定具体应用的表空间,而并非影响全局:

alter tablespace <tablespace_name> force logging;

 

3.5.2 追加日志

在每个源端确认有附加日志。在 10R2中,在数据库对象准备被流进程捕获时,附加日志被自动配置在那些有主键、唯一约束、或外键定义上。

DBMS_STREAMS_ADM这个过程自动为本地捕获进程进行对象准备,用来维护streams和增加一些规则。

在下游捕获端(即那些有用捕获进程配置的其他数据库),这个远端日志产生的数据库必须为下游的捕获进程所需要的对象开启附加日志。

在oracle 10G R1 中,你必须开启附加日志,记录额外的数据到日志中来完成一些特定任务,例如解决冲突。至少,那些拥有主键的被复制的对象在流环境中需要开启附加日志。可以通过设置表上特定的列来附加,这提供了一种简单的设定键的方式。

 

附加日志会被自动开启,当源端表准备捕获的时候:

DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION
任何列中在转换中指定了规则或使用了DML操作的,在源端必须记录日志。这些附加的信息必须显式的用数据库管理员以下面的sql语法来指定:

ALTER TABLE… ADD SUPPLEMENTAL LOG… .

 

在数据库级别验证源端是否使用了附加日志:

SELECT supplemental_log_data_pk, supplemental_log_data_ui

FROM V$DATABASE;

在表级别验证:

SELECT supplemental_log_data_pk

, supplemental_log_data_ui

, supplemental_log_data_fk

FROM dba_capture_prepared_tables

UNION

SELECT supplemental_log_data_pk

, supplemental_log_data_ui

, supplemental_log_data_fk

FROM dba_capture_prepared_schemas

UNION

SELECT supplemental-log_data_pk

, supplemental_log_data_ui

, supplemental_log_data_fk

FROM dba_capture_prepared_database;
检查附加日志组:
SELECT log_group_name

, table_name

, decode(always, ‘ALWAYS’, ‘Unconditional’

, NULL , ‘Conditional’) ALWAYS

FROM DBA_LOG_GROUPS

 

检查在 附加日志组中的字段:

SELECT log_group_name

, column_name

, position

FROM dba_log_group_columns

WHERE table_name = ‘<table_name>’

AND owner=‘<owner>’;
3.5.3 归档必须被开启

源端和那些下游使用抓取进程的前段数据库都必须启用归档。

# Check Parameter log_archive_dest_<n>

# Check Parameter log_archive_dest_state_<n>

# Check Parameter log_archive_format

SHUTDOWN IMMEDIATE

STARTUP MOUNT

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;

# Check Archiving

ARCHIVE LOG LIST

 

3.5.4 数据库链接

流通过私有的DB link 经过标准的TNS别名连接到远程数据库。这个链接属于STRMADMIN,并且远程的用户名和密码也都是STRMADMIN的。这个STRMADMIN的密码在所有地方都是一样的。流不需要公共的DB link

CREATE DATABASE LINK <dblink>

CONNECT TO STRMADMIN identified by <PWD>

USING <TNS_qualifier>;

验证下列参数被正确的设置:

GLOBAL_NAME=true,TNS服务配置在TNSNAMES.ora中

 

验证dblink 的有效性:

SELECT global_name FROM global_name@<dblink>;

SELECT username FROM user_users@<dblink>;

 

3.5.5 实现心跳表

确保 DBA_CAPTURE中的 applied_scn 定期的更新,来实现一个心跳表。

心跳表适用于活动率很低的数据库。流的捕获进程会在每10MB的日志生产之后请求一个检查点。在检查点的过程中,stream会进行元数据的更新维护,如果里面有活动的事物。实现一个心跳表可以确保那些事物经常的发生,从而给源数据库带来更频繁的元数据更机会。

此外,心跳表给管理员提供了一个快速的反馈,来确定流复制的健康性。

实现心跳表:

在源端创建一个带有时间字段和global_name的字段的表。增加一条规则来捕获这个表的变化,并传递到所有目标端。同时确保每个目标端都会应用这个变化。在源端建立一个job来周期的更新这张表,例如每分钟更新一次。

 

3.5.6 队列配置

strmadmin 用户需要有自己的表空间,所有的流队列将存放到这个表空间中。

这个表空间将用户创建所有流管理的对象,包括任何溢出的内存消息队列。

CREATE TABLESPACE <tablespace_name>

DATAFILE <datafile_name>’ SIZE 25 M REUSE

AUTOEXTEND ON MAXSIZE UNLIMITED;

create USER strmadmin identified by strmadmin  DEFAULT TABLESPACE <tablespace_name>

QUOTA UNLIMITED ON <tablespace_name>;

 

确保配置队列分离,将本地抓取的队列和远端接收到的队列分开。这是特别重要的,特别是在多个库中配置双向复制的时候。队列名不能超过24字节。队列表名不能超过18字节

流队列可以通过STRMADMIN 用户使用DBMS_STREAMS_ADM.SET_UP_QUEUE 创建,可选参数如下:

queue_table => ‘strmadmin.<QUEUE_NAME>’

queue_name => ‘strmadmin.<QUEUE_NAME>’

queue_user => ‘STRMADMIN’

 

3.5.7 流粒度

表、方案、全局级别的复制

对于流来说,可以在指定的表,方案和全局数据库层面工作。

通过DBMS_STREAMS_ADM来定义 捕获,应用和传播:

DBMS_STREAMS_ADM.ADD_TABLE_RULES

DBMS_STREAMS_ADM.ADD_SCHEMA_RULES

DBMS_STREAMS_ADM.ADD_GLOBAL_RULES

DBMS_STREAMS_ADM.ADD_TABLE_PROPAGATION_RULES

DBMS_STREAMS_ADM.ADD_SCHEMA_PROPAGATION_RULES

DBMS_STREAMS_ADM.ADD_GLOBAL_PROPAGATION_RULES

 

DDL和DML选项

在每个DBMS_STREAMS_ADM.ADD_[TABLE|SCHEMA|GLOBAL]_RULES中可以指明是否是DML和DDL的选择,只需增加下列参数:

include_dml => TRUE

include_ddl => TRUE

 

标签:

可以在日志中加入标签,默认这个标签是00.流可以根据这个元素来捕获、传递和应用。

include_tagged_lcr => FALSE

默认值是 false,防止应用消息重复的抓取。

可以在下列包中定义:DBMS_STREAMS_ADM,DBMS_CAPTURE_ADM, DBMS_PROPAGATION_ADM and

DBMS_APPLY_ADM

可以消除特定表或者对象的变化,通过一起指定include_tagged_lcr、表、对象名在一个流进程的规则中。

 

抓取、传递,应用进程的参数化:

尽可能的为没个捕获和应用进程选择参数。除此之外你也要对传递进行更改。

捕获和应用:

DBMS_APPLY_ADM.SET_PARAMETER (

apply_name IN VARCHAR2,

parameter IN VARCHAR2,

value IN VARCHAR2);

DBMS_CAPTURE_ADM.SET_PARAMETER (

apply_name IN VARCHAR2,

parameter IN VARCHAR2,

value IN VARCHAR2);

 

改变传递用DBMS_AQADM包:

DBMS_AQADM.ALTER_PROPAGATION_SCHEDULE (

queue_name IN VARCHAR2,

destination IN VARCHAR2 DEFAULT NULL,

duration IN NUMBER DEFAULT NULL,

next_time IN VARCHAR2 DEFAULT NULL,

latency IN NUMBER DEFAULT 60,

destination_queue IN VARCHAR2 DEFAULT NULL)

下表列出了一些可能会改变的参数:

抓取进程

参数和建议 默认值 意见
PARALLELISM=1 默认:1 在目标端应用改变的并行执行服务的数量。在配置并发参数之前确保在源端配置了附加日志。
_CHECKPOINT_FREQUENCY=100 默认:10 修改logminer 检查点的频率,特别是当数据库中有大量的LOB字段和DDL的时候。一个大的值,减少 logminer 检查点的频率,小的值增加频率。默认是每隔10MB的日志产生一次logminer检查点。如果这个值设置为100,那么每100MB的日志才会产生一个logminer 检查点。建议增加这个值到数据库一小时内产生的日志量。这个参数设置到100可以减少logminer 检查点的请求,从而减少日志的产生和减少检查点的元数据。如果日志文件超过300M而且数据库中有很多活动事物,可以增大此参数。如果此参数增大,那么重启streams 捕获进程时候需要保留更长时间的归档。
_SGA_SIZE 默认:10 在流池中 logminer 进程占用的内存数量。默认流池分给logminer的是10MB。在有大的lob对象处理的时候需要增加这个参数。除非是遇到了ORA-1341错误,一般不用增加这个参数。流池的内存只给logminer使用,并不分配给其他使用。 
latency=5 一个消息传播后加入队列进入传播窗口中最大的等待时间,单位是秒。默认的值是60。如果在一个调用中没指定这个参数,那么将用默认值覆盖所有现存的任何值。

例如:如果这个值设置为60秒,在一个传播窗口中,如果没有消息传递,那么从队列传递到目标端,传递的时间不会超过60秒。至少60秒,队列将再次进行检查将消息传递到目标端。如果设置成600,那么队列在10分钟内可能不会进行检查,如果设置为0,那么job 队列进程将等待消息入队,直到这个消息被传递出去。

应用参数:

在应用进程被创建的时候 设置下列参数:

参数和建议 默认值 意见
DISABLE_ON_ERROR=N 默认:Y 如果是Y,那么应用进程会在遇到第一个无法解决的错误的时候不可用,即使这个错误不是致命的。如果是N,应用进程会忽略这些无法解决的错误。
PARALLELISM= 4 默认:1 并行的应用进程配置来处理源端传递过来的事物。可以选择设置为4,8,12,16,这个基于源端产生的复制负载情况和目标端的CPU个数。

 

 

 

 

在某些时候,设置下列隐藏参数可以提高性能。这些参数可以在主要的工作负载是update操作,并且只更新一张表上很少几个字段的时候设置:

参数和建议 默认值 意见
_DYNAMIC_STMTS=Y Default: N 如果是Y,那么对于update的情况,应用进程将对sql语句进行优化基于那些需要更新的列。
_HASH_TABLE_SIZE=1000000 设置用于计算事物依赖的哈希表大小为1000000
_TXN_BUFFER_SIZE=10 默认:10+并行度 为了防止在处理大事物的时候使用并发而产生的溢出,设置这个值为10+并行度。如果这个事物非常大(大于100000’s 并行度大于1),那么考虑减少事物缓冲大小 甚至更低的值(例如2+并行度),默认值是 80*并行度

–这里有点奇怪,文档中的默认值不同,再查下。

 

3.6 应用端的权限:

需要赋予应用用户在相关表上执行DML (INSERT/UPDATE/DELETE/SELECT)和DDL(CREATE TABLE,CREATE INDEX,CREATE PROCEDURE) 的权限:

grant create any table

, create any index

, create any procedure

, alter any table

, alter any procedure

TO STRMADMIN;

grant insert any table TO STRMADMIN;

grant update any table TO STRMADMIN;

grant delete any table TO STRMADMIN;

grant select any table TO STRMADMIN;

grant alter any table TO STRMADMIN;

 

3.7初始化

在使用SCN初始化应用端的之前,请确保捕获端已经初始化。可以用下面的包DBMS_CAPTURE_ADM来完成:

DBMS_CAPTURE_ADM.PREPARE_SCHEMA_INSTANTIATION(

schema_name IN VARCHAR2,

supplemental_logging IN VARCHAR2 DEFAULT ‘keys’);

 

初始化准备是在第一次用DBMS_STREAMS_ADM增加 规则的时候进行的。然而,当有新的节点加入到系统中时,这个操作都要再执行一次。

在目标端会产生一些初始化的对象/表,如下的调用:

DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(

source_object_name IN VARCHAR2,

source_database_name IN VARCHAR2,

instantiation_scn IN NUMBER,

apply_database_link IN VARCHAR2 DEFAULT NULL);

 

 

你可以在EXP/IMP 或 datapump 进行初始化的时候手动指定SCN。

如果要手动指定了方案下每个表的初始化SCN,可以在DBMS_STREAMS_ADM: 包中的SET_SCHEMA_INSTANTIATION_SCN过程中使用RECURSIVE=>TRUE选项:

DECLARE

iscn NUMBER;

BEGIN

iscn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();

DBMS_APPLY_ADM.SET_SCHEMA_INSTANTIATION_SCN@<target_db>

( source_schema_name => ‘<schema_name>’

, source_database_name => ‘<source_db>’

, instantiation_scn => iscn

, recursive => true

);

END;

/

COMMIT;

 

如果使用 数据泵,在导出的时候可以指定下列参数:

FLASH_BACK _SCN = <SCN>

在导入的时候要指定:

STREAMS_INSTANTIATION = Y

STREAMS_CONFIGURATION = N

你甚至可以在目标端初始化那些源端不存在的对象,所以你可以选择你想使用的初始化方式。

 

3.8:冲突解决

oracle 为流提供以下预处理冲突程序的几种方式:OVERWRITE,DISCARD,MAXMUM,MINMUM.

OVERWRITE

当冲突产生时,OVERWRITE操作将从LCR中的取源端的新值来替换目标的当前值。

DISCARD

当冲突产生时, DISCARD 操作会忽略从源端传递的LCR值,保持目标端的值。

MAXIMUM

当冲突产生时, MAXIMUM 冲突处理 会将从源端过来的LCR新的值和目标端要处理的当前值进行对比。如果要解决冲突的字段(特定的字段例如version)的值比当前值大,那么应用进程就会使用LCR。如果新的值比当前值要小,那么应用进程会用目标数据库的值解决冲突。

MINIMUM

这个处理过程正好和MAXIMUM相反,当解决字段的值比当前值要小的时候会应用LCR,比当前值大的时候会使用目标数据库的值来处理冲突。

 

解决冲突的配置可以通过下列过程:

DBMS_APPLY_ADM.SET_UPDATE_CONFLICT_HANDLER(

,object_name => ‘<OWNER>.<TABLE_NAME>’

, method_name => ‘MAXIMUM’

, resolution_column => ‘VERSION’

, column_list => <COLUMN_LIST>);

 

 

4 流的安装

4.1 架构

为了说明提出下列假设:

1.只有一个中心数据库服务(HUB),和多个分散的数据库服务(SPOKES)。所有的改变都必须经过HUB,通过HUB传递到SPOKE,并且在应用和传递到其他的SPOKE(消息不复制回传到原来的spoke上)

2、HUB&SPOKE 使用多个位置的捕获进程。请注意,这个配置不是建议的典型的HUB&SPOKE的配置,但是考虑到在每个单独的SPOKE之间没有交叉关系依赖的影响。

3、HUB用户使用多个位置的多应用进程。每个位置在流环境中都是独立的应用进程。

4、SPOKE 配置也是一样的。所有的SPOKE 有一个捕获和一个应用进程构成。

 

类型 HUB SPOKE
捕获 使用标签 不使用标签
传递 使用标签额外的规则 不是用标签
应用 不使用标签设置应用标签<n> 使用标签
队列 <n> 应用队列<n>捕获队列 1 应用队列1捕获进程

 

4.2 流安装

4.2.1创建一个流环境

创建流环境在下列几个步骤。基础的脚本不在文档中。这个过程的顺序如下:

1 .创建全局流环境

初始化参数

数据库或表级别 force logging

创建表空间

调整删除归档文件的备份过程

增加TNS消息

2.创建流管理员

创建 STRMADMIN 管理员

给用户赋权

创建db link

创建数据库队列

应用数据库对象上创建适当的权限

 

3.在表,方案上的流配置

准备应用进程

准备捕获进程

准备传递进程

初始化 对象:

在源端准备对象

初始化到目标端

1.调整 捕获,传递,应用进程的参数

2.开启进程:

捕获

应用

 

4.2.2 增加一个新的SPOKE 节点到流配置中

增加一个节点由同一个管理者管理。你必须区别HUB和SPOKE的配置。在HUB上,你可以不用做一些不必要的操作。指导建议如下:

1.增加TNS 信息。

2.增加 捕获和应用队列。

3.创建DB link。

4,完成3以上的步骤。

 

4.2.3 从流配置里移除一个SPOKE

你可以通过移除传递,来达到移除流节点的目的。在SPOKE上,可以运行存储过程DBMS_STREAMS_ADM.remove_streams_configuration

 

5.监控

5.1 介绍

一旦配置都创建完毕,那么必不可少的需要检查一切是否是在平稳的运作中。下面给出了一些不同的选择去监控环境。

 

5.2 固定视图

下面的动态视图可以用来监控流

流视图名 RAC下的视图名
V$STREAMS_CAPTUREV$STREAMS_APPLY_COORDINATOR

V$STREAMS_APPLY_READER

V$STREAMS_APPLY_SERVER

V$STREAMS_POOL_ADVICE

V$STREAMS_TRANSACTION

V$BUFFERED_PUBLISHERS

V$BUFFERED_QUEUES

V$BUFFERED_SUBSCRIBERS

V$PROPAGATION_RECEIVER

V$PROPAGATION_SENDER

V$RULE

V$RULE_SET

V$RULE_SET_AGGREGATE_STATS

GV$STREAMS_CAPTUREGV$STREAMS_APPLY_COORDINATOR

GV$STREAMS_APPLY_READER

GV$STREAMS_APPLY_SERVER

GV$STREAMS_POOL_ADVICE

GV$STREAMS_TRANSACTION

GV$BUFFERED_PUBLISHERS

GV$BUFFERED_QUEUES

GV$BUFFERED_SUBSCRIBERS

GV$PROPAGATION_RECEIVER

GV$PROPAGATION_SENDER

GV$RULE

GV$RULE_SET

GV$RULE_SET_AGGREGATE_STATS

 

静态视图

捕获的视图 应用的视图
DBA_CAPTUREDBA_CAPTURE_EXTRA_ATTRIBUTES

DBA_CAPTURE_PARAMETERS

DBA_CAPTURE_PREPARED_DATABASE

DBA_CAPTURE_PREPARED_SCHEMAS

DBA_CAPTURE_PREPARED_TABLES

DBA_APPLYDBA_APPLY_CONFLICT_COLUMNS

DBA_APPLY_DML_HANDLERS

DBA_APPLY_ENQUEUE

DBA_APPLY_ERROR

DBA_APPLY_EXECUTE

DBA_APPLY_INSTANTIATED_GLOBAL

DBA_APPLY_INSTANTIATED_OBJECTS

DBA_APPLY_INSTANTIATED_SCHEMAS

DBA_APPLY_KEY_COLUMNS

DBA_APPLY_OBJECT_DEPENDENCIES

DBA_APPLY_PARAMETERS

DBA_APPLY_PROGRESS

DBA_APPLY_SPILL_TXN

DBA_APPLY_TABLE_COLUMNS

DBA_APPLY_VALUE_DEPENDENCIES

传递和队列的视图 流视图
DBA_PROPAGATIONDBA_QUEUE_SCHEDULES

DBA_QUEUE_SUBSCRIBERS

DBA_QUEUE_TABLES

DBA_QUEUES

DBA_REGISTERED_ARCHIVED_LOGDBA_RECOVERABLE_SCRIPT

DBA_RECOVERABLE_SCRIPT_BLOCKS

DBA_RECOVERABLE_SCRIPT_ERRORS

DBA_RECOVERABLE_SCRIPT_PARAMS

DBA_STREAMS_ADD_COLUMN

DBA_STREAMS_ADMINISTRATOR

DBA_STREAMS_DELETE_COLUMN

DBA_STREAMS_GLOBAL_RULES

DBA_STREAMS_MESSAGE_CONSUME

DBA_STREAMS_MESSAGE_RULES

DBA_STREAMS_NEWLY_SUPPORTED

DBA_STREAMS_RENAME_COLUMN

DBA_STREAMS_RENAME_SCHEMA

DBA_STREAMS_RENAME_TABLE

DBA_STREAMS_RULES

DBA_STREAMS_SCHEMA_RULES

DBA_STREAMS_TABLE_RULES

DBA_STREAMS_TRANSFORM_FUNCTI

DBA_STREAMS_TRANSFORMATIONS

DBA_STREAMS_UNSUPPORTED

DBA_RULE_SET_RULES

DBA_RULE_SETS

DBA_RULES

DBA_HIST_BUFFERED_QUEUES

DBA_HIST_BUFFERED_SUBSCRIBERS

DBA_HIST_RULE_SET

DBA_HIST_STREAMS_APPLY_SUM

DBA_HIST_STREAMS_CAPTURE

DBA_HIST_STREAMS_POOL_ADVICE

 

5.3 监控工具 STRMMON

STRMMON是一个集中监控流的工具。通过这个工具,数据库管理员可以快速的获得当前流活动的一个概况。在每一行都会显示报告消息。报告星星的数目和迭代显示都是可以配置的 STRMMON可以在$ORACLE_HOME下rdbms/demo中直接使用

 

5.4 alert 日志

流将长运行和长事物的报告打印在alert.log中。

长时间运行的事物是那种在较长的时间内(例如20分),没有事物活动(即,没有新的改变,提交和回滚)。大的事物会有大量的变化记录。长事物的情况将每20分钟在alert.log中打印一次。并不是所有的此类事物都打印,只是20分钟一次。当提交和回滚操作出现时,这些消息也将在alert.log中打印。

 

5.5 流健康检查脚本

这个健康检查脚本查询一些消息来确定流环境的配置。这个脚本应该在每个参与流环境的数据库上执行。出了配置信息,还可以对指定的规则和一些其他问题进行诊断。这个脚本是一个很好用的工具来解决客户的问题。脚本可以参考Note: 273674.1

 

6 管理:

6.1 启动和停止流环境

开启流环境

在目标端启动应用进程,操作如下:

begin

dbms_apply_adm.start_apply(<APPLY_NAME>);

end;

/

在目标端开启传递和捕获进程:

begin

dbms_propagation_adm.start_propagation(<PROPAGATION_NAME>);

end;

/

begin

dbms_capture_adm.start_capture(<CAPTURE_NAME>);

end;

 

关闭流环境

目标端关闭

关闭捕获和传递进程

begin

dbms_capture_adm.stop_capture(<CAPTURE_NAME>);

end;

/

begin

dbms_propagation_adm.stop_propagation(<PROPAGATION_NAME>);

end;

/

关闭应用进程

begin

dbms_apply_adm.stop_apply(<APPLY_NAME>);

end;

/

 

6.2使用grid control 监控流进程

基于网络来进行故障排查.DBA需要用过监控检查每个节点上的经常。例如确定传递和捕获进程是正常的。使用监控脚本去验证这些。

database control是 企业管理器网络的一套应用,用来管理oracle10g. database control 随着数据库的安装而可用。通过database control 你可以管理单实例或者一个数据库集群。

页面上的选择是用过 Maintenance tab -> Streams section ->Management link

下面列出了一些个人测试场景更多的细节

 

6.2.1

使用 grid control 来检查捕获进程的状态

捕获进程的状态如何?是否异常中断?

这里有一个存储过程streams_package .status_streams在数据库层面返回了所有相关进行的基本状态消息,或者使用下列查询:

SELECT apply_name

, source_commit_scn

, message_number

, source_database

, local_transaction_id

, error_number

, error_message

, message_count

FROM dba_apply_error

ORDER BY source_commit_scn;

 

6.2.2 检查传递进程的状态

 

6.2.4 检查db link的状态

你可以使用select * from dual@’db_link_name’,来检查DB link 是否有效。DB link将在密码变化后失效,需要重建。

如果是实例down 导致的失效,你需要重新启动传递进程来清除错误:

DBMS_PROPAGATION_ADM.stop_propagation(‘name_of_propagation’,for

ce=>true);

DBMS_PROPAGATION_ADM.start_propagation(‘name_of_propagation’);

 

 

 

 

6.2.5 执行定期的维护。

确认检查点的周期

检查点进程会周期性的重启。这些检查点默认被 sysaux表空间持有。抓取参数 checkpoint_retention_time,控制了检查点保留的时间,来移动FIRST_SCN前进。

FIRST_SCN是最低的可以看到捕获变化的SCN。当超过checkpoint_retention_time的时间,FIRST_SCN 被移除,流元数据表的前一个值可以被清理,在sysaux中的空间可以重用。

改变这个参数可以使用DBMS_CAPTURE_ADM.ALTER_CAPTURE

在日志中刷新数据字典信息。通过DBMS_CAPTURE_ADM.BUILD将数据字典信息转储到日志里面。这样在创建捕获经常和经常重建的时候会减少日志的开销。

为初始化准备数据库对象。通过DBMS_CAPTURE_ADM.PREPARE_*_INSTANTIATION *是表示抓取的数据库对象的级别(TABLE, SCHEMA, GLOBAL),可以用来重建或新建一个抓取进程。

每周进行logminer 数据字典的重建,和安照开发维护指南来进行方案的初始化。

 

6.2.6 当丢失归档的时候 捕获进程可能出现的问题。

找到捕获进程最后需要的归档时非常重要的。因为这个归档在重启进程的时候需要用到。如果表现的错误不是捕获进程错误,那么一个潜在的解决方案是重启创建捕获进程。

 

下面的脚本可以重置SCN和包含这些SCN的归档。

重置捕获进程需要最小的一个归档日志在确定所需的 检查点SCN,下面的脚本可能运行:

set serveroutput on

DECLARE

hScn number := 0;

lScn number := 0;

sScn number;

ascn number;

alog varchar2(1000);

BEGIN

select min(start_scn), min(applied_scn) into sScn, ascn

from dba_capture;

DBMS_OUTPUT.ENABLE(2000);

for cr in (select distinct(a.ckpt_scn)

from system.logmnr_restart_ckpt$ a

where a.ckpt_scn <= ascn and a.valid = 1

and exists (select * from system.logmnr_log$ l

where a.ckpt_scn between l.first_change# and

l.next_change#)

order by a.ckpt_scn desc)

loop

if (hScn = 0) then

hScn := cr.ckpt_scn;

else

lScn := cr.ckpt_scn;

exit;

end if;

end loop;

if lScn = 0 then

lScn := sScn;

end if;

dbms_output.put_line(‘Capture will restart from SCN ‘ || lScn ||’ in

the following file:’);

for cr in (select name, first_time

from DBA_REGISTERED_ARCHIVED_LOG

where lScn between first_scn and next_scn order by

thread#)

loop

dbms_output.put_line(cr.name||’ (‘||cr.first_time||’)’);

end loop;

END;

/

 

6.2.7 RMAN和删除归档

在RMAN中配置删除策略

这个策略不是流的策略,但是在某些情况会影响。例如如果设置‘CONFIGURE ARCHIVELOG DELETION POLICY TO NONE’。在闪回区空间压力下,那些没有被捕获进程处理的日志会被删除。

在 进行RMAN备份 的时候使用 DELETE [ALL] input 选项:

. 这个命令会在备份成功的时候删除 输入的归档。这个选项不会删除那些没有被传递到备份端(流目标端)的归档。但是那些已经传递过去的即使没有被应用,还是会被删除。

. 在数据库开启的时候,这个命令不会删除捕获进程需要的归档。但是在数据库mount或者关闭的时候,这个选项不能决定哪些归档是捕获进程所需要的,因此都会被删除。

. 在10.2.0.3版本以上,不会删除那些保证安全还原点所需要的归档。

使用RMAN命令删除:

DELETE ARCHIVELOG

这个命令不会遵循任何 DG或者stream 的保护。一旦命令执行成功,那些DG 或者stream所需要的归档可能会被删除。

DELETE OBSOLETE

在数据库开启的时候,这个命令不会删除捕获进程需要的归档。但是在数据库mount或者关闭的时候,这个选项不能决定哪些归档是捕获进程所需要的,因此都会被删除。

 

7 故障解决

解决丢失 流数据字典的可以参考:Note.212044.1

10.2减少LOGMNR_RESTART_CKPT$ 高水位的可以参考Note.429599.1

应用进程故障解决可以参考 Note 230898.1

7.1 C001:大的TXN 或者流中有大事务

 

可以在告警日志中看到下列信息:

C001: large txn detected (341224 LCRs), xid: 0x001e.009.000c43d8

可以用具体的包来查询信息dbms_logmnr.<procedure_name>(),具体参考metalink Note 291686.1 LogMiner Utility Release 8.1.x – 10g

 

一般情况下,应用进程将在超过10,000个LRCS下溢出。txn_lcr_spill_threshold这个参数控制了这个数值。你可以基于事务的大小来调整参数:

exec dbms_apply_adm.set_parameter(‘app_name’,’ txn_lcr_spill_threshold

‘,'<number>’)

 

下面查询语句可以显示每个应用进程的信息:

COLUMN APPLY_NAME HEADING ‘Apply Name’ FORMAT A20

COLUMN ‘Transaction ID’ HEADING ‘Transaction ID’ FORMAT A15

COLUMN FIRST_SCN HEADING ‘First SCN’ FORMAT 99999999

COLUMN MESSAGE_COUNT HEADING ‘Message Count’ FORMAT 99999999

SELECT APPLY_NAME,

XIDUSN ||’.’||

XIDSLT ||’.’||

XIDSQN “Transaction ID”,

FIRST_SCN,

MESSAGE_COUNT

FROM DBA_APPLY_SPILL_TXN;

可以参考Note 230898.1

 

溢出的消息是溢出延期的状态、这些消息没被应用。这些遗留下的消息可能会成为孤儿事务。

你可以使用下面的语句查询:

select * from dba_apply_progress;

如果没有孤立的TXN,会有变化。如果这里的信息不是最新的,那么可能有孤立的事务错过了提交或者回滚。你可以指定dbms_aqadm.purge_queue_table 来清理这些记录。

为了提高溢出表的性能,在后续的操作中,你可以做下列操作:

alter table aq$_<queue_table_name>_p enable row_movement;

alter table aq$_<queue_table_name>_p shrink space;

alter table aq$_<queue_table_name>_p disable row_movement;

 

7.2 移动 FIRST_SCN

在10g中,可以通过捕获进程使用DBMS_CAPTURE_ADM.ALTER_CAPTURE移动first_scn .来释放system.logmnr_restart_ckpt$中的空间。在10.1.0.5以上的版本FIRST_SCN移动之后不用重启捕获进程。

确定当期SCN和重置捕获进程上的SCN:

BEGIN

DBMS_CAPTURE_ADM.ALTER_CAPTURE

( capture_name => ‘<Streams_Capture>’

, first_scn => <first_scn>

);

END;

/

减少LOGMNR_RESTART_CKPT$的空间

alter table system.LOGMNR_RESTART_CKPT$ enable row movement;

alter table system.LOGMNR_RESTART_CKPT$ shrink space ;

alter table system.LOGMNR_RESTART_CKPT$ disable row movement;

 

7.3:

在V$STREAMS_CAPTURE中的初始化字典状态

当一个捕获进程(不是新创建的进程),不启动进程找不到要读取的日志文件,报出‘字典初始化’时,可以用下面步骤来确定所需要的日志:

alter system set events ‘1349 trace name context forever, level 7’;

检查导出的dump 文件中包含Low ckpt scn: 的信息

将16进程的SCN转换成十进制的SCN。

用这个SCN在v$archived_log视图中找到 被first_change#  和next_change# 包含此SCN的归档日志。

或者用DBA_REGISTERED_ARCHIVED_LOG中的first_scn和next_scn来确定。

从备份中恢复这个缺失日志,一直到所有可以使用的文件,保证中间不会有空白。

 

7.4 丢失流多版本数据字典

这个错误发生在当 数据库中指定的对象不可用的时候。此消息会在 P000的应用进程端生成跟着文件。当这个错误发生的时候 LCR不会被应用。即使多版本数据字典信息不可用,但是应用进程不会中断或不可用。

 

后台:

当一个捕获进程创建的时候,一个重复的流数据字典会被自动的生成。这个数据字典有多个版本的副本来保存信息,在源端的数据库的主数据字典中。当捕获进程评估规则和创建LCRS的时候,流数据字典用来管理对象名称,对象版本信息,内部表示源表表明的数值,列名和列数据类型。这个映射让每个捕获事件尽可能的小,因为每个事件可以用数值来存储而不是用名称。每当有数据库结构变化的DDL产生时,这些信息都是自动维护的。

oracle 通过流传播自动维护每个节点中的 多版本流数据字典。oracle 从源端的数据字典发送内部消息去通知所有的数据库的传递 job 把那些需要从源端接受基于规则的捕获信息,发送到目标端。

当流数据字典版本信息传递到目标队列时,它会立马合并到当前数据库的流数据字典中,并在队列中移除此信息。

原因:

这个错误会在下面2个场景发生:

1)在跟踪文件中的对象号在源端没有被配置。

2)在目标端使用dbms_logminer_d.set_tablespace过程重置流数据字典表空间的时候发生数据字典表的丢失。在默认情况下,这些表存放在SYSTEM表空间中。为了避免这个问题,建议dbms_logminer_d.set_tablespace过程最好是在 所有节点完成流配置之前运行。

 

修复:

1)把特定的对象填入数据字典中。

a.确定哪些对象丢失。跟着文件中包含了确定丢失对象的信息。

gdbnm 在源端表示一个全局的丢失对象的名称。

objn 是源端的 对象号。根据这个数值通过DBA_OBJECTS可以查到对应的名称。

objx 是源端对象的版本号

scn 是出现丢失事物的SCN号。

b.在源端,重新注入对象信息到数据字典表中,使用不同的粒度如下:

DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION

DBMS_CAPTURE_ADM.PREPARE_SCHEMA_INSTANTIATION

DBMS_CAPTURE_ADM.PREPARE_GLOBAL_INSTANTIATION

c.确保源端可以传送到目标端,这样字段信息就可以重载到目标端。

 

 

 

2)检查流数据字典表的信息:

a.SYSTEM.LOGMNRC_DBNAME_UID_MAP

这个表关联了源端数据库全局名称和一些其他方案数据字典表的索引。

  1. SYSTEM.LOGMNRC_GTLO

这个表列出了所有源点数据字典中的对象。下面的查询可以显示数据字典信息,在特定的地方:

select global_name,ownername,lvl0name,baseobj# from logmnrc_gtlo o ,

logmnrc_dbname_uid_map m where m.logmnr_uid=o.logmnr_uid order by 1,2,3;

global_name 是源端全局的名称

owner name 是源端方案的拥有者

lvl0name 是源端对象名

baseobj# 是源端基础对象数值

c.如果表示空的,没有数据,那么用步骤1来重新生成数据。

 

例子:

添加一个特定的对象当数据字典表中:

  1. 确定丢失的对象.

*** 2007-06-06 09:28:10.445

knllgobjinfo: MISSING Streams multi-version data dictionary!!!

knlldmm: gdbnm=BMPR

knlldmm: objn=2956682

knlldmm: objv=1

knlldmm: scn=6944984413724

select * from dba_objects@BMPR where object_id = 2956682

OWNER PSBMPR11

OBJECT_NAME TEST_BUG

SUBOBJECT_NAME

OBJECT_ID 2956682

DATA_OBJECT_ID 2956682

OBJECT_TYPE TABLE

CREATED 06/06/2007 8:36:32 AM

LAST_DDL_TIME 06/06/2007 8:37:21 AM

TIMESTAMP 2007-06-06:08:36:32

STATUS VALID

TEMPORARY N

GENERATED N

SECONDARY N

b.在源端执行:

BEGIN

DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION(table_name

=> ‘PSBMPR11.TEST_BUG’);

END;

c.确保传递进程是正常的。所有传播进程的问题都已经解决。

 

 

2)检查数据字典表的数据

select global_name, ownername, lvl0name, baseobj#

from system.logmnrc_gtlo o, system.logmnrc_dbname_uid_map m

where m.logmnr_uid = o.logmnr_uid

order by 1, 2, 3;

GLOBAL_NAME BMPR

OWNERNAME PSBMPR11

LVL0NAME TEST_ BUG

BASEOBJ# 2956682

 

4) DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN@<destination

site> (

source_schema_name => ‘<schema>’,

source_database_name => ‘source_db’,

instantiation_scn => iscn

 

5)确保附加日志已经使用:

数据库重启不需要重新配置,在创建捕获进程间确保运行了下面语句:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

ALTER SYSTEM SWITCH LOG

 

8 附加信息

8.1 清除或卸载 流配置

要完全移除流配置,可以使用DBMS_STREAMS_ADM.REMOVE_STREAMS_CONFIGURATION api,然后再删除stream 管理员的方案 DROP USER … CASCADE

确保在此之前所有的进程都停止了。

REMOVE_STREAMS_CONFIGURATION

移除stream 可以使用DBMS_STREAMS_ADM.REMOVE_QUEUE

在规则会在进程删除中自动删除,或者在命令中指定drop_unused_rule_sets参数。

dbms_streams_adm.drop_unused_rule_sets

MongoDB管理员培训 for Administrators training

MongoDB for Administrators培训

培训课程请联系电话:13764045638  邮箱:service@parnassusdata.com

mongodbworld
课程大纲

 

MongoDB Architectural Overview
Origin, design goals, key features
Process structure (mongos, mongod, config servers)
Directory / file structure
Working with the MongoDB Shell
Documents and data types
CRUD (Inserts, queries, updates, deletes)
System commands
Single-server Configuration and Deployment
Configuration files
Data files and allocation
Log files
Hardware and file-system recommendations
Security
Built-in authentication
Recommendations for secure deployment
Monitoring MongoDB
mongostat
Analyzing memory and IO performance
Integration with monitoring tools: Munin / Cacti / Nagios
MongoDB’s web console
Indexing and Query Optimization
Managing indexes and MongoDB indexing internals
Single / Compound / Geo indexes
Identifying sub-optimal queries. Using the query profiler.
Introduction to drivers (Java/Python/Ruby/PHP/Perl)
How the drivers and shell communicate with MongoDB
BSON and the MongoDB Wire Protocol
Troubleshooting application connections
Intro to Read and Write scalabilityReplication and Durability
Master-slave replication
Replica sets
Using write concern for durability
Handling replication failures
Auto-Sharding
How sharding works
Setting up a MongoDB shard cluster
Choosing a shard keySharding and indexes
Sharding and Replica Set Topologies
Administering a sharded cluster
Shard / Chunk MigrationBackup and Restore Plans
Filesystem-based strategies
mongodump / mongorestore
rsync
mongoimport / mongoexport

 

MongoDB开发者培训MongoDB for Developers

MongoDB开发者培训

培训课程请联系电话:13764045638  邮箱:service@parnassusdata.com

课程大纲

 

Manipulating Documents
Query
Insert
Update
Remove
Upsert
Removing databases, fields and others
Document Structure
Datatypes
References
ID
Keys
Embedded sub-documents
Tree structures
Tailable Cursor
Two Phase Commits
Auto-incrementing Sequence field
Aggregation
Distinct
Aggregation Pipelines
Map-reduce
Indexes
Default _id
Single Field
Compound Index
Multikey Index
Geospatial Index
Hashed Index
Unique
Sparse

Oracle OCM认证培训

Oracle OCM认证培训

ORACLE DB 技术学习QQ群号: 318952819

Oracle Certified Master(OCM) 大师认证资质是Oracle认证的最高级别。该项认证是对数据库从业人员的技术、知识和操作技能的最高级别的认可。Oracle认证大师是解决最困难的技术难题和最复杂的系统故障的最佳Oracle专家人选。OCM认证是资深专家级Oracle 技能考试,通过后将成为企业内的资深专家和顾问。OCM 不但有能力处理关键业务数据库系统和应用,还能帮助客户解决所有的Oracle 技术困难。
要想获得OCM 证书,必须先通过OCA、OCP考试,再学习至少两门Oracle公司组织的高级技术课程(参加Oracle WDP合作伙伴中心组织的23天OCM高级技术课程培训自动获取原厂培训资质,不需要再参加至少两门Oracle公司组织的高级技术课程),然后在Oracle公司北京或者上海Oracle 实验室通过场景实验OCM考试(11g OCM共8场考试,历时2天)。场景实验考试的目的是测试您的实际问题分析和故障解决能力。通过OCM考试,Oracle美国总部将在2个月内直接寄送OCM证书、全球唯一识别号的OCM卡、OCM大师服装等系列物品。
课程培训目标与顶级的实验教学环境
除了以帮助学员通过获取OCM认证为使命,同时Oracle DBA大师班(OCM方向)还设计了大量的仿真的现场,让学员在获取OCM认证的同时,具备管理大型数据库的真正的才干,能够未来能够胜任未来大型企业的复杂的项目及管理,获取更高的职业回报。
本课程的环境结合了电信、金融、政府等行业实际管理维护操作需求而制定的Oracle知识体系;同时如果学员熟练掌握该套知识体系,学员能够构建Oracle先进、独特的技术体系,通过23天的学习与平时的经验积累,学员能够具备部署、架构、管理、维护Oracle Database的实际能力,同时掌握全面、灵活的Oracle Database系统集成高级技术。本套课程及实验环境是中国到目前为止最全面的一套Oracle课程体系,全程由OCM专家倾力打造。
通过培训,我们希望学员通过未来工作中的项目实践积累,能够
1、确保海量级数据安全、稳定运行
2、确保关键业务系统24*7无间断地、高效服务
3、根据实际业务情况实施各种优化策略
4、根据业务需要调整数据库性能功能参数
5、为BI/DSS系统提供数据仓库解决方案

从Oracle数据库认证OCA升级至OCP的打折活动马上就快结束啦!!~

Oracle 9i/10g OCA,OCP认证升级Oracle数据库11g OCP(Exam 1Z1-034) 和Oracle 9i/10g/11g OCA,OCP认证升级Oracle数据库12c OCP(Exam 1Z1-067) 的公测马上就要结束了。

如果想要参与认证升级,请千万别错过现在的公测期打折活动哦。

 

  • 请至Pearson VUE注册公测期测试1Z1-067或1Z1-034
  • 在Oracle认证网站上获取所有相关测试准备信息,其中包括考点,题量,考试时间和认证价格等。
  • 基于最新的Oracle重新认证政策,始终保持您认证的最新状态。
  • 可以在快速链接部分中找到相关链接。

 

您可以按照OCA和OCP认证路径在参加测试前或后期完成必须的相关培训,以获取认证。

 

此外,已经拥有OCP认证的数据库管理员,如果您希望将您的认证升级至11g或12c的OCP认证,你只需要通过公测期测试即可,无需另外参与培训。这也使得参与OCP升级的朋友们能少花$50哦。

 

快来注册吧~~

 

快速链接

诗檀软件-Oracle开发优化基础

诗檀软件-Oracle开发优化基础

 

议程

 

  1. 数据库开发员需要注意些什么
  2. 如何快速定位及认知数据库问题点
  3. 如何编写高性能SQL – 基础知识
  4. 如何编写高性能SQL – 执行计划
  5. 调整思路

诗檀软件-Oracle开发优化基础

Oracle RDBMS数据库版本支持状态

Oracle RDBMS数据库版本支持状态

This note shows the current main Oracle Database releases along with information about the support status of each release and its Patch Sets.

  • To see the main support alerts and Patch Set release note updates for any release click on the 3 digit RDBMS version number in the first column of the table below.
  • For details of the new Lifetime Support Policy which applies to server releases 9.2.0 onwards see Note:971415.1
  • For details of Oracles Error Correction Support Policy in relation to Patch Set levels where fixes can be produced see the link in Note:209768.1
  • For details Patch Set release dates and proposed release dates see Note:742060.1
  • To see the desupport notices click on the hyperlinked desupport dates in the table (only for releases < 9.2).
  • For terms used here see Terminology after the table.
  • See Note:207303.1 for details of interoperability support between different Oracle releases.

 

Oracle Database Releases Status Summary
Release
(Click for Details)
Current Patch Set
(Click for Availability and Known Issues
Next Patch Set Premier Support Ends Extended Support Ends Notes
12.1.0.X 12.1.0.2 None Base release is 12.1.0.1 .
12.1.0.2 is the terminal 12.1 Patch Set and only available for Enterprise Edition and Standard Edition 2 – see Note:2027072.1
11.2.0.X 11.2.0.4 None Jan-2015 Jan-2018
Extended Support fees are waived for the first year from Jan-2015 to Jan-2016
See Note:1067455.1

Patching for 11.2.0.1 ended on 13/Sep/2011
Patching for 11.2.0.2 ended on 31/Oct/2013
Patching for 11.2.0.3 ended on 27/Aug/2015 – See Note:742060.1

Base release is 11.2.0.1.
11.2.0.4 is the terminal 11.2 Patch Set
11.2 Patch Sets are full releases – see Note:1189783.1
11.1.0.X 11.1.0.7 None Aug-2012 Aug-2015
Patching for 11.1.0.7 ended on 31/Aug/2015 for most platforms.
Limited Extended Support available for HPUX-Itanium – see Note:1307745.1
Base release is 11.1.0.6 .
11.1.0.7 is the terminal 11.1 Patch Set
10.2.0.X 10.2.0.5 None Jul-2010 Jul-2013
Limited Extended Support ended on 31-July-2015 for most platforms. (For platform exceptions see “Oracle Software Technical Support Policies” Extended Support section.)
Market Driven Support (MDS) for Oracle Database (10gR2) can be purchased to extend support until July 2016.
10.2.0.5 is the terminal 10.2 Patch Set.

The Free Extended Support period ended on 31-Jul-2011.
The Limited Extended Support period ended on 31-Jul-2015.

10.1.0.X 10.1.0.5 None Jan-2009 Jan-2012 10.1.0.5 is the terminal 10.1 Patch Set.
10.1 Extended Support has ended – see Note:761713.1
9.2.0.X 9.2.0.8 None Jul-2007 Jul-2010
Limited Extended Support was available from July 2010 to July 2012 on selected platforms.
See the 9.2 Extended Support details here
9.2.0.8 is terminal 9.2 Patch Set.
The Free Extended Support period ended on 31-Jul-2008. See Note:392222.1

Key to coloring of above table:

Premier Support
Extended Support
Limited Extended Support
Market-Driven Support
Fixes only possible where noted
Sustaining Support
Release
(Click to see Details)
Terminal Patch Set Error Correction Support Ends
(Click on dates to see Desupport Notices)
Extended Maintenance Support Ends
(Click on dates to see Desupport Notices)
Notes
9.0.1.X 9.0.1.4
(9.0.1.5 for iAS)
31-Dec-2003 No EMS. 9.0.1.4 was the terminal “general use” 9.0 patch set.
9.0.1.5 was a special iAS infrastructure only version.
8.1.7.X 8.1.7.4 31-Dec-2004 for strategic platforms
31-Dec-2003 for other platforms

(Novell NetWare ended 31-Jan-2003)
31-Dec-2006 for strategic platforms
31-Dec-2005 (or earlier) for others

(No EMS for Novell NetWare)
8.1.7.4 is the final Patch Set for 8.1.7.
EMS has ended.
Fixes were possible for exception cases listed in the Desupport Notice.
8.1.6.X 8.1.6.3 31-Oct-2001 Extended to 01-Jun-2002 for E-Business Suite Customers only. No EMS EMS is NOT available.
8.1.5.X 8.1.5.1 01-Jan-2001 No EMS 8.1.5.1 exists on Solaris / NT / SNI / SGI only
8.0.6.X 8.0.6.3 30-Sep-2001 EMS ended 30-Sep-2003 After EMS fixes were possible for customers with E-Business Suite (in Server Partitioned mode). 8.0.6.3 only
8.0.5.X 8.0.5.2 OpenVMS 31-Mar-2001
HPUX 64 bit 01-Jan-2001
AIX 64 bit 01-Jan-2001
Other platforms 30-June-2000
No EMS  
8.0.4.X 8.0.4.4 31-Mar-2000  No EMS OS/390 was desupported 01-Nov-2000
8.0.3.X 8.0.3.2 31-Mar-1999 No EMS  
7.3.4.X 7.3.4.5 31-Dec-2000 EMS ended 31-Dec-2002 EMS has ended
7.3.3.X 7.3.3.6 31-Dec-1998 EMS ended 31-Dec-2000 EMS has ended
7.3.2.X 7.3.2.3 31-Jan-1998 No EMS No EMS was available for 7.3.2

Key to coloring of above table:

No Error Correction available

Interoperability Support

See Note:207303.1 for details of interoperability support between different Oracle releases.

Terminology Used in this Article

Release
This is the first 3 digits of the Oracle Database (RDBMS). Click on the links in this column to see support status of the release, recent server alerts and latest information on Patch Sets. For 8.1.7 onwards these links also include information about which Patch Sets are available on which platforms.
Patch Set
Patch sets are Oracle Corporation’s mechanism for delivering fully tested and integrated product fixes on a regular basis. Patch sets provide bug fixes only; they may include limited new functionality but do not change existing correct functionality, and do not require certification on the target system. Application of a Patch set changes the 4th digit of the Oracle Database release.
Patch Sets are released individually for each platform but contain a common set of generic bug fixes which may be supplemented by additional port specific bug fixes. Eg: 10.1.0.4 on AIX will contain the same generic bug fixes as 10.1.0.4 on Solaris.
Patch sets are cumulative. For example, 10.1.0.4 includes all the fixes in 10.1.0.3 as well as new fixes for 10.1.0.4.
The release dates of current Patch Sets on each platform are detailed in Note:742060.1
Next Patch Set
This column shows the version of the next expected Patch Set. Note that this is not a guarantee that the listed patch set will be released, and if it is released it may not be produced for all platforms.
“None” indicates no more patch sets are planned.
Terminal Patch Set
This is the final patch set for the release. (Some platforms may have a lower terminal patch set)
Patch Set Exception (PSE) / Interim Patch
The terms “Interim Patch” and “Patch Set Exception” are synonymous. If a customer encounters a critical problem that requires a fix prior to the next patch set becoming available then they can request that a one off fix is made available on top of the latest patch set. Such requests require suitable technical and business justification before being processed, and the resulting fixes are not regression tested. Patch set exceptions are only available:

  • On Oracle releases eligible for Premier Support or where a customer has purchased Extended Support
  • On the latest patch set on the given release / platform
  • Subject to suitable technical and business justification
  • Subject to technical feasibility

Full details of “Interim Patches” can be see from the link in Note:209768.1 which should be read in conjunction with the “patching end” dates in Note:742060.1

Premier Support
This term applies to server releases >= 9.2 only.
See Note:971415.1 for links to the Lifetime Support Policy documents. Allows for fixes to new bugs / issues to be provided. Customers are expected to be on the latest Patch Set in order to get any Patch Set Exception (a one off bug fix).
Extended Support
This term applies to server releases >= 9.2 only.
See Note:971415.1 for links to the Lifetime Support Policy documents. This is a purchasable support option which allows one-off fixes (Patch Set Exceptions) to be obtained for critical issues.
Limited Extended Support
Extended Support is available but is limited to Severity 1 fixes only; critical patch updates will not be made available.
Market-Driven Support
See Market Driven Support (MDS) for Oracle Database (10gR2).
Severity 1 fixes only.
Sustaining Support
This term applies to server releases >= 9.2 only.
See Note:971415.1 for links to the Lifetime Support Policy documents. Customers get indefinite assistance with service requests, on a commercially reasonable basis, 24 hours per day, 7 days a week.
Error Correction Support (ECS)
This term applies to server releases <= 9.0 only.
Allows for fixes to new bugs / issues to be provided. Customers are expected to be on the latestPatch Set in order to get any Patch Set Exception (a one off bug fix). Once a release has passed its Error Correction Support date it enters Extended Assistance Support.
Extended Maintenance Support (EMS)
This term applies to server releases <= 9.0 only.
This is a purchasable support option which allows one-off fixes (Patch Set Exceptions) to be obtained for critical issues. Customers who have not purchased EMS cannot get fixes for new issues. EMS customers must be on the Terminal Patch Set of the given release.
Extended Assistance Support (EAS)
This term applies to server releases <= 9.0 only.
More details of what EAS encompasses can be seen in any of the desupport notices. Most importantly EAS does NOT include:

  • New bug fixes nor backports of existing fixes
  • Escalation support nor response time adherence

沪ICP备14014813号-2

沪公网安备 31010802001379号