Oracle 备份与还原方案Windows2008 Oracle11g

本文详细介绍了Oracle数据库在Windows 2008环境下使用RMAN(Recovery Manager)进行备份与恢复的步骤和配置。内容涵盖RMAN的基本指令、配置参数解析、备份策略、动态性能表以及不同场景下的恢复操作,包括全库备份、数据文件恢复、日志文件恢复、不完全恢复等,旨在提供全面的RMAN操作指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. Rman备份与恢复

  1. Rman工具简介
    RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。

  2. 使用rman工具之前需要了解
    2.1. Rman链接方式:
    查看数据库的信息:

C:\Users\Administrator>sqlplus / as sysdba
SQL> select instance_name,status from v$instance;
SQL> SELECT DBID,NAME,LOG_MODE FROM V$DATABASE;

在这里插入图片描述
本地链接:$ rman target /
在这里插入图片描述
远程链接:$ rman target sys/oracle@orcl
在这里插入图片描述
2.2. 基本指令:
2.2.1. 执行sql语句:

RMAN> sql 'alter system switch logfile';

在这里插入图片描述
2.2.2. Rman默认配置:
2.2.2.1. 默认配置显示:

RMAN> show all;

在这里插入图片描述
#default 表示该条配置仍然是初始的默认配置。
如果我们想把某条更改过的配置再置为初始应该怎么办呢,很简单,
用如下命令:CONFIGURE … CLEAR;
例如:

RMAN> CONFIGURE RETENTION POLICY CLEAR;

实例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.3. 主要默认配置解析:
2.3.1. CONFIGURE RETENTION POLICY 配置备份保留策略
两种保留策略:
基于时间:

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;

基于冗余数量:

CONFIGURE RETENTION POLICY TO REDUNDANCY n;

也可以取消备份保留策略:

CONFIGURE RETENTION POLICY TO NONE; 

2.3.2. CONFIGURE BACKUP OPTIMIZATION 配置备份优化
如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。
备份优化,包括OFF 和ON 两个状态
打开备份优化:

CONFIGURE BACKUP OPTIMIZATION ON;

关闭备份优化:

CONFIGURE BACKUP OPTIMIZATION OFF;

2.3.3. CONFIGURE DEFAULT DEVICE TYPE 配置IO 设备类型
RMAN 支持的 IO 设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。
使用磁盘设备:

CONFIGURE DEFAULT DEVICE TYPE TO DISK;

使用磁带设置:

CONFIGURE DEFAULT DEVICE TYPE TO SBT;

2.3.4. CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份
是否自动备份,包含两个状态:OFF 和ON
打开自动备份

CONFIGURE CONTROLFILE AUTOBACKUP ON;

禁止自动备份

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

同时可以通过如下配置指定备份的控制格式,路径。例如:

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ' D:\oraclebak\rmanback\autoctl\%F';

在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以通过如下配置:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORCL.ORA';

2.3.5. CONFIGURE DEVICE TYPE 设置并行备份
RMAN 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
指定在以后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢复,当然也可以在run 中指定通道来决定备份与恢复的并行程度。
默认情况下,自动分配通道的并行度为1,如果你通过设置PARALLELISM 设置了并行通道为2,那么在run 块中,如果你没有单独通过ALLOCATE CHANNEL 命令指定通道,它会默认使用2 条并行通道,如果你在run 命令块中指定了数个ALLOCATE CHANNEL,那么rman 在执行备份命令时会以你设置的channel 为准,而不管configure中配置了多少个并行通道。
需要注意的一点是,在backup 命令中有一个FILESPERSET参数该参数是指rman建立的每个备份集中所能包含的备份片段(即磁盘文件)的最大数,该参数默认值为64,如果在执行backup 命令时没有指定该参数值,那么rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。filesperset 值不要小于你设定的通道数。

2.3.6. CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度

2.3.7. CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ’ D:\oraclebak\rmanback\databak\DB_ORCLBAK_%U’;
设置RMAN默认备份介质保存目录 D:\oraclebak\rmanback\databak

2.3.8. CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。

RMAN> show channel; // 通道分配
RMAN> show device type; // IO 设备类型
RMAN> show retention policy; // 保存策略
RMAN> show datafile backup copies; // 多个备份的拷贝数目
RMAN> show maxsetsize; // 备份集大小的最大值
RMAN> show exclude; // 不必备份的表空间
RMAN> show backup optimization; // 备份的优化

2.4. Format字符串替换变量
使用FORMAT 参数时可使用的各种替换变量,如下:
%c:备份片的拷贝数(从1 开始编号);
%d:数据库名称;
%D:位于该月中的天数(DD);
%M:位于该年中的月份(MM);
%F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;
%n:数据库名称,并且会在右侧用x 字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8 字符名称,利用%u 可以为每个备份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从1 开始编号;
%U:是%u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式;
%s:备份集的号;
%t:备份集时间戳;
%T:年月日格式(YYYYMMDD);s
注:如果在BACKUP 命令中没有指定FORMAT 选项,则RMAN 默认使用%U 为备份片段命名。

2.5. RMAN 备份相关的动态性能表
V $ ARCHIVED_LOG:本视图包含了所有归档重做日志文件的创建情况,备份情况以及其他信息。
V $ BACKUP_CORRUPTION:这个视图显示了RMAN 在哪些备份集中发现了损坏的数据坏。在你使用BACKUP VALIDATE 命令对备份集进行检查时如果发现了损坏的数据块, RMAN 将在这个视图中写入记录。
V $ COPY_CORRUPTIO:本视图显示了哪些镜像复制备份文件已经被损坏。
V $ BACKUP_DATAFILE:本视图通常用来获取每个数据文件中非空白数据块的数量,从而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的数据块的信息。
V $ BACKUP_REDOLOG:本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
V $ BACKUP_SET:本视图显示了已经创建的备份集的信息。
V $ BACKUP_PIECE:本视图显示了已经创建的备份片段的信息。

2.6. 备份信息
2.6.1. 列出备份信息

 列出数据库中所有文件的备份信息:
 RMAN>LIST BACKUP OF DATABASE;

 列出指定表空间的备份信息:
 RMAN>LIST COPY OF TABLESPACE 'SYSTEM';

 列出指定数据文件的备份信息:
 RMAN>LIST BACKUP OF DATAFILE
 ' D:\app\Administrator\oradata\orcl\USERS01.DBF';

2.6.2. 删除备份信息

2.6.2.1. 删除陈旧备份
当使用 RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。

RMAN> delete obsolete;

2.6.2.2. 删除 EXPIRED 备份
执行 crosscheck 命令核对备份集,如果备份集丢失或者损坏,那么会将该备份集标记为 EXPIRED 状态。为了删除相应的备份记录,可以执行 delete expired backup 命令。

RMAN> delete expired backup;

2.6.2.3. 删除 EXPIRED 副本

RMAN> delete expired copy;

2.6.2.4. 删除特定备份集

RMAN> delete backupset 5;

2.6.2.5. 删除特定备份片

RMAN> delete backuppiece ' /u01/app/rmanback/databack/20180810/full_arch_03ta778l_1_1.rarch';

2.6.2.6. 删除所有备份集

RMAN> delete backup;

2.6.2.7. 删除特定映像副本

RMAN> delete datafilecopy ' D:\oraclebak\rmanback\databak\full_db_05ta77ck_1_1.rdbf';

2.6.2.8. 删除所有映像副本

RMAN> delete copy;

2.6.2.9. 在备份后删除输入对象

RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = '' D:\oraclebak\rmanback\databak\%u.bak'' delete input;

备份备份集22后,删除原备份集的id 22;

3. 备份工具rman的使用
3.1. 检查数据库归档状态:
进入 sqlplus 使用下面命令检查:

SQL> archive log list

在这里插入图片描述
3.2. 开启归档及归档设置
先创建一个存放archive log的目录:mkdir $ORACLE_BASE/archdata
登陆sqlplus,设置归档路径:

SQL> alter system set log_archive_dest_1='location= D:\app\Administrator\archlivlog' scope=both;
SQL> select dest_name,destination,status,error from v$archive_dest where dest_name='LOG_ARCHIVE_DEST_1';

关闭数据库重新启动到mount阶段打开归档日志

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 
SQL> startup mount    
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size                  2257272 bytes
Variable Size             507514504 bytes
Database Buffers          2642411
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataGiant

您的鼓励是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值