Oracle传输表空间迁移数据库

本文是通过exp/imp方式实现,需要将数据库表空间处于只读模式,对于实时应用的生产数据库,可以采用rman方式进行传输表空间。  
执行表空间传输有以下限制条件:    
(1)源数据库和目标数据库必须处于相同的平台,10g以后可以用RMAN命令修改数据文件实现跨平台移动表空间。    
(2)对于源数据库和目标数据库版本不同时,源数据库的版本必须低于目标数据库。    
(3)两边数据库字符集和国家字符集必须一致。    
(4)目标数据库不能存在同名的表空间。

1. 查询oracle支持的平台转换

SQL> col PLATFORM_NAME for a40;  
SQL> select * from v$transportable_platform order by 3;

PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT  
----------- ---------------------------------------- --------------    
          6 AIX-Based Systems (64-bit)               Big    
         18 IBM Power Based Linux                    Big    
          2 Solaris[tm] OE (64-bit)                  Big    
          4 HP-UX IA (64-bit)                        Big    
         16 Apple Mac OS                             Big    
          1 Solaris[tm] OE (32-bit)                  Big    
          9 IBM zSeries Based Linux                  Big    
          3 HP-UX (64-bit)                           Big    
         17 Solaris Operating System (x86)           Little    
         20 Solaris Operating System (x86-64)        Little    
         12 Microsoft Windows x86 64-bit             Little    
         13 Linux x86 64-bit                         Little    
          8 Microsoft Windows IA (64-bit)            Little    
         19 HP IA Open VMS                           Little    
         11 Linux IA (64-bit)                        Little    
          5 HP Tru64 UNIX                            Little    
         10 Linux IA (32-bit)                        Little    
          7 Microsoft Windows IA (32-bit)            Little    
         15 HP Open VMS                              Little

2. 创建测试表空间和测试用户、表

SQL> create tablespace tjoa datafile ‘/u01/app/oracle/oradata/orcl/tjoa.dbf‘ size 10m autoextend on next 10m;  
SQL> create user abc identified by abc default tablespace TJOA;    
SQL> grant connect,resource to abc;    
SQL> conn abc/abc    
SQL> create table t as select * from all_objects;

3. 检查自包含性

SQL> conn / as sysdba  
SQL> execute dbms_tts.transport_set_check(ts_list=>‘TJOA‘,incl_constraints=>TRUE);    
SQL> select * from transport_set_violations;

设置表空间只读

SQL> alter tablespace TJOA read only;  
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = ‘TJOA‘;

TABLESPACE_NAME                STATUS  
------------------------------ ---------    
TJOA                           READ ONLY

SQL>

4. 执行导出

exp \‘/ as sysdba \‘ file=tjoa.dmp transport_tablespace=y tablespaces=TJOA buffer=10240000

通过expdp方式:  
expdp \‘/ as sysdba \‘ dumpfile=tjoa.dmp directory=dump_dir transport_tablespaces=TJOA

5. 源库将表空间设置为读写状态

SQL> alter tablespace TJOA read write;

6. 模拟平台转换

windows/linux平台都不需要转换。

使用rman的convert命令转换文件示例如下:  
$ rman target /    
RMAN> convert tablespace TJOA to platform ‘Linux IA (32-bit)‘ format ‘/u01/%U‘;

7. 复制表空间转换后的数据文件及导出文件到目标平台

scp tjoa.dmp 192.168.233.160:/home/oracle    
scp tjoa.dbf 192.168.233.160:/u01/app/oracle/oradata/orcl/

8. 先在目标数据库创建用户abc

SQL> create user abc identified by abc;  
SQL> grant connect,resource to abc;

9. 导入表空间

imp \‘/ as sysdba \‘ file=tjoa.dmp transport_tablespace=y tablespaces=TJOA datafiles=/u01/app/oracle/oradata/orcl/tjoa.dbf

通过impdp方式:  
impdp \‘/ as sysdba \‘ dumpfile=tjoa.dmp directory=dump_dir transport_datafiles=/u01/app/oracle/oradata/orcl/tjoa.dbf remap_schema=tjoa:tjoa

10. 目标库配置

SQL> alter user abc default tablespace TJOA;  
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = ‘TJOA‘;    
SQL> alter tablespace TJOA read write;

SQL> conn / as sysdba;  
Connected.    
SQL> alter user abc default tablespace TJOA;

User altered.

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = ‘TJOA‘;

TABLESPACE_NAME                STATUS  
------------------------------ ---------    
TJOA                           READ ONLY

SQL>    
SQL>    
SQL> alter tablespace TJOA read write;

Tablespace altered.

SQL>    
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = ‘TJOA‘;

TABLESPACE_NAME                STATUS  
------------------------------ ---------    
TJOA                           ONLINE

SQL>

时间: 2024-08-05 18:34:42

Oracle传输表空间迁移数据库的相关文章

如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)

How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.0.2 to 12.2.0.1 [Release 12.1 to 12.2]Oracle Database - Enterprise Edition - Versi

mysql 5.6 使用传输表空间迁移表或恢复误删除的表

mysql 5.6 使用传输表空间迁移表或恢复误删除的表 http://blog.csdn.net/lidan3959/article/details/25152623 以前在网上也看过一些对5.6传输表空间的介绍,不过都写的不够具体详细,今天有空就具体操作了一把,并详细记录了一下算留个档 一,简单说明:1),传输表空间的限制:   1,mysql 版本 5.6.6 及其以上,并且版本建议源和目标版本建议都是GA版并且大版本一样   2,表引擎为innodb并且开启独立表空间  innodb_f

使用传输表空间迁移数据

一.检查是否满足传输表空间的条件1.检查源库与目标库的平台支持 源库: SQL> select d.name,i.version,d.platform_name,endian_format from v$transportable_platform tp,v$database d,v$instance i 2 where tp.PLATFORM_NAME=d.platform_name; NAME VERSION PLATFORM_NAME ENDIAN_FORMAT --------- ---

mysql5.6之 传输表空间迁移表或恢复误删除的表

一,简单说明: 1),传输表空间的限制:  1,mysql 版本 5.6.6 及其以上,并且版本建议源和目标版本建议都是GA版并且大版本一样  2,表引擎为innodb并且开启独立表空间  innodb_file_per_table  3,处于导出状态的表只允许读也即是"read_only"状态  4,DISCARD TABLESPACE不支持分区表[5.6.17才支持] 并且当表上具有外键关系的时候需要将 foreign_key_check设置为0  5,源和目标实例的page si

MySQL5.7传输表空间——迁移分区表

Mysql 传输表空间--将InnoDB分区表复制到另一个实例(二) 实验环境:(都是mysql5.7) 源库:192.168.2.200      mysql5.7.16    zhangdb下的emp_2分区表的 目标库:192.168.2.100    mysql5.7.18    test下  (将zhangdb的emp表,导入到目标库的test schema下) --:在源数据库中创建测试分区表emp_2,然后导入数据 MySQL [zhangdb]> CREATE TABLE emp

oracle创建表空间 导入数据库

1首先需要以系统用户进入oracle 2 然后是创建表空间 创建表空间需要创建两个一个临时表空间 一个表空间 --创建表空间 create tablespace abc  datafile 'D:\tablespce\LANDHIGH_SFTMS.dbf' size 500m; --创建用户并指定表空间 create user admin identified by admin default tablespace  abc quota 500m on users; --这个是数据库存放的位置

【TTS】传输表空间AIX asm -> linux asm

[TTS]传输表空间AIX asm -> linux asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用搜狗或3

【TTS】传输表空间Linux asm -> AIX asm

[TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用QQ或3

Oracle网络公开课《请搭载我们的雷霆战机进行跨平台的数据迁移-可传输表空间》

雷霆战机是最近火热的空战射击游戏,刘老师说:请搭载我们的雷霆战机进行跨平台的数据迁移-可传输表空间,还犹豫什么,请立即登机,开启无尽挑战模式! 可以使用可传输表空间功能将表空间的集合从一个数据库拷贝到另一个数据库. 可传输表示空间在很多场景下都很有用: ■导出和导入数据仓库表的分区 ■在CD上发布结构化的数据 ■在多个数据库上拷贝表空间的多个只读 ■归档历史数据 ■执行表空间时间点恢复(TSPITR)Table Space point in time recovery 传输表空间有2种方法: ■