前言:

XTTS(增强的表空间传输)是TTS(表空间传输)的增强版,可实现数据库之间的表空间迁移,特别是在异构环境下数据量特别大时是最佳的选择方案。XTTS+incarnation backup可以极大降低迁移时的停机时间窗口。通过多次增量备份恢复可达到减少和原库之间的日志间隔,从而达到降低最终迁移时的时间窗口。XTTS+incarnation backup 方式非常高效。下面演示如何使用XTTS+incarnationbackup方式迁移或者升级数据库。

说明:

既然环境为12C,那么为什么不使用12c的xtts呢?因为12c的xtts要求原库版本最低为12c所以目前12C的xtts使用范围还是比较小。11GR2提供了XTTS+incarnationbackup 功能,原库最低版本为10G,目标库版本必须为11.2.0.4,所以11GR2 的xtts 目前使用非常广泛。

环境:

Xtt版本:11.2.0.4

从linux 6 +oracle 11.2.0.3 到 linux 7 +oracle12.2.0.1.0

需要迁移表空间如下:

Tablespace          Tablespace     Alloc        Free         Used     Used     Tablespace Segmnet

Name                Type           Space Mb     Space Mb     Space Mb Percent % Status     Management

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

YA_CLAIM_IDX        PERMANENT         2,048          703       1,345   65.68%  ONLINE    AUTO

YA_CLAIM_DB         PERMANENT         4,096        1,471        2,625  64.09%  ONLINE     AUTO

5 /u01/app/oracle/oradata/primary/ya_claim.dbf

6 /u01/app/oracle/oradata/primary/ya_claiminx.dbf

主要步骤说明:

1:准备阶段

建立directory 对象和dblink

配置环境变量

配置xtts 配置文件

通过dbms_file_transfer方式传输并转化字节编码(如果需要)

--建议使用dbms_file_transfer方式,即使在12c环境下。Rman方式详见mos文档。

2:前滚阶段

原库执行增量备份

传输增量备份到目标库

转换目标库的增量备份字节编码

--如果在此时原库添加了表空间或者增加了数据文件,那么需要执行额外操作,详见mos。

3:表空间传输阶段

原库表空间设置为只读

重复第二步操作

导入metadata数据到目标库

修改原库表空间为读写模式

4:后续验证数据

数据测试

详细操作步骤:

Note:

source_db: 表示在原库操作

dest_db:表示在目标库操作

1:准备阶段

source_db:

create directory sourcedir as'/u01/app/oracle/oradata/primary'

/

dest_db:

create directory destdir as '+DATA/ORCL/DATAFILE'

/

create public database link ttslink connect tosystem identified by system_user using

'

(DESCRIPTION=

(ADDRESS_LIST =

(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.55)(PORT=1521))

)

(connect_data =

(sid= primary)

)

)

'

/

select * from dual@ttslink

/

source_db:

[oracle@piamarydb xtt]$ unziprman_xttconvert_v3.zip

Archive: rman_xttconvert_v3.zip

inflating:xtt.properties

inflating:xttcnvrtbkupdest.sql

inflating:xttdbopen.sql

inflating:xttdriver.pl

inflating:xttprep.tmpl

extracting:xttstartupnomount.sql

vi xtt.properties

tablespaces=YA_CLAIM_DB,YA_CLAIM_IDX

platformid=13

srcdir=SOURCEDIR

dstdir=DESTDIR

srclink=TTSLINK

backupformat=/stage_source

stageondest=/stage_dest

backupondest=+DGDATA

asm_home=/u02/soft

asm_sid=+ASM

parallel=3

getfileparallel=4

使用dbms_file_transfer方式传输和转换数据文件。

srcdir,dstdir--指定原库和目标库目录名--详细阅读xtt.properties注释

backupformat--指定增量备份在原库存放位置

stageondest--指定增量备份在目标库存放位置

backupondest--指定增量备份转换后在目标库存放位置,如果指定为ASM磁盘组,需要设置asm_home和asm_sid

因为使用dbms_file_transfer方式,不需要数据文件在原库和目标库存放和转换位置,该方式使用dblink在传输时自动转换字节编码,推荐使用该方式。

scp -r /home/oracle/xtt192.168.56.101:/home/oracle/xtt

mkdir /stage_source

chown -R oracle.oinstall /stage_source

export TMPDIR=/home/oracle/xtt

dest_db:

mkdir /stage_dest

chown -R oracle.oinstall /stage_dest

export TMPDIR=/home/oracle/xtt

source_db:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -S

scp /home/oracle/xtt/xttnewdatafiles.txt192.168.56.101:/home/oracle/xtt

scp /home/oracle/xtt/getfile.sql192.168.56.101:/home/oracle/xtt

dest_db:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -G

监控:

source_db:

USERNAME        SID SQL_ID          SQL_TEXT                     EVENT               BLOCKER  wait(s)   SEQ# MODULE

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

12          control file parall _              0   17693 (CKPT)

SYSTEM           35 2q93zsrvbdw48   select grantee#,privilege#,n dbms_file_transfer  _             0     891 oracle@ser

dest_db:

DATAFILE  UNPROT COARSE   OCT 07 09:00:00  N   ya_claim.dbf => +DATA/orcl/DATAFILE/FILE_TRANSFER.366.988882977

DATAFILE  UNPROT COARSE   OCT 07 09:00:00  N   ya_claiminx.dbf => +DATA/orcl/DATAFILE/FILE_TRANSFER.367.988882977

虚拟机环境,4g大小数据文件,速度大概4分钟,效率较高,磁盘使用率没有发现100%,

我的测试环境没有发生格式转换所以速度较快。

原库修改数据,做测试用:

SQL> select count(*) from yaclaim.c_pay;

COUNT(*)

----------

3830915

SQL> delete from yaclaim.c_pay whererownum<1200;

SQL> commit;

SQL> select count(*) from yaclaim.c_pay;

COUNT(*)

----------

3829716

2:前滚阶段:

source_db:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -i

磁盘93%--红色,该步骤会消耗IO资源

[oracle@piamarydb xtt]$ ls /stage_source/

0ftf1f4h_1_1 0gtf1f69_1_1  0htf1f6c_1_1  0itf1f76_1_1

scp `cat incrbackups.txt`@192.168.56.101:/stage_dest

scp /home/oracle/xtt/xttplan.txt@192.168.56.101:/home/oracle/xtt

scp /home/oracle/xtt/tsbkupmap.txt@192.168.56.101:/home/oracle/xtt

dest_db:

[grid@serdb ~]$ ls /stage_dest/

0ftf1f4h_1_1 0htf1f6c_1_1

$ORACLE_HOME/perl/bin/perl xttdriver.pl -r

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

Start rollforward

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

Connected to an idle instance.

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

Connected to an idle instance.

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

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

End of rollforward phase

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

以为上面为报错信息,再次运行-r , 报错如下

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

Start rollforward

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

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Error:

------

No tablepsace entries found

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

进入asm磁盘组查看转换的增量备份已经存在,应该已经应用!

ASMCMD> ls -l

Type       Redund  Striped Time             Sys  Name

Y    ORCL/

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0ftf1f4h_1_1_5 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.256.988884637

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0htf1f6c_1_1_6 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.257.988884637

所以先不管Connected to an idle instance. 信息

3: 表空间传输

source_db: create_scn

$ORACLE_HOME/perl/bin/perl xttdriver.pl -s

alter tablespace YA_CLAIM_DB read only;

alter tablespace YA_CLAIM_IDX read only;

$ORACLE_HOME/perl/bin/perl xttdriver.pl -i

scp `cat incrbackups.txt`@192.168.56.101:/stage_dest

scp /home/oracle/xtt/xttplan.txt@192.168.56.101:/home/oracle/xtt

scp /home/oracle/xtt/tsbkupmap.txt@192.168.56.101:/home/oracle/xtt

destdb:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -r

Error:

------

Somefailure occurred. Check /home/oracle/xtt/FAILED for more details

If youhave fixed the issue, please delete /home/oracle/xtt/FAILED and run it

againOR run xttdriver.pl with -L option  --提示使用-L选择执行

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[oracle@serdb xtt]$ id

[oracle@serdb xtt]$ more FAILED

No tablepsace entries found    --这个报错也许是因为上面我们运行了两次。

使用-L 选项执行:

[oracle@serdb xtt]$ $ORACLE_HOME/perl/bin/perlxttdriver.pl -r -L

Connected to an idle instance. --先不理

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

Connected to an idle instance.

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

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

End of rollforward phase

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

ASMCMD> ls -l

Type      Redund  Striped  Time             Sys  Name

Y    ORCL/

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0ftf1f4h_1_1_5 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.256.988884637

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0htf1f6c_1_1_6 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.257.988884637

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0jtf1gc5_1_1_5 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.259.988885807

BACKUPSET UNPROT  COARSE   OCT 07 10:00:00  N   xib_0ltf1gdv_1_1_6 =>+DGDATA/ORCL/BACKUPSET/2018_10_07/nnndn0_0.258.988885807

建立impdp 脚本:

$ORACLE_HOME/perl/bin/perl xttdriver.pl -e

create directory xttdir as '/stage_dest'

/

修改脚本:

impdp \'/ as sysdba\' directory=xttdirlogfile=tts_imp.log \

network_link=ttslink transport_full_check=no \

transport_tablespaces=YA_CLAIM_DB,YA_CLAIM_IDX \

transport_datafiles='+DATA/ORCL/DATAFILE/ya_claim.dbf','+DATA/ORCL/DATAFILE/ya_claiminx.dbf'

执行报错:

ORA-29342: user YACLAIM does not exist in thedatabase

因为没有该用户!

create user YACLAIM identified by YACLAIM;

[oracle@serdb ~]$ impdp \'/ as sysdba\'directory=xttdir logfile=tts_imp.log network_link=ttslinktransport_full_check=no transport_tablespaces=YA_CLAIM_DB,YA_CLAIM_IDXtransport_datafiles='+DATA/ORCL/DATAFILE/ya_claim.dbf','+DATA/ORCL/DATAFILE/ya_claiminx.dbf'

Import: Release 12.2.0.1.0 - Production on Sun Oct7 10:41:48 2018

Copyright (c) 1982, 2017, Oracle and/or itsaffiliates.  All rights reserved.

Connected to: Oracle Database 12c EnterpriseEdition Release 12.2.0.1.0 - 64bit Production

Starting"SYS"."SYS_IMPORT_TRANSPORTABLE_01":  "/******** AS SYSDBA"directory=xttdir logfile=tts_imp.log network_link=ttslinktransport_full_check=no transport_tablespaces=YA_CLAIM_DB,YA_CLAIM_IDXtransport_datafiles=+DATA/ORCL/DATAFILE/ya_claim.dbf,+DATA/ORCL/DATAFILE/ya_claiminx.dbf

Processing object typeTRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object typeTRANSPORTABLE_EXPORT/INDEX/INDEX

Processing object typeTRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT

Processing object typeTRANSPORTABLE_EXPORT/INDEX_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/COMMENT

Processing object type TRANSPORTABLE_EXPORT/TRIGGER

Processing object typeTRANSPORTABLE_EXPORT/TABLE_STATISTICS

Processing object typeTRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job"SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completedat Sun Oct 7 10:42:30 2018 elapsed 0 00:00:41

SQL> select count(*) from yaclaim.c_pay;

COUNT(*)

----------

3829716

SQL> @tbs

Tablespace           Tablespace     Alloc        Free         Used     Used     Tablespace Segmnet

Name                 Type           Space Mb     Space Mb     Space Mb Percent % Status     Management

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

TEST                 PERMANENT         1,517           93        1,424  93.87%  ONLINE     AUTO

SYSAUX               PERMANENT         1,234          243          991  80.30%  ONLINE     AUTO

SYSTEM               PERMANENT         1,304          365          939  72.04%  ONLINE     MANUAL

YA_CLAIM_IDX         PERMANENT         2,048          703        1,345  65.68%  READ ONLY  AUTO

YA_CLAIM_DB          PERMANENT         4,096        1,462        2,634  64.31%  READ ONLY  AUTO

USERS                PERMANENT             5            4            1  25.00%  ONLINE     AUTO

UNDOTBS1             UNDO                161          124           37  22.71%  ONLINE     MANUAL

BFTBS                PERMANENT            50           44            6  12.12%  ONLINE     AUTO

UNDOTBS2             UNDO              3,642        3,508          134   3.68%  ONLINE     MANUAL

DATA                 PERMANENT         4,096        4,011           85   2.08%  ONLINE     AUTO

TEMP                 TEMPORARY           117          115            2   1.71%  ONLINE     MANUAL

********************---------- ------------ ------------ ------------

Count:                       11

Total:                                18,270       10,672        7,598

11 rows selected.

alter user YACLAIM DEFAULT TABLESPACE YA_CLAIM_DB

成功!

所以上面的

Connected to an idle instance. --不用理

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

Connected to an idle instance.

ASMCMD-8102: no connection to Oracle ASM; commandrequires Oracle ASM to run

alter tablespace YA_CLAIM_DB read write;

alter tablespace YA_CLAIM_IDX read write;

其实原库是存在standby,xtts 完成后启动备库:

SQL> startup

ORACLE instance started.

Total System Global Area  680607744 bytes

Fixed Size                  2231472 bytes

Variable Size             239076176 bytes

Database Buffers          436207616 bytes

Redo Buffers                3092480 bytes

Database mounted.

Database opened.

SQL> alter database recover managed standbydatabase using current logfile disconnect;

Database altered.

SQL> select count(*) from yaclaim.c_pay;

COUNT(*)

----------

3829716

备库数据也已经同步,xtts对备库本来也就没什么影响

oracle v rman status,ORACLE xtts + RMAN相关推荐

  1. oracle v$context,30.Oracle杂记——Oracle常用动态视图v$session

    30.Oracle杂记--Oracle常用动态视图v$session 视图v$session:有关会话的信息 这个视图包含了超级多的列,说明其包含巨大的信息,小伙伴千万要记得使用,不然浪费掉了ORAC ...

  2. oracle v$system_event,45.Oracle杂记——Oracle常用动态视图v$system_event

    45.Oracle杂记--Oracle常用动态视图v$system_event 视图v$system_event 显示一个事件的总共等待. 如果不支持计时机制,那么TIME_WAITED和AVERAG ...

  3. oracle v$sql last_load_time,Oracle 等待事件V$视图

    等待事件V$视图 本节包含一些显示等待事件的V$ 脚本.从个人角度来说,我更喜欢使用STATSPACK 报表.AWR 报表或企业管理器来查找等待事件.也就是说,有些很好的视图可以查看等待事件. Ora ...

  4. oracle v session表,Oracle技术之V$SESSION_LONGOPS超过系统时间

    检查一个系统,意外发现数据库的v$session_longops中时间远远超过了系统时间. 查询结果如下: [oracle@datasd ~]$ sqlplus / as sysdba SQL*Plu ...

  5. oracle v session表,Oracle临时表(Session临时表与Transaction临时表)

    一.临时表与临时表分类 临时表是在Oracle 8i中引入一种新的表的种类.Oracle数据库中的临时表是一种特殊的表,它可以作为临时保存数据的一种方式.Session级临时表是指在一个会话周期内都数 ...

  6. oracle v¥bh,ORACLE数据库sql语言、函数及常用命令

    file=c:\database\ydxt200108170926.dmp log=c:\database\ydxt200108170926.log fromuser=cur touser=cur1 ...

  7. oracle 测试库搭建,Oracle Study之--通过RMAN克隆测试库

    Oracle Study之--通过RMAN克隆测试库 通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库.这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆 ...

  8. oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试

    RMAN支持两种类型复制:活动数据库复制和基于备份的复制,主要用来建立测试库.分别进行测试 我们把要复制的数据库称为源数据库(SOURCE DB=orcl),复制后的数据库成为目标数据库(TARGET ...

  9. Oracle 11g 中恢复管理器RMAN介绍

    这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...

  10. oracle增量恢复dg备库,rman增量恢复DG备库出现GAP的情况

    主库归档被意外删除,备库复制出现问题,alter日志如下: Wed Apr 01 10:16:15 2015 Media Recovery Log /tol/archivelog/1_587399_7 ...

最新文章

  1. Python实现前端AES加密方式分析,***密码学必备!
  2. 直线和圆交点 halcon_初中数学三角形、四边形、圆辅助线的添加方法
  3. 整体管理6个过程及相关重点
  4. SAP Spartacus后台CMS Component和Angular Component的映射关系
  5. 项目经理让我陪着技术加班
  6. 队列的链式存储结构及实现
  7. 单片机按键使用程序 (51单片机)
  8. mysql语法子查询_(十四)MySQL语法-子查询(二)
  9. 如何在几秒钟内退出所有 Mac 应用程序?
  10. JDBC:java数据库连接对象
  11. UI自动化测试之元素定位
  12. 控制工程中的数学建模(1)——二阶有源低通滤波器(之一)
  13. 使用云服务器搭建Linux学习环境
  14. python 批量视频编辑_python实现批量视频分帧、保存视频帧
  15. Android内存泄漏leakcanary2.7
  16. WebStorm--常用插件
  17. Java 中验证时间格式的 4 种方法
  18. ccd视觉定位教程_什么是CCD视觉定位自动焊锡机器人?
  19. 【php】empty()详解
  20. 各类VRP问题标准算例资源汇总

热门文章

  1. vue+antDesign实现树形数据展示并表格父子级选中和取消联动
  2. (python初学者)利用python画简单几何图形
  3. vue 表格固定首行首列(纯css)
  4. 数据工程师岗位职责解析
  5. Linux系统用户管理命令知识学习
  6. DDOS攻击土味解读
  7. 【React】1332- 2022 年值得推荐的 React 库
  8. http 405错误
  9. oracle 11g查隐含参数,oracle隐含参数修改与查看
  10. GSM网络的网络架构,速来了解一下吧!