【赵渝强老师】执行Oracle的冷备份与冷恢复

2024-08-23 18:04

本文主要是介绍【赵渝强老师】执行Oracle的冷备份与冷恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

  冷备份与冷恢复是指发生在数据库已经正常关闭的情况下进行的备份和恢复。由于此时数据库已经关闭,通过冷备份可以将数据库的关键性文件拷贝到另外存储位置。冷备份因为只是拷贝文件,因此备份的速度非常快。在执行恢复时,只需将文件再拷贝回去就可以很容易恢复到某个时间点上。冷备份的最大缺点在于在冷备份过程中,数据库必须是关闭状态,不能提供外部的访问。
  视频讲解如下:

执行Oracle的冷备份与冷恢复

【赵渝强老师】执行Oracle的冷备份与冷恢复

  下面将通过具体的操作示例来演示如何使用Oracle RMAN执行数据库的冷备份与冷恢复。

一、使用Oracle RMAN执行数据库的冷备份

  使用RMAN执行数据库的冷备份具体的步骤如下:
(1)创建RMAN冷备份存放的目录。

mkdir -p /home/oracle/backup/rman/archive/cold

(2)执行RMAN的脚本对Oracle数据库进行冷备份。

RMAN>  run{# 关闭数据库shutdown immediate;# 启动数据库到mount状态startup mount;# 分配备份的通道allocate channel c1 type disk format '/home/oracle/backup/rman/archive/cold/full_%d_%T_%s';# 执行备份backup database include current controlfile;# 释放通道release channel c1; # 打开数据库sql 'alter database open';
}

二、使用Oracle RMAN执行数据库的冷备份

  下面将收到删除数据文件和控制文件来模拟数据库运行出错的情况。由于丢失了所有的数据文件和控制文件,因此在使用RMAN执行恢复的时候,需要先恢复控制文件,再恢复数据文件。
(1)确认c##scott用户下员工表中的记录数。

SQL> select count(*) from c##scott.emp;COUNT(*)
----------14  # 这里显示的14条数据是有备份的。

(2)往表中新插入一条记录

SQL> insert into c##scott.emp(empno,ename,sal,deptno) values(1,'Tom',1000,10);
SQL> commit;
SQL> select count(*) from c##scott.emp;COUNT(*)
----------15  # 新插入的第15条记录没有备份。

(3)强制关闭数据库

SQL> shutdown abort;

(4)模拟文件的丢失,删除所有的数据文件和控制文件

cd /u01/app/oracle/oradata/ORCL
rm -rf *.dbf
cd /u01/app/oracle/oradata/ORCL
rm -rf control01.ctl
cd /u01/app/oracle/fast_recovery_area/ORCL
rm -rf control02.ctl

(5)启动数据库到nomount状态,恢复控制文件。

RMAN> startup nomount

(6)执行控制文件的恢复

RMAN> restore controlfile from '/home/oracle/backup/rman/archive/cold/full_ORCL_20220327_14';

这里使用了前面的冷备份恢复控制文件。如果生成的备份集有多个,体积较小的备份集中包含了控制文件的备份。

  输出的信息如下:

Starting restore at 27-MAR-22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=47 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/ORCL/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/ORCL/control02.ctl
Finished restore at 27-MAR-22

(8)将数据库开启到mount状态,恢复数据文件。

RMAN> alter database mount;			# 将数据库启动到mount状态
RMAN> restore database;				# 转储数据库文件
RMAN> recover database;				# 恢复数据库
RMAN> alter database open resetlogs;		# 打开数据库

使用resetlogs代表这是是一个不完全恢复,但由于当前是在归档模式下,因此可以实现数据库的完全恢复。

(9)验证c##scott用户下员工表中的记录数。

SQL> select count(*) from c##scott.emp;输出的信息如下:COUNT(*)
----------15# 员工表中的15条记录被恢复成功了。

这篇关于【赵渝强老师】执行Oracle的冷备份与冷恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100110

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

查询Oracle数据库表是否被锁的实现方式

《查询Oracle数据库表是否被锁的实现方式》本文介绍了查询Oracle数据库表是否被锁的方法,包括查询锁表的会话、人员信息,根据object_id查询表名,以及根据会话ID查询和停止本地进程,同时,... 目录查询oracle数据库表是否被锁1、查询锁表的会话、人员等信息2、根据 object_id查询被

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE