2017-12-23 4 views
0

Kann mir bitte jemand sagen, wie Schema_Prod mit Daten von Schema_dev bitte füttern?Wie füttere Orakel 11g Schema_Prod mit Schema_dev Daten

Ich arbeite an Oracle 11g 2 verbunden mit labvantage ERP und vor 2018, ich möchte alle Daten auf Schema_dev zu einem anderen schema_prod übertragen, das heißt, dass beide Schemata die gleiche Architektur, aber nicht die gleichen Daten haben.

schema_dev ist voll mit mehr Daten und schema_prod wird nur mit einigen Daten gefüllt!

vielen Dank :)

Antwort

0

Wie Sie sind zur Übertragung von Daten, die Pumpe Daten sein könnten, was Sie suchen: Verwendung Daten-Export-Pumpe auf „Entladen“ (Export) Daten aus SCHEMA_DEV und Importieren Sie dann Daten mit - was? Datenpumpe IMPORT natürlich.

Beachten Sie, dass Sie ein Verzeichnis erstellen müssen (Oracle-Objekt, das auf ein Verzeichnis auf einer Festplatte verweist, normalerweise auf dem Datenbankserver) und dem Benutzer, der diese Aktion ausführt, Berechtigungen erteilen.

Da Sie Daten benötigen, verwenden Sie den Parameter CONTENT = DATA_ONLY.

Hier ist Data Pump Export Dokumentation, also - werfen Sie einen Blick (Import Dokumentation ist auf der nächsten Seite).

Alternativ Sie original exp und imp Dienstprogramme verwenden könnte, die leicht auf dem eigenen Computer ausgeführt werden können (das heißt Sie müssen nicht Verzeichnis wie bei der Datenpumpe). Sie würden hier den Parameter IGNORE = YES verwenden (da import versucht wird, Tabellen zu erstellen, aber sie existieren bereits - weisen Sie sie an, CREATE TABLE-Fehler zu ignorieren und beim Importieren von Daten zu proccede).

Ursprünglicher Export & Importdokumentation ist here.

0

Da in Ihrer Anforderung nur die Datenübertragung ausreicht, haben Sie auch die Möglichkeit, CTAS oder INSERT INTO TABLE über den Linkserver zu verwenden, um auf die Quelltabelle zu verweisen.

Betrachten Sie folgende Beispiel-Code, wenn Sie neu mit Einfügen von Datenquellentabelle durch Link-Server unter:

**Create link in target server:** 
Create public link server link_name 
connect to DB_USER_Source identified by password_db_user_source 
using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = <<IP_HOST_SOURCE>>)(PORT = 1521))(CONNECT_DATA = SERVICE_NAME = <<<SID_NAME_SOURCE_MACHINE>>>)))'; 
or 
Create public link server link_name 
connect to DB_USER_Source identified by password_db_user_source 
using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = <<IP_HOST_SOURCE>>)(PORT = 1521))(CONNECT_DATA = (SID = <<<SID_NAME_SOURCE_MACHINE>>>)))' 

**Refer following query to load data from source to target, run the command in target machine:** 
create table target_schema.table_name as select * from [email protected]_name; 
or 
insert into target_schema.table_name select * from [email protected]_name; 

Also, you can generate above commands by following SQL query if you have large numebr of tables to transfer and run output commands in the target server: 
select 'create table target_schema.' || table_name || ' as select * from source_schema.' || table_name || '@link_name;' from [email protected]_name where owner='SOURCE_SCHEMA'; 
or 
select 'insert into target_schema.' || table_name || ' select * from source_schema.' || table_name || '@link_name;' from [email protected]_name where owner='SOURCE_SCHEMA'; 

Beachten Sie, dass es folgende Einschränkungen in obigen Verfahren sind. Aufgrund Ihrer Anforderungen haben Sie keine Probleme mit den folgenden Einschränkungen.

  • Datentyp CLOB Felder sind nicht auf trasfer über den Link Server erlaubt.

  • Constraints werden ignoriert

0

Vielen Dank für Ihre Anregungen, ich diese Methode verwenden, und es funktioniert gut, auch wenn ich 4 Fehler hatte:

1- sqlplus:

select sid,serial# from v$session where username = 'SCHEMA_PROD'; 
alter system kill session ',';--this is for killing used sessions 
drop user SCHEMA_prod cascade; 

create user schema_prod identified by passwordXXXX 
default tablespace lvsspace 
temporary tablespace temp 
quota unlimited on lvsspace 
quota unlimited on lvsidx; 

grant connect, create procedure, create trigger, create table, create sequence, create type, create view to schema_prod; 

=> SQLplus

2- (CTRL + C) auf Widnows

impdp system/dba schemas=shema_dev remap_schema=schema_dev:schema_prod directory=fileoutdir dumpfile=180111DEV.dmp 
logfile=180111DEV.log transform=OID:n