[20170622]传输表空间与dblink.txt

--//测试看看使用dblink+传输表空间的情况.写的情况相对复杂一点,具体看测试:

1.环境:
--//2个数据库版本一致.实际上在1台主机上.
SCOTT@book> @ &r/ver1
PORT_STRING         VERSION    BANNER
------------------- ---------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@dbcn1> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@dbcn1> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header where tablespace_name='USERS';
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                                               TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- -------------------------------------------------- ----------------
    4        12499575795 2017-06-22 09:04:40            16143       12499554377 ONLINE              1286 YES /u01/app/oracle/oradata/dbcn1/datafile/users.307.8 USERS
                                                                                                             62160493
--//传输表空间users到实例book.

2.检查表空间相容性:
SYS@dbcn1> Execute sys.dbms_tts.transport_set_check('users',TRUE,TRUE);
PL/SQL procedure successfully completed.

SYS@dbcn1> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------------------------------------------------------------
ORA-39908: Index JSTJ.SYS_C0012915 in tablespace USERS enforces primary constraints  of table JSTJ.XTLAB_RESULT in tablespace TSP_JSTJ.

--//移动索引 JSTJ.SYS_C0012915 到TSP_JSTJ表空间.

SYS@dbcn1> Execute sys.dbms_tts.transport_set_check('users',TRUE,TRUE);
PL/SQL procedure successfully completed.

SYS@dbcn1> SELECT * FROM sys.transport_set_violations;
no rows selected

3.开始:
--//设置表空间只读:
SYS@dbcn1> alter tablespace users read only;
Tablespace altered.

--//拷贝相关数据文件到本机,我这里在同一台电脑,使用cp命令.(注我该了名)
$ cp /u01/app/oracle/oradata/dbcn1/datafile/users.307.862160493 /home/oracle/backup/sugar01.dbf

4.建立dblink:
create public database link "l_dbcn1"
connect to SYSTEM
identified by "xxxx"
using '192.168.100.78:1521/DBCN1';

--//测试是否ok.
SCOTT@book> select * from scott.dept@l_dbcn1 where rownum=1;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK

--//由于表空间users在实例book已经存在,必须映射一个新的空间,另外我本机也存在scott.dept.必须建立新的用户.
SCOTT@book> grant dba to sss IDENTIFIED BY sss;
Grant succeeded.

--//补充说明1点,这样直接grant 可以直接建立用户,并且赋予dba权限.测试ok.

5.开始导入操作:

impdp scott/book network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf
REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log

--//命令有点长.^_^,意思很容易理解.

$ impdp scott/book network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf  REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log
Import: Release 11.2.0.4.0 - Production on Thu Jun 22 09:35:21 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_IMPORT_TRANSPORTABLE_01":  scott/a** network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SCOTT"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Thu Jun 22 09:35:45 2017 elapsed 0 00:00:22

$ echo 'select * from dept where rownum=1;' | sqlplus -s sss/sss
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK

SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                            TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- ------------------------------- ---------------
    1        13277598620 2017-06-22 03:00:48                7            925702 ONLINE               912 YES /mnt/ramdisk/book/system01.dbf  SYSTEM
    2        13277598620 2017-06-22 03:00:48             1834            925702 ONLINE               901 YES /mnt/ramdisk/book/sysaux01.dbf  SYSAUX
    3        13277598620 2017-06-22 03:00:48           923328            925702 ONLINE               822 YES /mnt/ramdisk/book/undotbs01.dbf UNDOTBS1
    4        13277598620 2017-06-22 03:00:48            16143            925702 ONLINE               931 YES /mnt/ramdisk/book/users01.dbf   USERS
    5        13277598620 2017-06-22 03:00:48           952916            925702 ONLINE               818 YES /mnt/ramdisk/book/example01.dbf EXAMPLE
    6        13277598620 2017-06-22 03:00:48      13276257767            925702 ONLINE               309 YES /mnt/ramdisk/book/tea01.dbf     TEA
    7        12499578739 2017-06-22 09:21:14            16143       12499554377 ONLINE              1287 NO  /home/oracle/backup/sugar01.dbf USERS
7 rows selected.

--//昏,前面不小心把单词sugar写成SUAGR了(REMAP_TABLESPACE=USERS:SUAGR),不影响测试结论.^_^.等一会在修改表空间名字.
--//不过这里注意这个时候表空间还是users,因为这个时候数据文件还是只读的.

SCOTT@book> select tablespace_name,status from dba_tablespaces where tablespace_name='SUAGR';
TABLESPACE_NAME STATUS
--------------- ---------
SUAGR           READ ONLY

--//先改名看看是否可以.
SCOTT@book> alter tablespace  SUAGR rename to SUGAR;
Tablespace altered.

6.接着看看一些现象:

SCOTT@book> select rowid,dept.* from scott.dept ;
ROWID              DEPTNO DNAME          LOC
------------------ ------ -------------- -------------
AAAVRCAAEAAAACHAAA     10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB     20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC     30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD     40 OPERATIONS     BOSTON

SCOTT@book> select rowid,dept.* from sss.dept ;
ROWID              DEPTNO DNAME          LOC
------------------ ------ -------------- -------------
AAAVRCAAEAAAACHAAA     10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB     20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC     30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD     40 OPERATIONS     BOSTON
--//你可以发现rowid两个表是一样的.

SCOTT@book> column EDITION_NAME noprint
SCOTT@book> select * from dba_objects where object_name='DEPT';
OWNER  OBJECT_NAME SUBOBJECT_    OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE         CREATED             LAST_DDL_TIME       TIMESTAMP           STATUS  T G S    NAMESPACE
------ ----------- ---------- ------------ -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ------------
SCOTT  DEPT                          87106          87106 TABLE               2013-08-24 12:04:21 2013-08-24 12:04:21 2013-08-24:12:04:21 VALID   N N N            1
SSS    DEPT                         104210          87106 TABLE               2017-06-22 09:35:32 2017-06-22 09:35:36 2017-06-22:09:35:32 VALID   N N N            1

--//你可以发现DATA_OBJECT_ID是一样的.打开读写看看.
SCOTT@book> alter tablespace sugar read write ;
Tablespace altered.

SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                            TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- ------------------------------- ---------------
    1        13277598620 2017-06-22 03:00:48                7            925702 ONLINE               912 YES /mnt/ramdisk/book/system01.dbf  SYSTEM
    2        13277598620 2017-06-22 03:00:48             1834            925702 ONLINE               901 YES /mnt/ramdisk/book/sysaux01.dbf  SYSAUX
    3        13277598620 2017-06-22 03:00:48           923328            925702 ONLINE               822 YES /mnt/ramdisk/book/undotbs01.dbf UNDOTBS1
    4        13277598620 2017-06-22 03:00:48            16143            925702 ONLINE               931 YES /mnt/ramdisk/book/users01.dbf   USERS
    5        13277598620 2017-06-22 03:00:48           952916            925702 ONLINE               818 YES /mnt/ramdisk/book/example01.dbf EXAMPLE
    6        13277598620 2017-06-22 03:00:48      13276257767            925702 ONLINE               309 YES /mnt/ramdisk/book/tea01.dbf     TEA
    7        13277642074 2017-06-22 09:54:55      13277642064            925702 ONLINE                 3 YES /home/oracle/backup/sugar01.dbf SUGAR
7 rows selected.

--//注意file#=7这行.你可以发现CHECKPOINT_COUNT=3(重新记数了),CHECKPOINT_CHANGE#从12499578739=>13277642074.
--//你可以反过来想像一下,加入传输的表空间记录的scn大于当前数据库的scn,这样可以大幅提升数据库的scn.

SCOTT@book> select rowid,a.* from scott.dept a where rownum=1 union all select rowid,b.* from sss.dept b where rownum=1;
ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAAVRCAAEAAAACHAAA         10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAA         10 ACCOUNTING     NEW YORK

--//你可以发现两个表的rowid一样,因为什么呢?对象的DATA_OBJECT_ID,file号,block号,行号都一样.

SCOTT@book> @ &r/rowid AAAVRCAAEAAAACHAAA
OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
------ ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
 87106          4        135          0  0x1000087           4,135                alter system dump datafile 4 block 135 ;

--//注意看这里file=4,而不是前面查看FILE#=7.这也是oralce引入的绝对文件号与相对文件号的概念.换一句话讲rowid看到的相对文件
--//号.

SCOTT@book> select * FROM dba_data_files;
FILE_NAME                       FILE_ID TABLESPACE_NAME      BYTES     BLOCKS STATUS    RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_
------------------------------- ------- --------------- ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- ----------- -------
/mnt/ramdisk/book/users01.dbf         4 USERS            157810688      19264 AVAILABLE            4 YES 3.4360E+10    4194302          160  156762112       19136 ONLINE
/mnt/ramdisk/book/undotbs01.dbf       3 UNDOTBS1         907018240     110720 AVAILABLE            3 YES 3.4360E+10    4194302          640  905969664      110592 ONLINE
/mnt/ramdisk/book/sysaux01.dbf        2 SYSAUX           985661440     120320 AVAILABLE            2 YES 3.4360E+10    4194302         1280  984612864      120192 ONLINE
/mnt/ramdisk/book/system01.dbf        1 SYSTEM           796917760      97280 AVAILABLE            1 YES 3.4360E+10    4194302         1280  795869184       97152 SYSTEM
/mnt/ramdisk/book/example01.dbf       5 EXAMPLE          363069440      44320 AVAILABLE            5 YES 3.4360E+10    4194302           80  362020864       44192 ONLINE
/mnt/ramdisk/book/tea01.dbf           6 TEA               41943040       5120 AVAILABLE            6 YES 3.4360E+10    4194302          128   40894464        4992 ONLINE
/home/oracle/backup/sugar01.dbf       7 SUGAR              5242880        640 AVAILABLE            4 YES 3.4360E+10    4194302          160    4194304         512 ONLINE
7 rows selected.

--//注意看file_id=7行,RELATIVE_FNO=4.

总结:
1.通过dblink的方式实际上就是减少一步,使用expdp生成元数据的过程.直接通过dblink从源数据库取.
2.另外实际上做这个测试我心里有一个想法,比如不小心删除不该删除的数据,一般我们选择在另外的机器恢复到出问题前的scn,然后再想
  办法处理,是否可以借助传输表空间来恢复数据,就导入本库来处理呢?还是没想好,留待以后测试.
3.另外注意的问题,传输表空间建立的数据文件要手工传输数据文件到dg数据库中.
4.还有一个问题要注意就是该方法仅仅导出了元数据,其它像FUNCTION,PACKAGE,PROCEDURE,SEQUENCE,SYNONYM,VIEW,USER,ROLE_GRANT,
  SYSTEM_GRANT,trigger等都没有导出.必须采用别的方式导入.以及临时表(自己有1次这样的经历)^_^.

--//需要单独在导入:
$ cat stage2.par
schemas=SCOTT
include=TABLE:"IN (SELECT table_name from dba_tables where owner='DAILY' and temporary='Y')"
include=FUNCTION,PACKAGE,PROCEDURE,SEQUENCE,SYNONYM,VIEW,USER,ROLE_GRANT,SYSTEM_GRANT,TRIGGER
dumpfile=stage2.dmp

[20170622]传输表空间与dblink.txt的更多相关文章

  1. [20170623]利用传输表空间恢复部分数据.txt

    [20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.--//这样的操作模 ...

  2. [20170623]利用传输表空间恢复数据库2.txt

    [20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志.--//参考链接 : http:// ...

  3. 转 Oracle Transportable TableSpace(TTS) 传输表空间 说明

    ############1   迁移数据库的集中方法 三.相关技术 迁移方式 优势 不足1 Export and import • 对数据库版本,以及系统平台没有要求 • 不支持并发,速度慢• 停机时 ...

  4. 数据泵 TTS(传输表空间技术)

    1.源库准备环境 --创建被传输的表空间create tablespace tts logging datafile '/home/oracle/app/oradata/orcl/tts01.dbf' ...

  5. 如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)

    How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556 ...

  6. 【TTS】传输表空间Linux asm -> AIX asm

    [TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌 ...

  7. oracle expdp/impdp/可传输表空间

    oracle expdp/impdp/可传输表空间/及一些参数 Oracle data pump 导出操作能够将表.索引.约束.权限.PLSQL包.同义词等对象从数据库导出,并将它们保存在一种非文本格 ...

  8. Oracle使用SQL传输表空间

    源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的 ...

  9. oracle操作之传输表空间

    一.传输表空间概述 什么是传输表空间,传输表空间技术始于oracle9i,不论是数据字典管理的表空间还是本地管理的表空间,都可以使用传输表空间技术:传输表空间不需要在源数据库和目标数据库之间具有同样的 ...

随机推荐

  1. docker进阶篇(一) ---- Volume(数据卷)

    引言 docker的镜像是由多个只读的文件系统叠加在一起形成的.当我们在我启动一个容器的时候,docker会加载这些只读层并在这些只读层的上面(栈顶)增加一个读写层.这时如果修改正在运行的容器中已有的 ...

  2. 分布式高性能消息系统(Kafka MQ)的原理与实践

    一.关于Kafka的一些概念和理解 Kafka是一个分布式的数据流平台,它基于独特日志文件形式,提供了高性能消息系统功能.也可以用于大数据流管道. Kafka维护了按目录划分的消息订阅源,称之为 To ...

  3. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在eclipse里,则是File -> new ->  ...

  4. Vue + Element UI 实现权限管理系统 前端篇(十五):嵌套外部网页

    嵌套外部网页 在有些时候,我们需要在我们的内容栏主区域显示外部网页.如查看服务端提供的SQL监控页面,接口文档页面等. 这个时候就要求我们的导航菜单能够解析嵌套网页的URL,并根据URL路由到相应的嵌 ...

  5. 3DLut表实现log视频的后期调色原理

    现在越来越多的视频或者图像拍摄设备支持log模式,比如大疆无人机的D-Log模式等等,log模式的起源和发展就不多做介绍,其在普通显示器上显示画面通常看起来是平坦的灰色,因此也常被称为log灰视频. ...

  6. API 接口返回值

    API 接口返回值 https://blog.csdn.net/baple/article/details/52925772

  7. SQL 游标的存储过程示例

    注意事项:两个小数运算的时候都是一种类型! USE [FoodMedicineExam] GO /****** Object: StoredProcedure [dbo].[P_DrugExamAna ...

  8. SQL 同一张表中相同字段的内容合并为一条记录(不同字段的那一列每个记录后面加逗号)

    一.创建表 create table stuUnion ( sid int identity primary key, cid int, id ) ) 二.添加数据 insert into stuUn ...

  9. elasticsearch6.7 05. Document APIs(4)Delete API

    3.Delete API delete API 可以让你删除一个特定id的文档,下面例子删除twitter索引中_doc类型.id为1的文档: DELETE /twitter/_doc/1 返回结果: ...

  10. 【高并发解决方案】7、一致性hash解读

       一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 ...