ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用TRANSPORT_TABLESPACE特性在同一db下不同用户之间迁移数据!

利用TRANSPORT_TABLESPACE特性在同一db下不同用户之间迁移数据!

原创 Linux操作系统 作者:warehouse 时间:2007-01-09 00:00:00 0 删除 编辑

参考文档:

http://www.itpub.net/showthread.php?s=&threadid=700445&perpage=10&pagenumber=2

SQL> select username , default_tablespace from dba_users where username='XYS';

USERNAME DEFAULT_TABLESPACE
------------------------------ --------------------
XYS USERS

SQL> select file_name , tablespace_name from dba_data_files;

FILE_NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF UNDOTBS1
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF SYSAUX
E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF TEST
E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF USERS

SQL> CREATE USER TEST IDENTIFIED BY TEST DEFAULT TABLESPACE TEST;

用户已创建。

SQL> GRANT DBA , CONNECT , RESOURCE TO TEST;

授权成功。

SQL> CONNECT XYS/MANAGER
已连接。
SQL> SELECT TABLE_NAME FROM USER_TABLES;

未选定行

SQL> CREATE TABLE T(ID INT) TABLESPACE USERS;

表已创建。

SQL> CREATE TABLE TT TABLESPACE USERS AS SELECT * FROM DBA_OBJECTS;

表已创建。

SQL> ALTER DATABASE DATAFILE 5 AUTOEXTEND ON;

数据库已更改。

SQL> ALTER TABLESPACE USERS READ ONLY;

表空间已更改。
SQL> HOST EXP 'SYS/SYSTEM AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=USERS FI
LE=C:TEST.DMP

Export: Release 10.2.0.1.0 - Production on 星期二 1月 9 21:12:34 2007

Copyright (c) 1982, 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
已导出 ZHS16GBK 字符集和 UTF8 NCHAR 字符集
服务器使用 UTF8 字符集 (可能的字符集转换)
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
对于表空间 USERS...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 T
. . 正在导出表 TT
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
成功终止导出, 没有出现警告。

SQL> DRPO TABLESPACE INCLUDING CONTENTS;
SP2-0734: 未知的命令开头 "DRPO TABLE..." - 忽略了剩余的行。
SQL> DRPO TABLESPACE USERS INCLUDING CONTENTS;
SP2-0734: 未知的命令开头 "DRPO TABLE..." - 忽略了剩余的行。
SQL> drop TABLESPACE USERS INCLUDING CONTENTS;
drop TABLESPACE USERS INCLUDING CONTENTS
*
第 1 行出现错误:
ORA-12919: 不能删除默认永久表空间


SQL> alter database default tablespace test;

数据库已更改。

SQL> drop TABLESPACE USERS INCLUDING CONTENTS;

表空间已删除。

SQL> host imp 'sys/system as sysdba' transport_tablespace=y file=c:test.dmp fr
omuser=xys touser=test datafiles='E:oracleproduct10.2.0oradataUTFusers01.d
bf'

Import: Release 10.2.0.1.0 - Production on 星期二 1月 9 21:21:59 2007

Copyright (c) 1982, 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

经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
导入服务器使用 UTF8 字符集 (可能的字符集转换)
. 正在将 XYS 的对象导入到 TEST
. . 正在导入表 "T"
. . 正在导入表 "TT"
成功终止导入, 没有出现警告。

SQL> show user
USER 为 "SYS"
SQL> connect test/test
已连接。
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------------------------------------
TT
T

SQL> col tablespace_name format a20
SQL> select file_name , tablespace_name from dba_data_files;

FILE_NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF SYSTEM
E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF UNDOTBS1
E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF SYSAUX
E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF TEST
E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF USERS

SQL>

结论:我们看到用户xys下的表t,tt通过传输表空间的方式已经导入到了test下!感觉很不错!


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

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5145420