暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片
RMAN.pdf
951
1页
116次
2022-10-18
5墨值下载
RMAN
常用命令
使用RMAN客户端登录数据库
rman target /
rman target / nocatalog
查看RMAN配置 RMAN> show all;
使用RMAN启停数据库
RMAN> shutdown immediate;
RMAN> startup;
运行除了select外的SQL命令
RMAN> sql 'alter system archive log current';
RMAN> sql 'alter system switch logfile';
运行操作系统命令 run {host "ls -l /oracle";}
批处理模式
cat > /oracle/rman_show.sql <<!
show all;
report schema;
!
rman target / cmdfile=/oracle/rman_show.sql log=/oracle/rman_show.log append
Skip
跳过offline的数据文件 backup database skip offline;
跳过不能访问的数据文件 backup database skip inaccessible;
跳过只读表空间 backup database skip readonly;
跳过多种文件 backup database skip offline skip readonly skip inaccessible;
List 命令
概述可用的备份
RMAN> list backup summary;
参数
B 表示 backup
F 表示 FULL
A 表示 archive log
0 1 表示 incremental backup
S 说明备份状态 (A AVAILABLE X EXPIRED )
按备份类型列出备份 RMAN>list backup by file;
列出详细备份  RMAN>list backup;
列出过期备份 RMAN> list expired backup;
列出表空间和数据文件备份
RMAN> list backup of tablespace system;
RMAN> list backup of datafile 3;
列出归档日志备份
RMAN> list archivelog all; 简要信息
RMAN> list backup of archivelog all; 详细信息
RMAN> list backup of archivelog from time=’sysdate-2’;
列出控制文件和服务器参数文件
RMAN>list backup of controlfile;
RMAN>list backup of spfile;
Report 命令
报告数据库模式 RMAN> report schema;
报告丢弃的备份。如果使用了保存策略,备份会标记为丢弃状态 RMAN> report obsolete;
删除丢弃状态备份 RMAN> delete noprompt obsolete;
报告最近没有被备份的数据文件 RMAN> report need backup days=1;
报告备份冗余或恢复窗口
RMAN> report need backup redundancy 2;
RMAN> report need backup recovery window of 2 days;
报告数据文件的不可恢复操作 RMAN> report unrecoverable;
Crosscheck 命令
概述
备份集有两种状态
A (Available,RMAN认为该项存在于备份介质上)
X (Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介
质上)
crosscheck 的目的是检查RMAN的目录以及物理文件:
如果物理文件不存在于介质上,将标记为Expired。
如果物理文件存在,将维持Available。
如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱
动器后),crosscheck将把状态重新从Expired标记回Available。
crosscheck 输出分两部分
第一部分列出确定存在于备份介质上的所有备份集片
第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired
核对所有备份集 RMAN> crosscheck backup;
核对所有数据文件的备份集 RMAN> crosscheck backup of database;
核对特定表空间的备份集 RMAN> crosscheck backup of tablespace users;
核对特定数据文件的备份集 RMAN> crosscheck backup of datafile 4;
核对控制文件的备份集 RMAN> crosscheck backup of controlfile;
核对SPFILE的备份集 RMAN> crosscheck backup of spfile;
核对归档日志的备份集 RMAN> crosscheck backup of archivelog;
核对所有映像副本 RMAN> crosscheck copy;
核对所有数据文件的映像副本 RMAN> crosscheck copy of database;
核对特定表空间的映像副本 RMAN> crosscheck copy of tablespace users;
核对特定数据文件的映像副本 RMAN> crosscheck copy of datafile 6;
核对归档日志的映像副本 RMAN> crosscheck copy of archivelog sequence 4;
核对控制文件的映像副本 RMAN> crosscheck copy of controlfile;
备份
完全备份
run{
# 删除丢弃状态备份
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
# 设置两个备份通道, 每个备份片最大100M
allocate channel c1 type disk maxpiecesize=100m;
allocate channel c2 type disk maxpiecesize=100m;
# 完全备份, 每个文件的备份片不超过4个
backup database filesperset 4 format
'/backup/oracle/ora_L0_%d_%T_%s_%p';
# 备份归档
alter system archive log current;
alter system archive log current;
alter system archive log current;
backup archivelog all format '/backup/oracle/arch_L0_%d_%T_%s_%p'
delete input;
# 备份控制文件
backup current controlfile format '/backup/oracle/ctl_L0_%d_%T_%s_%p';
# 核对所有备份集
crosscheck backup;
# 核对所有归档日志备份集
crosscheck archivelog all;
}
增量备份
0级备份 像完整备份一样复制所有的数据库
run{
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
allocate channel c1 type disk maxpiecesize=100m;
allocate channel c2 type disk maxpiecesize=100m;
backup incremental level=0 database format
'/backup/oracle/ora_L0_%d_%T_%s_%p' filesperset 4;
alter system archive log current;
alter system archive log current;
alter system archive log current;
crosscheck archivelog all;
backup archivelog all format '/backup/oracle/arch_%d_%T_%s_%p' delete
all input;
backup current controlfile format='/backup/oracle/ctl_%d_%T_%s_%p';
backup spfile format='/backup/oracle/spfile_%d_%T_%s_%p';
crosscheck backup;
crosscheck archivelog all;
release channel c1;
release channel c2;
}
1级备份 首先有一个基本的级别为0的备份,然后在0级备份的基础上备份更新的数据块
run{
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
allocate channel c1 type disk maxpiecesize=100m;
allocate channel c2 type disk maxpiecesize=100m;
backup incremental level=1 database format
'/backup/oracle/ora_L1_%d_%T_%s_%p' filesperset 4;
alter system archive log current;
alter system archive log current;
alter system archive log current;
crosscheck archivelog all;
backup archivelog all format '/backup/oracle/arch_%d_%T_%s_%p' delete
all input;
backup current controlfile format='/backup/oracle/ctl_%d_%T_%s_%p';
backup spfile format='/backup/oracle/spfile_%d_%T_%s_%p';
crosscheck backup;
crosscheck archivelog all;
release channel c1;
release channel c2;
}
差异增量备份:备份最近级别为1或级别为0的增量备份后更改的所有块
累计增量备份:备份最近级别为0的增量备份后更改的所有块
恢复
所有数据文件丢失
1.查看数据文件位置 select file_name,tablespace_name from dba_data_files;
2.启动数据库到nomount状态
shutdown abort
startup nomount;
3.查找控制文件备份及恢复
rman target /
restore controlfile from '/backup/oracle/ctl_L0_ORACLE_20220929_16_1';
4.启动数据库到mount状态 alter database mount;
5.找到最新的归档集并注册
list backup of archivelog all;
catalog backuppiece '/backup/oracle/arch_ORACLE_20220929_22_1';
catalog backuppiece '/backup/oracle/arch_ORACLE_20220929_23_1';
catalog backuppiece '/backup/oracle/arch_ORACLE_20220929_24_1';
6.恢复数据 restore database;
7.恢复归档 recover database;
8. 重置redo alter database open resetlogs;
spfile 丢失
1.查看spfile备份文件 list backup of spfile;
2.恢复spfile RMAN> restore spfile from 'spfile_ORACLE_20220929_26_1';
单个数据文件丢失
1.根据报错确定丢失的数据文件
2.关闭数据库 shutdown abort
3.进入rman rman target /
4.启动数据库到mount startup mount
5.恢复数据文件
RMAN> restore datafile 7;
RMAN> recover datafile 7;
6.启动数据库 RMAN> alter database open;
数据文件和日志文件丢失, 控制文件和spfile文件存在
1. 控制文件还在启动到mount状态 RMAN> startup mount;
2.恢复数据 RMAN> restore database;
3. 恢复归档日志 RMAN> recover database;
4.启动数据库 RMAN> alter database open;
脚本
rman备份脚本
运行命令:./backup_dbname_ora.sh dbname
运行条件:系统挂载有nfs网络磁盘于/backup文件夹
@ |
of 1
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜