暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 关于传输SQL调整集

原创 Asher.HU 2021-02-04
967

 

您可以将STS传输到在Oracle Database 10 g第2版(10.2)或更高版本中创建的任何数据库当使用SQL Performance Analyzer调整测试数据库上的回归时,此技术很有用。

本节包含以下主题:

 

23.6.1关于传输SQL调整集

在数据库之间传输SQL调整集意味着将SQL调整集与暂存表之间进行复制,然后使用其他工具将暂存表移至目标数据库。最常用的工具是Oracle Data Pump或数据库链接。

本节包含以下主题:

 

23.6.1.1传输SQL调整集的基本步骤

传输SQL调整集需要导出STS,传输转储文件,然后导入转储文件。

下图显示了使用Oracle Data Pump和的过程ftp

图23-4传输SQL调整集

 

如图23-4所示,操作步骤如下:

  1. 在生产数据库中,使用DBMS_SQLTUNE.PACK_STGTAB_SQLSET将STS打包到登台表中DBMS_SQLSET.PACK_STGTAB
  2. .dmp使用Oracle数据泵将STS从登台表导出到文件。
  3. .dmp使用诸如的传输工具文件从生产主机传输到测试主机ftp
  4. 在测试数据库中,.dmp使用Oracle Data Pump 将STS从文件导入到登台表。
  5. 使用DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET从登台表中解压缩STS DBMS_SQLSET.UNPACK_STGTAB

 

23.6.1.2 CON_DBID值不同时传输SQL调整集的基本步骤

传输con_dbidSTS时con_dbid,如果源数据库和目标数据库的SQL语句不同,则必须在STS中重新映射每个SQL语句

导致con_dbid值不同的情况包括:

  • 单实例数据库,其实例已重新启动
  • Oracle RAC数据库的不同实例
  • 不同的PDB
  • 非CDB和CDB

重新映射的基本步骤如下:

  1. 使用DBMS_SQLTUNE.PACK_STGTAB_SQLSET将STS打包到登台表中DBMS_SQLSET.PACK_STGTAB
  2. con_dbid使用DBMS_SQLTUNE.REMAP_STGTAB_SQLSET或重新映射登台表中的每个DBMS_SQLSET.REMAP_STGTAB
  3. 导出STS。
  4. 在目标CDB中解压缩STS的包装。

示例23-1将STS从非CDB传输到CDB时重新映射CON_DBID

在此示例中,您打算将命名的STS STS_for_transport从非CDB传输到CDB。在源非CDB上,您已src_stg_tbl使用以下DBMS_SQLTUNE.PACK_STGTAB_SQLSET步骤将STS打包到源登台表中目标CDB的容器ID是12345

在源非CDB中,执行以下命令:

VARIABLE con_dbid_src NUMBER;

EXEC SELECT UNIQUE con_dbid INTO :con_dbid_src FROM src_stg_tbl;

BEGIN
  DBMS_SQLTUNE.REMAP_STGTAB_SQLSET (
    staging_table_name   => 'src_stg_tbl'
,   staging_schema_owner => 'dba1'
,   old_sqlset_name      => 'STS_for_transport'
,   old_con_dbid         => :con_dbid_src
,   new_con_dbid         => 12345);
END;

现在,您可以导出登台表的内容,然后继续使用常规传输过程。

也可以看看:

Oracle Database PL / SQL软件包和类型参考以了解REMAP_STGTAB_SQLSET

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论