linux导入dmp数据泵授权,【oracle相关】通过数据泵将win系统oracle数据库导入到linux下...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

【问题】不用rman,只采用oracle中数据泵导入导出工具将win系统下的oracle数据导入到linux系统下

【分析】

当数据不是很大,且对rman恢复不熟悉的朋友,可以用数据泵工具来导入导出,操作相对来说繁琐,但相对简单

【处理】

第一步:在linux创建orcl实例,并手工创建表空间以及用户,如果按用户导出的,需要执行手工创建表空间和用户,如果是按全库导入,可以不执行此步,脚本如下:

--创建表空间的脚本:

SELECT 'create tablespace ' || a.Name || ' datafile ' || Chr(39) || b.Name ||

Chr(39) || ' size ' || Bytes ||

' autoextend on next 50M maxsize unlimited;'

FROM V$tablespace a, V$datafile b

WHERE a.Ts# = b.Ts#

AND a.Ts# > 4

UNION ALL

SELECT 'create temporary tablespace ' || a.Name || ' tempfile ' || Chr(39) ||

b.Name || Chr(39) || ' size ' || Bytes ||

'autoextend on next 50M maxsize unlimited;'

FROM V$tablespace a, V$tempfile b

WHERE a.Ts# = b.Ts#

AND a.Ts# <> 3;

--创建用户

......

第二步 冷备orcl 并在测试数据库恢复,恢复完成后我们用这个库操作(可以测试所用)

第三步 禁用zlchs所有外键约束,复制并执行下来SQL,将查询出来的数据复制粘贴出来后在执行

select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

第四步 导出以下用户数据,这里命名为"user.dmp",以便恢复(当然可以全库导出,不按用户导出):

expdp system/zlsoft@orcl1 DIRECTORY=zlchs DUMPFILE=orcl20130111.dmp logfile=orcl20130111.log DATA_OPTIONS=XML_CLOBS schemas=

(bhdata,bhmail,zlchs,SLReport,zl_inquiries,bhdata1,cxdata,zlperf,zlchsinsure,hji)

1) 导出全库数据,只导出对象不导数据(此步骤是针对oracle认证的用户所用,导出所有业务用户):

expdp 'system/zlsoft' full=y directory=zlchsdir dumpfile=only1215.dmp logfile=metadata_only1215.LOG DATA_OPTIONS=XML_CLOBS content=metadata_only

第五步 将我们之前备份的数据库"user.dmp"压缩,用Xmanager中的FTP工具传数据到linux文件夹下(需要用到linux的一基本命令,需要自己学学),并解压授权

(如果在root用户下解压不起,试着在oracle用户下解压:su - oracle)

unzip 你的压缩文件.zip

chmod 777 解压出来的文件

第六步 导入数据之前备份的业务数据,这里需要建立数据泵的目录名zlchsdir,将解压的文件放到zlchsdir路径下,在本地计算机(创建服务)和linus下执行下面脚本

impdp system/zlsoft@orcl1 DIRECTORY=zlchsdir DUMPFILE=user.dmp logfile=ZLCHS121511.log full=y

2) 找一台新orcl实例,建立好数据泵后,以下面的语句导入上面的对象文件,主要是生成aqa.sql的脚本文件,

impdp 'system/root2012_DCITS@orcl1' full=y directory=zlchsdir dumpfile=only1107.dmp logfile=metadata_only1107.LOG SQLFILE=aqa.sql content=metadata_only

3)找到生成aqa.sql文件,并找到oracle认证中的业务用户脚本和授权脚本

4)连接到linux下用plsql刷上面的用户脚本和授权脚本

第七步 因为个人文档记录较大,需要创建数据链路导 "个人文档记录"

-- Create database link

create database link ZLCHS250

connect to ZLCHS

using '(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 32.110.139.12)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)';

--注意事项------查询表空间大小的--

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(G)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(G)",

TO_CHAR(decode(D.TOT_GROOTTE_MB * 100,0,0,ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,

2)),

'990.99') "使用比",

F.TOTAL_BYTES "空闲空间(G)",

F.MAX_BYTES "最大块(G)"

FROM (SELECT TABLESPACE_NAME,

ROUND(SUM(BYTES) / (1024 * 1024*1024), 2) TOTAL_BYTES,

ROUND(MAX(BYTES) / (1024 * 1024*1024), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

ROUND(SUM(DD.BYTES) / (1024 * 1024*1024), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER BY 4 DESC

--------如果有满了的情况,需要增加表空间

ALTER TABLESPACE ZHLOB ADD DATAFILE 'D:\PATH\ZHLOB2.dbf' SIZE 10M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;

ALTER TABLESPACE ZHLOB ADD DATAFILE 'D:\PATH\ZHLOB3.dbf' SIZE 10M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;

--------通过手工分批次导入个人文档记录,这里的序号是我手工添加了一个字段,并且指定了序号

insert into 个人文档记录 (id, 个人id, 文件类型, 原型id, 原型名, 服务id, 创建人, 创建时间, 文档状态, 修改人, 修改时间, 版次, 打印次数,全文信息, 内容信息)

select id, 个人id, 文件类型, 原型id, 原型名, 服务id, 创建人, 创建时间, 文档状态, 修改人, 修改时间, 版次, 打印次数,全文信息, 内容信息 from 个人文档记录

@zlchs250 t

where t.序号>0 and t.序号 <=20000

第八步 启用备份前数据库,和恢复后数据所有外键约束

select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

至此导入完成,进入详细的功能,数据等测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值