转眼间已参加工作一年半载有余,对于Oracle数据库运维的工作已经逐步适应,对于Oracle数据库整体上也已经有了一点点的了解,不过各种方面的知识特别的零散,之前听一位项目组中的大拿跟我说起工作中的事,说要学Oracle就建立起一个系统的知识体系,把它学专业,后来就想通过参加DBA的考试,建立起一份属于自己的Oracle知识体系,将自己再学习过程中做的笔记分享出来,来记录我的Oracle学习的过程,顺便也督促自己好好学习,争取发布的每一篇博客都是干货满满!
由于最近这段时间对于Oracle的备份接触的比较多,也查阅了很多的资料,对于备份这一块也比较感兴趣,所以我的学习顺序是从Oracle的备份与恢复这一块开始,学习完备份与恢复之后学习多租户的相关知识,先考DBA考试中的063这一门考试,然后学习Oracle的体系结构,最后学习SQL语句的相关知识。温馨提示一下,学习备份恢复相关内容的时候要对Oracle体系结构有一定的了解学习起来会比较轻松。每一块的知识我都会在做好相关的笔记之后发布出来供大家参考学习,也希望大家能多多指点!
话不多说,正文开始!
RPO:恢复的目标点
RTO:恢复的时间目标点
备份与恢复:
物理保护:RMAN(Oracle racovery manager Oracle数据管家)、ORACLE安全备份
逻辑保护:闪回技术
灾难恢复:
物理保护:DG、OGG
OSB Oracle secure backup 企业级磁带库级备份管理 (需要rman支持)
Oracle data guard Oracle数据卫士
语句错误(权限不足、表空间不足、字段类型错误)
用户进程故障(客户端错误)
网络故障(监听异常、网络接口卡异常、网络连接)
用户错误(用户无意间删除或者修改了数据、删除表)
实例故障(掉电、硬件故障、关键的后台进程故障(操作系统后台进程故障和数据库后台进程故障)、紧急关机(shutdown abort))
介质故障(磁盘故障、磁盘控制器故障、数据库操作所需的文件的删除或损坏)
闪回技术:一组可支持查看数据的过去状态与恢复数据的功能,无需从备份中还原数据;与undo、redo息息相关。
闪回查询:
闪回版本查询:查看特定时间间隔内已经提交了的行记录;
闪回事务查询:查看在事务级别进行的所有数据库更改;
闪回事务回退:回滚特定事务和从属事务
闪回表:在不影响其他数据库对象的情况下,将一个或多个表恢复成过去的样子
闪回删除:通过将删除的表与相关对象(例如索引的触发器)一起从回收站返回到数据库,来消除删除的影响;
闪回数据库:将数据库返回到过去的时间;
CKPT(检查点)
负责检查点信息更新数据文件头
使用检查点信息更新控制文件
检查点进程向DBWn发出信号
增量检查点:CKPT进程每三秒钟将数据存储在控制文件中,记录DBWn从SGA写入磁盘的修改后的数据块;
检查点位置:检查点的目的是在联机重做日志文件中表述开始实例恢复的位置;
如果发生日志切换,则CKPT将此检查点信息写入数据文件头中;
完全检查点(normal checkpoint):确保在关机期间已将所有提交的数据写入数据文件中;
CKPT信息包括:检查点位置,系统更改号(SCN),在线重做日志文件中开始恢复的位置,有关日志的信息;
以下操作会触发完全检查点事件
1、日志切换:alter system switch logfile
2、DBA发出checkpoint命令:alter system checkpoint
3、对数据文件发生热备时,针对该数据文件的checkpoint也会进行:alter tablespace ts_name begin backup/end backup;
4、当运行alter tablespace/datafile read only的时候;
5、数据库正在shutdown(immediate,transcational,normal);
SCN系统改变号
Oracle中的checkpoint是一个特定的“时间点”发生的,衡量这个“时间点”用的就是SCN,当一个checkpoint发生的时候SCN会被写入文件头中以记录这个checkpoint;(重置redolog时可以重置SCN)
所有的数据库都是redo优先写,比相关的数据文件或者控制文件更优先,优先更新SCN
实例恢复过程:数据文件与控制文件SCN号不同步
1、实例启动(startup mount)
2、前滚(重做):已提交未写入的数据
3、文件中包含已提交和未提交的数据,经过前滚后只剩下未提交已写入的数据
4、数据库打开
5、回滚(撤销):未提交已写入或未提交事务记录进行回滚
6、文件中已提交的数据(只发生在alter database open;阶段)
实例启动的三个阶段:
1、startup nomount; 使用spfile在内存中产生实例,并找到控制文件位置
2、alert database mount; 使用控制文件把所有的数据文件、日志文件进行挂载,并确定相关文件状态;
3、alert database open; 打开数据库(此阶段进行实例恢复)
完全恢复和不完全恢复:
完全恢复:使数据库或表空间保持最新状态,包括到请求恢复的时间点所做的所有提交数据更改;
不完全或时间恢复(PIRT):在请求恢复操作之前,将数据库或表空间恢复到过去的指定时间点;
非归档模式:全库备份必须关闭数据库
无法恢复到最后一次提交的事务
适用与培训和测试环境,适用于数据仓库
归档模式:在开启数据库的状态下全库备份
可以恢复到最后一次提交的事务
适用于生产环境,有些数据仓库不适用
select file#,name from v d a t a f i l e ; − − − − 查 看 确 认 数 据 文 件 位 置 和 编 号 s e l e c t ∗ f r o m v datafile; ----查看确认数据文件位置和编号 select * from v datafile;−−−−查看确认数据文件位置和编号select∗fromvinstance ; ----查看确认数据库状态
rman target / ----进入rman
shutdown immediate ----关闭数据库
startup mount ----启动数据库到mount状态
backup database ----备份数据库(全备)
list backup ----列出相关的备份集(可以看到当前备份的SCN号)
alter database open ----打开数据库
(描述:此处是在非归档模式下进行全库备份,备份成功之后数据库正常打开,关闭数据库之后,然后将所有的数据文件删除,进行数据库恢复,将数据文件删除之后启动数据库,执行命令startup,启动报错,自动会进入到mount状态)
rman target /
restore database; ----进行数据库恢复,会自动从刚刚全库备份文件的位置进行数据库恢复
recover database; ----进行介质恢复,由于刚刚将数据文件删除,没有删除控制文件,所以控制文件和数据文件中的SCN号不一致,这是为了保证控制文件和数据文件的SCN号一致
alter database open resetlogs; ----以重置日志号的方式启动数据库,让数据库的记录重新开始,数据库正常打开
(描述:将数据库关闭之后删除数据文件、进行数据库恢复,并重置日志号,以下是在数据库打开时,将所有的数据文件删除,进行数据库的还原)
rman target / ----进入rman失败,会提示对应的数据文件已经删除,无法进入
sqlplus / as sysdba ----sqlplus可以正常进入
shutdown abort ----紧急关闭数据库
rman target / ----关闭数据库之后可以进入rman
startup ----自动进入mount
restore database;
recover database; ----会报警告,提示SCN号为多少,这是因为还在数据库打开状态下删除了数据文件,导致数据文件有丢失,所以非归档模式下备份数据库会丢失数据
alter database resetlogs;
(描述:在数据库open的状态下删除数据文件,需将数据库关闭之后再进行恢复,这种时候会导致数据的丢失,以下是在数据库open的状态下删除一个数据文件,进行恢复)
shutdown immediate; ----关闭数据库报错,丢失数据文件,无法关闭,必须使用abort参数
shutdown abort; ----数据库关闭
rman target /
startup ----rman启动数据库,自动启动至mount
list failure; ----查看当前数据库故障
advise failure ; ----故障顾问,告诉你处理问题的方法,并告诉你脚本的位置,查看该脚本;
restore datafile n; ----n代表缺失的数据文件编号
recover datafile n;
alter datafile n online;
alter database open ----成功打开数据库
(描述:在数据库关闭的情况下删除一个数据文件,然后进行恢复)
rman target /
startup ----rman启动数据库,自动启动至mount
list failure; ----查看当前数据库故障
advise failure ; ----故障顾问,告诉你处理问题的方法,并告诉你脚本的位置,查看该脚本;
restore datafile n; ----n代表缺失的数据文件编号
recover datafile n;
alter datafile n online;
alter database open ----成功打开数据库
对数据库进行维护:
rman target /
list backup; ----注意备份片的状态为available,有效的
crosscheck backup; ----对数据库备份出来的内容进行交叉检查,
从以上的检查中,可以看到备份片的状态和路径、名称,通过该路径可以将备份片删除(物理上删除),删除之后再进行检查,对应的备份片会变为expired状态,表示该备份片已过期,无效
crosscheck backup; ----再次检查备份文件
delete expired backup; ----删除过期备份(逻辑上删除)
注:所有的备份信息会写入到控制文件当中,crosscheck检查的时候会到实际路径下查看对应的文件,故检查的时候备份文件会变成expired状态
list backup; ----之前的备份消失
crosscheck backup; ----备份消失
RMAN命令类型:独立命令、作业命令
作业命令:
RMAN> RUN
{
ALLOCATE CHANEL cl DEVICE TYPE DISK FORMAT “/disk2/%U”;
BACKUP AS BACKUPSET DATABASE;
SQL ‘alter system archive log current’;
}
以run标识,大括号里是程序段,大括号结束后开始执行整个程序段,RUN块完成后取消分配
RMAN已预设为默认配置
使用CONFIGURE命令修改参数
1、自动分配备份通道
2、指定备份保留策略
3、指定要创建的备份副本数
4、将默认备份类型设置为BACKUPSET或镜像拷贝
5、限制备份片的大小
6、从备份中指定备份类型(表空间)
7、启用和禁用备份优化
8、配置控制文件和自动备份
9、定义归档日志删除策略
10、指定设备的并行度
11、设置要用于备份的加密和压缩参数
备份集与备份片:
backup set 备份集:RMAN备份数据的基本逻辑单位,根据通道数量会产生对应数量的备份集
backup piece 备份片:RMAN备份中备份文件的基本物理单位,备份片属于备份集
section size 指定备份集中备份片的最大值
backup database section size=100m format '/bak/dbid_%d_%T_%s_%p';
%d:数据库名称、%T备份日期、%s备份集、%p备份片
查看RMAN参数配置:show all; v$rman_configuration
backup database;=备份所有数据文件(不包含临时文件)+控制文件和参数文件
show all; ----查看所有配置
show exlude; ----查看非当前设置
SHOW CONTROLFILE AUTOBACKUP FORMAT;
CONFIGURE DEVICE TYPE sbt PARALLELISM 3; ----设置设备类型和并发度,sbt表示磁带,disk表示磁盘
使用CONFIGURE命令中的CLEAR参数,可以将参数值重置为默认值
CONFIGURE BACKUP OPTIMIZATION CLEAR;
指定保留策略:描述将备份保留多长时间,有以下两种保留策略,保留策略是互斥的
recovery window:确定一定时间范围内有效
redundancy:确定保留分数
CONFIGURE RETENTION POLICY TO REDUNDANCY 1
控制rman备份的冗余策略,保留一份
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
控制rman备份的冗余策略,保留7天
CONFIGURE BACKUP OPTIMIZATIOM OFF;
开启RMAN备份优化器,rman备份时支持增量备份,而Oracle数据库又可以使用增量备份提供一个追踪文件,这个参数的作用是在每次备份时是否使用追踪文件
CONFIGURE BACKUP DEVICE TYPE TO DISK;
介质,产生的备份文件能够存放在哪种类型的存储上
disk:磁盘类型,写入速度快,但数据不宜长时间保存到10年以上
sbt:磁带类型,写入速度较慢,但数据可以长时间保留
CONFIGURE CONTROFILE AUTOBACKUP ON;
CONFIGURE CONTROFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
RMAN是否生成控制文件自动备份,以及生成的控制文件存放在哪。
自动备份控制文件开启时,会在全库备份之后,包括备份控制文件,数据文件,spfile文件之后再备份一次控制文件,关闭之后则不会再次备份控制文件,因为全库备份之后,控制文件中的内容已经发生了变化,需要再次备份控制文件用以精准恢复数据库
%F=$ORACLE_HOME/dbs/c-dbid-日期-第几份
CONFIGURE DEVICE TYPE DISK PARALLELISM n TYPE TO BACKUPSET;
RMAN备份时开启n个并发
CONFIGURE DATAFILE BACKUP COPIES FOR DECIVE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DECIVE TYPE DISK TO 1;
RMAN复制操作时,控制备份分数
CONFIGURE MAXSETSIZE TO UNLIMETED;#default
RMAN产生的备份集最大值,一般都是无限制
CONFIGURE ENCRYOTION FOR DATABASE OFF;#default
CONFIGURE ENCRYOTION ALGORITHM 'AES128';#default
RMAN设置备份与恢复时所需要输入的密码
CONFIGURE COMPRESSION ALGORITH 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
RMAN>backup as compressed backupset tablespace example foemat '/bak/%d_%U.BAK';----压缩加分片
压缩参数,压缩比在5:1左右
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbs/snapcf_orcl.f';#default
控制文件的快照备份
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
归档删除,策略,删除上一次全备之前产生的归档
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
配置归档删除策略,只要求归档备份一次到磁盘,之后归档就允许被删除
backup archivelog all input;
备份归档的同时删除所有输入的归档日志文件(物理删除操作系统中的归档)
delete noprompt expired archivelog all;
删除上一次全备之前产生的归档
backup archivelog all not backedup 2 times;
不备份已经备份过的归档日志文件
delete noprompt archivelog all completed before 'sysdate - 7'
删除7天前的归档日志
FRA(Fast Recovery Area)快速恢复区
结构化的持久性策略:当前控制文件副本、在线重做日志副本
结构化的暂时性策略:归档的重做日志、数据文件副本、控制文件副本、控制文件自动备份、备份片、闪回日志
配置快速恢复区的强烈建议:
1、强烈建议您简化备份存储管理
2、存储空间与工作数据库文件分开
3、由DB_RECOVERY_FILE_DEST参数指定位置
4、由DB_RECOVERY_FILE_DEST_SIZE参数指定大小
5、足够大以用于备份,归档日志、闪回日志,多路复用控制文件和多路复用重做日志
6、根据您的备份保留和归档日志文件删除策略自动管理
使用下面的语句将控制文件备份到二进制文件(现有控制文件的副本)
ALTER DATABASE BACKUP CONTROFILE TO '/bak';
使用下面的语句生成可用于重新创建控制文件现有的SQL语句
ALTER DATABASE BACKUP CONTROFILE TRACE AS '/bak';
rman target /
show all; ----查看rman策略,关注并发度的策略配置,默认并发执行为1
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup database format '/bak/bak_%d_%T_%s_%p';
} ----在1个并发的情况下,分配三个通道,执行全库备份
(描述:分配三个通道,若实际备份中Oracle认为数据文件只占据了两个通道,则会提示用户,只占用了两个通道,每个通道会产生一个备份集)
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 TYPE TO BACKUPSET; ----将并发改为4
backup database format '/bak/bak_%d_%T_%s_%p'; ----不分配通道,进行全库备份
(描述:四个并行则会分配四个通道,产生四个备份集)
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup database format '/bak/bak_%d_%T_%s_%p';
} ----在4个并发的情况下,分配三个通道,执行全库备份
(描述:四个并发,实际只分配发个通道,实际备份时只分配三个通道,可能只占据两个通道)
结论:并发的的这个设置值遇到手工分配通道的话,以手工分配通道为准,如果没有手工通道的话,以设置的值为准)。
RMAN的恢复目录--RMAN CATALOG
复制控制文件数据
存储更多备份历史
可以为更多用户提供备份目标库服务
存储RMAN脚本
为元数据提供更多的保护选项
使用恢复目录的原因
比使用控制文件的方式能存储更多信息
使您能够使用RMAN存储的脚本
使您能够为所有注册目标创建自定义报告
使您能够使用BACKUP命令的KEEP FOREVER子句
允许您能列出在给定时间内目标数据库中的数据文件和表空间
由于不适用控制文件,因此可以更轻松地还原和恢复,因为它保留了RMAN存储库元数据
目标库:使用RMAN进行备份的数据库,我们都称之为目标库。
无论是用传统的本地控制文件,还是用CATALOG这种类型,只要是调用了RMAN命令去做备份或者相关操作的数据库我们都称之为目标库。
1:配置恢复目录使用的数据库
恢复目录支持的数据库数量
归档和备份的数量
使用RMAN存储的脚本
为恢复目录创建一个表空间,该表空间成为恢复目录所有者的默认表空间
CREATE TABLESPACE rcat_ts DATAFILE SIZE 15M;
2:创建恢复目录的使用者
创建恢复目录所有者。
授予RECOVERY_CATALOG_OWNER角色。
SQL> CREATE USER rcowner IDENTIFIED BY rcpass
2 TEMPORARY TABLESPACE temp
3 DEFAULT TABLESPACE rcat_ts
4 QUOTA UNLIMITED ON rcat_ts;
SQL> GRANT recovery_catalog_owner TO rcowner;
3:创建恢复目录
以目录所有者的身份连接到恢复目录数据库:
$ rman
RMAN> CONNECT CATALOG username/password@net_service_name
执行CREATE CATALOG命令:
RMAN> CREATE CATALOG;
注册数据库时,RMAN执行以下操作:
在恢复目录表中为目标数据库创建行
将数据从目标数据库控制文件复制到恢复目录表
将恢复目录与控制文件同步
使用RMAN命令行注册数据库:
$ rman TARGET / CATALOG username/password@net_service_name
RMAN> REGISTER DATABASE;
在恢复目录中注销目标数据库
$ rman TARGET / CATALOG username/password@net_service_name
RMAN> UNREGISTER DATABASE;
部分重新同步:同步内容有归档日志文件+备份集+数据文件的镜像
对于部分重新同步,RMAN将控制文件与恢复目录进行比较,并使用与备份,归档重做日志,数据文件副本等有关的任何元数据来更新恢复目录。
完全重新同步:部分重新同步+数据库结构的变更
为了实现完全同步,RMAN首先创建一个控制文件快照,它只是控制文件的临时副本。它使用快照与恢复目录进行比较。它作为部分重新同步来比较和更新相同的数据,但是它还包括任何数据库结构更改。例如,完全重新同步中包括数据库架构更改或新表空间。
RMAN执行重新同步时,会将恢复目录与目标数据库的当前控制文件或备份/备用控制文件进行比较,并使用丢失或更改的信息更新恢复目录。使用SNAPSHOT CONTROLFILE NAME配置设置来指定快照控制文件的位置。CONTROL_FILE_RECORD_KEEP_TIME控制的那些记录,则将完成部分重新同步。 否则,将完成完全重新同步。 当发出RESYNC CATALOG命令时,也会完成完全重新同步,即手动进行完全重新同步。
Local:与之相关创建脚本时RMAN连接到的目标数据库
CREATE SCRIPT script_name { }
Global:可以执行针对恢复目录中注册的任何数据库
CREATE GLOBAL SCRIPT script_name { }
从文本文件创建(附加选项)
CREATE [GLOBAL] SCRIPT script_name FROM FILE 'file_name';
执行RMAN存储的脚本
Executing a script:
RUN { EXECUTE SCRIPT
script_name
; }
Executing a global script:
RUN { EXECUTE GLOBAL SCRIPT
script_name
; }
维护RMAN存储的脚本
打印脚本:
PRINT [GLOBAL] SCRIPT script_name;
将脚本的内容发送到文件:
PRINT [GLOBAL] SCRIPT script_name TO FILE 'file_name';
显示已定义脚本的名称:
LIST [GLOBAL] SCRIPT NAMES;
显示脚本:
REPLACE [GLOBAL] SCRIPT script_name
{ ; }
从文件更新脚本:
REPLACE [GLOBAL] SCRIPT script_name FROM FILE 'file_name';
删除脚本:
DELETE SCRIPT script_name;
备份策略可能包括:
整个数据库(完整)
数据库部分(部分)
备份类型可能包含:
所选文件中的所有数据块(完整)
仅自上次备份以来已更改的信息(增量)
累积(自上一个0级备份起的更改)
差异(自上次增量以来的变化)
备份模式可能是:
离线(一致,冷备份)
在线(不一致,热备份)
创建数据库备份集(RMAN默认就是备份集备份的)
RMAN> BACKUP AS BACKUPSET
2> FORMAT '/full/df_%d_%s_%p.bus'
3> TABLESPACE hr_data;
RMAN> BACKUP AS COPY DATAFILE '/ORADATA/users_01_db01.dbf';
RMAN> BACKUP AS COPY ARCHIVELOG LIKE '/arch%';
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
完整备份包含所有使用的数据文件的块。
0级增量备份等效于已标记为0级的完整备份。
累积增量备份(1级)仅包含自上次0级增量备份以来已修改的块。
RMAN>backup incremental level 1 cumulative database format '/full/orcl_1-%d.%s.%p.%T';
差异增量备份(1级)仅包含自上次增量备份以来已修改的块。
RMAN>backup incremental level 1 database format '/full/orcl_1c-%d.%s.%p.%T';
要在级别0上执行增量备份,请使用以下命令:
RMAN>BACKUP INCREMENTAL LEVEL 0 DATABASE
要执行差异增量备份,请使用以下命令:
RMAN>BACKUP INCREMENTAL LEVEL 1 DATABASE;
要执行累积增量备份,请使用以下命令:
RMAN>BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
如果未指定FULL或INCREMENTAL,则RMAN默认情况下进行完整备份。将数据文件备份到备份集时,即使是完全备份,未使用的块压缩也会导致从未写入的块被跳过。
完全备份不会影响后续的增量备份,也不会被视为任何增量备份策略的一部分,尽管可以通过使用RECOVER命令应用增量备份来增量更新完全映像副本备份。
注意:可以执行处于NOARCHIVELOG模式的数据库的任何类型的备份(完全或增量备份),当然,数据库是不能打开的。另请注意,恢复仅限于上次备份的时间。仅当数据库处于ARCHIVELOG模式时,才能将数据库恢复到最后提交的事务。
如果每天执行这些命令:
RMAN> recover copy of database with tag 'daily_inc';
RMAN> backup incremental level 1 for recover of copy with tag 'daily_inc' database;
第一天创建镜像,第二天创建1级增量备份,第二天根据增量恢复副本,创建1级增量备份
维护数据块变更跟踪文件
DB_CREATE_FILE_DEST初始化参数提供了默认目标路径
使用ALTER DATABASE RENAME命令重命名块更改跟踪文件(数据库必须处于MOUNT状态)。
启用或禁用
ALTER DATABASE{ENABLE|DISABLE} BLOCK CHANGE TRACKING [USING FILE '...']
dbwn 数据库写进程:将DB_BUFFER_CACHE中的已修改(脏)缓冲写入磁盘
DBWn时异步处理的(发起commit时不立即将数据写回去)
推进检查点
log writer process (LGWR)日志写进程:将重做日志缓冲区写入磁盘上的重做日志文件
触发条件:
1、当用户进程提交事务时(发生commit)
2、发生联机重做日志切换时
3、当重做日志缓冲区的三分之一已满或包含1MB的缓冲数据时
4、在DBWn进程将修改的缓冲区写入磁盘之前
5、自上次写入以来已过三秒钟
SMON系统监控进程
在实例启动时执行实例恢复(如果需要)
清理未使用的临时段
PMON进程监控进程
用户进程失败时执行进程恢复
清理DB_BUFFER_CACHE
释放用户进程使用的资源
监视会话以了解空闲会话进程
ARCn归档进程
发生日志切换后,将REDO日志文件复制到指定的存储设备
可以收集事务REDO数据并将该数据传输到备用目标
注:数据库的相关进程还会在Oracle体系结构的相关笔记中进行更为详细的介绍。
rman target "'/ as sysbackup'" ----使用sysbackup用户登录rman,不可执行SQL语句
rman target / ----以sysdba用户登录rman,可以执行SQL语句
RMAN命令:
LIST:显示有关记录在存储库中的备份集,代理备份和镜像副本的信息
REPORT:对存储库进行详细分析
REPORT NEED BACKUP:列出所有需要备份的数据文件
REPORT OBSOLETE:标识不再满足备份保留策略的文件
使用以下RMAN命令来管理备份
CROSSCHECK:针对磁盘或磁带之类的介质,验证记录在RMAN存储库中的备份和副本的状态
DELETE EXPIRED:仅删除存储库中状态为EXPIRED的文件(已经被物理删除的数据库备份或归档日志备份等)
DELETE OBSOLETE:删除不再需要的备份(已经不再满足备份策略的备份 包括数据库备份或归档备份)
EXPIRED后面可以加BACKUP,OBSOLETE不可以加BACKUP;
Using Dynamic Views 使用动态性能视图
在目标数据库中查询以下动态视图,以获取有关备份的信息:
V$BACKUP_SET:已经创建备份集
V$BACKUP_PIECE:存在的备份片
V$DATAFILE_COPY:磁盘上数据文件的副本
V$BACKUP_FILES:有关创建备份时创建的所有文件的信息
通过未使用的块压缩节省备份空间
在某些类型的备份操作期间,可能会跳过以下块
未分配的块:这些块位于数据文件的高水位线(HWM)上方。
未使用的块:这些是已分配但不再属于段的块.