背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。
环境:Oracle 10.2.0.5 DG 单机

首先想到的是10gDG是在mount模式下应用的,在测试环境可以很容易的模拟下这个需求实现的过程:

  • 1.查询当前DG的状态
  • 2.停止DG应用
  • 3.备份copy副本到新目录并切换
  • 4.删除之前的目录并开启应用

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 optionsSQL> select name, database_role, open_mode from gv$database;NAME      DATABASE_ROLE    OPEN_MODE
--------- ---------------- ----------
JY        PHYSICAL STANDBY MOUNTEDSQL>  select recovery_mode from v$archive_dest_status;RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE11 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.8396738752 /oradata/jy/datafile/undotbs1.258.8396738773 /oradata/jy/datafile/sysaux.257.8396738774 /oradata/jy/datafile/users.259.8396738775 /oradata/jy/datafile/example.267.8396739616 /oradata/jy/datafile/undotbs2.268.8396741037 /oradata/jy/datafile/dbs_d_school.276.8406184378 /oradata/jy/datafile/dbs_cssf_gt.289.8482287419 /datafile/dbs_data9.dbf10 /datafile/dbs_data10.dbf11 /datafile/dbs_data11.dbf11 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 2018Copyright (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=DISKallocated channel: c2
channel c2: sid=159 devtype=DISKallocated channel: c3
channel c3: sid=144 devtype=DISKStarting 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-18Starting 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-18Starting 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-18released channel: c1released channel: c2released channel: c3RMAN> 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 catalogList 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.dbfRMAN> 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.dbfRMAN> delete copy of datafile 9,10,11;allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=146 devtype=DISKList 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.dbfDo 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:56SQL>  select recovery_mode from v$archive_dest_status;RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE11 rows selected.

至此,就完成了客户的需求,我们可以多思考一下,如果客户环境是11g的ADG环境呢?会有哪些不同呢?

Oracle 10g DG 数据文件迁移相关推荐

  1. Oracle 数据文件迁移

    背景 这两天做一个oracle数据库迁移,以前都是用exp.imp来走,这次用到了expdp.impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘 ...

  2. oracle 10g搭建dg,oracle 10g dg环境的搭建

    oracle 10g dg环境的搭建 软件的安装不需要介绍,把主节点数据库安装好之后,然后把文件打包拷贝到备节点就可以了. 测试环境:主节点IP192.168.163.110,主机名是vmhost02 ...

  3. oracle存储换硬盘,Oracle 10g RAC 数据存储更换

    说明 目前数据库为10gRAC 环境(10.2.0.4) ,操作系统为 ,采用ASM 磁盘组,需要对存储进行迁移,计划迁移采用oracle rman 迁移方案,确保迁移安全可控.本次迁移涉及ocr,v ...

  4. oracle tns 代理配置_OGG实现Oracle到MySQL数据平滑迁移

    技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移 - 爱可生开源社区​opensource.actionsky.com 一.OGG概述 OGG全称为Oracle GoldenGate, ...

  5. oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...

    LINUX下ORACLE软件.数据文件等所在的磁盘分区空间不足的解决思路 虚拟机中的ORACLE运行的久了,归档.数据文件不断增长,原来安装ORACLE的分区空间不足. 此时可以重新向虚拟机增加一块硬 ...

  6. Oracle BBED单个数据文件跳过所有归档恢复

    场景描述: 数据库利用备份进行恢复时,需要执行restore+recover,restore利用备份片恢复数据文件,recover是进行归档日志应用到最新状态,当我们所有归档日志丢失时,可以利用bbe ...

  7. MySql的数据文件迁移

    最近在windows服务器上安装了一个mysql,发现数据文件只能装在c盘,我那可怜的c盘只有50G,数据库放上去,估计以后系统就别想跑了,所以需要把mysql的数据放在D盘.但是在网上找了一圈中文资 ...

  8. oracle表空间文件离线,oracle 表空间 数据文件 笔记

    数据文件命令 Enabling and Disabling Automatic Extension for a Datafile: ALTER TABLESPACE users ADD DATAFIL ...

  9. asm管理的dg数据文件缺失的处理方法

    一次由于DG磁盘组满了,而这段时间生产上又产生新的数据文件,导致在dg上新建的数据文件变成UNNAMED命名的数据文件了 1.        生产库通过convert备份缺失的文件 RMAN> ...

最新文章

  1. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)
  2. 个简单C++程序反汇编解析 (Rev. 3)
  3. Linux下的tr编辑器命令详解
  4. 《Java 核心技术卷1 第10版》学习笔记------ 类之间的关系
  5. 解决IE中img.onload失效的方法
  6. Python 全局变量
  7. QT信号与槽-启动系统程序以及相关控件介绍
  8. 前端直接访问登录页面报错_如何实现登录、URL和页面按钮的访问控制
  9. 每天数千个漏洞被公开 选什么工具能让漏洞追不上我?RASP介绍
  10. 人脸脸部识别技术_面部识别技术的道德安全问题
  11. 学生管理系统-C++版
  12. 常见的exceptions总结
  13. 用友优普孙永军:制造业的三座“大山”
  14. weight initialization
  15. SKF VOGEL ZM505-3+140 ZP505
  16. (一)关于思维导图MindMaster
  17. 用PHP完成简易博客系统
  18. 《如何阅读一本书》-2检视阅读
  19. 小程序跳转公众号文章
  20. 实施ERP系统常见的误区

热门文章

  1. 厚积薄发 前端学习笔记 CSS基础篇-左侧固定,右侧自适应(或右侧固定,左侧自适应)布局方法...
  2. MVP小白入门,只需5步
  3. 虚拟机安装python3_python3pip在虚拟机中全局安装
  4. Docker安装gbase8s数据库教程
  5. 通用Shell脚本,可以优雅的启动/关闭/重启/JAVA服务
  6. CentOS7安装Redis,全网最快安装教程
  7. php清空html_PHP清除html格式的代码
  8. MyBatis3源码解析(5)查询结果处理
  9. 做工程为什么不用python_为什么“python setup.py sdist”在项目根目录中创建不需要的“PROJECT-egg.info”?...
  10. android float类型保留两位小数_你知道MySQL中Decimal类型和Float Double的区别吗?