不同版本数据库,不同平台的迁移!使用表空间传输技术
环境: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数据库管理中,表空间传输技术(Tablespace Transport)是一种高效的手段,用于在不同的数据库之间快速迁移数据。相较于传统的数据导出导入方法(例如使用`EXP`/`IMP`工具),表空间传输能够直接移动表空间...
表空间传输技术是Oracle提供的逻辑导出工具exp/imp的一种扩展,允许用户在保持数据完整性的前提下,仅导出一组自包含、只读的表空间的元数据,然后通过操作系统层面复制数据文件到目标平台,再导入元数据到目标...
- Oracle 10g支持跨平台的表空间传输,前提是目标平台和源平台的操作系统字节顺序相同。 #### 六、平台字节顺序与兼容性 - **字节序**:不同的操作系统采用不同的字节序(big-endian或little-endian)存储多字节...
1. **传输表空间技术**:Oracle数据库允许将特定表空间的数据独立导出到另一个数据库,以实现数据迁移或备份。在实施过程中,首先将需要转移的表空间设置为只读,然后使用Data Pump进行表空间级别的导出。导出后的...
例如,在本实例中,源系统为Linux IA (32-bit),目标系统为Microsoft Windows IA (32-bit),两者均为Little endian格式,因此它们之间的表空间传输是可行的。如果不兼容,可能需要进行额外的转换步骤。 接下来,...
总结来说,Oracle 11G的加密表空间提供了全面的数据保护,确保了数据在存储和传输过程中的安全性。通过理解并正确实施上述步骤,数据库管理员能够有效地管理和保护敏感信息,满足日益增长的数据安全需求。在实际操作...
【Oracle 数据库升级技术——传输表空间】 Oracle 数据库作为一款广泛应用的关系型数据库管理系统,其升级过程对于确保系统的稳定性和性能至关重要。随着医疗行业的信息化发展,医院的信息系统对数据库服务提出了更...
本文将深入探讨Oracle数据库的表空间移植技术,涵盖其原理、应用场景以及具体的实施步骤。 #### 一、理解表空间移植 表空间移植(Tablespace Transport)是Oracle提供的一项功能,允许用户将数据从一个数据库无缝...
Oracle Spatial模块因其面向对象的管理方式与关系代数管理属性数据的结合,为高效的空间数据传输提供了新的技术路径。 在标签中提到的“分布式”、“分布式系统”、“分布式开发”、“参考文献”、“专业指导”等...
9. Oracle的逻辑备份工具包括TableMode、UserMode,以及如何导出表定义、表数据(全部或选定行)、表空间、完整数据库等 10. Oracle的物理备份和恢复技术,涵盖不同的导入选项和模式 11. Oracle闪回技术的使用场景和...
例如,在表空间传输对象时,可以通过逻辑备份工具EXP导出相关的模式对象和数据,并在新的表空间内重新创建这些对象。对于表空间数据量大的情况,这种方法虽然繁琐且耗时,但目前仍是最直接的方法之一。 此外,文章...
在 XTTS 技术中,TTS 技术是 Oracle 8i 开始引入的基于表空间传输的物理迁移方法,仅支持相同平台、相同块大小之间的表空间传输。XTTS 技术是在 TTS 基础上做了一些更新,支持了跨平台、不同块大小、增量备份等功能...
RMAN可以进行全库备份、增量备份、表空间备份,并支持网络备份和压缩。RMAN结合Data Guard可以实现更高效的备份和恢复策略。 7. Flashback Technologies Oracle的闪回技术包括Flashback Query、Flashback ...
Oracle 11g的存储结构包括表空间、数据块、段、区和表。表空间是数据库的逻辑划分,数据块是数据库的最小存储单元。段由一个或多个区组成,用于存储特定类型的数据库对象,如表、索引等。区是数据库在磁盘上的物理...
- 在目标数据库中配置接收数据的表空间等资源。 - 设置复制策略,包括复制的数据范围、频率等参数。 **3. 启动复制过程:** - 开始数据捕获。 - 启动复制代理,开始数据传输。 - 监控复制进度和状态,确保数据复制...
Oracle数据库提供了强大的跨平台数据迁移功能,特别是通过RMAN(Recovery Manager)实现的可传输表空间技术。这个功能使得用户可以在不同字节序的平台上迁移数据库,从而实现硬件升级、操作系统更换或数据中心迁移等...
Oracle ADG(Active Data Guard)同步复制技术是Oracle数据库系统中的高级高可用性和灾难恢复解决方案。ADG通过在远程位置创建并保持与生产数据库同步的物理副本,确保关键业务数据的安全性和连续性。白皮书《Best ...
4. 字典管理和本地管理的表空间:被传输的表空间可以是字典管理或本地管理的,且自Oracle 9i起,源和目标数据库的块大小可以不同,增加了迁移的灵活性。 5. RMAN的Transportable Tablespace Set:这是一种通过RMAN...