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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文介绍了数据库的冷备份与冷恢复技术,包括其定义、优缺点及操作步骤。通过Oracle RMAN工具,详细演示了如何执行冷备份和冷恢复,确保数据库在关闭状态下完成备份,并能快速恢复到指定时间点。文中还提供了具体的操作示例和代码,帮助读者更好地理解和实践。

b097.png


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

   

视频讲解如下:

   

下面将通过具体的操作示例来演示如何使用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


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

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

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


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

SQL> select count(*) from c##scott.emp;

# 输出的信息如下:
  COUNT(*)
----------
15
# 员工表中的15条记录被恢复成功了。



相关文章
|
10天前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
10天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
10天前
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
|
10天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
10天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
10天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
10天前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的物理存储结构
Oracle的物理存储结构包括数据文件、联机重做日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件。这些文件在硬盘上存储数据库的各种数据和日志信息,确保数据库的正常运行和故障恢复。视频讲解和详细说明见原文。
|
10天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的数据字典
数据字典是Oracle数据库的核心组成部分,包含几乎所有数据库信息。它由一组表和视图组成,供只读访问。数据字典有四种命名前缀,分别代表不同类型的元数据。通过示例展示了如何查询用户表空间、角色、表空间信息及用户创建的表。视频讲解进一步帮助理解。
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据库

推荐镜像

更多