oracle用户级逻辑迁移总结(exp/imp)

 最近有个项目需要迁移搭建测试环境,数据库版本oracle11g,在迁移过程中由于存在分区表,clob大字段,变更表空间。有些表无法迁移。针对异常情况调整了迁移方法,成功迁移。先整理比较好的迁移步骤:

1.源库梳理数据库类别

select * from dba_segments t where t.owner='onu_tst';---查看是否存在分区表;

select * from dba_tab_cols t where owner='UCR_EQUIPS';--查看是否存在大字段clob,blob等。

select   tablespace_name,sum(Bytes/1024/1024/1024)   from dba_segments t where t.owner='onu_tst' group by tablespace_name;---获取表空间大小信息;

2.目标库准备

使用toad创建用户,表空间,由于大字段和分区表的表空间在更换表空间后无法在目标库创建,需要先按照源库的表空间给大字段和分区表创建相应表空间。

创建用户语句:

CREATE USER UCR_EQUIPS
  IDENTIFIED BY VALUES 'xxxxxxxxx'
  DEFAULT TABLESPACE TBS_O2O_AIOP
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 3 Roles for UCR_EQUIPS
  GRANT CONNECT TO UCR_EQUIPS;
  GRANT RESOURCE TO UCR_EQUIPS;
  -- 6 System Privileges for UCR_EQUIPS
  GRANT CREATE TABLE TO UCR_EQUIPS;
  GRANT CREATE MATERIALIZED VIEW TO UCR_EQUIPS;
  GRANT SELECT ANY TABLE TO UCR_EQUIPS;
  GRANT DEBUG CONNECT SESSION TO UCR_EQUIPS;
  GRANT UNLIMITED TABLESPACE TO UCR_EQUIPS;
  GRANT DEBUG ANY PROCEDURE TO UCR_EQUIPS;
  -- 16 Tablespace Quotas for UCR_EQUIPS
  ALTER USER UCR_EQUIPS QUOTA UNLIMITED ON TBS_O2O_AIOP;
  ALTER USER UCR_EQUIPS QUOTA UNLIMITED ON ONU_DATA;
 

3.源库导出

编辑onu_tst.par导出参数文件

feedback=100000
file=onu_tst180510data.dmp
log=onu_tst180510data.log

ROWS=Y

owner=onu_tst

执行exp userid=system/xxxxx@oraclesid  parfile=onu_tst.par

4.目标库更改表空间

select 'alter table '||table_name||' move partition '||partition_name||' tablespace TBS_O2O_AIOP;'

from dba_tab_partitions where table_name='TF_REUSE_REPORT';---获取更改分区表的表空间语句。

alter table WM_PROC_DEFINE move tablespace TBS_O2O_AIOP lob (define) store as(tablespace TBS_O2O_AIOP);--更改大字段clob的表空间。

DROP TABLESPACE onu_data  INCLUDING CONTENTS AND DATAFILES;





猜你喜欢

转载自blog.csdn.net/qq_37594285/article/details/80281582