Oracle Streams Instantiation SCN 在导入时未被更新

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

目的

——-

本文说明了使用元数据导入/导出的Oracle流实例化过程,并说明实例化的scn在目标站点何时不会被更新。

元数据导出/导入在表已经存在于两个站点,且在这些表中的复制数据在两个站点是一致的情况下使用。

范围与应用

——————-

DBA 配置并实施Oracle Stream 时用作参考。

SCN实例化的目的

—————————-

一个数据库对象的实例化SCN控制包含对数据库对象更改的哪些LCR被一个应用进程忽略和哪些LCR被一个应用程序使用。如果对源数据库的数据库对象的LCR提交的SCN小于或等于在目标数据库的数据库对象的实例化SCN数据库,则在目标数据库中的应用进程丢弃discard LCR。否则,该应用程序应用LCR

当你为实例化准备对象(表,schema或数据库)时,你执行的过程记录了每个对象和任何实例化从属对象的最低SCN。 一个对象的最低SCN后续的SCN可用于实例化对象。一旦实例化准备好了对象,则你可以使用导入和导出工具来完成实例,如本文中所示,或使用Note:222815.1

所示SET_<level>_INSTANTIATION_SCN中的SET_<level>_INSTANTIATION_SCN程序。

使用元数据导出/导入初始化表

————————————————-

如果你使用 DBMS_STREAMS_ADM.procedures 来配置你的捕获进程的规则,则实例化已经准备好了对象。

查询 DBA_CAPTURE_PREPARED_SCHEMA DBA_CAPTURE_PREPARED_DATABASE DBA_CAPTURE_PREPARED_TABLES 来验证被实例化的对象。

这取决于你创建的规则的类型。

COLUMN table_owner FORMAT a12

COLUMN table_name FORMAT a20

SELECT * FROM DBA_CAPTURE_PREPARED_TABLES;

Step 1)

which copies the data as well as the structure

and instantiation information, or you can perform a meta-data only export.  If

you perform a metadata only export, it is up to the DBA to guarantee that the

data at each site is consistent.  A metadata only export uses the same options

as an instantiation export, but also uses ROWS=N to prevent the data from being

copied.

步骤1

在数据库对象为实例化准备好后,你就可以执行导出。导出可以在数据库,用户或表级别完成,看哪个最对应被实例化 数据库对象。你可以执行一个实例化导出,它复制数据,结构以及实例的信息,或者你也可以执行仅元数据的导出。如果你执行仅元数据的导出,则由DBA保证在每个站点的数据是一致的。仅元数据的导出使用与实例化导出相同的选项,同时还有ROWS = N,以防止数据被复制。

在源站点对表执行导出的例子:

exp oe/[email protected] FILE=source.dmp TABLES=orders ROWS=n \

INDEXES=n CONSTRAINTS=n OBJECT_CONSISTENT=y

步骤2

导入元数据到目标数据库中。

如果STREAMS_INSTANTIATION = Y,则被导入的对象会被设置实例化SCNSTREAMS_CONFIGURATION参数被默认设为Y。该参数用于导入流配置到目标数据库。在使用导出和导入进行备份和恢复时,此参数只能被设为Y。由于我们正在使用导出和导入执行实例化,这个参数需要被设为N

在目标站点执行导入的例子:

imp oe/[email protected] FILE=source.dmp FULL=y IGNORE=y COMMIT=y \

STREAMS_INSTANTIATION=y STREAMS_CONFIGURATION=n \

LOG=streams_imp.log

步骤3

在导入站点,当导入完成时,检查日志文件是否有错误。当成功导入完成后,检查数据字典

查看的实例化信息

COLUMN source_database HEADING SOURCE_DB FORMAT a20

COLUMN source_object_owner HEADING S_OWNER FORMAT a15

COLUMN source_object_name HEADING S_OBJ_NAME FORMAT a15

COLUMN source_object_type HEADING S_OBJ_TYPE FORMAT a10

SELECT * FROM DBA_APPLY_INSTANTIATED_OBJECTS;

问题

——-

如果你已成功实例化一个目标站点,并希望在目标站点提高实例化SCN,你可以在目标站点再次实例化表,从在源站点准备实例化的对象开始。

然而,如果在执行导入的目标站点的数据库对象已存在的一个非空实例化SCN,则导入不更新该数据库对象的实例化SCN

修正

Bug:2666080  Fixed: 10g

WORKAROUND

———-

实例化SCN 应被手动设置。

参见 Note:222815.1 Instantiate Tables by Manually Setting the Instantiation SCN

附加信息

———————-

RMAN 实例化仅从10g以上受支持。

Note:336266.1  10gR1 Streams New Features ii.  Additional Ways To Perform Instantiations

除了原始导出/导入,你可以使用Data Pump导出/导入,可传输表空间,及RMAN来执行流实例化。

相关文档

—————–

Oracle9i Streams Release 2 (9.2)

Note:222815.1 Streams Instantiate Tables by Manually Setting

                the Instantiation SCN

Note:429543.1 Purpose of Instantiation in Streams Environment

Note:550955.1 Instantiating Objects Using Original Export/Import and

                Data Pump Export/Import – Example


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *