Oracle涂抹oracle学习笔记第8章RMAN说,我能备份

Posted minseo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle涂抹oracle学习笔记第8章RMAN说,我能备份相关的知识,希望对你有一定的参考价值。

 

 

 

本次测试服务器为172.16.25.33

使用rman连接本地数据库

rman target /

在rman中执行启动与关闭的命令与sqlplus相同

在rman中执行sql语句

sql ‘需要执行的语句’;

也可以通过输入host进入主机执行系统命令然后exit退出主机页面再进入rman

 

整库的备份

backup database;

提示在非存档模式下无法备份

需要设置成归档模式步骤如下

非归档模式转换成归档模式

数据库创建过程中需要指定归档和非归档模式,如果选择的是非归档模式,可以在数据库创建完成后 手工改变成归档模式,具体操作步骤如下。

(1 )关闭数据库:

shutdown immediate; 

(2 )启动数据库到 mount 状态:

startup mount; 

(3 )修改数据库归档模式:

alter database archivelog; 

(4 )启动数据库:

alter database open; 

(5 )定义归档位置,也就是归档日志保存路径:

alter system set log_archive_dest_1="location=/home/oracle/app/oracle/arch/orcl" scope=both; 

(6 )确认配置生效:

archive log list; 

再次执行全库备份

默认备份位置为

/home/oracle/app/flash_recovery_area/ORCL/backupset

下面以日期生成一个文件夹

真的备份操作系统指定备份集的存储位置,最简单的方式是在执行backup命令的时候指定备份段的路径

backup database format \'/home/oracle/rman_backup/bak_%U\';

表空间的备份

只要实例启动并处于加载状态,无论数据库是否打开,都可以在rman中对表空间进行备份.例如备份users表空间

同样可以指定format参数显式自定义备份片段名称

通过 list backup of tablespace users;查看一下备份

从输出的信息中显示,users表空间存在多份备份,因为前面执行过全库备份

删除备份

delete backupset 6;

要求输入yes确认

 

8.3.3数据文件的备份

  有两种方式指定数据文件的名称(即数据文件的详细路径)和FILE_ID.这两项信息都可以通过数据字典DBA_DATA_FILES查询

select file_id,file_name from dba_data_files;

PS:实际上在整库备份操作和list操作时都显示了数据文件的文件名称和序号

备份USERS表空间的数据文件

 backup datafile \'/home/oracle/app/oradata/orcl/users01.dbf\';

PS:使用backup datafile指定数据文件的备份既可以指定datafile名称也可以指定file_id

如果要查看指定数据文件的备份,可以用如下命令

list backup of datafile n;  n值指定数据文件的序号

 

8.3.4控制文件的备份

backup current controlfile;

执行backup命令指定include current controlfile如

backup database include current controlfile;

甚至在备份控制文件的时候也可以包含控制文件

 backup current controlfile include current controlfile;

 备份system表空间也会触发控制文件的备份

通过configure命令将controlfile autobackup置为on

configure controlfile autobackup on;

当autobackup被置为on时,rman做任何的备份操作,都会自动对控制文件做备份.

如果要查看备份的控制文件,可以使用以下命令

list backup of controlfile;

 

8.3.5归档文件的备份

  归档日志对于数据库介质恢复相当关键,其虽然不像控制文件一旦损坏则数据库马上崩溃,但重要性丝毫不减,只要拥有归档日志文件

,就能确保我们将数据库恢复到备份之后的任意时刻

backup archivelog all;

 

8.3.6初始化参数文件的备份

  通常在备份控制文件时,rman也会自动备份服务器端的初始化参数文件,并置于控制文件相同的备份片段中.由此极少单独对spfile进行

备份,如果确实需要备份使用backup spfile即可

 

8.3.7对备份集进行备份

  备份集也能备份

  备份所有备份集

  backup backupset all;

  备份指定备份集

  backup backupset n;

 

8.4RMAN命令知多少

8.4.1显示rman默认配置-show命令

#default代表使用默认配置没有修改过

 

8.4.2列出备份信息

  列出数据库所有备份信息

   list backup

  列出备份的控制文件信息

  list backup of controlfile;

  列出指定数据文件的备份信息

   list backup of datafile 1;

  列出指定表空间的备份信息

  ist backup of tablespace \'system\';

  列出所有备份的归档文件信息

    list backup of archivelog all;

  列出某个设备上的所有信息

   list device type disk backup;

   列出当前数据库的所有归档

   list archivelog all;

  列出所有无效备份

   list expired backup;

 

8.4.3删除备份

  用于删除rman备份记录及相应的物理文件.当使用rman执行备份操作时,会在rman资料库中生成rman的备份记录,默认情况下rman备份记录

会被存放在目标数据库的控制文件中,如果配置了恢复目录(Recovery Catalog),那么该备份记录也会被存放到恢复目录中

  删除过期备份

  delete obsolete;

  删除无效备份

  delete expired backup;

  删除expired副本

  delete expired copy;

  删除所有备份集

  delete backup;

  删除所有映像副本

  delete copy;

 

8.4.4报表显示-report命令

  report命令主要用于当前备份信息的分析,如那些备份已过期,那些文件该备份,那些备份不可用

那些备份可以删除

  查看7天前的数据库模式

   report schema at time \'sysdate-7\';

PS:查看模式信息必须了解到catalog数据库

  查看所有需要的备份

  report need backup;

  查看指定的表空间是否备份

  report need backup tablespace system;

  查看过期备份

  report obsolete;

 

8.4.5执行检查-crosscheck命令

  crosscheck命令用来检查备份或者归档物理文件的状态,如果物理文件存在,并且控制文件(恢复记录)中有匹配记录,则标记该对象为avilable(有效),如果文件不存在了,则标记对象状态为expired(无效)

  crosscheck不会主动删除文件(没有这个功能),它只是修改控制文件中对应记录的标记状态,因此如果要删除哪些expired记录,还是的手动通过delete expired命令进行.

  检查所有归档文件

  crosscheck archivelog all;

  检查所有备份集

  crosscheck backup; 

 

 8.4.5修改状态-change命令

  change命令可以用来修改备份文件或者归档文件的状态,不是指物理文件,而是这些文件在控制文件(或恢复目录)中记录的状态,状态又两种available(可用),和unacaiable(不可用)

  修改指定备份集不可用

  change backupset 24 unavailable;

 

8.5RMAN备份进阶篇

  8.5.1是否选择增量备份

  虽然说用backup命令生成的备份集中只备份了那些使用了的数据块,备份集实际大小已经比目标数据库小了很多.不过对于修改不是很频繁但数据文件体积较大的的数据库,在执行备份的时候

希望有一种功能,备份时只备份那些修改过的数据,这样一来备份集就会小很多.增量备份功能正是满足这一功能而出现的.

  建立增量备份非常简单,实质就是指定一个参数incremental level=n(n最大不超过4),0级备份相当于数据库的完整备份

  建立级别为0的全库备份

  backup incremental level=0 database;

 PS:如果没有先建立0级备份直接使用backup incremental level=1 database;命令建立级别为1的增量备份则会先建立级别为0的全量备份再建立增量备份

  RMAN提供了两种增量备份的类型:DIFFERENTIAL(差异)和CUMULATIVE(累积),这两种增量类型在创建备份集时的算法是不一样的.默认情况是差异备份,如果要建立累积备份需要在建立备份是时候指定CUMULATIVE

  backup incremental level=2 cumulative database;

 

  

  

以上是关于Oracle涂抹oracle学习笔记第8章RMAN说,我能备份的主要内容,如果未能解决你的问题,请参考以下文章

Oracle涂抹oracle学习笔记第10章Data Guard说,我就是备份

51CTO-风哥-ORACLE学习计划(持续更新中)

oracle 11g ocp 笔记(15)--使用rman进行备份

100天精通Oracle-实战系列(第17天)RMAN 冷备异机恢复 Oracle 数据库

100天精通Oracle-实战系列(第17天)RMAN 冷备异机恢复 Oracle 数据库

100天精通Oracle-实战系列(第19天)RMAN 从 Windows 至 Linux 跨系统恢复 Oracle 数据库