[英]How to feed oracle 11g schema_prod with schema_dev data
有人可以告诉我如何将schema_dev中的数据提供给schema_prod吗?
我正在研究与labvantage ERP连接的oracle 11g 2,并且在2018年之前,我想将在schema_dev上创建的所有数据转移到另一个schema_prod,这意味着这两个模式具有相同的体系结构,但没有相同的数据。
schema_dev充满了更多数据,而schema_prod仅填充了一些数据!
非常感谢 :)
当你将要传输的数据, 数据泵可能是你要找的东西:使用使用数据泵导出为“卸载”(出口)从SCHEMA_DEV数据,然后将数据导入-什么? 当然,数据泵IMPORT。
请注意,您必须创建一个目录(指向磁盘上目录的Oracle对象,通常是数据库服务器上的目录),并向执行该操作的用户授予特权。
需要数据时,可以使用CONTENT = DATA_ONLY参数。
这是Data Pump Export文档,所以-看一下(导入文档在下一页)。
另外,您可以使用原始的exp和imp实用程序 ,这些实用程序可以轻松地在自己的计算机上运行(即,您不需要像数据泵那样的目录 )。 您将在此处使用IGNORE = YES参数(因为导入将尝试创建表,但它们已经存在-指示它忽略CREATE TABLE错误并继续执行导入数据)。
原始的进出口文件在这里 。
由于仅数据传输就足够了,因此您还可以选择使用CTAS或使用链接服务器插入表来引用源表。
如果您是初次通过链接服务器插入数据获取源表,请考虑以下代码示例:
**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 source_schema.table_name@link_name;
or
insert into target_schema.table_name select * from source_schema.table_name@link_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 all_tables@link_name where owner='SOURCE_SCHEMA';
or
select 'insert into target_schema.' || table_name || ' select * from source_schema.' || table_name || '@link_name;' from all_tables@link_name where owner='SOURCE_SCHEMA';
请注意,上述方法有以下限制。 根据您的要求,以下限制没有任何问题。
不允许在链接服务器上传输CLOB数据类型字段。
约束被忽略
感谢您的所有建议,我使用此方法,即使出现4个错误,它也能很好地工作:
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)在Widnows上
impdp system/dba schemas=shema_dev remap_schema=schema_dev:schema_prod directory=fileoutdir dumpfile=180111DEV.dmp
logfile=180111DEV.log transform=OID:n
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.