oracle数据库的数据是按用户来组织的,所以你说的“现有实例的表、表空间、存储过程等”,实际上应该是某个用户的对象;而你只需要将这个用户的对象导出,然后导入到一个新用户下去,就可以实现你的需求。你这里的“实例”实际上应该是用户的概念,而不是一个oracle实例。
做法是:expdp按用户导出数据,然后创建新用户,用impdp导入,导入的时候remap_schema即可。
不能一步到位。这样复制后,主键,索引只能是后期处理。
ALTER TABLE 表名 ADD Constraint PK_表名 Primary key(列名)
CREATE INDEX [tid_index] ON [dbo][tb_test]([tid])
Oracle 9/10
可以使用 exp 导出 Imp 导入
===== 导出、导入 单个表的情况。
导出 TEST_MAIN,TEST_SUB 这2个表
EXP test/test@源数据库 file=testdmp tables=(TEST_MAIN,TEST_SUB)
导入 TEST_MAIN,TEST_SUB 这2个表
IMP test2/test2@目标数据库 file=testdmp tables=(TEST_MAIN,TEST_SUB)
==============================
Oracle 10g 开始, 新增数据泵工具 导出导入 的工具
前面需要一些 环境配置
数据泵工具导出的步骤:
1、创建DIRECTORY
create directory dir_dp as 'C:/OracleData'
2、授权
Grant read,write on directory dir_dp to obpos;
EXPDP 按表导出:
EXPDP obpos/obpos tables="OBPOS""ROOM","OBPOS""ROOMBOOKD" dumpfile=expdp_Roomdmp logfile=expdp_Roomlog directory=dir_dp job_name=my_job
授权
Grant read,write on directory dir_dp to test;
IMPDP 按表导入:
impdp obpos/obpos dumpfile=obposdmp logfile=obposlog directory=dir_dp tables=MR_USER job_name=my_job
sql1=insert into table1(a, b, c) select d,e,f from table2
sql2=insert into table1 select from table2
table1 为新表 table2 为要复制的表
sql1 复制几个字段 字段类型必须相同
sql2 为复制全部字段
以上就是关于ORACLE11g将数据库内容全部复制,并将其加为本数据库的一个新实例全部的内容,包括:ORACLE11g将数据库内容全部复制,并将其加为本数据库的一个新实例、如何把数据库中某个表中的数据与结构(包括主外键,索引)全部复制到另一张表中、oracle 如何复制大数据量的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)