本文共 8596 字,大约阅读时间需要 28 分钟。
(一)、创建恢复目录
1、创建恢复目录数据库#mkdir -p /u01/app/oracle/oradata/rmandb#chown -R oracle /u01/app/oracle/oradata/rmandb[root@rhel1 ~]#su - oracle[oracle@rhel1 ~]$sqlplus / as sysdbaSQL> create tablespace rmant datafile '/u01/app/oracle/oradata/rmandb/rmants.ora' size 20M ;表空间已创建。2、在恢复目录数据库中创建RMAN 用户并授权
SQL> create user c##rmant identified by rmantdefault tablespace rmanttemporary tablespace tempquota unlimited on rmant; 用户已创建。SQL> grant connect,resource to c##rmant;授权成功。SQL> grantrecovery_catalog_owner to c##rmant;授权成功。3、在恢复目录数据库中创建恢复目录
[oracle@oracle~]$rman catalog c##rmant/rmant恢复管理器: Release 12.2.0.1.0 - Production on 星期五 11月 16 19:59:31 2018Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.连接到恢复目录数据库RMAN> create catalog;恢复目录已创建RMAN> quit恢复管理器完成。(二)、注册目标数据库到恢复目录
2、连接目标数据库
RMAN> connect target sys/oracle;已连接到目标数据库: ORCL (DBID=1503444987)3、连接恢复目录数据库
RMAN> connect catalog c##rmant/rmant;连接到恢复目录数据库4、注册
RMAN> register database;注册在恢复目录中的数据库正在启动恢复目录的全部重新同步完成全部重新同步RMAN> quit恢复管理器完成。1
(三)、在归档模式下备份和恢复
1.将数据库设置为归档模式,数据库实例要处于启动状态,数据库已经加载或打开状态SQL> conn sys/oracle as sysdba;已连接。SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 1593835520 bytes
Fixed Size 8793256 bytesVariable Size 1023411032 bytesDatabase Buffers 553648128 bytesRedo Buffers 7983104 bytes数据库装载完毕。SQL> alter database archivelog;数据库已更改。
SQL> alter database open;
数据库已更改。
2、首先修改快闪恢复区的参数
SQL> show parameter db_recovery_file_destNAME TYPE
db_recovery_file_dest string
db_recovery_file_dest_size big integer
0SQL> alter system setdb_recovery_file_dest_size=2g;系统已更改。
3、创建一个表空间和表
SQL> create tablespace tab1datafile '/u01/app/oracle/oradata/rmandb/tab1.dbf' size 10m; 表空间已创建。4、创建表tab1
SQL> create table tab1(id int);表已创建。5、向表tab1中添加记录
SQL> insert into tab1 values(1);已创建 1 行。SQL> commit;
提交完成。SQL> quit
从 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 断开5、使用数据库用户sys登录RMAN
[oracle@oracle~]$rman target sys/oracle恢复管理器: Release 12.2.0.1.0 - Production on 星期五 11月 16 20:15:04 2018Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.已连接到目标数据库: ORCL (DBID=1503444987)6、备份整个数据库到快闪区
RMAN> backup database;从位于 16-11月-18 的 backup 开始使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: SID=31 设备类型=DISK通道 ORA_DISK_1: 正在启动全部数据文件备份集通道 ORA_DISK_1: 正在指定备份集内的数据文件输入数据文件, 文件号 = 00001 名称 = /u01/app/oracle/oradata/orcl/system01.dbf输入数据文件, 文件号 = 00003 名称 = /u01/app/oracle/oradata/orcl/sysaux01.dbf输入数据文件, 文件号 = 00004 名称 = /u01/app/oracle/oradata/orcl/undotbs01.dbf输入数据文件, 文件号 = 00013 名称 = /opt/oracle/oradata/rmandb/rmants.ora输入数据文件, 文件号 = 00014 名称 = /u01/app/oracle/oradata/rmandb/rmants.ora输入数据文件, 文件号 = 00015 名称 = /u01/app/oracle/oradata/rmandb/tab1.dbf输入数据文件, 文件号 = 00007 名称 = /u01/app/oracle/oradata/orcl/users01.dbf通道 ORA_DISK_1: 正于 16-11月-18 启动段 1通道 ORA_DISK_1: 完成了于 16-11月-18 启动段 1片段句柄 = /u01/app/oracle/product/12.2.0/dbhome_1/dbs/01ticu3n_1_1 标记 = TAG20181116T201551 注释 = NONE通道 ORA_DISK_1: 备份集完成, 用时: 00:00:55通道 ORA_DISK_1: 正在启动全部数据文件备份集通道 ORA_DISK_1: 正在指定备份集内的数据文件输入数据文件, 文件号 = 00010 名称 = /u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf输入数据文件, 文件号 = 00009 名称 = /u01/app/oracle/oradata/orcl/orclpdb/system01.dbf输入数据文件, 文件号 = 00011 名称 = /u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf输入数据文件, 文件号 = 00012 名称 = /u01/app/oracle/oradata/orcl/orclpdb/users01.dbf通道 ORA_DISK_1: 正于 16-11月-18 启动段 1通道 ORA_DISK_1: 完成了于 16-11月-18 启动段 1片段句柄 = /u01/app/oracle/product/12.2.0/dbhome_1/dbs/02ticu5f_1_1 标记 = TAG20181116T201551 注释 = NONE通道 ORA_DISK_1: 备份集完成, 用时: 00:00:25通道 ORA_DISK_1: 正在启动全部数据文件备份集通道 ORA_DISK_1: 正在指定备份集内的数据文件输入数据文件, 文件号 = 00006 名称 = /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf输入数据文件, 文件号 = 00005 名称 = /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf输入数据文件, 文件号 = 00008 名称 = /u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf通道 ORA_DISK_1: 正于 16-11月-18 启动段 1通道 ORA_DISK_1: 完成了于 16-11月-18 启动段 1
片段句柄 = /u01/app/oracle/product/12.2.0/dbhome_1/dbs/03ticu68_1_1 标记 = TAG20181116T201551 注释 = NONE通道 ORA_DISK_1: 备份集完成, 用时: 00:00:26在 16-11月-18 完成了 backup从位于 16-11月-18 的 Control File and SPFILE Autobackup 开始
片段句柄 = /u01/app/oracle/product/12.2.0/dbhome_1/dbs/c-1503444987-20181116-00 注释 = NONE在 16-11月-18 完成了 Control File and SPFILE AutobackupRMAN> quit恢复管理器完成。7、删除tab1表
SQL> drop table tab1;(记住删除时间)Table TAB1已删除。SQL> commit;提交完成。8、恢复表
①在数据库为mount状态时恢复数据库SQL> shutdown immediate;数据库已关闭。数据库已卸装。ORACLE 例程关闭。SQL> startup mount;ORACLE 实例已启动Total System Global Area 1593835520 bytes Fixed Size 8793256 bytes Variable Size 1023411032 bytes Database Buffers 553648128 bytes Redo Buffers 7983104 bytes 数据库已装载。SQL> quit已从Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production断开连接[oracle@oracle~]$rman target sys/oracle;恢复管理器: Release 12.2.0.1.0 - Production on 星期五 11月 16 20:23:39 2018Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.已连接到目标数据库: ORCL (DBID=1503444987, 未打开)RMAN> restore database;从位于 16-11月-18 的 restore 开始使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: SID=257 设备类型=DISK正在跳过数据文件 5; 已还原到文件 /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf正在跳过数据文件 6; 已还原到文件 /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf正在跳过数据文件 8; 已还原到文件 /u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf正在跳过数据文件 9; 已还原到文件 /u01/app/oracle/oradata/orcl/orclpdb/system01.dbf正在跳过数据文件 10; 已还原到文件 /u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf正在跳过数据文件 11; 已还原到文件 /u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf正在跳过数据文件 12; 已还原到文件 /u01/app/oracle/oradata/orcl/orclpdb/users01.dbf通道 ORA_DISK_1: 正在开始还原数据文件备份集通道 ORA_DISK_1: 正在指定从备份集还原的数据文件通道 ORA_DISK_1: 将数据文件 00001 还原到 /u01/app/oracle/oradata/orcl/system01.dbf通道 ORA_DISK_1: 将数据文件 00003 还原到 /u01/app/oracle/oradata/orcl/sysaux01.dbf通道 ORA_DISK_1: 将数据文件 00004 还原到 /u01/app/oracle/oradata/orcl/undotbs01.dbf通道 ORA_DISK_1: 将数据文件 00007 还原到 /u01/app/oracle/oradata/orcl/users01.dbf通道 ORA_DISK_1: 将数据文件 00013 还原到 /opt/oracle/oradata/rmandb/rmants.ora通道 ORA_DISK_1: 将数据文件 00014 还原到 /u01/app/oracle/oradata/rmandb/rmants.ora通道 ORA_DISK_1: 将数据文件 00015 还原到 /u01/app/oracle/oradata/rmandb/tab1.dbf通道 ORA_DISK_1: 正在读取备份片段 /u01/app/oracle/product/12.2.0/dbhome_1/dbs/01ticu3n_1_1通道 ORA_DISK_1: 片段句柄 = /u01/app/oracle/product/12.2.0/dbhome_1/dbs/01ticu3n_1_1 标记 = TAG20181116T201551通道 ORA_DISK_1: 已还原备份片段 1通道 ORA_DISK_1: 还原完成, 用时: 00:01:16在 16-11月-18 完成了 restoreRMAN> recover database until time "to_date('2018-11-16 20:20:00','yy-mm-dd hh24:mi:ss')";
从位于 16-11月-18 的 recover 开始使用通道 ORA_DISK_1正在开始介质的恢复介质恢复完成, 用时: 00:00:01在 16-11月-18 完成了 recover1
9、恢复表空间
说明:如果只丢失了特定表空间中的数据文件,那么可以选择只恢复这个表空间,而不是恢复整个数据库,表空间可以在不关闭数据库的情况下进行,只需要将表空间offlineSql>create tablespace tab2Datafile‘/u01/app/oracle/oradata/rmandb/tab2.dbf’ size 10m;sql>quit;$rman target sys/oraclrman>backup tablespace tab2;rman>quit$mv/u01/app/oracle/oradata/rmandb/tab2.dbf /u01/app/oracle/oradata/rmandb/tab2.dbf.bak(模拟表空间数据文件丢失)$rman target sys/oraclerman>run{ sql 'alter tablespace tab2 offline immediate';restore tablespace tab2;recover tablespace tab2;sql 'alter tablespace tab2 online';}rman>quit$ls /opt/oracle/oradata/rmandb/(观察其下tab2.dbf是不是出现了)10、数据文件备份与恢复
①查看当前数据库的所有数据文件sql>col file_name for a55sql>set line 100Sql>select file_id,file_name,tablespace_name from dba_data_files;(记下数据文件的id)②备份数据文件
sql>quit;$rman target sys/oracle11grman>backup datafile 6;③模拟删除数据文件tab6.dbf
rman>quit$mv /u01/app/oracle/oradata/rmandb/tab6.dbf /u01/app/oracle/oradata/rmandb/tab6.bak1$rman target sys/oraclerman>run{ allocate channel dev1 type disk;sql 'alter tablespace tab2 offline immediate';restore datafile 6;recover datafile 6;sql 'alter tablespace tab6 online';release channel dev1;}rman>quit$ls /opt/oracle/oradata/rmandb/(观察其下tab2.dbf是不是出现了)转载于:https://blog.51cto.com/13468179/2318139