【赵渝强老师】使用Oracle可传输的表空间迁移数据

简介: Oracle可传输表空间通过物理拷贝数据文件+导出/导入元数据,实现高效跨库迁移。相比传统exp/imp,大幅提速,但要求表空间自包含,且源目标端字符集、OS、版本须一致。

b461.png

在Oracle数据库中,可以使用export/import的方式来传输数据。在导出/导入时都需要解析数据内容,如果需要传输的数据比较大,那么这是一个非常耗时的过程。Oracle可传输的表空间的思想就是通过绕过这个数据处理过程来提速。通过数据定义(元数据)和数据内容(业务数据)分离的方式,将数据内容通过文件拷贝(物理移动)来达到快速移动的目的。视频讲解如下:


由于可传输表空间底层是文件拷贝,因此它在兼容性上没有数据导出/导入广泛,在应用场景上有如下限制:

  • 表空间必须是自包含的(Self-contained),即表空间中对象不依赖其他表空间中的内容。
  • 目标系统的字符集、操作系统、数据库版本必须和源系统一致。

Oracle可传输的表空间是数据迁移的最佳方式,它是一种以文件为单位的数据移动技术,具体的操作步骤如下:

(1)使用管理员登录,创建测试表空间和测试用户。

SQL> create tablespace mytbs datafile '/u01/app/oracle/oradata/ORCL/mytbs01.dbf' size 100M;
SQL> create user c##myuser identified by Welcome_1 default tablespace mytbs;
SQL> grant resource, connect to c##myuser;
SQL> alter user c##myuser quota unlimited on mytbs;

(2)切换到c##myuser用户创建测试表

SQL> conn c##myuser/Welcome_1
SQL> create table test1(id integer,name varchar(10));
SQL> insert into test1 values(1,'Tom');
SQL> commit;

(3)切换到管理员用户,检查表空间是否是自包含

SQL> conn / as sysdba
SQL> exec dbms_tts.transport_set_check('MYTBS', true); 
SQL> select * from transport_set_violations;
# 在开始传输前,先检查表空间是否是自包含的。
# Oracle提供了dbms_tts.transport_set_check()存储过程来检查,
# 这个存储过程不会返回任何结果,
# 是否冲突需要通过视图transport_set_violations查询。
# 如果不返回任何结果,则表示表空间是自包含的就可以移动数据了。

(4)将表空间置于只读状态

SQL> alter tablespace mytbs read only;
# 由于需要拷贝底层的数据文件,而在拷贝过程中不允许有事务对表空间进行修改,
# 因此需要将表空间置于只读模式。这个要求对于OLTP系统可能有点苛刻,
# 可以建立一个专门表空间专门进行数据传输,这样可以不影响正常业务的运行。

(5)导出表空间的元数据

exp \"/ as sysdba\" transport_tablespace=y tablespaces=mytbs file=mytbs.dmp
# 元数据是指表空间中对象的定义数据,它们存在数据字典中,和表中的普通业务数据是分离。
# 因此拷贝表空间文件不会包含元数据,元数据依然需要通过导出/导入的方式来移动。
# transport_tablespace=y表示仅导出表空间的元数据,这个文件非常小。

(6)拷贝表空间的数据文件

# 获取表空间对应的数据文件
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='MYTBS';
# 输出的信息如下:
TABLESPACE FILE_NAME
---------- --------------------------------------------------
MYTBS    /u01/app/oracle/oradata/ORCL/mytbs01.dbf
# 这里由于只有一个数据库,新建一个目录来模拟另一个系统
mkdir /u01/app/oracle/oradata/NEWORCL/
# 将表空间所包含的数据文件和第(4)步导出的元数据文件拷贝到目标系统,:
cp /u01/app/oracle/oradata/ORCL/mytbs01.dbf /u01/app/oracle/oradata/NEWORCL/

(7)完成数据文件的拷贝后,第(3)步中被设置为只读表空间就可以恢复读写状态了:

SQL> alter tablespace mytbs read write;

(8)在目标系统导入元数据

# 这里由于是在同一个库演示,先将原表空间及文件删除,避免冲突。
SQL> drop tablespace mytbs including contents and datafiles;
# 将第二步导出的元数据在目标系统导入即可。
使用imp命令导入元数据,这里需要提供要加载数据文件。
imp \"/ as sysdba\" transport_tablespace=y tablespaces=mytbs file=mytbs.dmp datafiles=/u01/app/oracle/oradata/NEWORCL/mytbs01.dbf

(9)导入后再次查询dba_data_files表,确定表空间指向的是新数据文件,确定导入成功。

SQL> select tablespace_name, file_name from dba_data_files where tablespace_name='MYTBS';

(10)导入后的表空间是只读的。如果要更新,则要将其改为读写状态。

SQL> alter tablespace mytbs read write;

(11)验证数据是否迁移成功。

相关文章
|
3天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
3天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
224 1
|
27天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
11天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
12天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
21天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
17天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
513 127
|
4天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
265 0