Oracle11gr2資料泵新特性(五)

yangtingkun發表於2009-09-13

Oracle11gr2版本中,並沒有對資料泵做出多大的改動,主要是增加了對原始版本引數的支援,並且去掉了一些小的限制。

這一篇介紹資料泵對版本的支援。

Oracle11gr2資料泵新特性(一):http://yangtingkun.itpub.net/post/468/491243

Oracle11gr2資料泵新特性(二):http://yangtingkun.itpub.net/post/468/491323

Oracle11gr2資料泵新特性(三):http://yangtingkun.itpub.net/post/468/491371

Oracle11gr2資料泵新特性(四):http://yangtingkun.itpub.net/post/468/491420

 

 

11.2中,Oracle增加了版本的功能,而資料泵也支援對指定版本的匯出,或將物件匯入到指定的版本中。

SQL> conn yangtk/yangtk
已連線。
SQL> select sys_context('USERENV', 'CURRENT_EDITION_NAME') from dual;

SYS_CONTEXT('USERENV','CURRENT_EDITION_NAME')
-----------------------------------------------------------------------
ORA$BASE

SQL> select synonym_name           
  2  from user_synonyms;

SYNONYM_NAME
------------------------------
S_1

SQL> create edition my_edition;

版本已建立。

SQL> alter session set edition = my_edition;

會話已更改。

SQL> create synonym s_my_edition for t;

同義詞已建立。

SQL> host
[oracle@bjtest ~]$ expdp yangtk/yangtk directory=d_output dumpfile=my_edition.dp include=synonym source_edition=my_edition

Export: Release 11.2.0.1.0 - Production on 星期一 9 14 08:10:53 2009

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

連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
啟動 "YANGTK"."SYS_EXPORT_SCHEMA_01":  yangtk/******** directory=d_output dumpfile=my_edition.dp include=synonym source_edition=my_edition
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 0 KB
處理物件型別 SCHEMA_EXPORT/SYNONYM/SYNONYM
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_01
的轉儲檔案集為:
  /home/oracle/my_edition.dp
作業 "YANGTK"."SYS_EXPORT_SCHEMA_01" 已於 08:11:02 成功完成

[oracle@bjtest ~]$ impdp yangtk/yangtk directory=d_output dumpfile=my_edition.dp target_edition=ora\$base

Import: Release 11.2.0.1.0 - Production on 星期一 9 14 08:13:08 2009

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

連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功載入/解除安裝了主表 "YANGTK"."SYS_IMPORT_FULL_01"
啟動 "YANGTK"."SYS_IMPORT_FULL_01":  yangtk/******** directory=d_output dumpfile=my_edition.dp target_edition=ora$base
處理物件型別 SCHEMA_EXPORT/SYNONYM/SYNONYM
ORA-31684:
物件型別 SYNONYM:"YANGTK"."S_1" 已存在
作業 "YANGTK"."SYS_IMPORT_FULL_01" 已經完成, 但是有 1 個錯誤 ( 08:13:11 完成)

[oracle@bjtest ~]$ exit
exit

SQL> select synonym_name
  2  from user_synonyms;

SYNONYM_NAME
------------------------------
S_1
S_MY_EDITION

由於版本MY_EDITIONORA$BASE的子版本,因此可以看到父版本建立的同義詞。匯出MY_EDITION版本的同義詞時,匯出了S_1S_MY_EDITION兩個物件。

而匯入到目標版本ORA$BASE時,由於S_1已經存在,因此只將同義詞S_MY_EDITION匯入到目標版本中。

資料泵的匯出和匯入版本功能,只是指定了匯出或匯入的版本物件,而在資料泵儲存的檔案中並沒有儲存版本對應的資訊,因此在匯入的時候,如果沒有指定TARGET_EDITION,則Oracle就會匯入到預設版本下,而和匯出時指定的版本沒有關係。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-614568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章