首页 » ORACLE [C]系列, ORACLE 9i-23c » Oracle 19c新特性: EXPDP 参数TTS_CLOSURE_CHECK估算Transportable Tablespace时间

Oracle 19c新特性: EXPDP 参数TTS_CLOSURE_CHECK估算Transportable Tablespace时间

TTS(Transportable Tablespace)在大型数据库迁移方案看较常见,原理是导出源库表元数据信息 (EXPDP)→ 传输表空间文件到目标库→导入库表元数据信息,及后来的XTTS(Cross Platform Transportable Tablespaces)跨平台,及利用Full Transportable Export/Import的F[X]TTS, 在生产库保持正常运行的情况下,传送迁移表空间数据文件,通过不断生成增量备份并进行恢复,使迁移时间可控,最大程度减少迁移所需要的停机时间, 复制数据文件实现了在线,但是导出元数据阶段需要把表空间改为只读,写业务要中断,那就存在一个问题,导出metadata元数据需要多少时间?有没有不可预见的问题? 时间长度依赖数据库内的对象个数等了,但是19c 之前测试导出元数据也要read only表空间,19c DATAPUMP引入新特性TTS_CLOSURE_CHECK为此而生,可见Oracle在online运维上一直在升级。

使用19c,DBA可以更轻松地确定导出将花费多长时间,并发现 closure check 未报告的不可预见的问题。DataPump Export 的参数 TTS_CLOSURE_CHECK 可以用来指定 Transportable Tablespaces 的TEST_MODE会在 Transportable Tablespaces/Full Transportable Export/Import时做只导出元数据的测试。它不需要把源库的 tablespace 设置为只读。。产生的 dump 文件会被标记为 “unusable.”。

TTS_CLOSURE_CHECK

目的:  指定 transportable export 的 closure check 的级别

语法以及描述
TTS_CLOSURE_CHECK = [ ON | OFF | FULL | TEST_MODE ]
ON – 开启 closure check 来确保 要导出的tablespace集里没有引用集合之外的对象
OFF – 关闭 closure check。用户自己确保要导出的tablespace集里没有引用集合之外的对象
FULL – 进行全面的多方向的 closure check 确保要导出的tablespace集里没有引用集合之外的对象,并且集合之外的对象也没有引用要导出的对象
TEST_MODE – 测试模式下不需要把 tablespaces 置为只读模式,来评估 transportable tablespace 导出花费的时间。导出的文件不能用于导入。

注意:
1/ ON, OFF, 以及 FULL 的选项是互斥的。  TEST_MODE 仅适用于导出。
2/ 使用 TTS_CLOSURE_CHECK TEST_MODE 不需要把 tablespaces 置为只读模式,并提供导出花费的时间。导出的文件不能用于导入。
3/ DataPump进行 closure check 所需的时间可能很长,有时甚至是不必要的,尤其是在已知要导出的tablespace集里没有引用集合之外的对象的情况下。
4/ 跳过 closure check 将减少  transportable export 完成的时间,从而增加可用性。 在 tablespace 处于 read-write 模式下即可获得导出时间的功能也提高了可用性。
5/ 可以通过procedure DBMS_DATAPUMP.SET_PARAMETER设置 TTS_CLOSURE_CHECK 参数。下面的例子关闭了 closure check 并启用了测试模式:
SYS.DBMS_DATAPUMP.SET_PARAMETER(jobhdl, ‘TTS_CLOSURE_CHECK’, DBMS_DATAPUMP.KU$_TTS_CLOSURE_CHECK_OFF+DBMS_DATAPUMP.KU$_TTS_CLOSURE_CHECK_TEST);

[oracle@oel7db1 ~]$ ora

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jul 7 22:57:28 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0


USERNAME             INST_NAME            HOST_NAME                  I# SID   SERIAL#  VERSION    STARTED  SPID       OPID  CPID            SADDR                                                PADDR
-------------------- -------------------- ------------------------- --- ----- -------- ---------- -------- ---------- ----- --------------- ----------                                    ------ ----------------
SYS                  PDB1-anbob19c        oel7db1                     1 390   16816    19.0.0.0.0 20200707 4022       33    4021            0000000073                                    434028 0000000074923E68

SQL> select STATUS,tablespace_name from dba_tablespaces

STATUS    TABLESPACE_NAME
--------- ------------------------------
ONLINE    SYSTEM
ONLINE    SYSAUX
ONLINE    UNDOTBS1
ONLINE    TEMP
ONLINE    USERS
READ ONLY TBS1


测试导出USERS表空间元数据

[oracle@oel7db1 ~]$ expdp userid=system/xxxxxx directory=datapump dumpfile=user_metadat.dump\
 transport_tablespaces=users TTS_CLOSURE_CHECK=test_mode

Export: Release 19.0.0.0.0 - Production on Tue Jul 7 23:01:26 2020
Version 19.3.0.0.0

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

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  userid=system/******** directory=datapump dumpfile=user_metadat.dump transport_tablespaces=users TTS_CLOSURE_CHECK=test_mode
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX/FUNCTIONAL_INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  /home/oracle/user_metadat.dump
Dump file set is unusable. TEST_MODE requested.
******************************************************************************
Datafiles required for transportable tablespace USERS:
  /u01/app/oracle/oradata/ANBOB19C/pdb1/users01.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Tue Jul 7 23:03:09 2020 elapsed 0 00:01:36

[oracle@oel7db1 ~]$ impdp userid=system/oracle directory=datapump dumpfile=user_metadat.dump transport_tablespaces=users TTS_CLOSURE_CHECK=test_mode
LRM-00121: 'test_mode' is not an allowable value for 'tts_closure_check'

[oracle@oel7db1 ~]$ oerr lrm 121
121, 0, "'%.*s' is not an allowable value for '%.*s'"
// *Cause: The value is not a legal value for this parameter.
// *Action: Refer to the manual for allowable values.


打赏

,

对不起,这篇文章暂时关闭评论。