Oracle 数据库使您能够在系统之间传输 AWR 数据。这在您想使用单独的系统来执行 AWR 数据分析的情况下很有用,以减少生产系统性能分析带来的开销。
要将 AWR 数据从一个系统传输到另一个系统,首先从源系统上的数据库中导出 AWR 数据,然后将其导入到目标系统上的数据库中。
导出 AWR 数据
该
awrextr.sql
脚本将一系列快照的 AWR 数据从数据库导出到数据泵导出文件中。创建后,您可以将此转储文件传输到另一个数据库,您可以在其中导入导出的 AWR 数据。要运行
awrextr.sql
脚本,您必须以
SYS
用户身份连接到数据库。
要导出 AWR 数据:
-
在 SQL 提示符下,输入:
@$ORACLE_HOME/rdbms/admin/awrextr.sql
将显示 AWR 模式中的数据库列表。
-
指定需要从中导出 AWR 数据的数据库:
输入 db_id 的值:例:2377863381
在本例中,指定了数据库标识符为 的数据库
2377863381。 -
指定要查看所有快照 ID 的天数:
输入 num_days 的值:7
在此示例中,将显示最近 7 天捕获的所有快照。
-
通过指定开始和结束快照 ID,定义需要导出 AWR 数据的快照范围:
为 begin_snap 输入值:例:30
为 end_snap 输入值:例:40在本例中,快照 ID 30 被指定为开始快照,快照 ID 40 被指定为结束快照。
-
指定目录对象指向需要存放导出转储文件的目录:
输入 directory_name 的值:DATA_PUMP_DIR
DATA_PUMP_DIR指定了指向目录的目录对象ORACLE_HOME/rdbms,其中ORACLE_HOME是/u01/app/oracle/dbhome_1 -
指定不带文件扩展名的导出转储文件的名称。默认情况下,使用 的文件扩展名
.dmp。输入文件名的值:awrdata_30_40
在此示例中,
awrdata_30_40.dmp在目录对象中指定的目录中创建了一个名为的导出转储文件DATA_PUMP_DIR:为 SYS.SYS_EXPORT_TABLE_01 设置的转储文件为:
/u01/app/oracle/product/ database_release_number /dbhome_1/rdbms/awrdata_30_40.dmp
作业“SYS”。“SYS_EXPORT_TABLE_01”于 08:58:20 成功完成根据必须导出的 AWR 数据量,AWR 导出操作可能需要一段时间才能完成。创建转储文件后,您可以使用数据泵将文件传输到另一个系统。
导入 AWR 数据
导出转储文件传输到目标系统后,使用
awrload.sql脚本导入导出的 AWR 数据。该awrload.sql脚本创建一个暂存模式,其中快照数据从数据泵文件传输到数据库。然后将数据从暂存模式传输到适当的 AWR 表中。要运行awrload.sql脚本,您必须以SYS用户身份连接到数据库。要导入 AWR 数据:
-
在 SQL 提示符下,输入:
@$ORACLE_HOME/rdbms/admin/awrload.sql
将显示目录对象列表。
-
指定指向导出转储文件所在目录的目录对象:
输入 directory_name 的值:DATA_PUMP_DIR
在此示例中,
DATA_PUMP_DIR指定了指向导出转储文件所在目录的目录对象。 -
指定不带文件扩展名的导出转储文件的名称。默认情况下,使用 的文件扩展名
.dmp。输入文件名的值:awrdata_30_40
在此示例中,选择了名为的导出转储文件
awrdata_30_40.dmp。 -
指定需要导入 AWR 数据的暂存模式的名称:
输入 schema_name 的值:AWR_STAGE
在此示例中,创建了一个名为的暂存模式
AWR_STAGE。 -
为暂存模式指定默认表空间:
输入 default_tablespace 的值:SYSAUX
在此示例中,
SYSAUX指定了表空间。 -
指定临时表空间:
输入临时表空间的值:TEMP
在此示例中,
TEMP指定了表空间。 -
首先将 AWR 数据导入
AWR_STAGE架构,然后将其传输到SYS架构中的 AWR 表:处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
在 11 秒内完成 113 个 CONSTRAINT 对象
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
在 1 秒内完成 1 个 REF_CONSTRAINT 对象
作业“SYS”。“SYS_IMPORT_FULL_03”于 09:29:30 成功完成
... 删除 AWR_STAGE 用户
AWR 加载结束
-