当前位置:首页 > 技术文章 > 正文内容

Oracle数据库的RMAN备份,数据、控制、初始化文件、重做日志恢复

arlanguage2个月前 (03-19)技术文章10

Oracle数据库使用RMAN备份,需要把数据库的非归档模式改成归档模式,启动控制文件的自动备份,全库备份。

1、改变数据库为归档模式

SQL>alter database archivelog;(归档改为非归档语句为alter database noarchivelog;)

2、启动控制文件的自动备份

RMAN>configure controlfile autobackup on;

3、全库备份

3.1最简单的全库备份

RMAN>backup database;

Oracle数据库的恢复(三)

前面有两篇文章写了恢复,这次恢复是丢失数据文件、控制文件、重做日志、初始化文件的恢复。

恢复的顺序是,初始化文件—控制文件—恢复数据库—重做日志文件

一、恢复前检查

1.1、进入数据库的rman环境

[oracle@shell orcl]$ rman target/

1.2、查看备份文件情况

RMAN> list backup;

1.3、删除文件

删除初始化文件spfileorcl.ora

位置
/usr/local/oracle/product/11.2.0/db_1/dbs

[oracle@shell dbs]$ rm spfileorcl.ora

删除控制文件、数据文件、重做日志文件,

在目录

/usr/local/oradata/orcl

[oracle@shell orcl]$ rm *.*

二、恢复

2.1以oracle用户(linux)的sys用户登录数据库

[oracle@shell orcl]$ sqlplus / as sysdba

2.1.1查询emp表

SQL> select count(*) from bankuser.emp;

上图显示由于找不到数据库的数据文件而报错

2.1.2强制关闭数据库

SQL>shutdown abort

2.1.3重新启动,由于找不到初始化文件而报错

SQL>startup

2.1.4查看数据库实例

SQL> select instance_name,status from v$instance;

由上图知悉,数据库实例没有启动

2.2恢复初始化文件

2.2.1借用初始化文件启动

[oracle@shell orcl]$ rman target/

先从备份中恢复初始化文件spfile,现在需要一个初始化文件来启动数据库到nomount状态。可以在
/usr/local/oracle/admin/orcl/pfile目录下找到一个安装数据库时所产生的pfile文件。

由上图知悉,一个名为init.ora.910202014321的文件,可以修改该文件生成一个数据库的初始化文件pfile。如果该文件中控制文件和其他参数都一致,可以使用该文件来启动数据库到nomount状态。

SQL> startup pfile='/usr/local/oracle/admin/orcl/pfile/init.ora.910202014321';

由上图可知,找不到控制文件而报错。

2.2.2查看实例状态

SQL> select instance_name,status from v$instance;

由上图可知数据库为nomount状态。

2.2.3从原来的的数据库备份中恢复原来的数据库初始化文件spfile。

[oracle@shell pfile]$ rman target/

RMAN> restore spfile from autobackup;

由上图知悉成功恢复了spfile文件,在
/usr/local/oracle/product/11.2.0/db_1/dbs中查看

2.2.4接下来关闭数据库,用恢复出来的初始化文件spfile启动数据库到nomount状态

[oracle@shell RmanBackup]$ sqlplus / as sysdba

SQL> shutdown immediate;

SQL> startup nomount

2.2.5查看当前数据库初始化文件spfile的位置

SQL> show parameter spfile;

2.3恢复数据库的控制文件

2.3.1进入rman并恢复

[oracle@shell RmanBackup]$ rman target/

RMAN> restore controlfile from autobackup;

由上图知悉,恢复了一个控制文件

2.3.2验证

在/usr/local/oradata/orcl目录中也能看到

2.4恢复数据库文件

2.4.1先设置数据库到mount状态,

RMAN> alter database mount;

2.4.2从原来的备份中还原数据库文件

RMAN> restore database;

2.4.3在目录下查看

/usr/local/oradata/orcl

由上图知悉,恢复了存在的数据文件。

2.5恢复数据库

SQL> recover database using backup controlfile until cancel;

2.6恢复重做日志文件

重做日志文件不能恢复,只能使用resetlog重新创建,并且用archive验证

2.6.1重新创建日志文件并验证

SQL> alter database open resetlogs;

SQL> archive log list;

2.7验证数据库

SQL> select instance_name,status from v$instance;

SQL> select count(*) from bankuser.emp;

至此,数据库恢复成功

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3417.html

分享给朋友:

“Oracle数据库的RMAN备份,数据、控制、初始化文件、重做日志恢复” 的相关文章

16《Nginx 入门教程》Nginx防盗链配置

百度百科的解释如下:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。盗链在如今的互联网世界无处不在...

Nginx重写规则(2) nginx中地址重写有哪些选项

需求:研发提出了一些路由跳跃的要求。解决问题:在特殊情况下,如果业务和研发无法快速处理,则需要运维快速跳转来解决临时问题并避免出现较大的漏洞。Nginx重写规则案例一:临时将请求路径/colorv1/getcolorv1 的请求转发到 v2,且带着问号后面的参数 :location ~ ^/(.)/...

安装Code-server并配置用于多用户的反向代理(Nginx)

1.安装code-servercode-server的项目网址在cdr/code-server.在code-server的README中, 提供了两份部署指南, 一份是用于部署在AWS等云服务的deploy, 另一份则是我们要用的用于部署在本地的quickstart.Guide非常简洁明了, 就三步...

php高并发的瓶颈到底在哪

php高并发的瓶颈到底在哪?是同步阻塞?还是nginx+fpm不断创建-销毁进程资源过度消耗?高并发到底是什么问题,是语言问题嘛,为什么说php不适合高并发?求大佬指点从2009年后一直用lnmp,从5.2.17一直到现在的PHP7.4,做的项目无数个,大到日IP10W+、PV50W+的平台,小到日...

Nginx实战-监控nginx.conf配置文件,配置文件修改自动重启nginx

1.1 实现目标在学习或者进行nginx测试的时候,耗费在 nginx -s reload/stop 上的命令时间很多,修改任意内容都需要重新启动或者停止启动,基本上状态就是在下面5个状态间来回切换vim nginx.conf修改nginx.conf保存nginx.conf重启nginx刷新浏览器....

VUE3前端开发入门系列教程

一直以来使用ThinkJS开发,使用Semantic-UI手写代码,又缺少一些table等插件,好累。平时使用NodeJS开发后端较多,一直有接触VUE想法,总是不得入门(可能是思维固化了),再次深入研究,直接从VUE3入手,并借这次机会写个入门系列教程,一是做个笔记备查,二是与大家分享。初次入门V...