oracle12c灾备,Oracle 12c PDB的数据备份恢复

news/2025/2/22 8:37:08

今天测试了一下12c中的PDB还原恢复,里面还是有不少的差别。

我就简单模拟了一个破坏场景,是在一个未打开的PDB tcymob0从中删除了数据文件usres01.dbf,然后尝试备份恢复。

当然在这个操作前,我们使用RMAN来备份,使用命令backup database即可备份整个数据库。

手工破坏的语句如下:

$ rm /U01/app/oracle/oradata/test12cs/tcymob0/pdbseed/users01.dbf这个时候的还原工作就很清晰了,直接还原对应的表空间或者数据文件都可以。比如表空间是users,则需要指定PDB的名字。

RMAN> restore tablespace tcymob0:users;

RMAN> recovertablespace tcymob0:users;

Starting recover at 2017-06-03 22:58:31

using channel ORA_DISK_1

starting media recovery

media recovery complete, elapsed time: 00:00:00

Finished recover at 2017-06-03 22:58:31

整个恢复工作做好之后,留下来的任务就是直接启库了,但是奇怪的是却报了下面的错误。

SQL> alter pluggable database tcymob0 open;

alter pluggable database tcymob0 open

*

ERROR at line 1:

ORA-65086: cannot open/close the pluggable database

Oracle对这个错误的解释如下:

oerr ora 65086

65086, 00000, "cannot open/close the pluggable database"

// *Cause:  The pluggable database has been unplugged.

// *Action: The pluggable database can only be dropped.

//

这下我还真想起来了,之前测试的时候,我使用RMAN模拟跨平台的PDB备份恢复,使用了unplug的方式,根据这个错误,对于这个问题也有了思路。

之前unplug的语句如下:

ALTER PLUGGABLE DATABASE tcymob0 UNPLUG INTO '/tmp/tcymob0.xml';

在这个基础上,我们可以使用plugging的方式重新挂载即可。

drop pluggable database tcymob0;

CREATE pluggable DATABASE tcymob0 USING '/tmp/tcymob0.xml' NOCOPY;

alter pluggable database tcymob0 open;

而在这个时候,需要做的第一件事情,就是重新备份了。因为有了drop pluggable database的操作之后,容器的设置会发生变化,比如con_id,原来的备份就识别不了了。

RMAN> restore tablespace tcymob0:system;

Starting restore at 2017-06-03 23:29:49

RMAN-06026: some targets not found - aborting restore

RMAN-06023: no backup or copy of datafile 137 found to restore


http://www.niftyadmin.cn/n/1998726.html

相关文章

漫谈架构有感——软件架构师如何工作

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技…

常见安全算法(MD5、SHA1、Base64等等)总结

本文主要对消息摘要算法和加密算法做了整理,包括MD5、SHA、DES、AES、RSA等,并且提供了相应算法的Java实现和测试。 一 消息摘要算法 1. 简介: 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密只有输入…

php可变函数匿名函数,php中的可变函数和匿名函数

可变函数一个函数的名,是一个变量的时候,就称为可变函数header("content-type:text/html;charsetutf8");function f1(){echo "这是一个可变函数";}$v "f1";$v();匿名函数匿名函数 就是没有名字的函数形式:$v1…

Web服务搜索与执行引擎(一)——项目提出的有关背景

在接下来的blog里,我将会写一系列项目总结的文章,里面很多内容是我们Cactus团队成员一起完成的,最主要的目的是把我们的想法说出来,跟大家探讨,欢迎大家提出宝贵意见。 1 项目的背景和意义1.1 Web服务出现的意义…

卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar

ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法。那么我今天说的是ViewPager中的PageTransformer属性,用好这个属性可以让我们的应…

oracle索引列like走索引吗,sql – Oracle查询在索引号列上使用“like”,性能不佳

在查询1上,正在执行全表扫描,即使id是索引列.查询2实现了相同的结果,但更快.如果查询1运行返回索引列,那么它将快速返回,但如果返回非索引列,或者整个行是查询需要更长时间.在查询3中,它运行速度很快,但是“代码”列是VARCHAR2(10)而不是NUMBER(12),并且与“id”相同.为什么Que…

Web服务搜索与执行引擎(二)——相关技术的介绍

在开发本项目时,我们使用的相关技术主要有以下几个方面。 1 Web服务的开发技术 1.1 Java平台上生成Web服务利用XFireTomcat实现JAVA平台的POJO发布为Web Service,Tomcat是WEB容器,用于处理SOAP消息中的HTTP部分,XFire是SOAP引擎,用…

linux实时监控目录文件修改,Shell脚本监控目录内文件改动

废话不多说了,直接给大家贴代码,具体代码如下所示:#! /bin/bashwebroot"/home/www/"cp /dev/null rsync_fileif [ ! -f file.md5 ];thenfind $webroot -type f -exec md5sum {} \; >>file.md5elsefor file in $(md5sum -c fi…