海量数据迁移之传输表空间(一)

简介: 在自己接触的很多的数据迁移工作中,使用外部表在一定程度上达到了系统的预期,对于增量,批量的数据迁移效果还是不错的,但是也不能停步不前,在很多限定的场景中,有很多物理迁移中使用传统方法还是相当不错的,传输表空间就是一个样例。
在自己接触的很多的数据迁移工作中,使用外部表在一定程度上达到了系统的预期,对于增量,批量的数据迁移效果还是不错的,但是也不能停步不前,在很多限定的场景中,有很多物理迁移中使用传统方法还是相当不错的,传输表空间就是一个样例。
最近的有一个数据迁移任务是需要把一些全新的数据表迁移到另外一个库中,因为这些表在目标库中不存在,所以使用逻辑迁移就显得有些力不从心了。尽管在速度可以接受的情况下,最大的痛处就是大量的归档文件了。
因为需要在原有的schema下增加一些全新的数据表,不是很肯定传输表空间的校验是否能够完全支持。所以在给出方案之前还是做了做测试,达到了预期的想法。
为了对比清晰,我创建了两个全新的表空间,然后创建一个用户,创建两个表,制定到两个不同的表空间下,然后使用exp使用传输表空间模式导出,然后拷贝数据文件,导入,为了简单验证,就在同一个实例下做了测试。唯一多出来的步骤就是做一些简单的清理。
--数据准备
创建两个表空间
 create tablespace test_new datafile '/u02/ora11g/oradata/TEST11G/test_new01.dbf' size 10M;
 create tablespace test_old datafile '/u02/ora11g/oradata/TEST11G/test_old01.dbf' size 10M;
创建一个用户
create user test_tts identified by oracle default tablespace test_old;
grant connect,resource to test_tts;
然后创建两个表制定不同的表空间
create table test1 tablespace test_new as select *from all_objects where rownum create table test2 tablespace test_old as select *from all_objects where rownum 可以简单验证一下数据情况。
select count(*)from test1;
select count(*)from test2;
然后查看user_tables简单验证一下表所处的表空间
select tablespace_name,table_name from user_tables;
TABLESPACE_NAME                TABLE_NAME
------------------------------ ------------------------------
TEST_NEW                       TEST1
TEST_OLD                       TEST2
----表空间传输检查
在导出之前,使用dbms_tts做一下检查,在这个例子中是没有问题的。
exec dbms_tts.transport_set_check('TEST_NEW',TRUE);
使用给定的视图来查看是否有传输的限制。
select *from transport_set_violations;

--表空间传输导出
导出时需要指定表空间为只读模式alter tablespace test_new read only;

[ora11g@oel1 ~]$ exp \'sys/oracle as sysdba\' file=test_new.dmp transport_tablespace=y tablespaces=test_new log=test_new_tts.log
Export: Release 11.2.0.1.0 - Production on Wed Jun 17 18:26:17 2015
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 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 TEST_NEW ...
. exporting cluster definitions
. exporting table definitions
. . exporting table                          TEST1
. exporting referential integrity constraints
. exporting triggers
. end transportable tablespace metadata export
Export terminated successfully without warnings.
 --额外的步骤,做一下简单的备份和数据清理。因为在同一个实例中实验,所以需要备份一下,然后把数据删除。
    备份:
cp /u02/ora11g/oradata/TEST11G/test_new01.dbf /u02/ora11g/oradata/TEST11G/test_new01.dbf1
    清理
drop table TEST1 purge;
drop tablespace test_new including contents and datafiles cascade constraint
简单验证是否数据文件存在,需要确定数据文件的句柄已经释放。
sys@TEST11G> !ls -l /u02/ora11g/oradata/TEST11G/test_new01.dbf
ls: /u02/ora11g/oradata/TEST11G/test_new01.dbf: No such file or directory
然后重命名数据文件,把原有的备份恢复。这个时候数据文件就回来了。
!mv /u02/ora11g/oradata/TEST11G/test_new01.dbf1 /u02/ora11g/oradata/TEST11G/test_new01.dbf
!ls -l /u02/ora11g/oradata/TEST11G/test_new01.dbf
--表空间导入
 imp \'sys/oracle as sysdba\' file=test_new.dmp transport_tablespace=y tablespaces=test_new datafiles=/u02/ora11g/oradata/TEST11G/test_new01.dbf
Import: Release 11.2.0.1.0 - Production on Wed Jun 17 18:42:47 2015
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:V11.02.00 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 TEST_TTS's objects into TEST_TTS
. . importing table                        "TEST1"
. importing SYS's objects into SYS
Import terminated successfully without warnings.

--迁移后的补充
迁移后需要把表空间设置为read,write模式alter tablespace test_new read write;
--数据检查
select tablespace_name,table_name from user_tables;
淡然了上面的步骤只是简单的一个常规步骤,其实还是有不少的细节考虑的,后面继续补充。
目录
相关文章
|
1月前
|
NoSQL 数据库连接 数据处理
数据传输DTS迁移问题之全量加增量发到目标库如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
236 0
|
3月前
|
存储 运维 安全
企业数据存储与备份解决方案
基于阿里云提供的存储与灾备平台,提供数据备份、数据容灾保护以及策略化归档管理,满足客户的数据合规性要求和多种数据源的快速备份恢复需求,保障业务连续性,节省企业运维成本,消除企业后顾之忧。
48 2
|
4月前
|
数据管理 数据库 数据库管理
数据传输DTS数据迁移可以迁移表当中的部分数据吗?怎么操作呢?
数据传输DTS数据迁移可以迁移表当中的部分数据吗?怎么操作呢?
38 0
|
10月前
|
存储 数据采集 分布式计算
大数据数据采集的数据迁移(同步/传输)的Sqoop之数据传输实战
在大数据领域,数据迁移(同步/传输)也是非常重要的一环。Sqoop作为一个开源的数据迁移工具,可以帮助我们轻松地实现关系型数据库与Hadoop之间的数据迁移。本文将介绍如何使用Sqoop进行数据传输实战。
246 0
|
Java 数据库 数据安全/隐私保护
用 rsync 实现高速异地全量备份大文件
mysqldump 数据库的备份文件为完全备份文件。每天远程复制文件需要大量的时间和带宽。 但实际上每天变化的只是数据中的一小部分。在不使用数据库自身的备份机制的前提下, 可以只备份变化的那一小部分么? 本软件尝试做这件事。
350 0
|
存储 缓存 网络安全
阿里云存储网关备份数据
阿里云存储网关备份数据一、创建云控制台网关在阿里云云存储网关控制台创建网关集群,然后继续创建云下网关。创建好网关后,就可以下载镜像和证书,为以后的安装作好准备。参考章节“线下网关安装部署”:https://help.aliyun.com/document_detail/108239.html 二、本地数据中心安装存储网关1、下载云存储性能型文件网关镜像,参考章节“线下网关安装部署”https://help.aliyun.com/document_detail/108239.html 2、参考章节“一般性问题”的安装镜像。
1307 0
阿里云存储网关备份数据
|
数据库 数据挖掘 关系型数据库