Oracle数据泵同步数据方式简要步骤
Oracle数据库同步技术
基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。
Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年刚收购的一款叫做GoldenGate的数据同步软件。
第三方厂商的数据同步技术有Quest公司的SharePlex和DSG的RealSync。
下面对这些技术逐一进行介绍。
一、DataGuard数据同步技术DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。
DataGuard 提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。
在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。
最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。
在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。
最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交。
这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。
备份oracle数据库表的方法
备份oracle数据库表的方法备份Oracle数据库表是保证数据库数据安全的重要措施之一。
本文将介绍几种备份Oracle数据库表的方法,帮助用户选择适合自己的备份方式。
一、使用数据泵导出表数据数据泵是Oracle提供的一个强大的工具,可以将表数据导出为一个可移植的二进制文件。
使用数据泵导出表数据的步骤如下:1. 连接到数据库:使用SQL*Plus或SQL Developer等工具连接到Oracle数据库。
2. 导出表数据:运行以下命令导出表数据:```expdp username/password@connect_string tables=table_name directory=directory_name dumpfile=dumpfile_name.dmp```其中,username是数据库用户名,password是密码,connect_string是数据库连接字符串,table_name是要导出的表名,directory_name是存储导出文件的目录,dumpfile_name是导出文件的名称。
3. 导出结果:数据泵将会导出表数据,并保存在指定的目录中的导出文件中。
二、使用INSERT语句备份表数据除了使用数据泵,还可以使用INSERT语句将表数据备份到另一个表中。
这种方法适用于小型数据库,备份过程如下:1. 创建备份表:在同一个数据库中创建一个与原表结构相同的备份表。
```CREATE TABLE backup_table AS SELECT * FROM original_table WHERE 1=0;```2. 备份数据:运行以下命令将表数据备份到备份表中。
```INSERT INTO backup_table SELECT * FROM original_table;```注意,这个命令会将原表的所有数据复制到备份表中。
三、使用Oracle备份工具除了以上两种方法,还可以使用Oracle备份工具进行表数据备份。
oracle 数据泵 备份 步骤
oracle 数据泵备份步骤Oracle 数据泵是一种用于备份和恢复数据库的工具,它可以将数据库对象和数据导出到一个二进制文件中,然后再将其导入到另一个数据库中。
下面将详细介绍使用Oracle数据泵进行数据库备份的步骤。
1.创建目录对象:在备份数据库之前,首先要在数据库中创建一个目录对象,用于存储导出和导入文件。
可以使用以下SQL语句来创建目录对象:```sqlCREATE DIRECTORY e某p_dir AS '/backup/dump';```其中,'e某p_dir'是目录对象的名称,'/backup/dump'是目录对象在操作系统中的路径。
2.创建数据库备份任务:可以使用e某pdp命令来创建并执行数据库备份任务。
以下是一个创建数据库备份任务的示例:```sql```其中,system是数据库用户名,password是数据库密码,dbname是数据库实例名,e某p_dir是上一步创建的目录对象名,backup.dmp是导出文件的名称,full=y表示导出整个数据库,logfile是导出日志文件的名称。
3.执行备份任务:运行上述命令后,将会开始执行数据库备份任务,导出的数据将保存到指定的目录对象中。
在此过程中,可以通过查看日志文件来跟踪导出的进度和错误信息。
4.导入备份文件:如果需要将备份文件导入到另一个数据库中,可以使用impdp命令来执行导入任务。
以下是一个导入备份文件的示例:```sql```其中,system是目标数据库的用户名,password是密码,dbname是目标数据库的实例名,e某p_dir是之前创建的目录对象名,backup.dmp 是导出文件的名称,logfile是导入日志文件的名称,full=y表示完全导入整个数据库。
5.执行导入任务:运行上述命令后,将开始导入备份文件的过程,将数据导入到目标数据库中。
在此过程中,可以查看日志文件以了解导入的进度和错误信息。
oracle数据迁移方法
oracle数据迁移方法Oracle数据迁移是将现有的Oracle数据库中的数据、表结构以及相关的约束条件等迁移到另一个Oracle数据库中的过程。
在实际的数据迁移中,存在以下几种常见的方法和工具:1.手动数据迁移:手动数据迁移是一种基本的迁移方法,它需要手工编写SQL语句完成数据迁移的操作。
这种方法适用于迁移的数据量较小的情况,迁移过程相对简单。
迁移操作可以分为以下几个步骤:-创建目标数据库-创建目标数据库的表结构,包括表、索引、约束等-导出源数据库中的数据-将导出的数据文件导入到目标数据库中手动数据迁移方法的优点是灵活性高,适用于各种复杂情况下的迁移操作。
但是由于需要手工编写SQL语句,容易出现错误,对于数据量较大的迁移任务来说,效率较低。
2. Oracle迁移工具:Oracle官方提供了多个数据迁移工具,如Oracle Data Pump和Oracle GoldenGate等。
- Oracle Data Pump是一个用于高效迁移数据和元数据的工具。
它支持全库导出和导入,可以将源数据库中的数据、表结构、存储过程等导出为二进制文件,然后通过网络或者直接复制文件的方式导入到目标数据库中。
Oracle Data Pump在迁移时可以进行数据过滤、表空间映射等操作,可以对数据进行压缩和加密等处理。
- Oracle GoldenGate是一个实时数据复制和数据同步工具,它可以在源数据库和目标数据库之间实时同步数据,保证两个数据库的数据一致性。
GoldenGate可以进行额外的数据转换和过滤操作,支持多种复杂的迁移场景,如异构数据库迁移、分布式迁移等。
3.第三方迁移工具:除了Oracle官方提供的工具,还有一些第三方的数据迁移工具,如TOAD、SQL Developer等。
这些工具提供了可视化的操作界面,可以简化迁移操作的过程,提高效率。
-TOAD是一款功能强大的数据库管理工具,具有数据导入导出、数据比较、数据同步等功能。
oracle 数据库表同步方法
oracle 数据库表同步方法Oracle数据库是一种关系型数据库管理系统,可以用于存储和管理大量数据。
在日常的数据库管理工作中,经常会遇到需要将数据从一个表同步到另一个表的情况。
本文将介绍几种常见的Oracle数据库表同步方法。
方法一:使用INSERT INTO SELECT语句INSERT INTO SELECT语句可以将一个表的数据插入到另一个表中。
首先,我们需要创建目标表,确保目标表的结构与源表相同。
然后,使用INSERT INTO SELECT语句将源表的数据插入到目标表中。
该方法适用于数据量较小、结构相同的表之间的同步。
方法二:使用MERGE语句MERGE语句可以同时执行插入、更新和删除操作,可以将源表的数据同步到目标表中。
首先,我们需要创建目标表,确保目标表的结构与源表相同。
然后,使用MERGE语句将源表的数据同步到目标表中。
该方法适用于数据量较大、需要同时进行插入、更新和删除操作的表之间的同步。
方法三:使用Oracle GoldenGateOracle GoldenGate是一种高性能的数据同步和复制工具,可以实现实时的、零数据丢失的数据同步。
使用Oracle GoldenGate可以将源表的数据实时同步到目标表中,并保持数据的一致性。
该工具适用于对数据同步要求较高的场景,但需要购买和配置相应的许可证和环境。
方法四:使用Oracle Data PumpOracle Data Pump是Oracle数据库自带的一种数据导入导出工具,可以将表数据导出为二进制文件,然后再导入到目标表中。
使用Oracle Data Pump可以将源表的数据导出为.dmp文件,然后再导入到目标表中。
该方法适用于数据量较大、需要跨不同数据库实例进行数据同步的场景。
方法五:使用外部表外部表是一种特殊的表,它不存储数据,而是通过定义外部表和数据文件的映射关系,实现对外部文件中数据的查询和操作。
可以使用外部表将数据从源表同步到目标表。
dataxoracle数据同步到oracle(异库同步传输)
dataxoracle数据同步到oracle(异库同步传输)由于要实现两个不同数据源的同步,datax可以⾼效的传输,故在做海量数据同步和迁移时,可以考虑此⽅法,其中json⽂件如下。
{"job": {"setting": {"speed": {"channel": 3,"byte": 1048576},"errorLimit": {"record": 0,"percentage": 0.02}},"content": [{"reader": {"name": "oraclereader","parameter": {"username": "yrH5SM8rgxfgfTYB","password": "mmdfsQ8kTgfghfg","splitPk": "","connection": [{"querySql": ["select t.ins_order_id,t.request_type,t.trad_time,t.app_time from poqx.TRADE_ORDER_HIS t where 1=1 and t.create_time >= trunc(sysdate -1 ,'dd') and t.create_time < trunc(sysdate ,'dd') " ],"jdbcUrl": ["jdbc:oracle:thin:@192.168.81.63:1521:sxyuzs"]}]}},"writer": {"name": "oraclewriter","parameter": {"username": "nE+PjgfgJZb+RbE","password": "ariudyjdkes73A9","column": ["\"INS_ORDER_ID\"","\"REQUEST_TYPE\"","\"TRAD_TIME\"","\"APP_TIME\""],"preSql": ["delete from i_w.TRADE_INSURANCE_ORDER_HIS t where t.create_time >= trunc(sysdate -1 ,'dd') and t.create_time < trunc(sysdate ,'dd')"],"connection": [{"table": ["TRADE_ORDER_HIS"],"jdbcUrl": "jdbc:oracle:thin:@//192.168.32.10:1521/oppdb"}]}}}]}}。
orcleAndqad数据互同步方法
方法一利用DB2联合数据库Oracle联合表WPS_EXEC_SEQUENCE_TAB,WPS_ERPBOM,WPS_ERPPART,WPS_ERPSUPPLIERQAD联合表首先安装QAD数据库驱动,运行ERP系统客户端程序clienthelper.exe,安装QAD测试库驱动. 通过ODBC连接,建立数据源xydcseq_mstr,xydcbom_mstr,xydcvend_mstr,xydcpt_mstr存储过程过程P_READ_QADTOORACLE依次利用游标读取QAD联合数据库中的表,检查是否有记录更新,有则同步到oracle数据库中对应表对应记录CREATE PROCEDURE DB2ADMIN.P_READ_QADTOORACLE ( )-------------------------------------------------------------------------- SQL 存储过程------------------------------------------------------------------------BEGIN-------------------------------------------------------------------------- 主同步表变量------------------------------------------------------------------------DECLARE dgno varchar(50);DECLARE execstate INTEGER;DECLARE executes INTEGER;-------------------------------------------------------------------------- BOM表变量------------------------------------------------------------------------DECLARE bomerpno varchar(50);DECLARE bompdmno varchar(50);DECLARE bomerppartno varchar(50);DECLARE bompdmpartno varchar(50);DECLARE bomstate INTEGER;DECLARE bomrmks varchar(80);-------------------------------------------------------------------------- 零件表变量------------------------------------------------------------------------DECLARE parterppartno varchar(50);DECLARE partstate INTEGER;DECLARE partrmks varchar(80);-------------------------------------------------------------------------- 供应商表变量------------------------------------------------------------------------DECLARE supperppartno varchar(50);DECLARE suppcode varchar(50);DECLARE suppstate INTEGER;DECLARE supprmks varchar(80);DECLARE tmpSQL varchar(1000);DECLARE count1 INTEGER;DECLARE count2 INTEGER;DECLARE count3 INTEGER;DECLARE count4 INTEGER;DECLARE errsql varchar(2000);DECLARE v_Message V ARCHAR(2000);------------------------------------------------------------------------------ 游标定义,主表只读取最新的10条设变进行处理,其它表通过设变号读取----------------------------------------------------------------------------declare cur1 cursor for SELECT designNO, Execute FROM DB2ADMIN.WPS_EXEC_SEQUENCE_TAB where Execute<1 order by GTime;declare curtemp cursor WITH RETURN TO CALLER FOR S1;DECLARE exit handler FOR sqlexceptionbegin--开始异常处理V ALUES ('设变号:'||dgno||' 错误描述:'||errsql )INTO v_Message;--设置存储过程返回值SIGNAL SQLSTATE '99999'SET MESSAGE_TEXT =v_Message;end;set count1= (select count(*) from (SELECT designNO, Execute FROM DB2ADMIN.WPS_EXEC_SEQUENCE_TAB where Execute<1 order by GTime) as a);open cur1;while count1>0 dofetch cur1 into dgno,executes;if(executes<0) then goto A;end if;set execstate=(select xydcseq_exec from DB2ADMIN.xydcseq_mstr where xydcseq_no=dgno); if (execstate>0) then-- set dgno=''''||dgno||'''';set errsql='更新[WPS_EXEC_SEQUENCE_TAB]出错!';update WPS_EXEC_SEQUENCE_TAB set Execute =execstate where designno=dgno;----------------bom表set count2=(select count(*) from xydcbom_mstr where xydcbom_nbr=dgno);set tmpSQL='select xydcbom_fg, xydcbom_pdmfg, xydcbom_pdm_part, xydcbom_erp_part , xydcbom_status, xydcbom_rmks from xydcbom_mstr wherexydcbom_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count2>0 dofetch curtemp into bomerpno, bompdmno, bompdmpartno, bomerppartno, bomstate,bomrmks;if(bomstate>0) thenset errsql='更新[wps_erpbom]出错!';update wps_erpbom set execueState=char(bomstate),remark=bomrmks where designNO=dgno and erpProductNO=bomerpno and pdmProductNO=bompdmno and pdmPartNO= bompdmpartno and eprPartNO= bomerppartno;end if;set count2=count2-1;End while;Close curtemp;----------------零件表set count3=(select count(*) from xydcpt_mstr where xydcpt_nbr =dgno);set tmpSQL='select xydcpt_part, xydcpt_status, xydcpt_rmks from xydcpt_mstr where xydcpt_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count3>0 dofetch curtemp into parterppartno, partstate,partrmks;if(partstate>0) thenset errsql='更新[wps_erppart]出错!';update wps_erppart set execueState=char(partstate),remark=partrmks where designno=dgno and erpPartNO= parterppartno;end if;set count3=count3-1;End while;Close curtemp;----------------供应商表set count4=(select count(*) from xydcvend_mstr where xydcvend_nbr =dgno);set tmpSQL='select xydcvend_part, xydcvend_code, xydcvend_status, xydcvend_rmks from xydcvend_mstr where xydcvend_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count4>0 dofetch curtemp into supperppartno, suppcode,suppstate,supprmks;if(suppstate>0) thenset errsql='更新[WPS_ERPSupplier]出错!';update WPS_ERPSupplier set execueState=char(suppstate),remark=supprmks where designno=dgno and erpPartNO= supperppartno and supplierCode= suppcode;end if;set count4=count4-1;End while;Close curtemp;end if;set count1=count1-1;end while;A:Close cur1;end过程P_SYN_QAD ( )CREATE PROCEDURE DB2ADMIN.P_SYN_QAD ( )-------------------------------------------------------------------------- SQL 存储过程------------------------------------------------------------------------BEGINDECLARE tmpSQL varchar(1000);DECLARE errsql varchar(2000);DECLARE tmp varchar(500);DECLARE dgno varchar(50);DECLARE gtime varchar(50);DECLARE executes INTEGER;DECLARE count1 INTEGER;DECLARE count2 INTEGER;DECLARE count3 INTEGER;DECLARE state1 INTEGER;-------------------------------------------------------------------------- BOM表变量------------------------------------------------------------------------DECLARE bomerpno varchar(50);DECLARE bompdmno varchar(50);DECLARE bomerppartno varchar(50);DECLARE bompdmpartno varchar(50);DECLARE bomstate INTEGER;DECLARE bomrmks varchar(80);-------------------------------------------------------------------------- 零件表变量------------------------------------------------------------------------DECLARE parterppartno varchar(50);DECLARE partstate INTEGER;DECLARE partrmks varchar(80);-------------------------------------------------------------------------- 供应商表变量------------------------------------------------------------------------DECLARE supperppartno varchar(50);DECLARE suppcode varchar(50);DECLARE suppstate INTEGER;DECLARE supprmks varchar(80);DECLARE v_Message V ARCHAR(2000);------------------------------------------------------------------------------ 游标定义,主表只读取最新的10条设变进行处理,其它表通过设变号读取------------------------------------------------------------------------------declare cur1 cursor for select designNO, GTime, Execute from (SELECT rownumber() over(order by GTime) as m, designNO, GTime, Execute FROM DB2ADMIN.WPS_EXEC_SEQUENCE_TAB where Execute<1) as a;declare cur1 cursor for SELECT designNO, GTime, Execute FROM DB2ADMIN.WPS_EXEC_SEQUENCE_TAB where Execute<1 order by GTime;declare curtemp cursor WITH RETURN TO CALLER FOR S1;DECLARE exit handler FOR sqlexceptionbegin--开始异常处理V ALUES ('设变号:'||dgno||' 错误描述:'||errsql )INTO v_Message;--设置存储过程返回值SIGNAL SQLSTATE '99999'SET MESSAGE_TEXT =v_Message;end;set count1= (select count(*) from (SELECT designNO, GTime, Execute FROM DB2ADMIN.WPS_EXEC_SEQUENCE_TAB where Execute<1 order by GTime) as a);open cur1;while count1>0 dofetch cur1 into dgno,gtime, executes;-----------------主表if(executes<0) then goto A;end if;set count2=(select count(*) from DB2ADMIN.xydcseq_mstr where xydcseq_no=dgno);if(count2<1) thenset errsql='插入[xydcseq_mstr]出错!';insert into DB2ADMIN.xydcseq_mstr(xydcseq_no, xydcseq_date, xydcseq_exec) values(dgno,date(gtime), executes);else/*set state1=(select xydcseq_exec from DB2ADMIN.xydcseq_mstr where xydcseq_no=dgno);if(state1>0) thenset errsql='更新[WPS_EXEC_SEQUENCE_TAB]出错!';update WPS_EXEC_SEQUENCE_TAB set Execute =state1 where designno=dgno;commit;end if;*/end if;------------------BOM表set count2=(select count(*) from DB2ADMIN. xydcbom_mstr where xydcbom_nbr=dgno);set count3=(select count(*) from DB2ADMIN. wps_erpbom where designno=dgno);if(count2<1 and count3>0) thenset errsql='插入[Xydcbom_mstr]出错!';--错误sql=insert into DB2ADMIN. Xydcbom_mstr(select designNO, erpProductNO, pdmProductNO, Area, pdmPartNO, colorDivision, colorCode, eprPartNO, cast(char(numBefore) as decimal(10,2)), useArea, useAreaRate, workshop, cast(char(workShopNum) as decimal(10,2)), date(effectiveDate),date(expireDate) ,structureType , cast(char(wasteRate) as decimal(10,2)) ,cast(char(orderAheadDate) as INTEGER), cast(char(execueState) as INTEGER), remark from wps_erpbom where designno='||dgno||')';insert into DB2ADMIN. Xydcbom_mstr(select designNO, erpProductNO, pdmProductNO, Area, pdmPartNO, colorDivision, colorCode, eprPartNO, cast(char(numBefore) as decimal(10,2)), useArea, useAreaRate, workshop, cast(char(workShopNum) as decimal(10,2)), date(effectiveDate),date(expireDate),structureType , cast(char(wasteRate) as decimal(10,2)) ,cast(char(orderAheadDate) as INTEGER), cast(char(execueState) as INTEGER), remark from wps_erpbomwhere designno=dgno);else/*set tmpSQL='select xydcbom_fg, xydcbom_pdmfg, xydcbom_pdm_part, xydcbom_erp_part , xydcbom_status, xydcbom_rmks from xydcbom_mstr where xydcbom_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count2>0 dofetch curtemp into bomerpno, bompdmno, bompdmpartno, bomerppartno, bomstate,bomrmks;if(bomstate>0) thenset errsql='更新[wps_erpbom]出错!';update wps_erpbom set execueState=char(bomstate),remark=bomrmks where designNO=dgno and erpProductNO=bomerpno andpdmProductNO=bompdmno and pdmPartNO= bompdmpartno and eprPartNO= bomerppartno;commit;end if;set count2=count2-1;End while;Close curtemp;*/end if;---------------零件表set count2=(select count(*) from DB2ADMIN. xydcpt_mstr where xydcpt_nbr=dgno);set count3=(select count(*) from DB2ADMIN. wps_erppart where designno=dgno);if(count2<1 and count3>0) thenset errsql='插入[xydcpt_mstr]出错!';--错误sql=insert into DB2ADMIN. xydcpt_mstr(select designNO, erpPartNO, erpPartName, unit, productType, itemType, site, location, cast(char(mainDate) as smallint), cast(char(planOrder) as smallint), orderPrinciple, cast(char(orderLifecycle) as INTEGER), cast(char(safeStockLevel) as decimal(10,2)), supplier, purchaseOrProduce , cast(char(isUseOldPart) as smallint), cast(char(jit) as smallint) , pt_chr07, cast(char(execueState) as INTEGER), remark from wps_erppart where designno='||dgno||')';insert into DB2ADMIN. xydcpt_mstr(select designNO, erpPartNO, erpPartName, unit, productType, itemType, site, location, cast(char(mainDate)as smallint), cast(char(planOrder) as smallint), orderPrinciple, cast(char(orderLifecycle) as INTEGER), cast(char(safeStockLevel) as decimal(10,2)),supplier, purchaseOrProduce , cast(char(isUseOldPart) as smallint), cast(char(jit) as smallint) , pt_chr07, cast(char(execueState) as INTEGER), remark fromwps_erppart where designno=dgno);else/*set tmpSQL='select xydcpt_part, xydcpt_status, xydcpt_rmks from xydcpt_mstr where xydcpt_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count2>0 dofetch curtemp into parterppartno, partstate,partrmks;if(partstate>0) thenset errsql='更新[wps_erppart]出错!';update wps_erppart set execueState=char(partstate),remark=partrmks where designno=dgno and erpPartNO= parterppartno;commit;end if;set count2=count2-1;End while;Close curtemp;*/end if;--------------供应商表set count2=(select count(*) from DB2ADMIN. xydcvend_mstr where xydcvend_nbr=dgno);set count3=(select count(*) from DB2ADMIN. WPS_ERPSupplier where designno=dgno);if(count2<1 and count3>0) thenset errsql='插入[xydcvend_mstr]出错!';--错误sql=insert into DB2ADMIN. xydcvend_mstr(select designNO, erpPartNO, supplierCode, supplierName, supplierChgType, cast(char(packNum) as decimal(10,2)), cast(char(numOfDays) as INTEGER), cast(char(lifecycle) as INTEGER) , sdt , cast(char(supply) as decimal(10,2)) , date(supplyStartDate), assmbleNO,cast(char(execueState) as INTEGER), remark from WPS_ERPSupplier where designno='||dgno||')';insert into DB2ADMIN. xydcvend_mstr(select designNO, erpPartNO, supplierCode, supplierName, supplierChgType, cast(char(packNum) as decimal(10,2)), cast(char(numOfDays) as INTEGER), cast(char(lifecycle) as INTEGER) , sdt , cast(char(supply) as decimal(10,2)) , date(supplyStartDate),assmbleNO,cast(char(execueState) as INTEGER), remark from WPS_ERPSupplier where designno=dgno);else/*set tmpSQL='select xydcvend_part, xydcvend_code, xydcvend_status, xydcvend_rmks from xydcvend_mstr where xydcvend_nbr='''||dgno||'''';PREPARE S1 from tmpSQL;Open curtemp;While count2>0 dofetch curtemp into supperppartno, suppcode,suppstate,supprmks;if(suppstate>0) thenset errsql='更新[WPS_ERPSupplier]出错!';update WPS_ERPSupplier set execueState=char(suppstate),remark=supprmks where designno=dgno and erpPartNO= supperppartno andsupplierCode= suppcode;commit;end if;set count2=count2-1;End while;Close curtemp;*/end if;set count1=count1-1;--commit;end while;A:Close cur1;end利用DB2复制功能建立两个Capture 控制服务器DB2(中转服务器)建立一个DB2的capture服务器Oracle(非DB2服务器)注册昵称WPS_EXEC_SEQUENCE_TAB,WPS_ERPBOM,WPS_ERPPART,WPS_ERPSUPPLIER建立一个Apply 控制服务器建立虚拟预定集(可以正常运行的,具体源和目标无所谓.执行频率暂设为5分钟一次.该预定集功能主要为定时执行自定义的存储过程P_READ_ORACLETOQAD将数据由oracle同步到QAD)建立虚拟预定集(可以正常运行的,具体源和目标无所谓.执行频率暂设为5分钟一次.该预定集功能主要为定时执行自定义的存储过程P_READ_QADTOORACLE将数据由QAD同步到oracle)搭建部署图。
oracle 数据泵使用技巧
oracle 数据泵使用技巧Oracle 数据泵是一个非常强大的工具,用于在Oracle数据库之间导入和导出数据。
它提供了一种快速和高效的方式,可以将数据从一个数据库迁移到另一个数据库,或者备份和还原数据。
在本文中,我将分享一些使用Oracle数据泵的技巧,希望对您有所帮助。
让我们来了解一下数据泵的基本概念和术语。
数据泵由两个主要组件组成:导出(expdp)和导入(impdp)。
导出是将数据从源数据库导出到文件系统的过程,而导入是将数据从文件系统导入到目标数据库的过程。
在导出和导入过程中,可以使用各种参数和选项来控制数据的导出和导入行为。
一、导出数据1. 导出整个数据库要导出整个数据库,可以使用以下命令:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp full=y```其中,username是数据库用户的名称,password是用户的密码,database_name是数据库的服务名,directory_name是导出文件保存的目录,dumpfile_name.dmp是导出文件的名称。
通过设置full参数为y,可以导出整个数据库。
2. 导出指定的表如果只需要导出特定的表,可以使用tables参数来指定要导出的表的名称:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name```其中,table_name是要导出的表的名称。
可以通过逗号分隔多个表的名称。
3. 导出指定的数据有时候,可能只需要导出表中的部分数据。
可以使用query参数来指定要导出的数据的条件:```expdp username/password@database_name directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name query=condition```其中,condition是指定要导出的数据的条件。
ORACLE数据泵数据迁移
cd /imp 这个/imp就是导出时所用的/dmp impdp是数据泵Fra bibliotek具的导入命令:
impdp mcmcc/mcmcc DUMPFILE=mcmcc.tousu.p%U.dp DIRECTORY=dpdir SCHEMAS=mcmcc LOGFILE=mcmcc.tousu.imp.log parallel=4
LOGFILE=mcmcc.tousu.exp.log 导出日志,供检查
parallel=4 并行度4,不建议更大了,可能对生产系统压力过大,且存储设备IO能力有限
schemas=mcmcc 限定mcmcc用户
INCLUDE=TABLE:"IN 只对限定的表做导出
(
select table_name from mcmcc.myadmin
)
三、导入目标库
源数据库主机上的/dmp目录,应经通过NFS挂载到了目标数据库主机IP2上,位置在"/imp",所以不必在两台机器间传递数据节约时间
同时目标数据库也已提前创建了所需的DIRECTORY,即:create directory dpdir as '/imp';
导入时需要注意:
1、确认是在目标数据库主机上操作,严防在生产系统上误操作
2、可能需要反复测试,导入前可能需要drop上一次导入的内容。可以把mcmcc.myadmin表也导过来,关联dba_tables视图方便做检查
将要导出的表名插入这张表
表中可能已经有些测试数据,请自行清除
二、从源数据库导出
用ORACLE用户登录服务器IP
cd /dmp 这是数据导出的工作目录,所有的参数文件、日志、导出文件都在此
oracle数据同步方法
oracle数据同步方法Oracle数据库同步是指将一个数据库的数据和变化同步到另一个数据库中,以保证数据的一致性和可用性。
Oracle提供了多种数据同步方法,包括物理备份和还原、逻辑备份和还原、数据泵导出和导入、基于日志的增量备份和还原、GoldenGate数据复制等。
下面将详细介绍这些方法。
1.物理备份和还原:物理备份是将数据库的数据文件、控制文件和日志文件复制到备份目录,还原则是将备份文件拷贝到目标数据库中恢复。
这种方法适用于大规模数据库,具有高效性和实时性,但需要占用大量的存储空间。
2.逻辑备份和还原:逻辑备份是将数据库中的逻辑对象(如表、视图、索引等)导出为可读的SQL语句,还原则是将导出的SQL语句在目标数据库中执行。
这种方法适用于小规模数据库,具有可读性和可移植性,但不适用于大规模数据库,因为导出和导入的过程较为耗时。
3. 数据泵导出和导入:数据泵是Oracle提供的一种高效的逻辑备份和还原方法,它通过使用数据库内部的数据泵工具,将数据库中的逻辑对象和数据导出为二进制文件,再通过导入工具将二进制文件恢复到目标数据库中。
数据泵导出和导入可以实现高效的数据同步和迁移,支持并发处理和并行执行,适用于大规模数据库。
4.基于日志的增量备份和还原:基于日志的增量备份是指将源数据库的日志文件传送给目标数据库,目标数据库通过解析和应用这些日志文件,实现源数据库和目标数据库之间的数据同步。
这种方法实时性较高,适用于大规模数据库的实时备份和恢复。
5. GoldenGate数据复制:GoldenGate是Oracle提供的一种高性能、实时数据复制解决方案。
它通过捕获源数据库的日志文件并将其传送到目标数据库,实现源数据库和目标数据库之间的数据同步和一致性保证。
GoldenGate具有较低的延迟、高可用性和强大的数据筛选和转换能力,适用于大规模和复杂的数据同步场景。
除了上述方法,Oracle还提供了一些辅助工具和技术来增强数据同步的效率和可靠性,如使用数据库链接进行数据复制、使用物化视图进行数据汇总和聚合、使用数据同步代理进行数据分发等。
详细讲解Oracle数据库的数据迁移方法
详细讲解Oracle数据库的数据迁移方法Oracle数据库的数据迁移可以使用多种方法,包括传统的物理备份和恢复,逻辑备份和恢复,以及逻辑复制。
下面将详细介绍这些方法。
1. 物理备份和恢复(Physical Backup and Recovery):物理备份和恢复是最常用的数据迁移方法之一、它基于数据库的物理结构,通过将数据文件、控制文件和日志文件等直接复制到目标数据库来完成数据迁移。
具体步骤如下:(1)在源数据库上执行全量备份,包括数据文件、控制文件和日志文件。
(2)将备份文件传输到目标数据库主机。
(3)在目标数据库上恢复备份文件。
物理备份和恢复的优点是速度快,适用于大规模数据迁移,但缺点是需要额外的存储空间以及停机时间。
2. 逻辑备份和恢复(Logical Backup and Recovery):逻辑备份和恢复是另一种常用的数据迁移方法,它基于逻辑结构,通过导出和导入数据来完成数据迁移。
具体步骤如下:(1) 在源数据库上执行逻辑备份,例如使用expdp命令将数据导出为数据泵文件。
(2)将数据泵文件传输到目标数据库主机。
(3) 在目标数据库上执行逻辑恢复,例如使用impdp命令将数据导入。
逻辑备份和恢复的优点是可以选择性地备份和恢复数据,不需要额外的存储空间,但缺点是速度较慢,适用于小规模数据迁移。
3. 逻辑复制(Logical Replication):逻辑复制是一种将源数据库的数据变更应用到目标数据库的方法,它可以实时地将数据更新传输到目标数据库。
具体步骤如下:(1) 在源数据库上启用逻辑复制功能,例如使用Oracle GoldenGate或Oracle Streams。
(2)配置源数据库和目标数据库之间的连接。
(3)在目标数据库上创建复制进程,用于接收源数据库发送的数据变更。
(4)启动复制进程,开始数据复制。
逻辑复制的优点是实时性好,可以减少停机时间,但缺点是配置和管理复杂,需要考虑数据一致性和传输性能等问题。
oracle数据泵介绍及使用
oracle数据泵介绍及使⽤数据泵可以⾼效备份,复制,保护和传输⼤量得数据和元数据。
可以通过下列⽅式使⽤数据泵:1.对整个数据库或数据⾃⼰进⾏实时逻辑备份;2.为测试或开发,复制整个数据库或数据⼦集;3.快速⽣成⽤于重建对象的DDL代码;4.通过旧版本导出数据,然后像新版本导⼊数据的⽅式,升级数据库。
1.⾼效处理⼤量数据的功能,可以⾼效导出和导⼊⼤量数据。
2.交互式命令⾏使⽤程序,使⽤它可以先断开连接,然后恢复连接活动的数据泵作业。
3.在不创建数据泵⽂件的情况下,从远程数据库导出⼤量数据,并将这些数据直接导⼊本地数据库。
4.通过导⼊和导出⼯作,在运⾏时更改⽅案,表空间,数据⽂件和存储位置;5.精细过滤对象和数据;6.对⽬录对象应⽤受控安全模式(通过数据库);7.⾼级功能,如压缩和加密。
1.expdp (数据泵导出实⽤程序);2.impdp (数据泵导⼊实⽤程序);3.DMBS_DATAPUMP软件包(数据泵API);4.DBMS_METADATA软件包(数据泵元数据API);在导出和导⼊数据和元数据时,expdp 和 impdp 实⽤程序会使⽤内置的DBMS_DATAPUMP DBMS_METADATA 软件包。
DBMS_DATAPUMP软件包可以在不同的数据库环境之间移动整个数据库或数据⼦集。
DBMS_MATEDATA软件包可以导出和导⼊数据库对象的信息。
当启动数据泵导出和导⼊作业时,数据库服务器上就会初始化⼀个OS主进程。
这个主进程的名称格式为 ora_dmNN_。
在Linux和Unix系统中,可以使⽤ps命令查看进程。
ps -ef |grep ora_dm因为数据泵使⽤其内部的PL/SQL代码执⾏操作,所以需要使⽤共享池中的⼀些内存加载PL/SQL软件。
如果共享池中空间不⾜,系统会提⽰ORA-04031:unable to allocate bytes of shared memory…错误提⽰,并中断数据泵。
oracle两台数据库数据同步
oracle两台数据库数据同步在企业应用中,数据库是承载重要数据的核心存储系统。
为了满足不同业务需求和数据处理能力的要求,有些企业会设计和建立多台数据库。
然而,在多台数据库使用的情况下,数据同步成为一个关键问题。
本文将介绍Oracle数据库中两台数据库数据同步的方法和步骤。
一、概述数据同步是指在不同数据库之间保持数据的一致性,确保多台数据库中的数据始终保持同步。
在Oracle数据库中,有多种方法可以实现数据同步,如使用Oracle Data Guard、Oracle GoldenGate和Oracle Streams等。
下面将针对Data Guard和GoldenGate进行详细介绍。
二、Oracle Data GuardOracle Data Guard是Oracle数据库的一种内置工具,用于在两台或多台数据库之间实现数据同步和容灾。
它通过将主数据库上的事务日志传输给备用数据库,实现数据的同步。
Data Guard提供了两种数据同步模式:物理数据同步和逻辑数据同步。
1. 物理数据同步物理数据同步是指直接将主数据库的数据文件复制到备用数据库,实现数据的一致性。
物理数据同步可以通过Data Guard的物理备用来实现。
在物理备用中,主数据库和备用数据库通过Redo Apply进程将主数据库上的事务日志应用到备用数据库上,从而实现数据的同步。
2. 逻辑数据同步逻辑数据同步是指将主数据库中的逻辑变更操作转换为备用数据库上的等效操作。
逻辑数据同步可以通过Data Guard的逻辑备用来实现。
在逻辑备用中,主数据库和备用数据库之间使用SQL Apply进程将主数据库上的逻辑变更应用到备用数据库上。
逻辑备用还可以实现跨操作系统平台的数据同步。
三、Oracle GoldenGateOracle GoldenGate是Oracle提供的一套高效灵活的实时数据复制、迁移和整合解决方案。
它可以在Oracle数据库之间,或者Oracle数据库与其他非Oracle数据库之间实现数据同步。
oracle数据同步解决方案
oracle数据同步解决方案
《Oracle数据同步解决方案》
Oracle数据库作为业界领先的关系型数据库管理系统,被广泛应用于企业的核心业务系统中。
在日常运营过程中,数据同步是一个非常重要的问题,特别是在多个地点或多个数据库之间需要实时同步数据时。
为了解决这个问题,需要一套稳定可靠的数据同步解决方案。
首先,Oracle自身提供了多种数据同步工具,比如GoldenGate 和Data Guard。
这些工具可以使用户在多个数据库之间实现高效的数据同步,确保数据的一致性和完整性。
GoldenGate可以在不同数据库之间实时同步数据,而Data Guard则可以提供可靠的数据备份和灾难恢复功能。
另外,还有一些第三方的数据同步工具,比如DBSync和HVR,它们可以与Oracle数据库无缝集成,并提供更加灵活和定制化的数据同步方案。
这些工具通常提供了更多的功能和配置选项,可以满足不同企业的特定需求。
除了工具之外,还可以考虑使用云平台提供的数据同步服务。
比如Oracle自己的Oracle Cloud,以及亚马逊的AWS和微软的Azure等云平台,都提供了数据同步服务,可以帮助企业快速搭建稳定可靠的数据同步方案。
总之,针对Oracle数据库的数据同步需求,企业可以根据自身的实际情况选择合适的解决方案。
无论是使用自带的工具、
第三方的数据同步软件,还是运用云平台的数据同步服务,都需要根据数据量、频次、实时性等因素进行考量,以确保数据同步的效率和稳定性。
选择合适的数据同步解决方案,将为企业带来更高的生产效率和数据安全。
Oracle10g的数据迁移方案
Oracle10g的数据迁移方案数据迁移是将数据从一个存储系统迁移到另一个存储系统的过程。
在Oracle10g中,有许多不同的数据迁移方案可供选择,每个方案都有其优势和适用场景。
以下是一些常见的Oracle10g数据迁移方案。
1. 导出/导入(exp/imp):这是Oracle10g中最常见的数据迁移方法之一、它通过使用exp将数据从源数据库导出到一个文件中,然后使用imp将数据从该文件中导入到目标数据库中。
这种方法适用于小型数据库或需要频繁迁移的数据库,但不适用于大型数据库或需要迁移大量数据的情况。
2. 数据泵(expdp/impdp):数据泵是Oracle10g中引入的新特性,它提供了更高效和更灵活的数据迁移方法。
数据泵使用expdp将数据从源数据库以二进制格式导出到一个文件中,然后使用impdp将数据以二进制格式从该文件中导入到目标数据库中。
相对于导出/导入,数据泵具有更快的速度和更小的导出/导入文件大小。
3. SQL Loader:SQL Loader是Oracle10g中的另一种数据迁移工具,它可以将大量数据从平面文件导入到数据库中。
它通过读取一个控制文件和一个或多个数据文件来工作。
控制文件指定要导入的数据的格式和目标表,而数据文件包含实际的数据。
SQL Loader适用于需要从外部系统或文件导入数据的场景。
4.数据库链接:如果源数据库和目标数据库位于不同的服务器上,可以使用数据库链接来实现数据迁移。
数据库链接允许在一个数据库中对另一个数据库进行查询和操作。
通过在目标数据库上创建一个链接对象,然后使用该链接对象在源数据库上执行查询和操作,可以将数据从源数据库迁移到目标数据库。
5. Oracle数据同步/复制:如果需要实时数据同步或定期数据复制,可以考虑使用Oracle的数据同步或复制工具。
Oracle提供了许多数据同步和复制解决方案,如Oracle Streams和Oracle GoldenGate。
oracle常用的数据库迁移方法
oracle常用的数据库迁移方法Oracle是一种常用的关系型数据库管理系统,为了满足不同需求,很多时候需要将数据库迁移到其他环境或系统中。
本文将介绍几种常用的Oracle数据库迁移方法。
一、数据泵导入导出数据泵是Oracle提供的一种高效的数据迁移工具,可以将表、视图、存储过程等数据库对象以及数据导出为二进制文件,再通过数据泵导入工具将数据导入到目标数据库中。
数据泵导出可以使用expdp命令,导出的文件可以包含完整的数据库对象和数据,也可以只导出指定的对象。
数据泵导入可以使用impdp命令,将导出的文件恢复到目标数据库中。
二、物理备份恢复物理备份恢复是一种将源数据库的物理文件备份并复制到目标数据库的方法。
这种方法适用于需要将整个数据库迁移到其他环境的情况。
在源数据库上执行备份命令,将数据库的物理文件备份到指定位置。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行恢复命令,将备份文件恢复到目标数据库中。
三、逻辑备份恢复逻辑备份恢复是一种将源数据库中的逻辑数据导出为可读的文本文件,再通过导入工具将数据导入到目标数据库中的方法。
在源数据库上执行逻辑备份命令,将数据导出为文本文件。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行导入命令,将备份文件导入到目标数据库中。
四、数据库链接数据库链接是一种在不同数据库之间进行数据传输和共享的方法。
可以在目标数据库中创建一个链接,链接到源数据库,然后通过SQL语句将数据从源数据库传输到目标数据库。
在目标数据库中创建一个数据库链接,链接到源数据库。
通过SQL语句查询源数据库中的数据,并将数据插入到目标数据库中。
五、GoldenGate数据复制GoldenGate是Oracle提供的一种高性能数据复制工具,可以将源数据库的数据实时复制到目标数据库中。
这种方法适用于需要实时同步数据的场景。
在源数据库和目标数据库上分别安装和配置GoldenGate软件。
在源数据库上配置数据抽取进程,将数据抽取到中间文件。
oracle adg同步原理
oracle adg同步原理Oracle ADG同步原理是指解决在Oracle多节点集群环境下发生宕机或数据丢失时,如何在备库上保证经过验证的数据完整性。
该问题主要通过Active Data Guard (ADG)进行解决。
下面将分步骤阐述Oracle ADG同步原理。
步骤一:启用Active Data Guard(ADG)Active Data Guard 是Oracle数据库的一个附加功能,用于启用物理备库用于读取。
在ADG中,备库会实时复制主库的数据。
此外,主库可以与备库进行同步,以确保备库中的数据始终与主库中的数据一致。
步骤二:同步数据当主库上进行更改时,这些更改将立即提交到备库。
ActiveData Guard能够将同步和应用更改的速度提高到每秒钟100次以上。
这样,即使在主库上发生宕机或其他数据丢失情况时,备库中的数据也是最新的。
步骤三:验证数据完整性Oracle ADG同步原理的关键在于验证备库中的数据完整性。
为了确保数据完整性,Oracle数据库使用了Redo Apply进程。
Redo Apply 进程将Redo日志中的更改应用到备库中,从而使数据的副本始终与主库保持一致。
Oracle还使用了日志挂起和重新启动、全局事务管理等技术来保证数据完整性。
步骤四:监控备库在ADG中,备库需要时刻处于就绪状态,以应对可能发生的宕机或其他故障。
为了保证备库的稳定性和可用性,需要使用监控系统来检测备库的运行状态。
如果发现备库出现问题,则需要尽快修复,以确保其稳定性和可用性。
总结:以上便是Oracle ADG同步原理的步骤描述。
Oracle ADG同步原理通过启用Active Data Guard,同步数据、验证数据完整性和监控备库的方式来确保Oracle多节点集群环境下的可用性和稳定性。
通过这种方式,即使在主库发生宕机或其他数据丢失情况下,Oracle数据库仍然能够保持高可用性和稳定性,从而有效地解决了这一问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据泵同步数据方式简要步骤1、Oracle数据泵简介
Data Pump 反映了整个导出/导入过程的完全革新。
不使用常见的 SQL 命令,而是应用专有 API(direct path api etc) 来以更快得多的速度加载和卸载数据。
以下步骤为从容灾数据库(源端)上,按照用户或者数据表的模式将数据同步到测试数据库(目标端)上的简要步骤。
应用数据泵做数据同步的前提条件是:
1、在源端数据库主机上有足够大的空间存储导出的数据
文件,要求提前对导出的数据文件大小做评估,看预
留多少空间。
2、在目标端主机上也要保证有足够的空间存放导入的数
据文件
3、源端和目标端导入导出所用的数据库用户及密码(明
文)
2、Oracle数据泵数据表同步方式和用户同步方式
2.1.指定数据表同步方式(导出、导入)
以同步客服测试数据库为例:
源端数据库主机:10.220.33.112(存放目录:/dataapp1/expdp)
目标端数据库主机:10.220.64.71(存放目录:/oracle/imp)
导出:
1.滤出需要同步的数据表列表,评估需要同步的表大小,在源端
及目标端主机上留出所需的数据文件的空间。
2.登录(oracle/oracle)源端数据库主机(10.220.3
3.112),执行:
$sqlplus / as sysdba
登录数据库,执行如下语句:
>create directory dpdata2 as '/dataapp1/expdp ';
>grant read, write on directory dpdata2 to kf;
3.按照表名导出的语句如下:
$expdp kf/kf@rzkfdb1new tables=co_task,co_task_log,……directory=dpdata2 dumpfile=par%U.dmp parallel=15;
参数说明:tables------要导出的数据表名
Directory------数据文件导出的路径
Dumpfile---------导出的数据文件命名%为通配符,按照导出的进程数递增 Parallel----------数据泵支持多进程导出方式
4.此语句执行后观察在对应的目录是否有*.dmp类别的文件生成导入:
1.数据泵导入操作是在导出操作基础上进行的,在导入操作之前,
需要在目标数据库上建立与源端相同的表空间、schema等元素。
2.登录(oracle)目标端10.220.64.71数据库主机,执行
$Sqlplus / as sysdba
登录数据库,执行如下语句:
>create directory dpdata5 as '/oracle/imp';
>grant read, write on directory dpdata2 to kf;
3.把导出的*.dmp文件,传递到导入数据目录/oracle/imp,执行:
$impdp kf/kf@kfcsdb directory=dpdata5 dumpfile=par%U.dmp parallel=15 remap_tablespace=TS_KF:KFCSDB_DATA_TBS01,TS_KF_LOG:KFCSDB_DATA_TBS01;
参数说明:tables------要导出的数据表名
Directory------数据文件导出的路径
Dumpfile---------导出的数据文件命名%为通配符,按照导出的进程数递增 Parallel----------数据泵支持多进程导出方式
remap_tablespace----------数据泵支持指定表空间导入
4.导入过程中需要注意,数据泵在同步数据库会将表结构、表数
据、表索引全部导入,这时需要考虑表空间的问题。
由于测试
数据库目前给各个数据库只建立了一个默认的表空间,所以目
前需要将从容灾导出的数据重定向到测试环境的表空间,语句
为:
remap_tablespace=TS_KF:KFCSDB_DATA_TBS01,TS_KF_LOG:KFCSDB_DATA_TBS01
2.2.指定用户同步方式(导出、导入)
以同步ESOP测试数据库为例:
源端数据库主机:10.220.33.71(存放目录:/dataapp1/expdp)
目标端数据库主机:10.220.64.69(存放目录:/oracle/imp)
导出:
1.登录(oracle/oracle)源端数据库主机(10.220.33.71),执行:
$Sqlplus / as sysdba
登录数据库,执行如下语句:
>create directory dpdata2 as '/dataapp1/expdp ';
>grant read, write on directory dpdata2 to esop;
2.按照表名导出的语句如下:
$expdp esop/esop@crmcsdb schemas=esop directory=dpdata2 dumpfile=par%U.dmp parallel=10 ;
3.此语句执行后观察在对应的目录是否有*.dmp类别的文件生成
导入:
1.登录(oracle)目标端10.220.64.69数据库主机,执行
$Sqlplus / as sysdba
登录数据库,执行如下语句:
>create directory dpdata2 as '/oracle/imp';
>grant read, write on directory dpdata2 to esop;
2.把导出的*.dmp文件,传递到导入数据目录/oracle/imp,执行:
$ impdp esop/esop@crmcsdb directory=dpdata2 dumpfile=par%U.dmp SCHEMAS=esop parallel=10 remap_tablespace=TS_TEST_01:CRMCSDB_DATA_TBS01;
3.导入过程中需要注意,数据泵在同步数据库会将表结构、表数
据、表索引全部导入,这时需要考虑表空间的问题。
由于测试数据库目前给各个数据库只建立了一个默认的表空间,所以目前需要将从容灾导出的数据重定向到测试环境的表空间,语句为:
remap_tablespace=TS_TEST_01:CRMCSDB_DATA_TBS01。