一个最简单的表空间迁移实验

一个最简单的表空间迁移实验

我是在我的笔记本电脑上做的一个最简单的实验。实验环境:
windows xp
oracle 10.2.0.1
我在我的这台笔记本PC上建了两个库,库名分别为:mystock和mytest
我在mystock上建了一个测试的表空间,如下:

CREATE TABLESPACE TEST DATAFILE
  'D:\ORACLE\ORADATA\MYSTOCK\TEST_01.DBF' SIZE 10M AUTOEXTEND OFF
LOGGING
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

我准备将此表空间从数据库mystock迁移到mytest上。

另个建了一个用户ca
CREATE USER CA
  IDENTIFIED BY VALUES 'A92D12756F6D9541'
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 2 Roles for CA
  GRANT CONNECT TO CA;
  GRANT DBA TO CA;
  ALTER USER CA DEFAULT ROLE ALL;
  -- 2 System Privileges for CA
  GRANT CREATE SESSION TO CA;
  GRANT UNLIMITED TABLESPACE TO CA;
  -- 1 Tablespace Quota for CA
  ALTER USER CA QUOTA UNLIMITED ON USERS;


用ca用户登录,创建了一个表t1

create table t1 (id int) tablespace test;

insert into t1 values (3);

commit;

迁移之前需要在mytest数据库里也建好同样的ca用户(出于简单起见,不同的用户也可以)
另外建好所需的directory对象
mystock:
CREATE OR REPLACE DIRECTORY
DATA_PUMP_DIR AS
'D:\oracle\product\10.2.0\admin\mystock\dpdump\';


GRANT READ, WRITE ON DIRECTORY  DATA_PUMP_DIR TO EXP_FULL_DATABASE;

GRANT READ, WRITE ON DIRECTORY  DATA_PUMP_DIR TO IMP_FULL_DATABASE;

mytest:
CREATE OR REPLACE DIRECTORY
DATA_PUMP_DIR AS
'D:\oracle\product\10.2.0\admin\mytest\dpdump\';


GRANT READ, WRITE ON DIRECTORY  DATA_PUMP_DIR TO EXP_FULL_DATABASE;

GRANT READ, WRITE ON DIRECTORY  DATA_PUMP_DIR TO IMP_FULL_DATABASE;


下面开始迁移:
1 在mystock数据库中:
先要检查表空间是否自包含
使用DBMS_TTS.TRANSPORT_SET_CHECK来检查是否自包含,如
EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('test', TRUE);

然后从检查下面查询结果是否有冲突:
SELECT * FROM TRANSPORT_SET_VIOLATIONS;

我这个表空间上只建了一个表t1,这里肯定没有问题

2 将test表空间置为只读模式
alter tablespace test read only;

3 因为是相同平台,此处无需做数据文件格式转换,直接将数据文件拷贝到mytest数据库的数据文件夹下

4 导出表空间
C:\Documents and Settings\an.chen>expdp system/oracle dumpfile=expdat.dmp direct
ory=DATA_PUMP_DIR TRANSPORT_TABLESPACES = test

Export: Release 10.2.0.1.0 - Production on 星期五, 10 4月, 2009 15:35:47

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** dumpfile=expdat.dm
p directory=DATA_PUMP_DIR TRANSPORT_TABLESPACES = test
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/TABLE_STATISTICS
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
  D:\ORACLE\PRODUCT\10.2.0\ADMIN\MYSTOCK\DPDUMP\EXPDAT.DMP
作业 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 已于 15:36:21 成功完成

5 将此导出文件拷贝到mytest 数据库的DATA_PUMP_DIR设置的路径下。

6 导入表空间
C:\Documents and Settings\an.chen>impdp system/oracle dumpfile=expdat.dmp direct
ory=DATA_PUMP_DIR TRANSPORT_DATAFILES=D:\oracle\product\10.2.0\oradata\mytest\te
st_01.dbf

Import: Release 10.2.0.1.0 - Production on 星期五, 10 4月, 2009 16:00:27

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** dumpfile=expdat.dm
p directory=DATA_PUMP_DIR TRANSPORT_DATAFILES=D:\oracle\product\10.2.0\oradata\m
ytest\test_01.dbf
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/TABLE_STATISTICS
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" 已于 16:00:30 成功完成

至此,表空间成功导入。

7 检查

C:\Documents and Settings\an.chen>SET ORACLE_SID=mytest

SQL> conn ca/ca001
已连接。
SQL> select * from t1;

        ID
----------
         3

说明导入成功!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9375/viewspace-587034/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9375/viewspace-587034/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值