精华内容
下载资源
问答
  • oracle表空间传输

    千次阅读 2013-03-01 17:11:27
    空间传输一、简介可传输表空间(还有个集)最大的优势是其速度比export/import或unload/load要快的多。因为可传输表空间主要是复制数据文件到目标路径,然后再使用export/import或Data Pump export/import等应用仅...
    表空间传输
    




    一、简介


    可传输表空间(还有个集)最大的优势是其速度比export/import或unload/load要快的多。因为可传输表空间主要是复制数据文件到目标路径,然后再使用export/import或Data Pump export/import等应用仅导出/导入表空间对象的元数据到新数据库。


    (1)可传输表空间的特性主要用于进行库对库的表空间复制,要进行传输的表空间必须置于read-only模式。如果生产库不允许表空间置为只读模式,没关系,方法还是有的,通过RMAN备份也可以创建可传输表空间集。
    (2)要使用可传输表空间的特性,oracle至少是8i企业版或更高版本。如果是相同操作系统平台相互导入,则8i及以上版本均可支持,但如果是不同操作系统平台,数据库版本至少10g。
    (3)被传输的表空间即可以是字典管理,也可以是本地管理。并且自oracle9i开始,被传输表空间的block size可以与目标数据库的block size不同。


    一些操作系统(包括 Windows)在低位内存地址中用最低有效字节存储多字节二进制数据;因此这种系统被称为低地址低字节序。相反,其它的操作系统(包括 Solaris)将最高有效字节存储在低位内存地址中,因此这种系统被称为低地址高字节序。当一个低地址高字节序的系统试图从一个低地址低字节序的系统中读取数据时,需要一个转换过程— 否则,字节顺序将导致不能正确解释读取的数据。不过,当在相同字节顺序的平台之间传输表空间时,不需要任何转换。
    如果平台间的endian不同,那么在执行导入操作之之前必须首先转换源平台的表空间到目标格式,如果平台间endian format相同,则可以跳过转换的步骤,即使是不同平台。当然前提是各平台的数据库版本都不低于10g。
    在表空间可被传输到不同平台之前,数据文件的文件头必须能够识别其所属的原平台是什么,对于oracle数据库初始化参数中COMPATIBLE置为10.0.0或更高之后,你必须至少将表空间置为read-write一次,这点非常重要。




    http://database.ctocio.com.cn/tips/341/7700841.shtml


    表空间传输是通过oracle的逻辑导出命令exp/imp添加参数transport_tablespace=y进行导出导入。
    执行表空间传输有以下限制条件:
    (1)源数据库和目标数据库必须处于相同的平台。10g以后可以用RMAN命令修改数据文件实现跨平台移动表空间。
    (2)对于源数据库和目标数据库版本不同时,源数据库的版本必须低于目标数据库。
    (3)两边设置的数据库字符集和国家字符集必须一致。
    (4)目标数据库不能存在需要导入的表空间。
    (5)源数据库和目标数据库的blocksize必须一致(9i前)。




    自oracle10gR2开始,可以传输含XMLTypes的表空间,不过必须使用imp/exp而不能选择数据泵(impdp/expdp)。并确保imp/exp命令的CONSTRAINTS和TRIGGERS参数设置为Y。
    下列脚本可以列出数据库中哪些表空间含XMLTypes:
    select distinct p.tablespace_name   
    from dba_tablespaces p,
         dba_xml_tables x,
         dba_users u,
         all_all_tables t
    where t.table_name = x.table_name
      and t.tablespace_name = p.tablespace_name
      and x.owner = u.username




    传输表空间的一些限制:
    (1)高级队列(Advanced Queues):可传输表空间的特性并不支持8.0兼容的高级队列
    (2)系统表空间(SYSTEM Tablespace Objects):不能传输SYSTEM表空间或者SYS用户拥有的对象。
    (3)映射类型(Opaque Types):由应用指定并且映射到数据库(如RAW,BFILE等)的类型可以被传输,但是它们并不会被做为跨平台转换的一部分。其实际类型是什么只有指定它的应用清楚,所以必须保证这个应用解决读取各种endian问题后再考虑将其传输到新平台。
    (4)浮点数据(Floating-Point Numbers):BINARY_FLOAT和BINARY_DOUBLE类型可以使用数据泵导入导出但不支持EXP。






    二、表空间传输的步骤:




    1、需要移动的表空间必须是自包含的。
    如果表空间中的数据与其他表空间中的数据有参照关系,那么在移动表空间时,凡是相关的表空间都需要一同移动。、
    可以通过如下命令检查是否为自包含表空间:
    SQL>execute dbms_tts.transport_set_check(ts_list=>'<tablespace>',incl_constraints=>TRUE);
    参数ts_list指定需要传输的表空间,incl_constraints指定是否检查完整性约束。执行完后,检查临时表transport_set_violations,如果没有返回信息,表示表空间为自包含。


    2、将需要传输的表空间设置为只读。
    SQL>alter tablespace XXX read only;
    如果生产库不允许表空间只读,可以选择通过RMAN备份生成表空间集的方式进行


    3、以sysdba身份连接数据库执行exp导出。
    C:>exp userid='sys/sys@jiong as sysdba' file=d:\testspace.dmp log=d:\testspaceexp.log transport_tablespace=y tablespaces=testspace buffer=10240000
    只是导出的待传输表空间的目录结构信息(元数据),并不包含实际数据,因此导出的速度非常快,而且文件也很小


    4、使用RMAN转换所要传输表空间的数据文件头为目标系统文件(10g下在不同的平台传输时)
    这步转换可以在源数据库也可以在目标数据库进行。
    RMAN>convert tablespace "TESTSPACE" to platform 'Microsoft Windows IA (32-bit)' format 'd:\TESTSPACE01.DBF'
    记住这步结束后别忘了将表空间置回可写:
    alter tablespace TESTSPACE read write


    关于platform参数可以通过查询v$db_transportable_platform得到。
    (1)v$db_transportable_platform
    V$DB_TRANSPORTABLE_PLATFORM displays all platforms to which the database can be transported using the RMAN CONVERT DATABASE command. The transportable database feature only supports transports of the same endian platform. Therefore, V$DB_TRANSPORTABLE_PLATFORM displays fewer rows than V$TRANSPORTABLE_PLATFORM.
    (2)v$transportable_platform
    V$TRANSPORTABLE_PLATFORM displays all platform names and their identifiers




    5、复制表空间转换后的数据文件及导出文件到目标平台


    6、使用imp导入表空间
    这里需要注意,在目标数据库需要先建立原先表空间里对象所属的用户,但是又不能使用同名的表空间,所以这个用户会建立在其他表空间上。
    还有,如果传输的表空间集block_size与目标库的默认block_size不同,那你的第一步就得是设置目标库中DB_nK_CACHE_SIZE的初始化参数(9i以上)。
    c:>imp userid='sys/sys@mood as sysdba' file=d:\testspace.dmp log=d:\testspaceimp.log tablespaces=testspace datafiles=d:\TESTSPACE01.DBF transport_tablespace=y
    将用户默认表空间修改为导入的表空间:
    alter user TUSER default tablespace TESTSPACE
    如果需要,将导入到目标数据库的表空间置为可写,因为导入后也是处于read only状态。
    alter tablespace TESTSPACE read write






    ===================================================测 试========================================================




    1、创建测试表空间和测试用户、表
    create tablespace TESTSPACE datafile
    'E:\oracle\product\10.2.0\oradata\jiong\TESTSPACE01.DBF' size 50m
    autoextend on next 64m maxsize unlimited
    extent management local
    segment space management auto


    create user tuser identified by tuser default tablespace TESTSPACE
    grant connect,resource to tuser
    conn tuser/tuser@jiong
    create table tobject as select * from all_objects


    2、检查自包含性
    conn sys/sys@jiong as sysdba
    SQL>execute dbms_tts.transport_set_check(ts_list=>'TESTSPACE',incl_constraints=>TRUE);
    select * from transport_set_violations;
    设置表空间只读
    alter tablespace TESTSPACE read only


    3、执行导出
    exp userid='sys/sys@jiong as sysdba' file=d:\testspace.dmp log=d:\testspaceexp.log transport_tablespace=y tablespaces=TESTSPACE buffer=10240000


    4、模拟平台转换(同一平台传输不需要这步)
    RMAN>convert tablespace "TESTSPACE" to platform 'Microsoft Windows IA (32-bit)' format 'd:\TESTSPACE01.DBF'  --这个是转换的目标地址


    5、复制表空间转换后的数据文件及导出文件到目标平台
    即上面的'd:\TESTSPACE01.DBF'和'd:\testspace.dmp'


    6、先在目标数据库创建用户TUSER
    create user tuser identified by tuser  --由于还没有TESTSPACE所以用户默认表空间是其他表空间
    grant connect,resource to tuser
    使用imp导入表空间
    c:>imp userid='sys/sys@mood as sysdba' file=d:\testspace.dmp log=d:\testspaceimp.log tablespaces=testspace datafiles=d:\TESTSPACE01.DBF transport_tablespace=y
    alter user TUSER default tablespace TESTSPACE  --将默认表空间修改为TESTSPACE






    ============================================================================================================================================


    ORACLE传输表空间的补充




    对于跨平台的传输,查询V$TRANSPORTABLE_PLATFORM视图检查两平台的endian format。如果你准备传输表空间集到不同endian平台,必须首先转换表空间集的endian与目标平台相同。前面提到,如果涉及了endian的转换,可以在生成可传输表空间集时进行(源平台进行),或者在导入表空间集之前进行(目标平台进行),转换的命令都是一个,只是参数略有不同,关于命令的用法暂且不提,后面会有专门章节介绍和实践。在这里我们先来深入一个这个操作究竟放在哪里合适。按说这个操作放在哪里执行都可以,应该没有什么可争辩的,但是值的注意的是针对我们操作的数据库,特别是对于正在运行的生产数据库,三思建议你采用在目标平台上进行转换的操作,缘由如下:
    (1)缩短停机时间
      在创建可传输表空间集之前,需要将要传输的表空间状态置为read-only。你可以将数据文件迅速复制一份镜像,并生成包含元数据的export文件,然后即可将表空间状态置为read-write状态。这种安排使得表空间必须保持为只读的时间尽可能的短。
    (2) 提高执行性能
      生产数据库往往同时在处理多个应用,而此时如果再用其进行转换操作可能增加系统负载,并且系统此时由于执行的任务较多,转换效率也并非最高。将转换操作移到目标平台进行,通常对于目标平台都是做为备份角色,其系统负载相对是比较低的,执行转换操作的效率相对也会更高。
    (3)简化复制操作
      通过在目标平台执行转换命令时指定db_file_name_convert参数,直接将数据文件转换到目标目录内,简化复制时的操作。






    ===========================================================================================================================================


    表空间不能置read only时的表空间传输




    常规的表空间传输要求被传输的表空间在传输过程中必须置为read-only,而在实际操作过程中,对于某些生产数据库,将表空间置为read-only 是件非常复杂的事情甚至完全不允许,尤其对于超大的表空间,因为被传输的表空间在此期间仍可进行读写操作,而且把表空间置为read-only 模式可能会花费较长时间。
    这里借助RMAN的数据库复制功能,通过复制数据库来解决这一问题,具体操作如下:




    一、创建测试表空间和测试用户、表
    create tablespace TESTSPACE datafile
    'E:\oracle\product\10.2.0\oradata\mood\TESTSPACE01.DBF' size 50m
    autoextend on next 64m maxsize unlimited
    extent management local
    segment space management auto;


    create user tuser identified by tuser default tablespace TESTSPACE;
    grant connect,resource to tuser;
    conn tuser/tuser@mood
    create table tobject as select * from all_objects;




    二、检查自包含性
    conn sys/sys@mood as sysdba
    SQL>execute dbms_tts.transport_set_check(ts_list=>'TESTSPACE',incl_constraints=>TRUE);
    select * from transport_set_violations;




    三、构造“只读”的表空间(关键步骤)
    [设置表空间只读 alter tablespace TESTSPACE read only;] 此步在24小时生产系统一般不允许,这里由RMAN的数据库复制功能实现。


    1、确认目标数据库具有必须的备份
    E:\oracle>rman target sys/sys@mood
    RMAN>list backup; --一般生产环境都是有备份的
    如果没有则进行全备:
    RMAN> backup database plus archivelog delete input;


    2、生成可传输集
    E:\oracle>rman target sys/sys@mood  --连接生产数据库
    RMAN>transport tablespace TESTSPACE TABLESPACE DESTINATION = 'e:\exp' auxiliary destination = 'E:\auxiliary';
    生成的可传输文件将会被存储至tablespace destination参数指定的位置,其它辅助文件生成到auxiliary destination参数指定的位置


    这句生成语句,可以有很多变化,这一点是read only表空间无法比拟的:
    (1)加UNTIL SCN XXX,指定SCN号
    (2)UNTIL TIME 'SYSDATE-1',指定时间点
    (3)DATAPUMP DIRECTORY ttsdir  --指定已定义的DIRECTORY
              DUMP FILE 'dmpfile.dmp'           --指定元数据文件
              IMPORT SCRIPT. 'impscript.sql'  --指定导入脚本
              EXPORT LOG 'explog.log';          --指定导出日志文件
    dmpfile.dmp及explog.log文件会自动存储到ttsdir指向的物理路径,其它文件均被生成到TABLESPACE DESTINATION目录内


    注意:这里不需要像RMAN数据库复制那样自己创建辅助实例并使用,RMAN自己会构建辅助实例,并在完成数据文件和相关元数据导出操作后将这个辅助实例删除。在参考其他文档时描述了大量辅助实例创建的步骤,但其实都是不需要的。如果在生成传输集时连接了自定义的辅助实例,那么会报错:RMAN-05022: TRANSPORT TABLESPACE may not be used with user-managed auxiliary instance


    注意:TRANSPORT TABLESPACE 命令执行过程中,恢复集文件并不会自动转换到目标数据库的endian 格式。如果需要转换,你必须在创建可传输集前使用rman 的convert 命令转换数据文件到目标数据库的endian 格式:
    RMAN>convert tablespace "TESTSPACE" to platform 'Microsoft Windows IA (32-bit)' format 'd:\TESTSPACE01.DBF'  --这个是转换的目标地址


    RMAN在删除自动实例时,最后会报无法删除文件的错误,可能为一个BUG,但对于实际使用无影响,因为辅助实例在传输完后已无用,可以直接手动删除。RMAN自动实例的数据文件均在auxiliary destination参数指定位置下的一个文件夹中,由于复制了生产库,所以在实际操作中应该需要注意这个空间要足够大。




    四、复制到目标平台后执行导出
    登入目标数据库,执行前面TABLESPACE DESTINATION目录下自动生成的impscrpt.sql脚本就OK了:
    sqlplus sys/sys@RUI as sysdba  --执行脚本前先确认目标数据库已创建传输的表空间的用户,这里是前面建的tuser
    SQL>@e:\exp\impscrpt.sql
    也可以自己写impdp,注意这里使用的是datapump,所以切记前面传输的表空间中
    impdp sys/sys@rui as sysdba DUMPFILE=e:\exp\DMPFILE.DMP DIRECTORY=DATA_PUMP_DIR TRANSPORT_DATAFILES=e:\exp\TESTSPACE01.DBF
    通过impdp 导入有一个好处,可以通过REMAP_SCHEMA 参数指定表空间所属的schema,而不用创建表空间在源库中对应的用户




    五、将目标数据库新复制的表空间置为read write
    SQL>alter user tuser default tablespace TESTSPACE;
    SQL>alter tablespace TESTSPACE read write;


    传输完成!










    ============================================================================================================================================




    实战RMAN备份传输表空间
    http://space.itpub.net/7551038/viewspace-614393






    前面各章从理论到实践详细论述了关于可传输表空间,还有个集(Transportable Tablespace Sets)的创建,其中都提到了很重要一点,就是被传输的表空间在传输过程中必须置为read-only。而在实际操作过程中,对于某些生产数据库,将表空间置为read-only是件非常复杂的事情甚至完全不允许,有了RMAN的Transportable Tablespace,这一切都得以避免。RMAN通过备份创建可传输表空间集,它并不需要存取活动的数据文件,相应也就不需要将表空间置为read-only。因此,数据库可用性得到提升,尤其对于超大的表空间,因为被传输的表空间在此期间仍可进行读写操作,而且把表空间置为read-only模式可能会花费较长时间,


    使用RMAN创建可传输表空间集,允许你在传输过程中指定目标恢复时间点或SCN,这样传输的数据可以更灵活,不必完全复制现有表空间,只要备份中存在,你就可以选择性的恢复数据。例如,你的备份策略为保留一周,你希望创建的可传输表空间中数据是截止本月底最后一天的数据,那么你在下个月第一周内任何时候都可以进行传输操作而不需要考虑这期间生产库是否会有写入操作。


    使用rman备份创建Transportable Tablespace Sets主要是通过RMAN中的TRANSPORT TABLESPACE命令完成的。
    提示:即使并未使用rman备份数据库,TRANSPORT TABLESPACE命令也可以用来创建transportable tablespace sets。不过,你必须有要传输的表空间集数据文件拷贝,然后使用rman的catalog命令将数据文件、归档日志等文件的拷贝载入rman资料库。只有rman拥有了所需备份才能够正常执行TRANSPORT TABLESPACE。




    一、适用场合




    基本上,任何需要传输表空间的情况,你都可以使用rman的TRANSPORT TABLESPACE命令去创建,只要拥有所需的备份。






    二、相关概念




    RMAN创建可传输表空间集与RMAN Tablespace Point-in-Time Recovery (TSPITR)极其相似,如果你有过TSPITR的操作经验,那么操作这个同样不在话下。


    单枪不能成事,Oracle的霸业就是靠无数相互关联的对象以不同方式巧妙组合而成。对于创建TTS而言,RMAN仍然不是一个人在战斗,他不是一个人:
      RMAN客户端(Recovery Manager client)
      源库(source database),即要传输的表空间所在库。
      源库归档及备份(Archived redo logs and backups)
      辅助实例(auxiliary instance),这个大家应该都比较熟了,如果你还不了解可以参见"Duplicate创建副本数据库"系列第2章。
      辅助集(auxiliary set),包括数据文件等其它传送所需但又并不是恢复集一部分的文件。例如SYSTEM表空间,Undo表空间之类。而辅助实例通常也不是一个人,它也有一些关联文件,例如控制文件、初始化参数文件、在线日志等,这些文件并不属于辅助集,虽然是起辅助目的,但它们的老主顾显然是辅助实例。


        辅助文件暂存地(auxiliary destination)即辅助集所包含的对象在rman transport tablespace命令执行过程中物理存放的位置,执行完之后这些文件会被删除。
    提示:auxiliary destination并非必须指定,如果不指定的话,必须确保协助实例相关的各文件在初始化参数中均已指定具体存储位置。
        表空间目的地(tablespace destination),tablespace transport命令执行期间生成的传输集数据文件及其它输出文件的存储路径。
        可传输集(transportable set),由待传输表空间数据文件以及expdp生成的导出文件(export dump file)组成的,用于填充到目标数据库表空间的集合,默认情况下,这些集合中的文件保存在表空间目的地指定路径下。
        RMAN自动生成的导入脚本(import script)以及expdp生成的导出日志(export log),可传输集的一部分。






    三、命令格式:关于Transport Tablespaces命令




    过rman备份创建可传输表空间集避免通过源库当前活动的数据文件。同样恢复时可以恢复到备份中包含的任意时间而不会被限定仅能恢复到当前时间。其创建的工作就是由一个名为Transport Tablespaces的RMAN命令来实现,其格式如下:
    Transport Tablespace命令的参数不少,不过幸运的是并不复杂,并且其参数与前面介绍的关联实体名称相同,由此仅通常参数名我们也大致能猜出所代表的意义,下面通常几个应用的示例加深一下印象:




    1、最简单的可传输表空间集的创建:
    transport tablespace tbs_1, tbs_2
       tablespace destination '/disk1/transportdest'
       auxiliary destination '/disk1/auxdest';
    本例中,待传输表空间为tbs_1和tbs_2两个(如果待传输的表空间有多个,中间以逗号分隔),生成的可传输文件将会被存储至tablespace destination参数指定的位置,其它辅助文件生成到auxiliary destination参数指定的位置。




    2、创建时指定恢复时间点
    TRANSPORT TABLESPACE tbs_3
       TABLESPACE DESTINATION '/disk1/transportdest'
       AUXILIARY DESTINATION '/disk1/auxdest'
       UNTIL SCN 11379;
    本例中,通过指定SCN的方式控制恢复的内容。


    又如下例中通过指定时间控制恢复的内容:
    TRANSPORT TABLESPACE tbs_2
       TABLESPACE DESTINATION '/disk1/transportdest'
       AUXILIARY DESTINATION '/disk1/auxdest'
       UNTIL RESTORE POINT 'before_upgrade';


    指定恢复点方式控制恢复的内容:
    TRANSPORT TABLESPACE tbs_2
       TABLESPACE DESTINATION '/disk1/transportdest'
       AUXILIARY DESTINATION '/disk1/auxdest'
       UNTIL TIME 'SYSDATE-1';
    提示:需要注意指定的恢复时间点必须存在于备份的redo log或归档文件中。




    3、创建时指定文件的生成路径:
    TRANSPORT TABLESPACE tbs_2
       TABLESPACE DESTINATION '/disk1/transportdest'
       AUXILIARY DESTINATION '/disk1/auxdest'
       DATAPUMP DIRECTORY ttsdir
       DUMP FILE 'dmpfile.dmp'
       IMPORT SCRIPT. 'impscript.sql'
       EXPORT LOG 'explog.log';


    只要你想,就可以。默认情况下:
    DATAPUMP DIRECTORY参数指定已定义的DIRECTORY:ttsdir
    DUMP FILE参数指定元数据文件,命名为:dmpfile.dmp
    IMPORT SCRIPT参数指定导入脚本,命名为:impscript.sql
    EXPORT LOG参数指定导出日志文件,命名为:explog.log
    dmpfile.dmp及explog.log文件会自动存储到ttsdir指向的物理路径,其它文件均被生成到/disk1/transportdest目录内。






    实战RMAN备份传输表空间


    一、检查平台是否支持


    查询源数据库平台信息
    SQL> col platform_name for a40
    SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
        FROM V$TRANSPORTABLE_PLATFORM. tp, V$DATABASE d
        WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
    查询Oracle10g支持的平台转换
    SQL> select * from v$transportable_platform;


    二、检查待传输表空间是否自包含
    execute dbms_tts.transport_set_check('TEST', true);
    若报过程dbms_tts.transport_set_check不存在,则用sys的数据库用户执行脚本"$ORACLE_HOME/rdbms/admin/dbmsplts.sql"建立之。
    SELECT * FROM TRANSPORT_SET_VIOLATIONS;
    若查询结果为空,说明表空间是自包含的;否者查询结果说明哪些地方违反了自包含。


    三、检查备份
    先做好备份


    ***归档Alter system archive log current;
    四、生成可传输集
    RMAN>transport tablespace nnd
         TABLESPACE DESTINATION = 'k:\exp'
         auxiliary destination = 'k:\aux1';


    删除自动实例
    自动实例已删除
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: tranport tablespace 命令 (在 11/19/2007 15:23:45 上) 失败
    ORA-27056: 无法删除文件
    OSD-04024: 无法删除文件。
    O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问


    O/S-Error: (OS 32)通常跟windows平台有关,尝试换用linux平台执行...........一切正常!


    报错是在删除辅助实例文件时,此时传输集已经生成了,不会影响我们后续操作。那我们就手工删除这些文件好了,基本上就是auxiliary destination参数指定路径下的文件,干脆直接连这个目录也删掉。


    五、复制文件到目标平台


    六、执行导入脚本
    注意,导入表空间在源平台所属的用户必须存在,另外一旦复制到目标库后文件路径如果发生变化,一定要修改impscript.sql文件中相应的路径。
    [oracle@jsslinux ~]$ sqlplus "/ as sysdba"
    SQL> @/opt/oratmp/oradata/impscript.sql









































    展开全文
  • Oracle表空间传输步骤

    2018-05-11 16:09:21
    Oracle数据库迁移传输步骤,日常迁移传输数据库整理的
  • ORACLE数据库表空间传输方式. ORACLE数据库表空间传输方式.
  • oracle传输表空间实例,举例说明传输表空间的使用方法
  • oracle 传输表空间

    2014-06-21 12:37:44
    传输表空间 1. 创建表空间,作为实验传输表空间 [oracle@edt3r10p1~]$ sqlplus / as sysdba   SQL*Plus:Release 11.2.0.3.0 Production on Wed Mar 5 15:49:09 2014   Copyright (c)1982, 2011, Oracle. ...

    传输表空间

    1.   创建表空间,作为实验传输表空间

    [oracle@edt3r10p1~]$ sqlplus / as sysdba

     

    SQL*Plus:Release 11.2.0.3.0 Production on Wed Mar 5 15:49:09 2014

     

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

     

     

    Connected to:

    Oracle Database1100M Enterprise Edition Release 11.2.0.3.0 - 64bit Production

    With thePartitioning, Automatic Storage Management, OLAP, Data Mining

    and RealApplication Testing options

     

    SQL> createtablespace trans_tbs datafile '/home/oracle/trans01.dbf' size 20M;

     

    Tablespacecreated.

    2.   创建实验用户,用于验证数据。

    SQL> createuser trans identified by trans

      2 default tablespace trans_tbs

      3 temporary tablespace temp;

     

    User created.

    3.   修改用户权限

    SQL> alteruser trans quota unlimited on trans_tbs;

     

    User altered.

     

    SQL> grantconnect to trans;

     

    Grant succeeded.

    SQL>  grant create table to trans;

     

    Grant succeeded.

     

    SQL>  grant select on hr.employees  to trans;

     

    Grant succeeded.

    4.   创建实验表

    SQL>  create table trans_tb tablespace trans_tbs

      2    as

      3   select * from hr.employees;

    Table created.

    SQL> selectcount(*) from trans.trans_tb;

      COUNT(*)

    ----------

           107

    5.   将移动表空间修改为只读模式

    SQL> conn /as sysdba

    Connected.

    SQL> altertablespace trans_tbs read only;

    Tablespacealtered.

    6.   使用数据泵导出移动表空间元数据

    [oracle@edt3r10p1~]$expdpsystem/oracle directory=lin_dir  dumpfile=trans.dumpTRANSPORT_TABLESPACES=trans_tbs

     

    Export: Release11.2.0.3.0 - Production on Wed Mar 5 15:57:06 2014

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

    Connected to:Oracle Database 1100M Enterprise Edition Release 11.2.0.3.0 - 64bit Production

    With thePartitioning, Automatic Storage Management, OLAP, Data Mining

    and RealApplication Testing options

    Starting"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** directory=lin_dirdumpfile=trans.dump TRANSPORT_TABLESPACES=trans_tbs

    Processingobject type TRANSPORTABLE_EXPORT/PLUGTS_BLK

    Processingobject type TRANSPORTABLE_EXPORT/TABLE

    Processingobject type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

    Master table"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfullyloaded/unloaded

    ******************************************************************************

    Dump file setfor SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:

      /home/oracle/trans.dump

    ******************************************************************************

    Datafilesrequired for transportable tablespace TRANS_TBS:

      /home/oracle/trans01.dbf

    Job"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfullycompleted at 15:58:10

    7.   删除表空间(在一个数据库做实验,模拟另外一个数据库)

    SQL> droptablesap pace trans_tbs including contents;

    Tablespacedropped.

    SQL> conntrans/trans

    Connected.

    SQL> selectcount(*) from trans_tb;

    select count(*)from trans_tb

                         *

    ERROR at line 1:

    ORA-00942: tableor view does not exist

    注意:不要同时删除数据文件。

    8.   使用数据泵倒入移动表空间元数据

    [oracle@edt3r10p1~]$impdp system/oracle directory=lin_dir dumpfile=trans.dump transport_datafiles='/home/oracle/trans01.dbf'

    Import: Release11.2.0.3.0 - Production on Wed Mar 5 16:07:57 2014

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

    Connected to:Oracle Database 1100M Enterprise Edition Release 11.2.0.3.0 - 64bit Production

    With thePartitioning, Automatic Storage Management, OLAP, Data Mining

    and RealApplication Testing options

    Master table"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfullyloaded/unloaded

    Starting"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=lin_dirdumpfile=trans.dump transport_datafiles=/home/oracle/trans01.dbf

    Processingobject type TRANSPORTABLE_EXPORT/PLUGTS_BLK

    Processingobject type TRANSPORTABLE_EXPORT/TABLE

    Processingobject type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

    Job"SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfullycompleted at 16:08:01

    9.   验证数据

    SQL> conn /as sysdba

    Connected.

    SQL> selectname from v$tablespace;

    NAME

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

    SYSTEM

    SYSAUX

    TRANS_TBS

    USERS

    TEMP

    EXAMPLE

    TEMP1

    UNDOTBS2

    8 rows selected.

    SQL> conntrans/trans

    Connected.

    SQL> selectcount(*) from trans.trans_tb;

      COUNT(*)

    ----------

           107

    展开全文
  • 传输表空间(tansport tablespace)用于将表空间从一个数据库传输到另一个数据库,速度快,相当于直接复制数据文件.传输表空间有以下特性: 1)可以传输一个表空间集合 2)将表空间设置成read-only模式传输或者用RMAN做...

    传输表空间(tansport tablespace)用于将表空间从一个数据库传输到另一个数据库,速度快,相当于直接复制数据文件.传输表空间有以下特性:


    1)可以传输一个表空间集合

    2)将表空间设置成read-only模式传输或者用RMAN做可传输的表空间

    3)字典管理和本地管理的表空间均可传输

    4)从9I开始,要传输的表空间的块大小可与目标数据库的标准块大小不同

    5)传输表空间比imp exp快的多,不需要抽取和加载数据,数据包含在表空间中,用数据泵转换元数据(从11GR1开始,必须要用数据泵转换元数据)

    6)从10G开始,可以跨平台传输,视图 V$TRANSPORTABLE_PLATFORM显示哪些平台可以互相转换及大小端.如果平台的大小端不同,必须要转换

     

     

    限制:

    1)源平台与目标平台字符集相同;或者源平台字符集是目标平台字符集的严格子集,并且源数据库兼容性是10.1.0.3

    2)要传输的表空间不能与目标数据库表空间重名

    3)表空间上有加密的表时不能传输,必须用数据泵导入这些对象,再导入到目标数据库

    4)不能传输SYSTEM表空间或sys的对象

    5)如果要传输的表空间上的表有TIMESTAMP WITH TIMEZONE的列,则源数据库和目标数据库时区必须相同.

     

    两种方式实现传输表空间:EM或手工.

    以下为手工传输步骤:

    1.查询V$TRANSPORTABLE_PLATFORM视图确定可转换的平台和大小端

    2.检查表空间是否是自包含的

    3.在源数据库将表空间置于read-only模式,导出表空间元数据.

    4.将数据文件和导出文件复制到目标主机上,如果源平台与目标平台大小端不同,转换表空间

    5.可选步骤,将源数据库表空间设置为read/write模式

    6.导入表空间到目标数据库

     

     

    实验,从linux平台迁移到window上:

    1.检查源数据库和目标数据库

    创建表空间tansport_ts,数据文件tans01.dbf

     

    SQL> CREATE TABLESPACE tansport_ts DATAFILE '/oracle/oradata/orcl/tans01.dbf' SIZE 5M;

    Tablespace created

    创建一个表,插入数据

     

    CREATE TABLE kdzr.transport (ID INT) TABLESPACE tansport_ts;

    SQL> insert into kdzr.transport values(1);

    1 row inserted

    SQL> insert into kdzr.transport values(2);

    1 row inserted

    SQL> insert into kdzr.transport values(3);

    1 row inserted

    SQL> insert into kdzr.transport values(4);

    1 row inserted

    SQL> commit;

    在源数据库和目标数据库上执行以下查询

    目标数据库:

     

    16:02:15 SQL> SELECT A.*

    2 FROM V$TRANSPORTABLE_PLATFORM A, V$DATABASE B

    3 WHERE A.PLATFORM_ID = B.PLATFORM_ID;

    PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

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

    12 Microsoft Windows x86 64-bit Little

    源数据库:

     

    SQL> SELECT a.* FROM v$transportable_platform a ,V$database b

    2 WHERE a.PLATFORM_ID=b.PLATFORM_ID;

    PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

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

    13 Linux 64-bit for AMD Little

    发现linux和windows大小端相同,不需要转换.

     

    2.检查表空间是否是自包含的

    自包含指表空间上的对象不依赖对其他表空间的对象.

    执行以下过程检查表空间tansport_ts是否是自包含的:

    EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('tansport_ts', TRUE);

    执行完后执行以下查询:

     

    SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

    VIOLATIONS

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

    为空说明表空间不依赖于其它表空间.

     

    3.将表空间tansport_ts设置为read-only,导出表空间元数据

     

    SQL> alter tablespace tansport_ts read only;

    Tablespace altered

    导出表空间元数据: 

    expdp system dumpfile=expdat.dmp directory=data_pump_dir   transport_tablespaces=tansport_ts

     

     

    4.将表空间拷到目标主机上

     

    SQL> SELECT A.file_name FROM dba_data_files a WHERE a.tablespace_name=UPPER('tansport_ts');

    Warning: connection was lost and re-established

    FILE_NAME

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

    /oracle/oradata/orcl/tans01.dbf

    表空间对应的数据文件为/oracle/oradata/orcl/tans01.dbf.

     

     

    把表空间拷到目标主机的DATA_PUMP_DIR

     

    SQL> SELECT a.directory_path FROM dba_directories a WHERE a.directory_name='DATA_PUMP_DIR';

    DIRECTORY_PATH

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

    D:\app\wj/admin/orcl/dpdump/

     

    D:\app\wj\admin\orcl\dpdump 的目录

    2014-08-27 21:54 <DIR> .

    2014-08-27 21:54 <DIR> ..

    2014-08-25 11:41 120 dp.log

    2014-08-27 21:45 69,632 expdat.dmp

    2014-08-27 21:44 5,251,072 tans01.dbf

    可以看到表空间数据文件和相应的元数据已经复制到目标主机上.

     

    如果源和目标主机大小端不同,需要用RMAN转换

    例如:

     

    RMAN> CONVERT DATAFILE

    2>'C:\Temp\sales_101.dbf',

    3>'C:\Temp\sales_201.dbf'

    4>TO PLATFORM="Microsoft Windows IA (32-bit)"

    5>FROM PLATFORM="Solaris[tm] OE (32-bit)"

    6>DB_FILE_NAME_CONVERT=

    7>'C:\Temp\', 'C:\app\orauser\oradata\orawin\'

    8> PARALLELISM=4;

     

     

    5.导入表空间

    用数据泵将表dump文件和数据文件导入到目标数据库中

     

    C:\Users\wj>impdp SYSTEM/system dumpfile=expdat.dmp DIRECTORY=data_pump_dir transport_datafiles=D:\app\wj\admin\orcl\dpdump\tans01.dbf remap

    _schema=kdzr:scott LOGFILE=transport.log VERSION=10.2.0.1.0

    Import: Release 11.2.0.1.0 - Production on 星期三 8 27 22:17:40 2014

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

    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

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

    已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"

    启动 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": SYSTEM/******** dumpfile=expdat.dmp DIRECTORY=data_pump_dir transport_datafiles=D:\app\wj\admi

    n\orcl\dpdump\tans01.dbf remap_schema=kdzr:scott LOGFILE=transport.log VERSION=10.2.0.1.0

    处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK

    处理对象类型 TRANSPORTABLE_EXPORT/TABLE

    处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

    作业 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" 已于 22:17:44 成功完成

    注意:如果用高版本的数据泵导入低版本的DUMP,要加上version参数,否则导入出错.version可以查询源数据库的v$version视图得到.

     

    验证导入的表:

     

    SQL> SELECT * FROM scott.TRANSPORT;

    ID

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

    1

    2

    3

    4

    自从导入成功.

     

     

     

     

     

    展开全文
  • oracle 11g 传输表空间(数据迁移)

    万次阅读 2014-09-14 17:24:34
    环境情况 ...操作系统: OracleLinux 6.2 64位 endianness格式: little 数据库版本:11.2.0.3   Target 端: 操作系统:OracleLinux 6.2 64位 endianness 格式: little 数据库版本:11.2.0.3
    环境情况
    

    Source 端:
    操作系统: OracleLinux 6.2 64位
    endianness格式: little
    数据库版本:11.2.0.3
     
    Target 端:
    操作系统:OracleLinux 6.2 64位
    endianness 格式: little

    数据库版本:11.2.0.3

    1、查看操作系统endianness格式

    col platform_name for a40
    
    SELECT * 
    FROM V$TRANSPORTABLE_PLATFORM 
    ORDER BY PLATFORM_ID;
    
    PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
    ----------- ---------------------------------------- --------------
              1 Solaris[tm] OE (32-bit)                  Big
              2 Solaris[tm] OE (64-bit)                  Big
              3 HP-UX (64-bit)                           Big
              4 HP-UX IA (64-bit)                        Big
              5 HP Tru64 UNIX                            Little
              6 AIX-Based Systems (64-bit)               Big
              7 Microsoft Windows IA (32-bit)            Little
              8 Microsoft Windows IA (64-bit)            Little
              9 IBM zSeries Based Linux                  Big
             10 Linux IA (32-bit)                        Little
             11 Linux IA (64-bit)                        Little
             12 Microsoft Windows x86 64-bit             Little
             13 Linux x86 64-bit                         Little
             15 HP Open VMS                              Little
             16 Apple Mac OS                             Big
             17 Solaris Operating System (x86)           Little
             18 IBM Power Based Linux                    Big
             19 HP IA Open VMS                           Little
             20 Solaris Operating System (x86-64)        Little
             21 Apple Mac OS (x86-64)                    Little
    
    20 rows selected.
    
    --分别查看 source 端 和target端操作系统endianness格式
    --source
    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 x86 64-bit                         Little
    
    --target
    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 x86 64-bit                         Little
    2、在source端创建测试表空间
    select tablespace_name,
    	status 
    from dba_tablespaces;
    
    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       ONLINE
    SYSAUX                         ONLINE
    TEMPTS1                        ONLINE
    USERS                          ONLINE
    OUTLN                          ONLINE
    
    6 rows selected.
    
    select file_name from dba_data_files;
    
    FILE_NAME
    ------------------------------------------------
    /u01/app/oracle/oradata/normal/system01.dbf
    /u01/app/oracle/oradata/normal/undotbs01.dbf
    /u01/app/oracle/oradata/normal/sysaux01.dbf
    /u01/app/oracle/oradata/normal/users01.dbf
    /u01/app/oracle/oradata/normal/undotbs02.dbf
    /u01/app/oracle/oradata/normal/system02.dbf
    /u01/app/oracle/oradata/normal/outln01.dbf
    
    7 rows selected.
    
    --创建表空间创建表空间 tset
    create tablespace tset datafile '/u01/app/oracle/oradata/normal/test01.dbf' size 50M;
    Tablespace created.
    
    --创建用户source_test,并指定表空间
    
    --在source端
    create user source_test 
    identified by oracle 
    default tablespace tset 
    temporary tablespace TEMPTS1;
    
    User created.
    
    grant connect,resource to source_test;
    
    Grant succeeded.
    
    --在target端(暂时只先创建用户)
    create user target_test 
    identified by oracle
    temporary tablespace TEMPTS1;
    
    User created.
    
    grant connect,resource to target_test;
    
    Grant succeeded.
    
    --创建测试表
    SQL> conn source_test/oracle
    Connected.
    SQL> create table t1(id number, name varchar2(30));
    
    Table created.
    
    SQL> insert into t1 values(1, 'AAAAA');
    
    1 row created.
    
    SQL> insert into t1 values(2, 'BBBBB');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    select * from t1;
    
            ID NAME
    ---------- ------------------------------
             1 AAAAA
             2 BBBBB
    3、在source端和target端创建 backup 的目录
    [oracle@normal ~]$ mkdir -p /u01/backup
    [oracle@normal ~]$ ls -l /u01
    total 24
    drwxr-xr-x 3 oracle oinstall  4096 Jul 28 12:31 app
    drwxr-xr-x 2 oracle oinstall  4096 Sep 14 16:21 backup
    
    SQL> show user
    USER is "SYS"
    SQL> create directory backup as '/u01/backup';
    
    Directory created.
    
    SQL> col owner format a5
    SQL> col directory_name format a25
    SQL> col DIRECTORY_PATH format a50	
    
    SQL> select * from dba_directories;	 
    OWNER DIRECTORY_NAME            DIRECTORY_PATH
    ----- ------------------------- --------------------------------------------------
    SYS   BACKUP                    /u01/backup
    SYS   OUTLN_DIR                 /home/oracle
    SYS   DATA_PUMP_DIR             /u01/app/oracle/product/11.2.0/db_1/rdbms/log/
    SYS   ORACLE_OCM_CONFIG_DIR     /u01/app/oracle/product/11.2.0/db_1/ccr/state
    
    SQL> GRANT read, write ON DIRECTORY backup TO source_test;
    
    Grant succeeded.
    
    --在target端
    [oracle@test ~]$ mkdir -p /u01/backup
    [oracle@test ~]$ ls -l /u01
    total 24
    drwxr-xr-x 3 oracle oinstall  4096 Aug 28 09:09 app
    drwxr-xr-x 2 oracle oinstall  4096 Sep 14 16:40 backup
    
    SQL> show user
    USER is "SYS"
    SQL> create directory backup as '/u01/backup';
    
    Directory created.
    
    SQL> col owner format a5
    SQL> col directory_name format a25
    SQL> col DIRECTORY_PATH format a50
    SQL> select * from dba_directories;
    
    OWNER DIRECTORY_NAME            DIRECTORY_PATH
    ----- ------------------------- --------------------------------------------------
    SYS   BACKUP                    /u01/backup
    SYS   OUTLN_DIR                 /home/oracle
    SYS   DATA_PUMP_DIR             /u01/app/oracle/product/11.2.0/db_1/rdbms/log/
    SYS   ORACLE_OCM_CONFIG_DIR     /u01/app/oracle/product/11.2.0/db_1/ccr/state
    
    SQL> GRANT read, write ON DIRECTORY backup TO target_test;
    
    Grant succeeded.
    4、检查表空间自包含(就是改表空间里的数据没有和其他表空间数据有关联,如果有关联会报错)

    SQL> execute dbms_tts.transport_set_check('TSET', TRUE);
    
    PL/SQL procedure successfully completed.
    
    --查看自包含验证结果:
    SQL> select * from transport_set_violations;
    
    no rows selected
    --没有记录说明没有错
    5、将表空间TSET设置成read­-only
    SQL> alter tablespace TSET read only;
    
    Tablespace altered.
    
    select tablespace_name,
    	status 
    from dba_tablespaces;
    
    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       ONLINE
    SYSAUX                         ONLINE
    TEMPTS1                        ONLINE
    USERS                          ONLINE
    OUTLN                          ONLINE
    TSET                           READ ONLY
    
    7 rows selected.	
    6、生成:Transportable Tablespace Set

    Transportable Tablespace Set有两部分:

    1.expdp 导出的表空间的metadata

    2.还有就是表空间对应的数据文件

    --expdp 导出的表空间的metadata	 
    [oracle@normal normal]$ pwd
    /u01/app/oracle/oradata/normal
    [oracle@normal normal]$ ll
    total 2294664
    -rw-r----- 1 oracle oinstall   9781248 Sep 14 16:46 control01.ctl
    drwx------ 2 oracle oinstall     16384 Aug 22 12:44 lost+found
    -rw-r----- 1 oracle oinstall  20979712 Sep 14 15:52 outln01.dbf
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 16:45 redo01a.log
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 16:45 redo01b.log
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 15:52 redo02a.log
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 15:52 redo02b.log
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 15:52 redo03a.log
    -rw-r----- 1 oracle oinstall  52429312 Sep 14 15:52 redo03b.log
    -rw-r--r-- 1 oracle oinstall     22633 Aug 22 17:00 su.lst
    -rw-r----- 1 oracle oinstall 340795392 Sep 14 16:40 sysaux01.dbf
    -rw-r----- 1 oracle oinstall 340795392 Sep 14 16:43 system01.dbf
    -rw-r----- 1 oracle oinstall 314580992 Sep 14 16:43 system02.dbf
    -rw-r----- 1 oracle oinstall  20979712 Sep 14 15:53 temp01.dbf
    -rw-r----- 1 oracle oinstall  52436992 Sep 14 15:53 temp02.dbf
    -rw-r----- 1 oracle oinstall  52436992 Sep 14 16:31 test01.dbf
    -rw-r----- 1 oracle oinstall 209723392 Sep 14 16:43 undotbs01.dbf
    -rw-r----- 1 oracle oinstall 209723392 Sep 14 16:40 undotbs02.dbf
    -rw-r----- 1 oracle oinstall 524296192 Sep 14 15:52 users01.dbf
    
    [oracle@normal normal]$ expdp dumpfile=test01.dmp directory=backup transport_tablespaces=TSET transport_full_check=y logfile=TSET.log 
    
    Export: Release 11.2.0.3.0 - Production on Sun Sep 14 16:54:30 2014
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    Username: / as sysdba
    
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  /********/ AS SYSDBA dumpfile=test01.dmp directory=backup transport_tablespaces=TSET transport_full_check=y logfile=TSET.log 
    Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
    Processing object type TRANSPORTABLE_EXPORT/TABLE
    Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
    Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:
      /u01/backup/test01.dmp
    ******************************************************************************
    Datafiles required for transportable tablespace TSET:
      /u01/app/oracle/oradata/normal/test01.dbf
    Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 16:55:13
    
    [oracle@normal normal]$ ls -l /u01/backup/  
    total 80
    -rw-r----- 1 oracle oinstall 77824 Sep 14 16:55 test01.dmp
    -rw-r--r-- 1 oracle oinstall  1160 Sep 14 16:55 TSET.log
    7、将Transportable Tablespace set 传送到Target端

    1)将表空间test 对应的数据文件copy到Target 对应的ORADATA目录下。

    2)将expdp 导出的表空间metadta 数据copy 到Target 端的backup 目录下

    --将表空间test 对应的数据文件copy到Target 对应的ORADATA目录下。
    [oracle@normal normal]$ scp /u01/backup/test01.dmp 192.168.137.12:/u01/backup
    oracle@192.168.137.12 s password: 
    test01.dmp                                  100%   76KB  76.0KB/s   00:00 
    		 
    --将expdp 导出的表空间metadta 数据copy 到Target 端的backup 目录下	 
    [oracle@normal normal]$ scp test01.dbf 192.168.137.12:/u01/app/oracle/oradata/normal/test01.dbf
    oracle@192.168.137.12 s password: 
    test01.dbf                                  100%   50MB  16.7MB/s   00:03  
    
    --在target端查看文件是否已经传输
    [oracle@test ~]$ ll /u01/backup/             
    total 76
    -rw-r----- 1 oracle oinstall 77824 Sep 14 17:03 test01.dmp
    
    [oracle@test ~]$ ll $ORACLE_BASE/oradata/normal/test01.dbf
    -rw-r----- 1 oracle oinstall 52436992 Sep 14 17:04 /u01/app/oracle/oradata/normal/test01.dbf
    8、在Target 系统上Import 表空间的metadata(使用target_test用户,需要用到remap_schema)
    [oracle@test ~]$ impdp directory=backup dumpfile=test01.dmp transport_datafiles=/u01/app/oracle/oradata/normal/test01.dbf remap_schema=source_test:target_test logfile
    =test.log
    
    Import: Release 11.2.0.3.0 - Production on Sun Sep 14 17:09:25 2014
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    Username: / as sysdba
    
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
    Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  /********/ AS SYSDBA directory=backup dumpfile=test01.dmp transport_datafiles=/u01/app/oracle/oradata/normal/test01.dbf remap_schema=source_test:target_test logfile=test.log 
    Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
    Processing object type TRANSPORTABLE_EXPORT/TABLE
    Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
    Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 17:09:55
    9、查看并修改表空间状态
    select tablespace_name,
    	status 
    from dba_tablespaces;
    
    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       ONLINE
    SYSAUX                         ONLINE
    TEMPTS1                        ONLINE
    USERS                          ONLINE
    OUTLN                          ONLINE
    TSET                           READ ONLY
    
    7 rows selected.
    
    SQL> alter tablespace TSET read write;
    
    Tablespace altered.
    10、验证
    SQL> conn target_test/oracle
    Connected.
    
    SQL> select * from t1;
    
            ID NAME
    ---------- ------------------------------
             1 AAAAA
             2 BBBBB

    展开全文
  • oracle 表空间

    2013-04-03 10:24:21
    鸣谢:... 扩展: (1)临时表空间相关查询 ...   Oracle将数据逻辑的存放到表空间中,物理的存放到与表空间相关的数据文件中。   数据库,表空间和数据文件关系紧密,但是存在以下区别
  • 传输表空间现在可以跨平台移植,从而使得数据发布更快更容易。此外,外部表下载使得通过转换进行数据转移的任务更简单更快。文中介绍的可传输表空间方法中,使用一组自包含、只读的表空间,只导出元数据,可以将...
  • oracle11g 可传输表空间

    千次阅读 2014-06-03 15:06:36
    可以使用TTS 特性将表空间从一个数据库copy 到另一个数据库。
  • Oracle中的传输表空间功能<!--google_ad_client = "pub-2461166221964562";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";google_ad_channel =
  • Oracle利用传输表空间导出导入数据的步骤,对于DBA来说绝对实用!
  • oracle 传输表空间总结。

    千次阅读 2013-11-26 23:53:16
    有什么有什么好的办法,我当时就是提出传输表空间,这样快,可以自己一直也懒的在复习一下这部分内容,今天就开始在此练习以前搞过的东西,在此感谢一下大灰狼,是我用他的windows安装的oracle进行演示的。...
  • 传输表空间的实质是,抽取表空间元数据传输 + 表空间下数据文件传输PS:transport_datafiles这个参数不指定,则让oracle数据库自己选择数据文件。impdp directory=backup dumpfile=test01.dmp transport_datafiles...
  • Oracle 传输表空间迁移数据总结

    千次阅读 2011-08-02 09:08:48
    Oracle 传输表空间迁移数据总结   这几天杭州的 天气太热,不想出去玩,在这边等待面试结果,突然间想到这个问题,所以在网上找了点资料,总结一下。   注意:迁移表空间之前必需先建立相对应的用户,要不然...
  • Oracle10g之传输表空间详解

    千次阅读 2012-08-29 17:27:26
    Oracle 的可传输表空间特性通过将 元数据和数据文件 简单地从一个数据库移动到另一个数据库,提供 在数据库之间有效移动大数据的一种简易方法。代替重新创建对象,可移植表空间可以让 毫不费力地移动大对象,而所...
  • oracle传输表空间技术支持,跨平台的表空间传输,线上生产环境使用传输表空间可以节省时间提高效率,因为传输表空间是先传输数据文件到目标库,然后使用exp/imp或者为expdp/impdp导入表空间的数据结构。...
  • Oracle表空间不存在问题

    千次阅读 2019-07-18 12:00:15
    问题原因:涉及到源库(导出库)中的、索引、LOB字段的表空间在目的库(导入库)中不存在的问题。 解决思路:所以该问题正确解决方式应该分三步: 表空间迁移。 索引的表空间迁移。 LOB字段的表空间迁移。 ...
  • ORACLE表空间是一个逻辑容器,包含一个或多个数据文件。表空间包含段(segment)、段又包含区(extent)、区又包含了块(block)。其中区的管理方式有字典管理(dictonary)和本地管理(local);段的管理方式手动管理...
  • oracle表空间加密

    千次阅读 2016-04-12 22:43:20
    1.oracle表空间的加密与解密是基于wallet钱包中的密钥进行。 2.wallet是Open状态,可以使用其中的密钥进行加密与解密处理。 3.wallet是close状态时,加密表空间不可用,查询修改和创建都不允许。 4.唯一删除是...
  • oracle9i中进行空间的传输 前提:进行表空间传输需要用户有SYSDBA的系统权限,被移动的空间是自包含的空间,不应有依赖于空间外部对象的对象存在。确定是否自包含可使用系统包DBMS_TTS中的TRANSPORT_SET_...
  • Oracle 12c 使用跨平台增量备份来减少传输表空间的停机时间 Oracle 12c 使用跨平台增量备份来减少传输表空间的停机时间
  • Oracle中跨平台传输表空间

    千次阅读 2006-07-12 15:13:00
    Oracle中的传输表空间功能, 用来将一个实例中的表空间和数据文件移到另一个实例中. 执行起来方便, 快捷.但是要使用该功能有一些限制:需要两个平台一致. 必须有相同的字符集和多语言字符集.要求两个实例的db block ...
  • 一、检查平台是否支持跳过(如有不明请详见第三节示例)二、检查待传输表空间是否自包含跳过(如有不明请详见第三节示例)三、检查备份跳过(如有不明请详见"一步一步学RMAN"系列)四、生成可传输集E:/oracleScript/backup...
  • 1 项目概述 由于客户现有的这套windows2003平台上的...综合停机时间等方面因素后决定使用表空间传输的方法来实施本次数据库迁移。 · aspectratio="t" v:ext="edit"> a.本文的背景是Linux平台上的数据库
  • 传输表空间现在可以跨平台移植,从而使得数据发布更快更容易。此外,外部表下载使得通过转换进行数据转移的任务更简单更快。如何将数据从一个数据库转移到另一个数据库?在现有的几种方法中,有一种方法尤为出色:...
  • Oracle 表空间时点恢复(TSPITR)

    千次阅读 2017-04-25 09:15:43
    表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那...
  • oracle表空间操作详解

    千次阅读 2012-11-05 20:08:14
    oracle表空间操作详解 (2012-04-15 19:47) 分类: Oracle 1.创建表空间: create tablespace datafile '' size filesize autoextend on next maxsize eg: create tablespace sales datafile 'c:\1...
  • oracle表空间管理分析

    2011-03-01 10:51:00
    表空间管理得到了重大的改进,这可以归因于一个 sparser SYSTEM、为用户定义一个默认表空间的支持、新的 SYSAUX、甚至重命名 在 Oracle9i Database 之前,如果在创建用户时没有指定默认表空间,那么它将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,075
精华内容 16,830
关键字:

oracle表空间传输