首页 > 数据库 > Oracle > AWR数据的导出和导入全过程
1、因为在导出(或导入)时,我们需要指出导出(导入)文件存放路径。因首先要建立导出(或导入)路径。
SQL>connect sys/password as sysdba;
SQL>create directory dump_awr as ‘E:DBwork’;
SQL>grant read,write on directory dump_dir to system;
2、通过awrextr.sql脚本进行导出
利用有权限的用户调用$ORACLE_HOME/rdbms/admin/awrextr.sql脚本,并按提示操作就可以导出就可以了。
SQL> @?/rdbms/admin/awrextr.sql
3、利用有权限的用户调用$ORACLE_HOME/rdbms/admin/awrload.sql脚本,并按提示操作就可以实现导入。如果需要导入,则按如下步骤执行
SQL> @?/rdbms/admin/awrload.sql
我在第一次执行时,总是报如下错误。经过仔细观察发现,在按提示输入数据文件名时,一般不需要填写后缀.dmp字样,如E:DBworkawrdat_1737_2443_july而不是E:DBworkawrdat_1737_2443_july.dmp,如下所示:
| *** AWR Load Started ...
|
| This operation will take a few moments. The
| progress of the AWR load operation can be
| monitored in the following directory/file:
| E:DBwork
| awrdat_1737_2443_july.dmp.log
|
Exception encountered in AWR_LOAD
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-31640: 无法打开要读取的转储文件 "E:DBworkawrdat_1737_2443_july.dmp.dmp"
ORA-27041:
无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) The system cannot find the file specified.
ORA-39001: 参数值无效
begin
*
第 1 行出现错误:
ORA-06512: 在 "SYS.DBMS_SWRF_INTERNAL", line 1208
ORA-06512: 在 line 3
begin
*
第 1 行出现错误:
ORA-20106: AWR tables do not exist for the 'AWR_STAGE' user
ORA-06512: 在 "SYS.DBMS_SWRF_INTERNAL", line 1733
ORA-06512: 在 line 3
... Dropping AWR_STAGE user
4、在本地作出刚导入的AWR数据的数据库的AWR报表,则需要调用$ORACLE_HOME/rdbms/admin/awrrpti.sql脚本,按提示操作即可。
SQL> @?/rdbms/admin/awrrpti.sql
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
3747980894 1 db db1 test-db1
3747980894 2 db db2 test-db2
* 1875960175 1 KUQLAN10 kuqlan10 abc123
输入 dbid 的值: 3747980894 -----在此要选择要刚导入数据所对应的数据库DBid
Using 3747980894 for database Id
输入 inst_num 的值: 1
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing
specifying a number lists all completed snapshots.
输入 num_days 的值:
….
如上所示,按提示输入即可。
总结:
通过以上方法我们不仅克服时间的限制,也能远程仔细看到数据库健壮性所需的所有关键数据。
我在第一次测试时遇到两个问题:
其一是数据库没有进入打开状态而mount状态原因,导入后制作AWR报告时无法显示snapshot id,打开数据库后重新导入问题被解决了。
其二是制作AWR报告不知存放到(比如HTML格式的)哪一个路径底下,实际上AWR报告就在你的当前目录下存放(即在sqlplus / as sysdba执行前的cmd提示所对应的路径)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841027/viewspace-1055121/ ,如需转载,请注明出处,否则将追究法律责任。