`

oracle表空间传输技术

阅读更多

不同版本数据库,不同平台的迁移!使用表空间传输技术

环境:rhel6.5+oracle10g64bit      windows+oracle11g32bit

准备工作:

要想使用传输表空间,必须满足以下几个条件:

1.源与目标库都必须大于8i;

2.对于低于10G的版本,源与目标库必须为统一平台;

3.自包含:可以通过以下语句予以检测:

 

本例子:使用新建tts表空间,将scott用户的信息修改到tts表空间.创建tts01表空间,将pk_emp,pk_dept索引修改到tt01表空间.

然后使用表空间传输技术,从linux平台迁移到windows平台

linux平台

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

 

SQL>

windows平台

SQL> select * from v$version;

 

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

SQL>

1.创建tts,tts01表空间

SQL> create tablespace tts datafile '/u01/oracle/oradata/dg/tts.dbf' size 5m autoextend on next 1m maxsize unlimited;

 

Tablespace created.

 

SQL> create tablespace tts01 datafile '/u01/oracle/oradata/dg/tts01.dbf' size 2m autoextend on next 1m;

 

Tablespace created.

 

SQL>

2.修改scott的表空间

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

 

USERNAME                       DEFAULT_TABLESPACE

------------------------------ ------------------------------

SCOTT                          USERS

 

SQL> alter user scott default tablespace tts;    ------------修改scott用户的表空间

 

User altered.

 

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

 

USERNAME                       DEFAULT_TABLESPACE

------------------------------ ------------------------------

SCOTT                          TTS

 

SQL> select table_name,tablespace_name from dba_tables where owner='SCOTT';

 

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

SALGRADE                       USERS

DEPT                           USERS

EMP                            USERS

BONUS                          USERS

 

SQL> alter table scott.salgrade move tablespace tts;     ----修改表的表空间,可以使用该方法降低高水位,另外一种方法alter table table_name shrink space;

 

Table altered.

 

SQL> alter table scott.dept move tablespace tts;

 

Table altered.

 

SQL> alter table scott.emp move tablespace tts;

 

Table altered.

 

SQL> alter table scott.bonus move tablespace tts;

 

Table altered.

 

SQL> select table_name,tablespace_name from dba_tables where owner='SCOTT';

 

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

DEPT                           TTS

EMP                            TTS

SALGRADE                       TTS

BONUS                          TTS

 

SQL> select index_name,tablespace_name from dba_indexes where owner='SCOTT';

 

INDEX_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

PK_DEPT                        USERS

PK_EMP                         USERS

 

SQL> alter index scott.pk_emp rebuild online tablespace tts01;

 

Index altered.

 

SQL> alter index scott.pk_dept rebuild online tablespace tts01;

 

Index altered.

 

SQL>  select index_name,tablespace_name from dba_indexes where owner='SCOTT';

 

INDEX_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

PK_DEPT                        TTS01

PK_EMP                         TTS01

 

SQL>

开始实验:

1.自包含的检查,传输表空间不要包含sys的对象:

SQL> exec dbms_tts.transport_set_check('TTS',true);

 

PL/SQL procedure successfully completed.

 

SQL> select * from transport_set_violations;

 

VIOLATIONS

--------------------------------------------------------------------------------

Index SCOTT.PK_DEPT in tablespace TTS01 enforces primary constriants  of table SCOTT.DEPT in tablespace TTS

 

Index SCOTT.PK_EMP in tablespace TTS01 enforces primary constriants  of table SCOTT.EMP in tablespace TTS

 

 

SQL>

2.将表空间设置为read only,然后执行导出

SQL> alter tablespace tts read only;   -------根据具体业务,表空间是否能够置为read only

 

Tablespace altered.

 

SQL> alter tablespace tts01 read only;

 

Tablespace altered.

 

SQL>

[oracle@dg1 tmp]$ exp \'/ as sysdba\' tablespaces=tts file='/tmp/tts.dmp' transport_tablespace=y log=tts.log

 

Export: Release 10.2.0.1.0 - Production on Sat Jan 16 20:55:08 2016

 

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

 

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set

Note: table data (rows) will not be exported

About to export transportable tablespace metadata...

EXP-00008: ORACLE error 29341 encountered

ORA-29341: The transportable set is not self-contained    ------没有自包含,考虑将tts,tts01表空一起导出

ORA-06512: at "SYS.DBMS_PLUGTS", line 1387

ORA-06512: at line 1

EXP-00000: Export terminated unsuccessfully

[oracle@dg1 tmp]$

[oracle@dg1 tmp]$ exp \'/ as sysdba\' tablespaces=tts,tts01 file='/tmp/20160116.dmp' transport_tablespace=y log=20160116.log

 

Export: Release 10.2.0.1.0 - Production on Sat Jan 16 21:00:45 2016

 

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

 

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Export done in US7ASCII character set and AL16UTF16 NCHAR character set

server uses AL32UTF8 character set (possible charset conversion)

Note: table data (rows) will not be exported

About to export transportable tablespace metadata...

For tablespace TTS ...

. exporting cluster definitions

. exporting table definitions

. . exporting table                       SALGRADE

. . exporting table                           DEPT

EXP-00091: Exporting questionable statistics.   

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

----这个错误是因为没有设置NLS_LANG环境变量导致的错误!查看数据库,然后设置环境变量

SQL> select userenv('language') from dual;

 

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.AL32UTF8

 

SQL>

linux设置

[oracle@dg1 tmp]$ echo $NLS_LANG

 

[oracle@dg1 tmp]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

[oracle@dg1 tmp]$ echo $NLS_LANG

AMERICAN_AMERICA.AL32UTF8

[oracle@dg1 tmp]$

windows设置

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

. . exporting table                            EMP

EXP-00091: Exporting questionable statistics.

. . exporting table                          BONUS

For tablespace TTS01 ...

. exporting cluster definitions

. exporting table definitions

. exporting referential integrity constraints

. exporting triggers

. end transportable tablespace metadata export

Export terminated successfully with warnings.

[oracle@dg1 tmp]$

[oracle@dg1 tmp]$ exp \'/ as sysdba\' tablespaces=tts,tts01 file='/tmp/20160116.dmp' transport_tablespace=y log=20160116.log    

 

Export: Release 10.2.0.1.0 - Production on Sat Jan 16 20:59:08 2016

 

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

 

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set

Note: table data (rows) will not be exported

About to export transportable tablespace metadata...

For tablespace TTS ...

. exporting cluster definitions

. exporting table definitions

. . exporting table                       SALGRADE

. . exporting table                           DEPT

. . exporting table                            EMP

. . exporting table                          BONUS

For tablespace TTS01 ...

. exporting cluster definitions

. exporting table definitions

. exporting referential integrity constraints

. exporting triggers

. end transportable tablespace metadata export

Export terminated successfully without warnings.    ----导出成功

[oracle@dg1 tmp]$

3.使用rman中的convent,转换一下平台

SQL> select * from v$db_transportable_platform;               ------查看数据支持的那些平台的转换

 

PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT

----------- ---------------------------------------- --------------

          7 Microsoft Windows IA (32-bit)            Little

         10 Linux IA (32-bit)                        Little

          5 HP Tru64 UNIX                            Little

         11 Linux IA (64-bit)                        Little

         15 HP Open VMS                              Little

          8 Microsoft Windows IA (64-bit)            Little

         13 Linux 64-bit for AMD                     Little

         12 Microsoft Windows 64-bit for AMD         Little

         17 Solaris Operating System (x86)           Little

 

9 rows selected.

 

SQL>

SQL> ho rman target /

 

Recovery Manager: Release 10.2.0.1.0 - Production on Sat Jan 16 21:15:01 2016

 

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

 

connected to target database: DG (DBID=1814215426)

 

RMAN> convert tablespace tts to platform 'Microsoft Windows IA (32-bit)' db_file_name_convert('/u01/oracle/oradata/dg/tts.dbf','/tmp/tts.dbf');

 

Starting backup at 16-JAN-16

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=147 devtype=DISK

channel ORA_DISK_1: starting datafile conversion

input datafile fno=00005 name=/u01/oracle/oradata/dg/tts.dbf

converted datafile=/tmp/tts.dbf

channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01

Finished backup at 16-JAN-16

 

RMAN> convert tablespace tts01 to platform 'Microsoft Windows IA (32-bit)' db_file_name_convert('/u01/oracle/oradata/dg/tts01.dbf','/tmp/tts01.dbf');

 

Starting backup at 16-JAN-16

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile conversion

input datafile fno=00006 name=/u01/oracle/oradata/dg/tts01.dbf

converted datafile=/tmp/tts01.dbf

channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01

Finished backup at 16-JAN-16

 

RMAN>

4.使用ftp/或者samba服务器等,将exp的dmp文件和rman转换dbf文件传输到windows

作者采用windows共享,linux直接放文件到共享文件夹中,类似samba共享

[root@dg1 tmp]# mount -o username=administrator%1 //30.30.30.1/oracle /mnt    

SQL> grant resource,connect to scott identified by 1;  -------在windows平台建立对应的用户

 

Grant succeeded.

 

SQL>

5.执行传输表空间导入

C:\Users\Administrator>imp '/ as sysdba' file=D:\aaa\tts\20160116.dmp datafiles=D:\aaa\tts\tts.dbf,D:\

aaa\tts\tts01.dbf transport_tablespace=y;

 

Import: Release 11.2.0.1.0 - Production on Sat Jan 16 21:42:57 2016

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

Export file created by EXPORT:V10.02.01 via conventional path

About to import transportable tablespace(s) metadata...

import done in AL32UTF8 character set and AL16UTF16 NCHAR character set

. importing SYS's objects into SYS

. importing SYS's objects into SYS

. importing SCOTT's objects into SCOTT

. . importing table                     "SALGRADE"

. . importing table                         "DEPT"

. . importing table                          "EMP"

. . importing table                        "BONUS"

. importing SYS's objects into SYS

Import terminated successfully without warnings.

C:\Users\Administrator>sqlplus scott/1

 

SQL*Plus: Release 11.2.0.1.0 Production on Sat Jan 16 21:44:09 2016

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> select * from tab;

 

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

BONUS                          TABLE

DEPT                           TABLE

EMP                            TABLE

SALGRADE                       TABLE

 

SQL> select table_name,tablespace_name from dba_tables where owner='SCOTT';    可以查看表

 

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

SALGRADE                       TTS

DEPT                           TTS

EMP                            TTS

BONUS                          TTS

 

SQL>

SQL> select index_name,tablespace_name from dba_indexes where owner='SCOTT';  可以查看索引

 

INDEX_NAME                     TABLESPACE_NAME

------------------------------ --------------------

PK_DEPT                        TTS01

PK_EMP                         TTS01

 

SQL>

SQL> select file#,ts#,checkpoint_change#,name from v$datafile_header;

 

     FILE#        TS# CHECKPOINT_CHANGE# NAME

---------- ---------- ------------------ ------------------------------------------------------------

         1          0           12434384 D:\APP\ORADATA\TEST\DATAFILE\O1_MF_SYSTEM_BY0T4NRC_.DBF

         2          1           12434384 D:\APP\ORADATA\TEST\DATAFILE\O1_MF_SYSAUX_BY0T4NSB_.DBF

         3          2           12434384 D:\APP\ORADATA\TEST\DATAFILE\O1_MF_UNDOTBS1_BY0T4NSB_.DBF

         4          4           12434384 D:\APP\ORADATA\TEST\DATAFILE\O1_MF_USERS_BY0T4NST_.DBF

         5          5           12434384 D:\APP\ORADATA\TEST\DATAFILE\UNDOTBS2.DBF

         6          7           12434384 D:\APP\ORADATA\TEST\DATAFILE\GGDATA.DBF

         7          6             757451 D:\AAA\TTS\TTS.DBF    ------通过该文件的checkpoint_change#,就是scn。发现和数据库中原有的scn都会有一些变化,也会有一些体现

         8          8             757463 D:\AAA\TTS\TTS01.DBF

        11         14           12434384 D:\APP\ORADATA\TEST\DATAFILE\R1.DBF

        12         15           12434384 D:\APP\ORADATA\TEST\DATAFILE\R2.DBF

        13         16           12434384 D:\APP\ORADATA\TEST\DATAFILE\R3.DBF

        14         17           12434384 D:\APP\ORADATA\TEST\DATAFILE\R4.DBF

 

12 rows selected.

 

SQL>

后续工作:检查trigger的可用性,索引的可用性等,考虑oracle性能升级后是否降低,并确定性能降低的原因

 

总结:

 

表空间传输适用于数据量较小的数据库操作,如果数据量比较大,有TB的级别,考虑搭建DG

 

 

分享到:
评论

相关推荐

    Oracle表空间传输步骤

    在Oracle数据库管理中,表空间传输是一种常见的数据库迁移技术,主要用于将一个或多个表空间从一个数据库迁移到另一个数据库。这种技术特别适用于数据量较大的场景,可以有效提高迁移效率并减少停机时间。本文将详细...

    ORACLE数据库表空间传输方式.

    在Oracle数据库管理中,表空间传输技术(Tablespace Transport)是一种高效的手段,用于在不同的数据库之间快速迁移数据。相较于传统的数据导出导入方法(例如使用`EXP`/`IMP`工具),表空间传输能够直接移动表空间...

    采用Oracle表空间传输模式的数据库系统升级研究.pdf

    表空间传输技术是Oracle提供的逻辑导出工具exp/imp的一种扩展,允许用户在保持数据完整性的前提下,仅导出一组自包含、只读的表空间的元数据,然后通过操作系统层面复制数据文件到目标平台,再导入元数据到目标...

    Oracle利用传输表空间导出导入数据的步骤

    - Oracle 10g支持跨平台的表空间传输,前提是目标平台和源平台的操作系统字节顺序相同。 #### 六、平台字节顺序与兼容性 - **字节序**:不同的操作系统采用不同的字节序(big-endian或little-endian)存储多字节...

    基于ORACLE数据库传输表空间的数据压缩解决方案.pdf

    1. **传输表空间技术**:Oracle数据库允许将特定表空间的数据独立导出到另一个数据库,以实现数据迁移或备份。在实施过程中,首先将需要转移的表空间设置为只读,然后使用Data Pump进行表空间级别的导出。导出后的...

    oracle传输表空间实例.doc

    例如,在本实例中,源系统为Linux IA (32-bit),目标系统为Microsoft Windows IA (32-bit),两者均为Little endian格式,因此它们之间的表空间传输是可行的。如果不兼容,可能需要进行额外的转换步骤。 接下来,...

    oracle 11G新建加密表空间

    总结来说,Oracle 11G的加密表空间提供了全面的数据保护,确保了数据在存储和传输过程中的安全性。通过理解并正确实施上述步骤,数据库管理员能够有效地管理和保护敏感信息,满足日益增长的数据安全需求。在实际操作...

    用传输表空间技术升级Oracle数据库.pdf

    【Oracle 数据库升级技术——传输表空间】 Oracle 数据库作为一款广泛应用的关系型数据库管理系统,其升级过程对于确保系统的稳定性和性能至关重要。随着医疗行业的信息化发展,医院的信息系统对数据库服务提出了更...

    oracle 的数据库表空间移植

    本文将深入探讨Oracle数据库的表空间移植技术,涵盖其原理、应用场景以及具体的实施步骤。 #### 一、理解表空间移植 表空间移植(Tablespace Transport)是Oracle提供的一项功能,允许用户将数据从一个数据库无缝...

    用oracleSpatial实现分布式空间数据传输.pdf

    Oracle Spatial模块因其面向对象的管理方式与关系代数管理属性数据的结合,为高效的空间数据传输提供了新的技术路径。 在标签中提到的“分布式”、“分布式系统”、“分布式开发”、“参考文献”、“专业指导”等...

    PostgreSQL & Oracle-备份恢复技术大比拼

    9. Oracle的逻辑备份工具包括TableMode、UserMode,以及如何导出表定义、表数据(全部或选定行)、表空间、完整数据库等 10. Oracle的物理备份和恢复技术,涵盖不同的导入选项和模式 11. Oracle闪回技术的使用场景和...

    Oracle数据库中有关表空间设计管理方法.pdf

    例如,在表空间传输对象时,可以通过逻辑备份工具EXP导出相关的模式对象和数据,并在新的表空间内重新创建这些对象。对于表空间数据量大的情况,这种方法虽然繁琐且耗时,但目前仍是最直接的方法之一。 此外,文章...

    Oracle数据库基于XTTS技术的数据库迁移技术探讨.pdf

    在 XTTS 技术中,TTS 技术是 Oracle 8i 开始引入的基于表空间传输的物理迁移方法,仅支持相同平台、相同块大小之间的表空间传输。XTTS 技术是在 TTS 基础上做了一些更新,支持了跨平台、不同块大小、增量备份等功能...

    oracle容灾技术.

    RMAN可以进行全库备份、增量备份、表空间备份,并支持网络备份和压缩。RMAN结合Data Guard可以实现更高效的备份和恢复策略。 7. Flashback Technologies Oracle的闪回技术包括Flashback Query、Flashback ...

    Oracle 11g内部技术文档

    Oracle 11g的存储结构包括表空间、数据块、段、区和表。表空间是数据库的逻辑划分,数据块是数据库的最小存储单元。段由一个或多个区组成,用于存储特定类型的数据库对象,如表、索引等。区是数据库在磁盘上的物理...

    ORACLE 数据复制技术

    - 在目标数据库中配置接收数据的表空间等资源。 - 设置复制策略,包括复制的数据范围、频率等参数。 **3. 启动复制过程:** - 开始数据捕获。 - 启动复制代理,开始数据传输。 - 监控复制进度和状态,确保数据复制...

    利用RMAN可传输表空间迁移数据库到不同字节序的平台.docx

    Oracle数据库提供了强大的跨平台数据迁移功能,特别是通过RMAN(Recovery Manager)实现的可传输表空间技术。这个功能使得用户可以在不同字节序的平台上迁移数据库,从而实现硬件升级、操作系统更换或数据中心迁移等...

    Oracle 白皮书 ADG 同步复制技术

    Oracle ADG(Active Data Guard)同步复制技术是Oracle数据库系统中的高级高可用性和灾难恢复解决方案。ADG通过在远程位置创建并保持与生产数据库同步的物理副本,确保关键业务数据的安全性和连续性。白皮书《Best ...

    基于RMAN+可传输表空间TTS迁移AIX平台数据库到Linux

    4. 字典管理和本地管理的表空间:被传输的表空间可以是字典管理或本地管理的,且自Oracle 9i起,源和目标数据库的块大小可以不同,增加了迁移的灵活性。 5. RMAN的Transportable Tablespace Set:这是一种通过RMAN...

Global site tag (gtag.js) - Google Analytics