博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 12C 跨网络传输数据库
阅读量:2438 次
发布时间:2019-05-10

本文共 9425 字,大约阅读时间需要 31 分钟。

跨网络传输数据库,可以通过使用network_link参数来执行导入操作,导入操作将使用数据库链路,不需要生成dump文件。操作步骤如下:

1.在目标数据库中创建链接到源数据库的数据链路。执行导入操作的用户必须要有datapump_imp_full_database权限,并且连接到源数据库的数据链路也必须连接到一个有datapump_exp_full_database角色的用户。在源数据库中用户不能有sysdba管理权限。

2.在源数据库上将所有用户表空间置为只读模式

3.将源数据库中所有用户表空间相关的数据文件传输到目标数据库。如果源平台与目标平台的字节编码不同,那么查询v$transportable_platform视图来进行查看。并且将可以使用以下一种方法来转换数据文件:

.使用dbms_file_transfer包中的get_file或put_file过程来传输数据文件。这些过程会自动将数据文件的字节编码转换为目标平台的字节编码。

.使用rman的convert命令来将数据文件的字节编码转换为目标平台的字节编码。

4.在目标数据库上执行导入操作。使用Data Pump工具来导入所有用户表空间的元数据与管理表空间的元数据与真实数据。确保以下参数正确设置:

.transportable=always
.transport_datafiles=list_of_datafiles
.full=y
.network_link=database_link
.version=12
如果源数据库为11.2.0.3或11g之后的版本,那么必须设置version=12。如果源数据库与目标数据库都是12c,那么version参数不用设置。

如果源数据库包含任何加密表空间或表空间包含加密列,那么你必须指定encryption_pwd_prompt=yes或指定encryption_password参数。

Data Pump跨网络导入将会复制所有用户表空间所存储对象的元数据与管理表空间中的元与用户对象的真实数据。当导入完成后,用户表空间将会置于读写模式。

5.可选操作将源数据库中的所有用户表空间置为读写模式。

下面的例子是将源数据库jyrac传输到目标数据库jypdb

1.在目标数据库中以sys用户来创建链接到源数据库的数据链路。源数据库中的用户为jy

SQL> conn sys/xxzx7817600@jypdb as sysdbaConnected.SQL> create public database link jyrac_link  2    connect to jy identified by "jy"  3    using '(DESCRIPTION =  4      (ADDRESS_LIST =  5        (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.130.153)(PORT = 1521))  6      )  7      (CONNECT_DATA =  8        (SERVER = DEDICATED)  9        (SERVICE_NAME =jyrac) 10      ) 11    )';Database link created.

2.在源数据库上将所有用户表空间置为只读模式

SQL>  select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME                STATUS------------------------------ ---------SYSTEM                         ONLINESYSAUX                         ONLINEUNDOTBS1                       ONLINETEMP                           ONLINEUSERS                          ONLINEUNDOTBS2                       ONLINEEXAMPLE                        ONLINETEST                           ONLINE8 rows selected.SQL> alter tablespace test read only;Tablespace altered.SQL> alter tablespace users read only;Tablespace altered.SQL> alter tablespace example read only;Tablespace altered.SQL> select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME                STATUS------------------------------ ---------SYSTEM                         ONLINESYSAUX                         ONLINEUNDOTBS1                       ONLINETEMP                           ONLINEUSERS                          READ ONLYUNDOTBS2                       ONLINEEXAMPLE                        READ ONLYTEST                           READ ONLY8 rows selected.

3.在目标数据库中使用dbms_file_transfer包中的get_file过程将源数据库中所有用户表空间相关的数据文件传输到目标数据库上

在源数据库中创建目录tts_datafile(存储数据文件)

SQL> create or replace directory tts_datafile as '+datadg/jyrac/datafile/';Directory created.SQL> grant execute,read,write on directory tts_datafile to public;Grant succeeded.

在目标数据库中创建目录tts_datafile(存储数据文件)

SQL> create or replace directory tts_datafile as '+DATA/JY/4B2C6373AE2547CCE053AB828A0A7CA3/DATAFILE/';Directory created.SQL> grant execute,read,write on directory tts_datafile to public;Grant succeeded.

在目标数据库中执行dbms_file_transfer.get_file过程将源数据库中所有用户表空间所相关的数据文件传输到目标数据库中

SQL> exec dbms_file_transfer.get_file(source_directory_object =>'TTS_DATAFILE',source_file_name => 'test01.dbf',source_database =>'jyrac_link',destination_directory_object => 'TTS_DATAFILE',destination_file_name => 'test01.dbf');PL/SQL procedure successfully completed.SQL> exec dbms_file_transfer.get_file(source_directory_object =>'TTS_DATAFILE',source_file_name => 'example.260.930413057',source_database =>'jyrac_link',destination_directory_object => 'TTS_DATAFILE',destination_file_name => 'example01.dbf');PL/SQL procedure successfully completed.SQL> exec dbms_file_transfer.get_file(source_directory_object =>'TTS_DATAFILE',source_file_name => 'users.263.930413057',source_database =>'jyrac_link',destination_directory_object => 'TTS_DATAFILE',destination_file_name => 'users01.dbf');PL/SQL procedure successfully completed.
ASMCMD [+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile] > ls -ltType      Redund  Striped  Time             Sys  NameDATAFILE  UNPROT  COARSE   JUN 02 16:00:00  N    users01.dbf => +DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/DATAFILE/FILE_TRANSFER.298.945620417DATAFILE  UNPROT  COARSE   JUN 02 16:00:00  N    test01.dbf => +DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/DATAFILE/FILE_TRANSFER.300.945620337DATAFILE  UNPROT  COARSE   JUN 02 16:00:00  N    example01.dbf => +DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/DATAFILE/FILE_TRANSFER.299.945620391DATAFILE  UNPROT  COARSE   JUN 02 16:00:00  Y    FILE_TRANSFER.300.945620337DATAFILE  UNPROT  COARSE   JUN 02 16:00:00  Y    FILE_TRANSFER.299.945620391DATAFILE  UNPROT  COARSE   JUN 02 16:00:00  Y    FILE_TRANSFER.298.945620417DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  N    testtb01.dbf => +DATA/jy/4B2C6373AE2547CCE053AB828A0A7CA3/DATAFILE/TESTTB.295.944828399DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    UNDO_2.277.939167063DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    UNDOTBS2.278.945029905DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    UNDOTBS1.273.939167015DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    TESTTB.295.944828399DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    SYSTEM.274.939167015DATAFILE  UNPROT  COARSE   JUN 02 00:00:00  Y    SYSAUX.275.939167015

4.在目标数据库上执行导入操作。使用Data Pump工具来导入所有用户表空间的元数据与管理表空间的元数据与真实数据。

[oracle@jytest1 tts]$ impdp system/xxzx7817600@JYPDB_175 full=y network_link=jyrac_link transportable=always transport_datafiles='+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/test01.dbf','+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/example01.dbf','+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/users01.dbf' version=12 directory=TTS_DUMP_LOG logfile=import.logImport: Release 12.2.0.1.0 - Production on Fri Jun 2 16:30:40 2017Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionStarting "SYSTEM"."SYS_IMPORT_FULL_01":  system/********@JYPDB_175 full=y network_link=jyrac_link transportable=always transport_datafiles=+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/test01.dbf,+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/example01.dbf,+data/jy/4B2C6373AE2547CCE053AB828A0A7CA3/datafile/users01.dbf version=12 directory=TTS_DUMP_LOG logfile=import.logEstimate in progress using BLOCKS method...Processing object type DATABASE_EXPORT/PLUGTS_FULL/FULL/PLUGTS_TABLESPACEProcessing object type DATABASE_EXPORT/PLUGTS_FULL/PLUGTS_BLKProcessing object type DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE_DATAProcessing object type DATABASE_EXPORT/NORMAL_OPTIONS/TABLE_DATAProcessing object type DATABASE_EXPORT/NORMAL_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA.......Processing object type DATABASE_EXPORT/SCHEMA/DIMENSIONProcessing object type DATABASE_EXPORT/END_PLUGTS_BLKProcessing object type DATABASE_EXPORT/FINAL_POST_INSTANCE_IMPCALLOUT/MARKERProcessing object type DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCACT_INSTANCEProcessing object type DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCDEPOBJProcessing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJProcessing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMAProcessing object type DATABASE_EXPORT/AUDITProcessing object type DATABASE_EXPORT/POST_SYSTEM_IMPCALLOUT/MARKERORA-39082: Object type PROCEDURE:"APEX_030200"."F" created with compilation warningsORA-39082: Object type PROCEDURE:"APEX_030200"."APEX_ADMIN" created with compilation warningsORA-39082: Object type PROCEDURE:"APEX_030200"."HTMLDB_ADMIN" created with compilation warningsJob "SYSTEM"."SYS_IMPORT_FULL_01" completed with 1689 error(s) at Fri Jun 2 16:43:47 2017 elapsed 0 00:13:03

传输完成后我们抽查用户jy的dba_tables表的数据在传输后是否与源数据库中的数据一致。

源数据库

SQL> conn sys/xxzx7817600@jyrac as sysdbaConnected.SQL> select count(*) from jy.dba_tables;  COUNT(*)----------      2141

目标数据库

SQL> conn sys/xxzx7817600@jypdb as sysdbaConnected.SQL> select count(*) from jy.dba_tables;  COUNT(*)----------      2141

查询传输后用户表空间的状态是否为online,可以看到test,example,users表空间状态为online

SQL> select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME                STATUS------------------------------ ---------SYSTEM                         ONLINESYSAUX                         ONLINEUNDOTBS1                       ONLINETEMP                           ONLINEUNDO_2                         ONLINEUSERS                          ONLINETESTTB                         ONLINETEMP2                          ONLINETEMP3                          ONLINEEXAMPLE                        ONLINETEST                           ONLINEUNDOTBS2                       ONLINE12 rows selected.

5.将源数据库中的所有用户表空间设置为读写模式

SQL> alter tablespace test read write;Tablespace altered.SQL> alter tablespace example read write;Tablespace altered.SQL> alter tablespace users read write;Tablespace altered.SQL> select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME                STATUS------------------------------ ---------SYSTEM                         ONLINESYSAUX                         ONLINEUNDOTBS1                       ONLINETEMP                           ONLINEUSERS                          ONLINEUNDOTBS2                       ONLINEEXAMPLE                        ONLINETEST                           ONLINE8 rows selected.

到此通过网络执行完整数据库传输的操作就完成了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-2140194/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-2140194/

你可能感兴趣的文章
ITCAM for Websphere v6.0与ITM v6.1集成的快速指南
查看>>
数据泵 TTS(传输表空间技术)
查看>>
linux下开机自动开启单机oracle
查看>>
weblogic管理1——创建 和 删除一个domain
查看>>
SQL开发--经典建议(转载)和大家分享
查看>>
网络上经典的DOS小命令(转)
查看>>
sqlserver中的一些技巧(转)
查看>>
简化Windows 2003域控制器密码(转)
查看>>
GSM无线网络的虚拟分层(转)
查看>>
不用重装 轻松解决Windows系统棘手问题(转)
查看>>
对移动通信网络优化工作的一些见解(转)
查看>>
正确网络配置建议 减少卡机死机的关键(转)
查看>>
智能手机Smartphone开发从零起步(五)(转)
查看>>
SEO技巧中你可能没有注意的细节(转)
查看>>
微软开始二代Windows Live 不见Cloud OS踪影
查看>>
创建ISAPI扩展(转)
查看>>
病毒及木马预警一周播报(06.04.17~04.23)(转)
查看>>
黑客口述:我的第一台3389肉鸡的经历(转)
查看>>
关于 cleanup stack 和 two phase consturction [1](转)
查看>>
Oracle数据导入导出imp/exp (转)
查看>>