RMAN基础知识
RMAN参数
CONFIGURE RETENTION POLICY
保留7天的备份,超过7天标记为obsolete
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS |
保留最近的五份备份,超过五份最老的备份将标记为redundancy
CONFIGURE RETENTION POLICY TO REDUNDANCY 5 |
不需要保留策略
CONFIGURE RETENTION POLICY TO NONE |
CONFIGUER DEFAULT DEVICE TYPE
指定设备类型为DISK
Configure default device type to disk |
指定设备类型为磁带
CONFIGURE DEFAULT DEVICE TYPE TO SBT |
CONFIGURE CONTROLFILE AUTOBACKUP
启用控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON |
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
配置控制文件的备份路径和备份格式
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%bak_%U' |
CONFIGURE DEVICE TYPE DISK PARALLELISM
设置设备类型的并行度
CONFIGURE DEVICE TYPE DISK PARALLELISM 5 |
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
设置备份文件的备份路径和格式
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%bak_%U' |
CONFIGURE BACKUP OPTIMIZATION
开启备份优化,通常针对只读表空间或OFFLINE状态的表空间,对于未修改过的文件或者已经备份过的归档再次备份时会跳过
configure backup optimization on; |
CONFIGURE ARCHIVELOG DELETETION POLICY
设置归档文件删除策略,配置为APPLIED ON STANDBY时如果standby库还需要的日志在通过附加的DELETE INPUT时删除归档时会报RMAN-08137错误
CONFIGURE ARCHIVELOG DELETETION POLICY TO APPLIED ON STANDBY; |
RMAN基础命令
连接RMAN
本地连接
rman target / |
远程连接
rman target user/password@tns |
执行SQL
RMAN还可以直接启动关闭数据库,但无法执行SELECT查询,因为RMAN不会返回查询结果
RMAN >SQL 'ALTER SYSTEM ARCHIVE LOG ALL'; |
LIST命令
列出所有备份
RMAN >list backup [OF] [CONTROLFILE|DATAFILE|ARCHIVELOG|TABLESPACE]; |
列出所有归档文件
RMAN >list archivelog all; |
列出无效备份
RMAN >list expired backup; |
DELETE命令
删除过期备份
RMAN >DELETE EXPIRED BACKUP; |
删除无效备份
RMAN >DELETE OBSOLETE; |
删除指定备份集
RMAN >DELETE BACKUPSET 19; |
备份归档后删除
RMAN >BACKUP ARCHIVELOG ALL DELETE INPUT; |
REPORT命令
查看需要备份的文件
RMAN >report need backup; |
查看指定表空间是否需要备份
RMAN >REPORT NEED BACKUP TABLESPACE USERS; |
CROSSCHECK命令
检查所有归档日志
RMAN >CROSSCHECK ARCHIVELOG LIST; |
检查所有备份集
RMAN >CROSSCHECK BACKUP; |
CHANGE命令
修改备份集为无效
RMAN >CHANGE BACKUPSET n UNAVAILABLE; |
修改归档日志为无效
RMAN >CHANGE ARCHIVELOG LOGSEQ=n UNAVAILABLE; |
检查数据库坏块
检查数据库坏块
RMAN >BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL; |
查看坏块信息
SQL >SELECT * FROM v$database_block_corruption; |
备份压缩
执行BACKUP时指定AS COMPRESSED BACKUPSET子句对备份进行压缩,压缩会较小备份集的大小,但是会增加备份和恢复时的速度
BACKUP AS COMPRESSED BACKUPSET TABLESPACE SYSTEM; |
备份加密
ORACLE 10gR2开始支持对备份集进行加密,在恢复时需要指定密钥。RMAN提供三种加密方式:透明加密、密码模式、双重模式。透明加密,需要先启用ENCRYPTION WALLET
RMAN >CONFIGURE ENCRYPTION FOR DATABASE ON; |
密码模式,作用于当前会话,明文指定加密密码
RMAN >SET ENCRYPTION ON IDENTIFIED BY password ONLY; |
参数 | 含义 |
---|---|
%a | ORACLE数据库的RESETLOG_ID |
%c | 备份片段的复制数 |
%d | Oracle数据库名称 |
%D | 当前时间的日,格式为DD |
%e | 归档序号 |
%f | 绝对文件编号 |
%F | 基于DBID+时间组合的唯一名称 |
%h | 归档日志线程号 |
%I | 数据库DBID |
%M | 当前时间中的月份 |
%N | 表空间名称 |
%n | 数据库名称,并在右侧填充x至8位 |
%P | 备份集中备份片的编号 |
%s | 备份集号 |
%t | 备份集时间戳 |
%T | 当前时间的年月日格式,YYYYMMDD |
%u | 由备份集编号和建立时间压缩后组成的8个字符 |
%U | 默认是%u_%p_%c的简写形式 |
%Y | 当前时间中的年,YYYY |
备份
备份数据库
RMAN >BACKUP DATABASE FORMAT '/u01/backup/db/bak_%U'; |
备份表空间
RMAN >BACKUP TABLESPACE USERS; |
备份数据文件
RMAN >BACKUP DATAFILE '/u01/app/oradata/orcl/system.dbf'; ---也可以直接采用file_id |
备份控制文件
RMAN >BACKUP CURRENT CONTROLFILE; |
注:当CONFIGURE CONTROLFILE AUTOBACKUP为ON是每次备份会自动备份控制文件,我们也可以在执行BACKUP时指定INCLUDE CURRENT CONTROLFILE子句同时备份控制文件
备份归档日志
RMAN >BACKUP ARCHIVELOG ALL; |
注:除ALL外,也可以指定UNTIL/SCN/TIME/SEQUENCE等参数指定备份区间。也可以在执行BACKUP时指定PLUS ARCHIVELOG子句同时备份归档文件
增量备份
增量备份用于在全量备份的基础上进行增量数据的备份,减少备份时间和备份数据量。在进行增量备份前需要先进行0级备份,相当于数据库的完整备份,但是0级备和BACKUP DATABASE并不相同。
增量备份分为两种备份类型:DIFFERENTIAL(差异)和CUMULATIVE(累积),默认为DIFFERENTIAL方式。差异增量备份会只备份上次增量备份以来所有变化的数据,累积增量备份总是备份自0级备份以来所有变化的数据。
0级备份
RMAN >backup incremental level 0 database; |
1级增量备份
RMAN >backup incremental level 1 database; |
1级累积增量备份
backup incremental level 1 cumulative database; |
块跟踪
在增量备份时需要扫描整个数据文件来确认变化的数据,为了避免这种情况进行快速增量备份,Oracle可以开启块跟踪特性,将变化的数据单独记录到跟踪文件中。启用块跟踪后会通过后台进程CTWR负责将变化数据写入块跟踪文件。
查看是否开启
select filename,status,bytes/1024/1024 from v$block_change_tracking; |
开启块跟踪
alter database enable/disable block change tracking using file ''; |
更改块跟踪文件位置
alter database rename file 'old_path' to 'new_path'; |
恢复
恢复参数文件
设置DBID
RMAN> set DBID = 1405321685 |
*注:DBID可从v$database、备份日志、string .dbf | grep MAXVALUE等手段获取
启动数据库到nomount并恢复参数文件
RMAN> startup nomount |
恢复控制文件
RMAN> restore controlfile from autobackup; |
恢复数据库
还原数据库
RMAN> restore database; |
恢复数据库
RMAN> recover database; |
打开数据库
RMAN> alter database open; |
注:可以指定until time选项恢复到指定时间点
还原表空间
表空间脱机
RMAN> sql 'alter tablespace users offline immediate'; |
恢复表空间
RMAN> restore tablespace users; |
表空间联机
RMAN> sql 'alter tablespace users online'; |
Recovery Catalog
RMAN Recovery Catalog(恢复目录)用于存储RMAN备份恢复相关信息的数据库,当没有恢复目录时,RMAN的备份信息,例如归档文件路径、备份集路径等信息保存在控制文件中
创建管理用户
CREATE USER RMAN_ADMIN IDENTIFIED BY rman%123; |
添加管理权限
grant connect,resource,recovery_catalog_owner to rman_admin; |
连接catalog库
rman catalog rman_admin/rman%123@tns |
创建恢复目录
create catalog; |
注册数据库
rman catalog rman_admin/rman%123@tns target system/oracle@tns |
同步恢复目录
RMAN >resync catalog; |
取消注册
RMAN >UNREGISTER DATABASE; |