[20180718]拷贝数据文件从dg库.txt

1.测试环境:
SCOTT@book> @ 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

--//主库:192.168.100.78
--//备库:192.168.100.78
--//注意检查dg是否应用日志正常略.
--//操作全部在主库执行.

2.假设主库数据文件6破坏.借助备库恢复主库.
CREATE TABLESPACE TEA DATAFILE
  '/mnt/ramdisk/book/tea01.dbf' SIZE 40M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT MANUAL
FLASHBACK ON;

SCOTT@book> create table deptx tablespace tea as select * from dept;
Table created.

SCOTT@book> select count(*) from deptx;
  COUNT(*)
----------
         4

--//假设数据文件6破坏.
$ dd if=/dev/zero of=/mnt/ramdisk/book/tea01.dbf count=10 bs=1M
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0130315 seconds, 805 MB/s

3.测试:
SCOTT@book> alter system flush buffer_cache;
System altered.

SCOTT@book> select count(*) from deptx;
select count(*) from deptx
*
ERROR at line 1:
ORA-03135: connection lost contact
Process ID: 2772
Session ID: 274 Serial number: 5

--//实际上脏块文件无法写盘,在alert出现:
ALTER SYSTEM: Flushing buffer cache
Wed Jul 18 08:31:59 2018
Read of datafile '/mnt/ramdisk/book/tea01.dbf' (fno 6) header failed with ORA-01210
Hex dump of (file 6, block 1) in trace file /u01/app/oracle/diag/rdbms/book/book/trace/book_ckpt_2678.trc
Corrupt block relative dba: 0x01800001 (file 6, block 1)
Completely zero block found during datafile header read
Rereading datafile 6 header failed with ORA-01210
Hex dump of (file 6, block 1) in trace file /u01/app/oracle/diag/rdbms/book/book/trace/book_ckpt_2678.trc
Corrupt block relative dba: 0x01800001 (file 6, block 1)
Completely zero block found during datafile header read
Errors in file /u01/app/oracle/diag/rdbms/book/book/trace/book_ckpt_2678.trc:
ORA-63999: data file suffered media failure
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/mnt/ramdisk/book/tea01.dbf'
ORA-01210: data file header is media corrupt
Errors in file /u01/app/oracle/diag/rdbms/book/book/trace/book_ckpt_2678.trc:
ORA-63999: data file suffered media failure
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/mnt/ramdisk/book/tea01.dbf'
ORA-01210: data file header is media corrupt
CKPT (ospid: 2678): terminating the instance due to error 63999
Wed Jul 18 08:32:00 2018
System state dump requested by (instance=1, osid=2678 (CKPT)), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/book/book/trace/book_diag_2662_20180718083200.trc
Dumping diagnostic data in directory=[cdmp_20180718083200], requested by (instance=1, osid=2678 (CKPT)), summary=[abnormal instance termination].
Instance terminated by CKPT, pid = 2678

4.恢复:
SYS@book> startup
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/mnt/ramdisk/book/tea01.dbf'

SYS@book> alter database datafile 6 offline;
Database altered.

SYS@book> alter database open ;
Database altered.

$ rman target sys/oracle@bookdg auxiliary sys/oracle@book
--//注意主库以auxiliary方式登陆.备库以target方式登陆.也是与以前做duplicate写反.

RMAN>  BACKUP AS COPY DATAFILE 6 AUXILIARY FORMAT '/mnt/ramdisk/book/tea01.dbfx' reuse;

Starting backup at 2018-07-18 08:40:59
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/mnt/ramdisk/book/tea01.dbf
output file name=/mnt/ramdisk/book/tea01.dbfx tag=TAG20180718T084059
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2018-07-18 08:41:01

--//害怕覆盖,使用不同的文件名.注:后面的参数reuse可以不用,如果没有覆盖的情况下.

--//192.168.100.78 .改名
$ ls -l /mnt/ramdisk/book/tea01.dbf*
-rw-r----- 1 oracle oinstall 10485760 2018-07-18 08:31:59 /mnt/ramdisk/book/tea01.dbf
-rw-r----- 1 oracle oinstall 41951232 2018-07-18 08:41:00 /mnt/ramdisk/book/tea01.dbfx

$ mv /mnt/ramdisk/book/tea01.dbf /mnt/ramdisk/book/tea01.dbf_bad
$ mv /mnt/ramdisk/book/tea01.dbfx /mnt/ramdisk/book/tea01.dbf

--//注:再次注意,有一次测试不小心,dd if=/dev/zero of=/mnt/ramdisk/book/tea01.dbf count=10 bs=1M
--//原来的文件变成了10M.注意dd一定要加conv=notrunc参数.再次提醒自己.

SYS@book> alter database datafile 6 online;
alter database datafile 6 online
*
ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: '/mnt/ramdisk/book/tea01.dbf'

SYS@book> recover datafile 6;
ORA-00279: change 13277205619 generated at 07/05/2018 08:49:40 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/archivelog/book/1_726_896605872.dbf
ORA-00280: change 13277205619 for thread 1 is in sequence #726
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 13277209856 generated at 07/05/2018 09:23:42 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/archivelog/book/1_727_896605872.dbf
ORA-00280: change 13277209856 for thread 1 is in sequence #727
ORA-00279: change 13277213030 generated at 07/13/2018 08:43:31 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/archivelog/book/1_728_896605872.dbf
ORA-00280: change 13277213030 for thread 1 is in sequence #728
ORA-00279: change 13277213473 generated at 07/18/2018 08:26:06 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/archivelog/book/1_729_896605872.dbf
ORA-00280: change 13277213473 for thread 1 is in sequence #729
Log applied.
Media recovery complete.

SYS@book> alter database datafile 6 online;
Database altered.

SYS@book> select count(*) from scott.deptx;

COUNT(*)
----------
         4

--//OK,现在已经恢复正常可以使用了.

[20180718]拷贝数据文件从dg库.txt的更多相关文章

  1. 模拟主库创建数据文件,dg备库空间不足时问题处理

    本篇文档测试目的: 模拟实际环境中,主库对表空间添加数据文件,备库空间不足,最终导致MRP进程自动断开,处理方式. 1.问题环境模拟 1)正常情况下的dg 主库创建数据文件,备库接受日志,自动创建表空 ...

  2. 主流数据文件类型(.dat/.txt/.json/.csv)导入到python

    手写很累,复制的同学请点赞犒劳下在下哦 ^_^ 一.对于.CSV类型的数据 它们的数据导入都很简单 且看下面一顿操作: 我平时一般是读取整个文件,直接这样就可以了: import pandas as ...

  3. [terry笔记]11gR2_DataGuard搭建_拷贝数据文件

    11gR2搭建dataguard环境: 自己做的实验,后续按照rman模式搭建.主备切换.模式调整等实验会陆续发上来. primary: OS:oel 6.4 database:11.2.0.4.0 ...

  4. primary库新增数据文件后,standby库无法创建文件并终止数据同步

    主库是RAC环境,使用asm存放数据文件,备库是操作系统本地文件系统存放数据文件.在主库执行以下操作: SQL> alter tablespace ysdv add datafile '+dat ...

  5. ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名

    客户遇到个DG的问题,存储使用的ASM管理,有多个磁盘盘. 在主库创建数据文件,备库自己主动创建的数据文件都在同一磁盘组,而且在主库创建数据文件是指定的是类似**.DBF的名字,到备库也变成了使用AS ...

  6. DG_数据文件转换参数测试

    本篇博客流程图: 一.测试需求及参数说明 二.测试环境进行相关测试 三.问题总结 一.测试需求及参数说明 1.1测试需求说明 DG切换 切换前,数据库版本12.2.0.1,主库rac两节点,备一rac ...

  7. RAC本地数据文件迁移至ASM的方法--非归档模式

    系统环境:rhel6.2_x64+Oracle RAC11g 操作过程: 1.非归档模式 SQL> archive log list; Database log mode No Archive ...

  8. rman的conver方法拷贝ASM文件

    rman中的conver命令主要用户跨平台传输表空间,也可以完成从ASM何本地文件系统中拷贝文件,比用dbms_file_transfer方法要简单 从ASM拷贝到文件系统: 拷贝表空间 在拷贝表空间 ...

  9. SQLLoader6(一个或多个数据文件按条件导入不同的表)

    测试一1.创建表: SQL), col2 )); 表已创建. SQL), col2 )); 表已创建. SQL> COMMIT; 提交完成. 2.数据文件:test.txt A A A B B ...

随机推荐

  1. windows中的常用Dos命令

    # __切换盘符目录__ E/D: # 从C盘切换到E盘或者D盘# __切换到指定文件夹下__cd folder_name(指定文件夹名--相对/绝对路径)cd .. # 返回上一级目录cd / # ...

  2. ThreadLocal父子线程传递实现方案

    介绍InheritableThreadLocal之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:ThreadLocal源码分析解密.在讲解之前我们先列 ...

  3. jquery 回车键实现表单提交

    JQery http://jquery.cuishifeng.cn/keydown.html 键盘事件参考:1.keydown()keydown事件会在键盘按下时触发.2.keyup()keyup事件 ...

  4. thymeleaf 的使用

    thymeleaf 语法详解1.变量输出: th:text :在页面中输出某个值 th:value :将一个值放到input标签中的value中.2.判断字符串是否为空 ①:调用内置对象一定要用# ② ...

  5. php获取父目录的方法 dirname()

    dirname() 方法,获取父目录的方法,官方文档:http://php.net/manual/en/function.dirname.php 在 php 7.0 后,dirname() 支持两个参 ...

  6. docker学习系列(二):使用Dockerfile创建自己的镜像

    dockerfile可以允许我们自己创建镜像,通过编写里面的下载软件命令,执行docker build 即可生成镜像文件. 初尝dockerfile 新建一个目录test,然后进入这个目录,创建一个名 ...

  7. 光盘作为yum源

    1.挂载光盘 mkdir /media/cdrom       //在/media下建立cdrom目录,默认情况是没有的  mount /dev/cdrom /mnt/cdrom2.进入 /etc/y ...

  8. 一篇迟到的gulp文章,代码合并压缩,less编译

    前言 这篇文章本应该在去年17年写的,但因为种种原因没有写,其实主要是因为懒(捂脸).gulp出来的时间已经很早了,16年的时候还很流行,到17年就被webpack 碾压下去了,不过由于本人接触gul ...

  9. Python和Java编程题(三)

    1.题目:判断101到200之间有多少个素数,并输出所有素数 题目分析:判断一个数是否为素数,只需要判断这个数有没有除1和它自身外的其他因数.因此,判断这个数能否被2-它的平方根中的任意一个数整除即可 ...

  10. numpy使用指南

    numpy.array numpy.array是numpy中用于处理n阶数组的对象,是其类族中的重要基类. numpy.array可以表示任意维的数组,可以使用构造函数初始化: arr = numpy ...