Oracle 12c多租户特性详解:PDB 的备份与恢复

由于 PDB 的引入,Oracle 数据库的备份和恢复也发生了很多变化,基于 PDB 级别的表空间、库备份同时被支持。以下通过实际测试介绍一下12c中关于 PDB 的备份恢复过程。

⑴ 启动归档模式

首先启动数据库的归档模式(需要以IMMEDIATE方式关闭数据库,执行模式更改):

根据数据库的实际情况,设置闪回恢复区(注意在生产环境中设置合理的闪回区非常重要):

尝试使用RMAN连接到数据库,注意12c中增加了新的用户SYSBACKUP用于备份管理,并且RMAN中开始支持简单的SQL查询语句:

通过reportschema的命令,可以列出数据库中的表空间和文件信息等,在12c的输出中,临时表空间作为一个独立的信息部分被显示出来:

⑵ 对 PDB 执行备份

在12c中支持对单个或多个PDB执行独立的备份操作,如类似如下命令示范备份多个或单个PDB:

RECOVER操作也响应的可以针对PDB级别来进行:

以下命令对CDB$ROOT进行备份:

以下是对单个常规PDB进行备份的执行过程:

可以通过指定PDB名称和表空间名称的方式,对PDB中的表空间进行独立备份,以下命令备份了名称为ENMO的PDB内部的ENMO表空间文件:

同样在备份时可以指定PLUS ARCHIVELOG参数,对归档日志进行同时备份,以下是常规的命令示范:

⑶ 对PDB及PDB文件执行恢复

在执行恢复时,可以针对PDB或者PDB中的表空间进行,以下范例通过对于PDB ENMO中的系统表空间恢复,演示PDB的恢复过程:

以下测试演示了对PDB中的单个表空间进行在线恢复的过程。如果某个表空间受损,可以执行紧急的离线操作:

然后可以通过RMAN执行基于单个表空间进行恢复:

恢复完成之后可以将表空间在线,这就完成了恢复:

⑷ 对 PDB 执行不完全恢复

在12c中,Oracle 还支持基于单个 PDB 的不完全恢复,以下是一个示范的测试过程。

首先连接到 PDB,创建一个测试用户:

接下来执行对于全库的基础的全库备份:

接下来我们在数据库中执行一个系列的数据操作,创建测试表,插入数据,然后删除部分数据,记录删除前的 SCN 信息:

现在尝试通过备份恢复数据库至 SCN 3254957,也就是删除数据之前的时间点。

在恢复之前需要首先关闭 PDB,执行 PDB 级别的 Restore 操作:

检查数据表,数据已经恢复到删除前的记录数量:

注意在不完全恢复过程中,需要产生辅助实例,在后台会生成相应的日志等目录结构.以下是完成不完全恢复遗留在辅助目录中的部分文件:

在辅助恢复中,生成了大量的临时目录和文件,以下是在我的测试环境中遗留的文件目录:

以下是恢复过程中辅助实例告警日志记录的内容(保留部分重要内容供读者参考):

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏水击三千

Android 简单的代码混淆

Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译。因为android程序多数是java语言开发的,而java代码很容...

3077
来自专栏Android干货

Android项目实战(五十):微信支付 坑总结

   包名在app目录下的build.gradle文件中可以查看,为applicationId 键的值

1611
来自专栏一个会写诗的程序员的博客

Android 关于“NetworkOnMainThreadException”出错提示的原因及解决办法

出现Android.os.NetworkOnMainThreadException错误提示的原因

743
来自专栏小樱的经验随笔

【批处理学习笔记】第十三课:常用dos命令(3)

网络命令 ping 进行网络连接测试、名称解析 ftp 文件传输 net 网络命令集及用户管理 telnet 远程登陆 ipconfig显示、修改TCP/IP设...

2796
来自专栏木头编程 - moTzxx

Nginx web 资源防盗链学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1622
来自专栏jojo的技术小屋

原 荐 七牛 JSSDK 配置+常见问题

作者:汪娇娇 时间:2017年7月7日 一、铺垫 依靠七牛上传图片,其实有很多方法,先说说有哪些方法,以及这些方法各自的优缺点吧(移动端)。 way1:前端只负...

6465
来自专栏运维小白

Linux基础(day53)

12.21 php-fpm的pool php-fpm的pool目录概要 vim /usr/local/php/etc/php-fpm.conf//在[globa...

19410
来自专栏Web 开发

各种Kill跨域Boss的方法

对于JSON数据,可以很容易的获取。不过在结合Android的WebView后会存在一个很严重的问题。

660
来自专栏开发之途

Android ADB命令的使用

1443
来自专栏yukong的小专栏

【ssm个人博客项目实战09】写博客与自定义监听器1、2、3、

前面我们已经完成了博客的分页显示模糊查询删除等功能,现在我们就讲一下如何实现写博客与修改博客的功能。

973

扫码关注云+社区