Oracle Transportable Tablespaces (TTS)

php中文网
发布: 2016-06-07 17:35:26
原创
1165人浏览过

Oracle Transportable Tablespaces (TTS)

主要讲一下关于oracle在线传输表空间的一些注意事项,文中附有示例。 

原理分析

使用copy 数据文件+导入metadata的方式迁移数据 

可以实现跨平台传输表空间

COLUMNPLATFORM_NAME FORMAT A36
SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_NAME; 

如果发现源、目标数据库的endian不相同,,需要使用rman convert 转换,否则不需要 

限制

源、目标数据库必须拥有兼容的字符集。

字符集相同

源数据库的字符集必须是目标数据库的子集。(下面必须全部满足)

(1) 源数据库版本必须大于10.1.0.3

(2) 表中的列不包含semantics的定义信息,最大字符长度限制和目标数据库相同。

(3) 不包含clob数据类型,或者两个数据库的字符集同为single-byte orboth multibyte. 

两个数据库必须拥有兼容的国家字符集

必须满足下面其中之一

(1)国家字符集相同

(2)source databaseis in version 10.1.0.3 or higher,并且没有NCHAR, NVARCHAR2, or NCLOB类型的数据 

目标数据库中不能有相同名称的表空间。(传输之前rename一下) 

底层依赖的对象必须全部包含在表空间集合中。 

使用场景

1.tablespace+partition 

2. 备份数据到cd中

3. 拷贝只读表可能关键到多个数据库

4. 归档历史数据

寻鲸AI
寻鲸AI

寻鲸AI是一款功能强大的人工智能写作工具,支持对话提问、内置多场景写作模板如写作辅助类、营销推广类等,更能一键写作各类策划方案。

寻鲸AI 68
查看详情 寻鲸AI

5. 执行spitr 基于时间点的表空间恢复 

在线传输表空间的工作流程(processes) 

1. 检查endian format,查看是否需要使用rman convert 转化endian(如果是相同平台可以忽略这一步)。 

2. 选择一个自包含的表空间集合。 

3. 在源库端,将表空间置为read only模式,并且生成可传输的表空间集合。(export metadatawith transportable tablespace) 

4. 传输表空间集合(使用scp或者其他的传输方式将expdp导出的元数据以及数据文件发送到目标服务器上) 

5.恢复表空间为read write模式(可选)

6.在目标端,导入表空间结合(import metadata) 

示例一  1、查看目标和源端的endian是否相同 

test@ORCL>

SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;

PLATFORM_NAME ENDIAN_FORMAT
-------------------------------------------------------------------------------------------------------------------
Linux x8664-bit Little

test@ORCL>

SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BYPLATFORM_NAME;

PLATFORM_IDPLATFORM_NAME ENDIAN_FORMAT
------------------------------------------------------------------------------------------------------------------------------
6 AIX-Based Systems(64-bit) Big
16 Apple MacOS Big
19 HP IA OpenVMS Little
15 HP OpenVMS Little
5 HP Tru64UNIX Little
3 HP-UX (64-bit) Big
4 HP-UX IA(64-bit) Big
18 IBM Power BasedLinux Big
9 IBM zSeries BasedLinux Big
10 Linux IA(32-bit) Little
11 Linux IA(64-bit) Little
13 Linux x8664-bit Little
7 Microsoft Windows IA(32-bit) Little
8 Microsoft Windows IA(64-bit) Little
12 Microsoft Windows x8664-bit Little
17 Solaris Operating System(x86) Little
20 Solaris Operating System(x86-64) Little
1 Solaris[tm] OE(32-bit) Big
2 Solaris[tm] OE(64-bit) Big

19 rows selected.

这里都是用Linux x86 64-bit 都是little endian 所以不需要使用rman convert 转换

(记得转换前先设置 表空间 read only 状态,保证数据文件在一个一致性的状态) 

2、选择自包含的表空间 

test@ORCL>

select t.name , d.name from v$tablespace t,v$datafile d where t.ts#=d.ts# ;

NAME NAME
------------------------------------------------------------------------------------------------------------------------
SYSTEM /u01/apps/oracle/oradata/orcl/system01.dbf
UNDOTBS1 /u01/apps/oracle/oradata/orcl/undotbs01.dbf
SYSAUX /u01/apps/oracle/oradata/orcl/sysaux01.dbf
USERS /u01/apps/oracle/oradata/orcl/users01.dbf
EXAMPLE /u01/apps/oracle/oradata/orcl/example01.dbf
IOTTBS /u01/apps/oracle/oradata/orcl/iottbs01.dbf
IOTEXTBS /u01/apps/oracle/oradata/orcl/iotextbs01.dbf
UNDOTBS1 /u01/apps/oracle/oradata/orcl/undotbs02.dbf
DEXTBS /u01/apps/oracle/oradata/orcl/dextbs01.dbf
SQLTDBS /u01/apps/oracle/oradata/orcl/sqlttbs01.dbf

10 rows selected. 

传输iotextbs 表空间对应数据文件

/u01/apps/oracle/oradata/orcl/iotextbs01.dbf 

如果没有输出,表示是自包含的表空间 

sys@ORCL> EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK('iotextbs',true) ;

PL/SQL procedure successfully completed.

sys@ORCL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

no rows selected

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号