Oracle 10g DG 数据文件迁移
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。
环境:Oracle 10.2.0.5 DG 单机
首先想到的是10gDG是在mount模式下应用的,在测试环境可以很容易的模拟下这个需求实现的过程:
1.查询当前DG的状态
**查询当前DG的状态:**
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name, database_role, open_mode from gv$database;
NAME DATABASE_ROLE OPEN_MODE
--------- ---------------- ----------
JY PHYSICAL STANDBY MOUNTED
SQL> select recovery_mode from v$archive_dest_status;
RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
11 rows selected.
SQL> select * from v$dataguard_stats;
NAME VALUE UNIT TIME_COMPUTED
---------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------
apply finish time +00 00:00:00.0 day(2) to second(1) interval 05-MAY-2018 10:04:20
apply lag +00 00:00:12 day(2) to second(0) interval 05-MAY-2018 10:04:20
estimated startup time 41 second 05-MAY-2018 10:04:20
standby has been open N 05-MAY-2018 10:04:20
transport lag +00 00:00:00 day(2) to second(0) interval 05-MAY-2018 10:04:20
可以看到DG处于正常应用状态。
2.停止DG应用
**停止DG应用:**
SQL> alter database recover managed standby database cancel;
Database altered.
3.备份copy副本到新目录并切换
**3.1 确认需要迁移的数据文件**
查看当前的数据文件,确认将9,10,11三个文件迁移回原来的目录:
SQL> select file#, name from v$datafile;
FILE# NAME
---------- -------------------------------------------------------
1 /oradata/jy/datafile/system.256.839673875
2 /oradata/jy/datafile/undotbs1.258.839673877
3 /oradata/jy/datafile/sysaux.257.839673877
4 /oradata/jy/datafile/users.259.839673877
5 /oradata/jy/datafile/example.267.839673961
6 /oradata/jy/datafile/undotbs2.268.839674103
7 /oradata/jy/datafile/dbs_d_school.276.840618437
8 /oradata/jy/datafile/dbs_cssf_gt.289.848228741
9 /datafile/dbs_data9.dbf
10 /datafile/dbs_data10.dbf
11 /datafile/dbs_data11.dbf
11 rows selected.
3.2 备份相关数据文件副本:
编写脚本:
vi copy_datafile.sh
echo "=======Begin at : `date`=======" >>/tmp/copy_datafile_`date +%Y%m%d`.log
rman target / <<EOF >>/tmp/copy_datafile_`date +%Y%m%d`.log
run {
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
backup as copy datafile 9 format '/oradata/jy/datafile/dbs_data9.dbf';
backup as copy datafile 10 format '/oradata/jy/datafile/dbs_data10.dbf';
backup as copy datafile 11 format '/oradata/jy/datafile/dbs_data11.dbf';
release channel c1;
release channel c2;
release channel c3;
}
EOF
echo "=======End at : `date`=======" >>/tmp/copy_datafile_`date +%Y%m%d`.log
后台执行脚本:
nohup sh copy_datafile.sh &
记录的日志如下:
=======Begin at : Sat May 5 10:51:24 CST 2018=======
Recovery Manager: Release 10.2.0.5.0 - Production on Sat May 5 10:51:24 2018
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: JY (DBID=857123342, not open)
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13>
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: sid=152 devtype=DISK
allocated channel: c2
channel c2: sid=159 devtype=DISK
allocated channel: c3
channel c3: sid=144 devtype=DISK
Starting backup at 05-MAY-18
channel c1: starting datafile copy
input datafile fno=00009 name=/datafile/dbs_data9.dbf
output filename=/oradata/jy/datafile/dbs_data9.dbf tag=TAG20180505T105125 recid=22 stamp=975322288
channel c1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 05-MAY-18
Starting backup at 05-MAY-18
channel c1: starting datafile copy
input datafile fno=00010 name=/datafile/dbs_data10.dbf
output filename=/oradata/jy/datafile/dbs_data10.dbf tag=TAG20180505T105129 recid=23 stamp=975322292
channel c1: datafile copy complete, elapsed time: 00:00:07
Finished backup at 05-MAY-18
Starting backup at 05-MAY-18
channel c1: starting datafile copy
input datafile fno=00011 name=/datafile/dbs_data11.dbf
output filename=/oradata/jy/datafile/dbs_data11.dbf tag=TAG20180505T105136 recid=24 stamp=975322315
channel c1: datafile copy complete, elapsed time: 00:00:25
Finished backup at 05-MAY-18
released channel: c1
released channel: c2
released channel: c3
RMAN>
Recovery Manager complete.
=======End at : Sat May 5 10:52:02 CST 2018=======
3.3 切换数据文件到copy副本:
RMAN> list copy of database;
using target database control file instead of recovery catalog
List of Datafile Copies
Key File S Completion Time Ckp SCN Ckp Time Name
------- ---- - --------------- ---------- --------------- ----
10 9 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data9.dbf
11 10 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data10.dbf
12 11 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data11.dbf
RMAN> switch datafile 9,10,11 to copy;
datafile 9 switched to datafile copy "/oradata/jy/datafile/dbs_data9.dbf"
datafile 10 switched to datafile copy "/oradata/jy/datafile/dbs_data10.dbf"
datafile 11 switched to datafile copy "/oradata/jy/datafile/dbs_data11.dbf"
4.删除之前的目录并开启应用
4.1 删除之前的文件:
RMAN> list copy of database;
List of Datafile Copies
Key File S Completion Time Ckp SCN Ckp Time Name
------- ---- - --------------- ---------- --------------- ----
13 9 A 05-MAY-18 35309314 05-MAY-18 /datafile/data9.dbf
14 10 A 05-MAY-18 35309314 05-MAY-18 /datafile/data10.dbf
15 11 A 05-MAY-18 35309314 05-MAY-18 /datafile/datafile11.dbf
RMAN> delete copy of datafile 9,10,11;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=146 devtype=DISK
List of Datafile Copies
Key File S Completion Time Ckp SCN Ckp Time Name
------- ---- - --------------- ---------- --------------- ----
13 9 A 05-MAY-18 35309314 05-MAY-18 /datafile/data9.dbf
14 10 A 05-MAY-18 35309314 05-MAY-18 /datafile/data10.dbf
15 11 A 05-MAY-18 35309314 05-MAY-18 /datafile/datafile11.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted datafile copy
datafile copy filename=/datafile/data9.dbf recid=13 stamp=975320371
deleted datafile copy
datafile copy filename=/datafile/data10.dbf recid=14 stamp=975320371
deleted datafile copy
datafile copy filename=/datafile/datafile11.dbf recid=15 stamp=975320371
Deleted 3 objects
4.2 开启日志应用:
SQL> --recover_std_real
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
SQL> set lines 1000
SQL> select * from v$dataguard_stats;
NAME VALUE UNIT TIME_COMPUTED
-------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------
apply finish time +00 00:00:00.0 day(2) to second(1) interval 05-MAY-2018 10:20:56
apply lag +00 00:02:00 day(2) to second(0) interval 05-MAY-2018 10:20:56
estimated startup time 41 second 05-MAY-2018 10:20:56
standby has been open N 05-MAY-2018 10:20:56
transport lag +00 00:00:00 day(2) to second(0) interval 05-MAY-2018 10:20:56
SQL> select recovery_mode from v$archive_dest_status;
RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
11 rows selected.
至此,就完成了客户的需求,我们可以多思考一下,如果客户环境是11g的ADG环境呢?会有哪些不同呢?
Oracle 10g DG 数据文件迁移的更多相关文章
- oracle 11g dbf数据文件从C盘迁移到D盘
服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplu ...
- Oracle 数据文件迁移
背景 这两天做一个oracle数据库迁移,以前都是用exp.imp来走,这次用到了expdp.impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘 ...
- oracle数据文件迁移
这篇文章是从网络上获取的,然后根据内容一步步操作, 1.目前的疑问:移动日志文件的时候,为何要先进行切换? 2.move操作后,再进行rename操作的原理 --------------------- ...
- Oracle数据文件迁移到裸设备
本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上. 前提条件 1.oracle运行正常. 2.已使用LVM命令规划好LV文件.如/dev/vgoracle/lvdatat ...
- Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中
在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...
- SqlServer:SqlServer(数据库备份,数据文件迁移,增加数据库文件组,递归查询一周报送情况,查询近X天未报送单位,截断数据库日志,复制单个或多个数据库表到另一个数据库 )
1.数据备份 ) ) ) )),'-','') ) SET @savePath = 'f:/DatabaseBackup/' DECLARE My_Cursor CURSOR FOR ( select ...
- oracle之 RAC本地数据文件迁移至ASM
系统环境:CentOS release 6.7 (Final)Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit 操作过 ...
- 浅谈Oracle中物理结构(数据文件等。。。)与逻辑结构(表空间等。。。。。)
初始Oracle时很难理解其中的物理结构和逻辑结构,不明白内存中和硬盘中文件的区别和联系,我也是初学Oracle,这里就简单的谈谈我我看法. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作 ...
- RAC本地数据文件迁移至ASM的方法--非归档模式
系统环境:rhel6.2_x64+Oracle RAC11g 操作过程: 1.非归档模式 SQL> archive log list; Database log mode No Archive ...
随机推荐
- UNIX网络编程——常用服务器模型总结
下面有9种服务器模型分别是: 迭代服务器. 并发服务器,为每个客户fork一个进程. 预先派生子进程,每个子进程都调用accept,accept无上锁保护. 预先派生子进程,以文件锁的方式保护acce ...
- 使用Hash函数和MAC产生伪随机数
基于Hash函数的PRNG 流程非常类似于对称密码的CTR工作模式 算法的伪码如下 m = ⌈n/outlen⌉ data = V W = the null String for i = 1 to m ...
- iOS开发之三:常用控件--UILabel的使用
UILabel 一般用来显示文本内容. 常用的属性如下: @property(nonatomic,copy) NSString *text; // 文本的内容,默认为 nil @property(no ...
- JSP标签JSTL(3)--迭代操作
简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容.它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数. <!--语法使用如下--> ...
- UNIX环境高级编程——无名管道和有名管道
一.进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2 ...
- Android指南针之加速度传感器地磁传感器-android学习之旅(67)
由于andorid不推荐用传统的方向传感器,推荐用加速度传感器和地磁传感器来构造得到方向传感器的数据,其实主要是z轴的旋转角度 具体代码示例 代码如下 public class MainActivit ...
- 环境连接报错(最大连接数超过) APP-FND-01516
数据库用户登录服务器,sqlplu 解决办法: 先把界面上要保存的操作保存好 应用用户登录,切换到ora用户 杀掉进程 ps -fu ora | grep LOCAL=NO|grep -v grep| ...
- 使用OC和Swift两种语言写一个发射烟花的小项目
OC与Swift两种实现方式基本上区别不大,主要是在一些对象或方法的调用方式不同,附带源码. OC代码样式: self.view.backgroundColor = [UIColor blackCol ...
- Html5的学习之旅-Html5的web Storage概述(16)
在html5中除了canvas,另外一个非常重要的功能是客户端本地存储web storage,之前可以在用户端Cookies存贮用户名等信息,后来发现Cookies存储存在以下问题: 大小:Cooki ...
- jpa一对多映射案例
订单和订单项就是一对多的关系.一个订单有多个订单项,一个订单项属于某个订单. 订单和订单项映射后的表结构如下: 订单表结构 订单项表结构 下面就以订单和订单项为例介绍多对多映射关系的实例开发 pers ...