【Oracle】OGG数据初始化之RMAN

实验环境:

源端、目标端:

DataBase:10.2.0.1.0

OS:OEL5.6

OGG:fbo_ggs_Linux_x86_ora11g_32bit

源端使用rman进行备份全库:

RMAN> run{

ALLOCATE CHANNEL ch00 TYPE DISK MAXPIECESIZE 20G;

ALLOCATE CHANNEL ch01 TYPE DISK MAXPIECESIZE 20G;

CROSSCHECK BACKUPSET;

DELETE NOPROMPT EXPIRED BACKUPSET;

sql ‘alter system archive log current‘;

BACKUP AS BACKUPSET SKIP INACCESSIBLE TAG hot_db_bk_level0  FORMAT ‘/home/oracle/bak//bk_%s_%p_%t‘ FULL  DATABASE;

RELEASE CHANNEL ch00;

RELEASE CHANNEL ch01;

}2> 3> 4> 5> 6> 7> 8> 9> 10>

released channel: ORA_DISK_1

allocated channel: ch00

channel ch00: sid=141 devtype=DISK

allocated channel: ch01

channel ch01: sid=149 devtype=DISK

sql statement: alter system archive log current

Starting backup at 21-JUL-14

channel ch00: starting full datafile backupset

channel ch00: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/ORCL/system01.dbf

input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/users01.dbf

input datafile fno=00005 name=/u01/app/oracle/oradata/ORCL/example01.dbf

channel ch00: starting piece 1 at 21-JUL-14

channel ch01: starting full datafile backupset

channel ch01: specifying datafile(s) in backupset

input datafile fno=00003 name=/u01/app/oracle/oradata/ORCL/sysaux01.dbf

input datafile fno=00006 name=/u01/app/oracle/oradata/ORCL/ogg01.dbf

input datafile fno=00002 name=/u01/app/oracle/oradata/ORCL/undotbs01.dbf

channel ch01: starting piece 1 at 21-JUL-14

channel ch01: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/bk_23_1_853515593 tag=HOT_DB_BK_LEVEL0 comment=NONE

channel ch01: backup set complete, elapsed time: 00:00:35

channel ch01: starting full datafile backupset

channel ch01: specifying datafile(s) in backupset

including current control file in backupset

channel ch01: starting piece 1 at 21-JUL-14

channel ch01: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/bk_24_1_853515629 tag=HOT_DB_BK_LEVEL0 comment=NONE

channel ch01: backup set complete, elapsed time: 00:00:03

channel ch01: starting full datafile backupset

channel ch01: specifying datafile(s) in backupset

including current SPFILE in backupset

channel ch01: starting piece 1 at 21-JUL-14

channel ch01: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/bk_25_1_853515632 tag=HOT_DB_BK_LEVEL0 comment=NONE

channel ch01: backup set complete, elapsed time: 00:00:01

channel ch00: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/bk_22_1_853515593 tag=HOT_DB_BK_LEVEL0 comment=NONE

channel ch00: backup set complete, elapsed time: 00:01:15

Finished backup at 21-JUL-14

released channel: ch00

released channel: ch01

备份归档日志及控制文件,这里以有三组日志文件做例子,全部切一遍

RMAN> run{

ALLOCATE CHANNEL ch00 TYPE DISK MAXPIECESIZE 20G;

ALLOCATE CHANNEL ch01 TYPE DISK MAXPIECESIZE 20G;

sql ‘alter system switch logfile‘;

sql ‘alter system switch logfile‘;

sql ‘alter system switch logfile‘;

sql ‘alter system archive log current‘;

BACKUP ARCHIVELOG ALL FORMAT ‘/home/oracle/bak/ARCH_%U‘;

BACKUP CURRENT CONTROLFILE FORMAT ‘/home/oracle/bak/bk_controlfile‘;

RELEASE CHANNEL ch00;

RELEASE CHANNEL ch01;

}2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12>

allocated channel: ch00

channel ch00: sid=141 devtype=DISK

allocated channel: ch01

channel ch01: sid=149 devtype=DISK

sql statement: alter system switch logfile

sql statement: alter system switch logfile

sql statement: alter system switch logfile

sql statement: alter system archive log current

Starting backup at 21-JUL-14

current log archived

channel ch00: starting archive log backupset

channel ch00: specifying archive log(s) in backup set

input archive log thread=1 sequence=2 recid=1 stamp=853513172

channel ch00: starting piece 1 at 21-JUL-14

channel ch01: starting archive log backupset

channel ch01: specifying archive log(s) in backup set

input archive log thread=1 sequence=3 recid=2 stamp=853514244

input archive log thread=1 sequence=4 recid=3 stamp=853514831

input archive log thread=1 sequence=5 recid=4 stamp=853514881

input archive log thread=1 sequence=6 recid=5 stamp=853514923

input archive log thread=1 sequence=7 recid=6 stamp=853515051

input archive log thread=1 sequence=8 recid=7 stamp=853515051

input archive log thread=1 sequence=9 recid=8 stamp=853515057

input archive log thread=1 sequence=10 recid=9 stamp=853515057

input archive log thread=1 sequence=11 recid=10 stamp=853515060

input archive log thread=1 sequence=12 recid=11 stamp=853515131

input archive log thread=1 sequence=13 recid=12 stamp=853515131

input archive log thread=1 sequence=14 recid=13 stamp=853515136

input archive log thread=1 sequence=15 recid=14 stamp=853515136

input archive log thread=1 sequence=16 recid=15 stamp=853515139

input archive log thread=1 sequence=17 recid=16 stamp=853515193

input archive log thread=1 sequence=18 recid=17 stamp=853515193

input archive log thread=1 sequence=19 recid=18 stamp=853515198

input archive log thread=1 sequence=20 recid=19 stamp=853515198

channel ch01: starting piece 1 at 21-JUL-14

channel ch00: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/ARCH_0qpdv7dh_1_1 tag=TAG20140721T154137 comment=NONE

channel ch00: backup set complete, elapsed time: 00:00:04

channel ch01: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/ARCH_0rpdv7dh_1_1 tag=TAG20140721T154137 comment=NONE

channel ch01: backup set complete, elapsed time: 00:00:04

channel ch00: starting archive log backupset

channel ch00: specifying archive log(s) in backup set

input archive log thread=1 sequence=21 recid=20 stamp=853515202

input archive log thread=1 sequence=22 recid=21 stamp=853515384

input archive log thread=1 sequence=23 recid=22 stamp=853515384

input archive log thread=1 sequence=24 recid=23 stamp=853515388

input archive log thread=1 sequence=25 recid=24 stamp=853515388

input archive log thread=1 sequence=26 recid=25 stamp=853515391

input archive log thread=1 sequence=27 recid=26 stamp=853515527

input archive log thread=1 sequence=28 recid=27 stamp=853515527

input archive log thread=1 sequence=29 recid=28 stamp=853515532

input archive log thread=1 sequence=30 recid=29 stamp=853515532

input archive log thread=1 sequence=31 recid=30 stamp=853515535

input archive log thread=1 sequence=32 recid=31 stamp=853515593

input archive log thread=1 sequence=33 recid=32 stamp=853515689

input archive log thread=1 sequence=34 recid=33 stamp=853515689

input archive log thread=1 sequence=35 recid=34 stamp=853515694

input archive log thread=1 sequence=36 recid=35 stamp=853515694

input archive log thread=1 sequence=37 recid=36 stamp=853515697

channel ch00: starting piece 1 at 21-JUL-14

channel ch00: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/ARCH_0spdv7dl_1_1 tag=TAG20140721T154137 comment=NONE

channel ch00: backup set complete, elapsed time: 00:00:02

Finished backup at 21-JUL-14

Starting backup at 21-JUL-14

channel ch00: starting full datafile backupset

channel ch00: specifying datafile(s) in backupset

including current control file in backupset

channel ch00: starting piece 1 at 21-JUL-14

channel ch00: finished piece 1 at 21-JUL-14

piece handle=/home/oracle/bak/bk_controlfile tag=TAG20140721T154145 comment=NONE

channel ch00: backup set complete, elapsed time: 00:00:01

Finished backup at 21-JUL-14

released channel: ch00

released channel: ch01

源端数据库查询:

[email protected]>select * from Gv$log;

INST_ID     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

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

1          1          1         38   52428800          1 NO  CURRENT                 484272 21-JUL-14

1          2          1         36   52428800          1 YES INACTIVE                484261 21-JUL-14

1          3          1         37   52428800          1 YES INACTIVE                484267 21-JUL-14

记录此时非活动日志组的SCN,有多组的时候我们取最大的FIRST_CHANGE#,在这里是484267。

将源端库的init<SID>.ora发送到目标端:

[email protected]>create pfile from spfile;

File created.

[[email protected] dbs]$ scp initORCL.ora edbjr2p2:$ORACLE_HOME/dbs

[email protected]‘s password:

initORCL.ora                                                                                 100% 1049     1.0KB/s   00:00

在目标端建立所有目录,然后将备份传过去:

目标端:

[[email protected] oracle]$ pwd

/u01/app/oracle

[[email protected] oracle]$ mkdir -p admin/ORCL/{a,b,c,u}dump

[[email protected] oracle]$ mkdir flash_recovery_area/ORCL

[[email protected] oracle]$ mkdir -p oradata/ORCL

源端:

[[email protected] bak]$ ls

ARCH_0qpdv7dh_1_1  ARCH_0spdv7dl_1_1  bk_23_1_853515593  bk_25_1_853515632

ARCH_0rpdv7dh_1_1  bk_22_1_853515593  bk_24_1_853515629  bk_controlfile

[[email protected] bak]$ scp * edbjr2p2:~/bak/

[email protected]‘s password:

ARCH_0qpdv7dh_1_1                                                                            100%   11MB  11.2MB/s   00:00

ARCH_0rpdv7dh_1_1                                                                            100% 2648KB   2.6MB/s   00:00

ARCH_0spdv7dl_1_1                                                                            100%   55KB  55.0KB/s   00:00

bk_22_1_853515593                                                                            100%  410MB   9.1MB/s   00:45

bk_23_1_853515593                                                                            100%  159MB   4.4MB/s   00:36

bk_24_1_853515629                                                                            100% 7232KB   3.5MB/s   00:02

bk_25_1_853515632                                                                            100%   96KB  96.0KB/s   00:00

bk_controlfile                                                                               100% 7232KB   7.1MB/s   00:00

目标端将库启动到nomount状态:

[[email protected] ~]$ export ORACLE_SID=ORCL

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 21 16:11:45 2014

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

Connected to an idle instance.

SQL> create spfile from pfile;

File created.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  452984832 bytes

Fixed Size                  1219928 bytes

Variable Size             109052584 bytes

Database Buffers          335544320 bytes

Redo Buffers                7168000 bytes

SQL>

然后使用rman将数据库恢复出来:

RMAN> restore controlfile from ‘/home/oracle/bak/bk_controlfile‘;

Starting restore at 21-JUL-14

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=155 devtype=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:04

output filename=/u01/app/oracle/oradata/ORCL/control01.ctl

output filename=/u01/app/oracle/oradata/ORCL/control02.ctl

output filename=/u01/app/oracle/oradata/ORCL/control03.ctl

Finished restore at 21-JUL-14

RMAN> sql ‘alter database mount‘;

sql statement: alter database mount

released channel: ORA_DISK_1

RMAN> restore database;

Starting restore at 21-JUL-14

Starting implicit crosscheck backup at 21-JUL-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=155 devtype=DISK

Crosschecked 7 objects

Finished implicit crosscheck backup at 21-JUL-14

Starting implicit crosscheck copy at 21-JUL-14

using channel ORA_DISK_1

Finished implicit crosscheck copy at 21-JUL-14

searching for all files in the recovery area

cataloging files...

no files cataloged

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00002 to /u01/app/oracle/oradata/ORCL/undotbs01.dbf

restoring datafile 00003 to /u01/app/oracle/oradata/ORCL/sysaux01.dbf

restoring datafile 00006 to /u01/app/oracle/oradata/ORCL/ogg01.dbf

channel ORA_DISK_1: reading from backup piece /home/oracle/bak/bk_23_1_853515593

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/bak/bk_23_1_853515593 tag=HOT_DB_BK_LEVEL0

channel ORA_DISK_1: restore complete, elapsed time: 00:00:27

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u01/app/oracle/oradata/ORCL/system01.dbf

restoring datafile 00004 to /u01/app/oracle/oradata/ORCL/users01.dbf

restoring datafile 00005 to /u01/app/oracle/oradata/ORCL/example01.dbf

channel ORA_DISK_1: reading from backup piece /home/oracle/bak/bk_22_1_853515593

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/bak/bk_22_1_853515593 tag=HOT_DB_BK_LEVEL0

channel ORA_DISK_1: restore complete, elapsed time: 00:00:46

Finished restore at 21-JUL-14

然后recover数据库到前边我们记录的SCN处:

RMAN>run

{

SET UNTIL SCN 484267;

RECOVER DATABASE;

}2> 3> 4> 5>

目标端查看此时SCN并打开数据库:

SQL> SELECT CHECKPOINT_CHANGE#,CHECKPOINT_TIME FROM V$DATAFILE_HEADER;

CHECKPOINT_CHANGE# CHECKPOIN

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

484267 21-JUL-14

484267 21-JUL-14

484267 21-JUL-14

484267 21-JUL-14

484267 21-JUL-14

484267 21-JUL-14

6 rows selected.

SQL> alter database open resetlogs;

Database altered.

目标端启动Replicat进程:

GGSCI (edbjr2p2) 1>start repya ,afterscn 484267

此处使用的SCN是我们之前记录的SCN。因为数据文件恢复到了这个SCN,rman保证了这个SCN之前的源端和目标端库的数据一致性,OGG只要应用此SCN之后出现的数据变化即可。

时间: 2024-10-22 01:24:45

【Oracle】OGG数据初始化之RMAN的相关文章

oracle ogg 单机环境单向复制搭建

OGG安装 fbo_ggs_Linux_x64_shiphome.zip---------------------同时支持11g和12c 添加用户 useradd -u 1003 -g oinstall -G dba ogg 配置环境变量 export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_SID=racdb1; export OGG_HOME

oracle ogg配置

http://www.dataguru.cn/thread-171156-1-1.html GoldenGate几个重要进程介绍: 1.Manager管理进程在两端开启,监控和重启其他进程:分配数据存储和报告错误及事件: 2.Extract进程从日志中抓取并传输到target端事务数据: 3.Server Collector进程在target(接受)端接受数据并写入trail文件: 4.Replicat进程读取trail文件,并应用到traget数据库: 5.trail文件时gg自己抓捕信息的文

oracle学习-数据迁移

如果只是迁移表空间或者数据文件,可以先将表空间或者数据文件offline之后移动位置,并通过 alert database rename 和 alter tablespace rename 将位置变化写入控制文件即可 例 迁移数据文件 ALTER DATABASE DATAFILE '所要迁移的数据文件' OFFLINE; 拷贝到新位置 ALTER DATABASE RENAME FILE '索要迁移的数据文件' TO '新位置的数据文件'; 介质恢复 RECOVE DATAFILE '新位置的

oracle 普通数据文件备份与恢复

普通数据文件指:非system表空间.undo_tablespace表空间.临时表空间和只读表空间的数据文件.它们损坏导致用户数据不能访问,不会导致db自身异常.实例崩溃.数据库不恢复就无法启动的情况. 恢复这样的数据文件可以采用高可用策略,在数据库OPEN状态下进行 10.1 普通数据文件损坏的后果 普通数据文件损坏后,只是用户的业务数据不同程度上无法访问(查询与修改),报错 ORA-01578,执行命令的会话不会被中断,即使是数据文件头部损坏检查点发生时实例也不会崩溃 --1 实例启动时,若

Oracle core02_数据块

数据更改 oracle core完成了oracle的核心功能,recovery,读一致性等. 深入的了解oracle的机制,就从一个最简单的更新开始.对于oracle来说,最大的一个特性就是写了两次数据: 写数据到数据文件中 写数据的变更日志到日志文件中 对于最常见的数据更新来说,oracle主要做了一下动作: 创建数据块变更的日志记录即 redo change vector 创建数据块的映像即undo record 创建undo数据块变更的日志记录 更新数据块 下面就以update为例:记录变

JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据

一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据 量非常大的业务领域(如图象.档案等). LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(Binary Large Object),适用于存贮非文本的字节流数据(如程序.图象.影音等).而CLOB,即字符型大型对象(Character Large Obj

关于Oracle导出数据的几个错误EXP-00008,ORA-00904,ORA-01003,EXP-00091

首先说明数据库的版本 服务器:10.2.0.5.0 客户端:11.2.0.1.0 导出会报错 EXP-00008: 遇到 ORACLE 错误 1003 ORA-01003: no statement parsed 和 EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier 这小样问题,怎么也不会想到是客户端不能向下兼容吧,困了我很久.我决定试下是不是客户端不兼容问题,果然是这样的. 装了个虚拟机,客户端版

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一种 alter tablespace users rename datafile '==' to '***'; 这种方式需要数据库处于open状态,表空间在offline的状态下才能更改. [sql] view plain copy SQL> alter tablespace user

使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案

在使用命令导数据过程中,出现如下错误 sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.29.16:1521/testdb --username NAME --passord PASS --verbose -m 1 --table T_USERINFO 错误1:File does not exist: hdfs://opt/sqoop-1.4.4/lib/commons-io-1.4.jar FileNotFoundEx