RMAN> report schema 显示数据文件状态
RMAN> list backup 从control file 中查询备份信息
RMAN> crosscheck backup 核对backup文件,并检查文件是否存在
RMAN> show all; 显示 Rman 的配置参数
RMAN> list backupset; 显示备份信息
RMAN> list copy; 查看数据文件的复制结果及信息
RMAN> list backup 从control file 中查询备份信息
RMAN> crosscheck backup 核对backup文件,并检查文件是否存在
RMAN> show all; 显示 Rman 的配置参数
RMAN> list backupset; 显示备份信息
RMAN> list copy; 查看数据文件的复制结果及信息
使用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为备份片段命名
%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为备份片段命名
1. RAMN 连接方式
(1). Target database (工作 database)
(2). Recovery catalog database(存放备份信息)
(3). Auxiliary database (辅助数据库)
2. 修改数据库为归楼模式
(1). D:\>sqlplus /nolog
(2). SQL> connect /as sysdba
(3). SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 3
(4).SQL> shutdown immediate;
(5).SQL> startup mount;
(6).SQL> alter database archivelog;
(7).SQL> alter database open;
(8).SQL> archive log list;
###########非 catalog 模式下的备份#################
1. 启用autobackup
RMAN>show all;
RMAN>configure controlfile autobackup on;
RMAN>show all;
RMAN>show all;
RMAN>configure controlfile autobackup on;
RMAN>show all;
2. nocatalog 方式备份,备份信息会存放到控制文件中
(1).FULL 全备份
RMAN>backup database;
(2).0级增量备份(相当于全备)
RMAN>backup incremental level 0 database;
(3) 1 级增量备份
RMAN>backup incremental level=1 database;
(1).FULL 全备份
RMAN>backup database;
(2).0级增量备份(相当于全备)
RMAN>backup incremental level 0 database;
(3) 1 级增量备份
RMAN>backup incremental level=1 database;
3.备份:参数文件,数据文件,控制文件,归档日志,(重做日志备份后会自动删除)备份archivelog
RMAN> backup database plus archivelog delete input;
4. 备份表空间 backup tablespace <tabkesoace name>,本例备份users表空间
RMAN>report schema;
RMAN>backup tablespace users
5.备份控制文件
RMAN>backup current controlfile;
备份数据文件,同时包括控制文件
RMAN>backup databsase include current controlfile
RMAN>backup current controlfile;
备份数据文件,同时包括控制文件
RMAN>backup databsase include current controlfile
6. 镜像copy copy datafile [file name | file number] to [new path and name]
RMAN> report schema;
RMAN> copy datafile 4 to 'h:\backup\users01.dbf';
RMAN> list copy; 查看数据文件的复制结果及信息
RMAN> report schema;
RMAN> copy datafile 4 to 'h:\backup\users01.dbf';
RMAN> list copy; 查看数据文件的复制结果及信息
7. 批命令执行
批命令
run{
command ;
command '
}
批命令
run{
command ;
command '
}
例:
RMAN> run{
2> allocate channel cha1 type disk;
3> backup format 'h:\rman_back\full_%T'
4> tag full_backup
5> database;
6> release channel cha1;
7> }
RMAN> run{
2> allocate channel cha1 type disk;
3> backup format 'h:\rman_back\full_%T'
4> tag full_backup
5> database;
6> release channel cha1;
7> }
8. RMAN 备份任务(可以用windows 或Linux 的计划任务,来调用备份计划文件)
back0.bat
run {
allocate channel bak0 type disk;
backup
incremental level 0
format 'h:\ram_backup\inc0_%u_%T'
tag lev0
database;
release channel bak0;
}
back1.bat
run {
allocate channel bak0 type disk;
backup
incremental level 1
format 'h:\ram_backup\inc1_%u_%T'
tag lev0
database;
release channel bak0;
}
run {
allocate channel bak0 type disk;
backup
incremental level 1
format 'h:\ram_backup\inc1_%u_%T'
tag lev0
database;
release channel bak0;
}
在Windows中,执行的示例
D:\>rman target / msglog=h:\bak0.log cmdfile=h:\bak0.bat
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10>
D:\>
D:\>rman target / msglog=h:\bak0.log cmdfile=h:\bak0.bat
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10>
D:\>
9. DBID 号
RMAN> connect target /
连接到目标数据库: NAIL (DBID=782195136)---此次是DBID号
使用目标数据库控制文件替代恢复目录
RMAN> connect target /
连接到目标数据库: NAIL (DBID=782195136)---此次是DBID号
使用目标数据库控制文件替代恢复目录
10. 删除备份
RMAN>list backupset;
RMAN>delete backupset <id>;
###########非 catalog 模式下的恢复##############
1.口令文件丢失的恢复 使用oracle orapwd命令进行重建密码文件
H:\oracle\product\10.2.0\db_1\BIN>orapwd file=orapw<SID> password=<new password> entries=5
entries=<number> 是指,有多少个用户可以有dba权限。
1.口令文件丢失的恢复 使用oracle orapwd命令进行重建密码文件
H:\oracle\product\10.2.0\db_1\BIN>orapwd file=orapw<SID> password=<new password> entries=5
entries=<number> 是指,有多少个用户可以有dba权限。
2. spfile 丢失后的恢复
RMAN>startup nomount;
RMAN>set dbid <ID> 此ID是rman target 显示的 DBID号
RMAN>restore spfile from autobackup;(如果报错,则指定autobackup 文件的绝对路径及文件名)
RMAN>restore spfile from 'D:\oracle\product\10.2.0\flash_recovery_area\NAIL\AUTOBACKUP\2009_10_14\O1_MF_S_700242158_5FC07HPY_.BKP';
RMAN>shutdown immediate;
RMAN>startup; (如果不能启动,按如下步骤继续)
RMAN>startup nomount;
RMAN>set dbid <ID> 此ID是rman target 显示的 DBID号
RMAN>restore spfile from autobackup;(如果报错,则指定autobackup 文件的绝对路径及文件名)
RMAN>restore spfile from 'D:\oracle\product\10.2.0\flash_recovery_area\NAIL\AUTOBACKUP\2009_10_14\O1_MF_S_700242158_5FC07HPY_.BKP';
RMAN>shutdown immediate;
RMAN>startup; (如果不能启动,按如下步骤继续)
确定oracle 是 shutdown 状态,
RMAN>set dbid <ID> 此ID是rman target 显示的 DBID号
RMAN>startup;
RMAN>set dbid <ID> 此ID是rman target 显示的 DBID号
RMAN>startup;
3. controlfile 丢失后的恢复
RMAN>startup nomount;
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAN>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
RMAN>startup nomount;
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAN>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
4.Redolog file 丢失后的恢复(在 SQLPLUS /nolog 模式下进行恢复)
D:\>sqlplus /nolog
SQL> connect /as sysdba
SQL>shutdown immediate;
SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
D:\>sqlplus /nolog
SQL> connect /as sysdba
SQL>shutdown immediate;
SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
5.datafile 丢失后的恢复(本例恢复 编号是3 的datafile)
RMAN>shutdown immediate; (如果不能关闭,用 shutdown abort 强行关闭)
RMAN>startup mount;
RMAN>report schema;
RMAN>sql "alter database datafile 3 offline";
RMAN>restore datafile 3;
RMAN>recover datafile 3;
RMAN>sql "alter database datafile 3 online";
RMAN>startup;
RMAN>shutdown immediate; (如果不能关闭,用 shutdown abort 强行关闭)
RMAN>startup mount;
RMAN>report schema;
RMAN>sql "alter database datafile 3 offline";
RMAN>restore datafile 3;
RMAN>recover datafile 3;
RMAN>sql "alter database datafile 3 online";
RMAN>startup;
6. tablespace 表空间的丢失
RMAN>sql "alter tablespace users offline";
RMAN>sql "alter tablespace users offline immediate"; --有可能需要,强制 users 表空间offline
RMAN>restore tablespace users;
RMAN>recover tablespace users;
RMAN>sql "alter tablespace users online";
RMAN>sql "alter tablespace users offline";
RMAN>sql "alter tablespace users offline immediate"; --有可能需要,强制 users 表空间offline
RMAN>restore tablespace users;
RMAN>recover tablespace users;
RMAN>sql "alter tablespace users online";
7. nocatalog 模式下的整库完全恢复
D:\rman target /
RMAN>startup nomount
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
在SQL PLUS 中继续做 redolog 的恢复
D:\>sqlplus /nolog
SQL> connect /as sysdba
SQL> create pfile='d:\pfile.ora' from spfile;
SQL> shutdown immediate;
编辑 d:\pfile.ora 在文件的最后添加一行
*._allow_resetlogs_corruption='TURE'
D:\rman target /
RMAN>startup nomount
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
在SQL PLUS 中继续做 redolog 的恢复
D:\>sqlplus /nolog
SQL> connect /as sysdba
SQL> create pfile='d:\pfile.ora' from spfile;
SQL> shutdown immediate;
编辑 d:\pfile.ora 在文件的最后添加一行
*._allow_resetlogs_corruption='TURE'
SQL> startup pfile='d:\pfile.ora' mount
SQL> alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
SQL> alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
8.基于时间点的恢复
run{
set until time "to_data(09/10/01 15:0:00','mm/dd/yy/ hh24:mi:ss')";
restore database;
recover database;
alter database open resetlogs;
}
9.基于 SCN 的恢复
RMAN>list backupset; --显示有备份信息,同时可以查看到SCN号
RMAN>shutdown immediate;
RMAN>startup mount;
RMAN>restore database UNTIL SCN 10000;
RMAN>recover database UNTIL SCN 10000;
RMAN>alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
RMAN>list backupset; --显示有备份信息,同时可以查看到SCN号
RMAN>shutdown immediate;
RMAN>startup mount;
RMAN>restore database UNTIL SCN 10000;
RMAN>recover database UNTIL SCN 10000;
RMAN>alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
9. 基于日志序列的恢复
RMAN>shutdown immediate;
RMAN>startup mount;
RMAN>restore database until sequence 100 thread 1;
RMAN>recover database until sequence 100 thread 1;
RMAN>alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
RMAN>shutdown immediate;
RMAN>startup mount;
RMAN>restore database until sequence 100 thread 1;
RMAN>recover database until sequence 100 thread 1;
RMAN>alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
####### catalog 模式 ########
1. 启用 catalog 模式
(1). 创建catalog 所用的表空间(用企业管理器,或SQL 语句均可)
sql>create tablespace rman_ts datafile 'H:\oracle\product\10.2.0\oradata\rmants\rmants.dbf' size 20M;
(2). RMAN用户并授权 recovery_catalog_owner (用企业管理器,或SQL 语句均可)
SQL>CREATE USER "RMAN" PROFILE "DEFAULT"
IDENTIFIED BY "rman" DEFAULT TABLESPACE "RMAN_TS"
QUOTA UNLIMITED
ON "RMAN_TS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "RMAN";
GRANT "RECOVERY_CATALOG_OWNER" TO "RMAN";
(3) 创建恢复目录(用刚建立的rman用户连接)
D:\rman catalog rman/rman
RMAN>create catalog tablespace rman_ts;
(4) 注册数据库
RMAN>register database;
(5) 连接 target database 和 catalog database
D:\>rman target / catalog rman/rman
连接到目标数据库:
连接到恢复目录数据库
(1). 创建catalog 所用的表空间(用企业管理器,或SQL 语句均可)
sql>create tablespace rman_ts datafile 'H:\oracle\product\10.2.0\oradata\rmants\rmants.dbf' size 20M;
(2). RMAN用户并授权 recovery_catalog_owner (用企业管理器,或SQL 语句均可)
SQL>CREATE USER "RMAN" PROFILE "DEFAULT"
IDENTIFIED BY "rman" DEFAULT TABLESPACE "RMAN_TS"
QUOTA UNLIMITED
ON "RMAN_TS"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "RMAN";
GRANT "RECOVERY_CATALOG_OWNER" TO "RMAN";
(3) 创建恢复目录(用刚建立的rman用户连接)
D:\rman catalog rman/rman
RMAN>create catalog tablespace rman_ts;
(4) 注册数据库
RMAN>register database;
(5) 连接 target database 和 catalog database
D:\>rman target / catalog rman/rman
连接到目标数据库:
连接到恢复目录数据库
########## catalog 模式下的恢复 #########
实验环境:
1. 目标数据库 nail
2. 备份数据库 cata
(1) 创建恢复目录(用刚建立的rman用户连接)
D:\rman catalog rman/rman
RMAN>create catalog tablespace rmants;
D:\rman catalog rman/rman
RMAN>create catalog tablespace rmants;
(2) 注册数据库
D:\>rman target sys/sysdba@nail catalog rman/rman@cata
连接到目标数据库: NAIL (DBID=782776845)
连接到恢复目录数据库
RMAN> register database;
D:\>rman target sys/sysdba@nail catalog rman/rman@cata
连接到目标数据库: NAIL (DBID=782776845)
连接到恢复目录数据库
RMAN> register database;
### catalog 下的备份###
1. 启用autobackup
RMAN>show all;
RMAN>configure controlfile autobackup on;
RMAN>show all;
1. 启用autobackup
RMAN>show all;
RMAN>configure controlfile autobackup on;
RMAN>show all;
2. catalog 方式备份,备份信息会存放到rman用户的表空间中
(1).FULL 全备份
RMAN>backup database;
(2).0级增量备份(相当于全备)
RMAN>backup incremental level 0 database;
(3) 1 级增量备份
RMAN>backup incremental level=1 database;
###catalog 下的恢复
1. spfile 丢失后的恢复
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN>startup nomount;
RMAN>restore spfile from autobackup;(如果报错,则指定autobackup 文件的绝对路径及文件名)
RMAN>restore spfile from 'D:\oracle\product\10.2.0\flash_recovery_area\NAIL\AUTOBACKUP\2009_10_14\O1_MF_S_700242158_5FC07HPY_.BKP';
RMAN>shutdown immediate;
RMAN>startup;
1. spfile 丢失后的恢复
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN>startup nomount;
RMAN>restore spfile from autobackup;(如果报错,则指定autobackup 文件的绝对路径及文件名)
RMAN>restore spfile from 'D:\oracle\product\10.2.0\flash_recovery_area\NAIL\AUTOBACKUP\2009_10_14\O1_MF_S_700242158_5FC07HPY_.BKP';
RMAN>shutdown immediate;
RMAN>startup;
2. controlfile 丢失后的恢复
D:\>rman target sys/sysdba@nail catalog rman/rman@cata
RMAN>startup nomount;
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAN>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
D:\>rman target sys/sysdba@nail catalog rman/rman@cata
RMAN>startup nomount;
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>recover database;
RMAN>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
3.Redolog file 丢失后的恢复(在 SQLPLUS /nolog 模式下进行恢复)
D:\>sqlplus " sys/sysdba@nail as sysdba"
SQL>shutdown immediate;
SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
D:\>sqlplus " sys/sysdba@nail as sysdba"
SQL>shutdown immediate;
SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;
RMAN>backup database;---------请立即做一次全备,避免以后的恢复出故障
4.datafile 丢失后的恢复(本例恢复 编号是3 的datafile)
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN>shutdown immediate; (如果不能关闭,用 shutdown abort 强行关闭)
RMAN>startup mount;
RMAN>report schema;
RMAN>sql "alter database datafile 3 offline";
RMAN>restore datafile 3;
RMAN>recover datafile 3;
RMAN>sql "alter database datafile 3 online";
RMAN>startup;
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN>shutdown immediate; (如果不能关闭,用 shutdown abort 强行关闭)
RMAN>startup mount;
RMAN>report schema;
RMAN>sql "alter database datafile 3 offline";
RMAN>restore datafile 3;
RMAN>recover datafile 3;
RMAN>sql "alter database datafile 3 online";
RMAN>startup;
5. tablespace 表空间的丢失
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN> report schema;
RMAN>sql "alter tablespace users offline";
RMAN>sql "alter tablespace users offline immediate"; --有可能需要,强制 users 表空间offline
RMAN>restore tablespace users;
RMAN>recover tablespace users;
RMAN>sql "alter tablespace users online";
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN> report schema;
RMAN>sql "alter tablespace users offline";
RMAN>sql "alter tablespace users offline immediate"; --有可能需要,强制 users 表空间offline
RMAN>restore tablespace users;
RMAN>recover tablespace users;
RMAN>sql "alter tablespace users online";
6. catalog 模式下的整库完全恢复
D:\ rman sys/sysdba@nail catalog rman/rman@cata
RMAN>startup nomount
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
在SQL PLUS 中继续做 redolog 的恢复
D:\>sqlplus " sys/sysdba@nail as sysdba"
SQL> create pfile='d:\pfile.ora' from spfile;
SQL> shutdown immediate;
编辑 d:\pfile.ora 在文件的最后添加一行
*._allow_resetlogs_corruption='TURE'
SQL> startup pfile='d:\pfile.ora' mount
SQL> alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
SQL> alter database open resetlogs;
RMAN>backup database-------请立即备份,避免出问题(因为用了 resetlogs )
转载于:https://blog.51cto.com/nails/227869