oracle 备份恢复语句整理(最全)
oracle数据库全库备份语句
oracle数据库全库备份语句
Oracle数据库是一种关系型数据库管理系统,提供了全库备份的功能,可以用来备份整个数据库。下面列举了10个不同的Oracle数据库全库备份语句。
1. 使用RMAN备份全库:
使用RMAN工具备份整个Oracle数据库,可以使用以下命令:
```
RMAN> backup database;
```
2. 使用expdp备份全库:
使用expdp工具备份整个Oracle数据库,可以使用以下命令:
```
expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;
```
3. 使用exp备份全库:
使用exp工具备份整个Oracle数据库,可以使用以下命令:
```
exp system/password@database_name full=y file=full_backup.dmp log=full_backup.log;
4. 使用Data Pump备份全库:
使用Data Pump工具备份整个Oracle数据库,可以使用以下命令:
```
expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;
```
5. 使用RMAN增量备份全库:
使用RMAN工具进行增量备份,可以使用以下命令:
oracle 数据库的备份与恢复
第七页,共51页。
数据库备份和恢复概述
——备份类型
Oracle数据库的备份包括以下两种类型:
备份
物理备份
逻辑备份
• 对数据库的操作系统物理文件 (如数据文件、控制文件和重做日 志文件等)的备份 • 有脱机备份(冷备份)和联机
备份(热备份)
• 对数据库逻辑组件(如表、视 图和存储过程等数据库对象)
第四页,共51页。
本章内容导航
数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作
第五页,共51页。
数据库备份和恢复概述
——备份和恢复的概念
备份与恢复是数据库管理中最重要的方面之 一。 如果数据库崩溃却没有办法恢复它,那么会对企 业造成毁灭性的结果。
Question
• 1、创建一个概要文件,要求登录尝试3 次,被锁口令3天后自动解除。并使用 户user01采用该概要文件。
• 2、禁用所有角色。
第一页,共51页。
假设各用户初始时都不具有权限,经过下列语句的执行
问myuser1, myuser2,user1, user2和user3各具有什么权限?
– $ exp system/manager file=bible_db log=dible_db full=y rows=n 导出数据库定义而不导出数据
oracle恢复表数据的sql语句
oracle恢复表数据的sql语句
恢复表数据是在数据库中非常常见的操作,当我们需要恢复被误删除或者修改的表数据时,可以使用Oracle数据库提供的一些SQL 语句来完成。下面列举了10个常用的Oracle恢复表数据的SQL语句。
1. 使用INSERT INTO语句恢复单条数据
在Oracle中,可以使用INSERT INTO语句将备份的数据插入到目标表中,从而实现恢复。例如:
```
INSERT INTO 表名(列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
```
其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,值1、值2、值3为备份数据中对应列的值。
2. 使用UPDATE语句恢复单条数据
如果仅需要恢复某个或某几个列的数据,可以使用UPDATE语句来进行恢复。例如:
```
UPDATE 表名 SET 列1 = 值1, 列2 = 值2, 列3 = 值3 WHERE 条件;
```
其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,值1、值2、值3为备份数据中对应列的值,条件为恢复数据的条件。
3. 使用INSERT INTO SELECT语句批量恢复数据
如果需要恢复多条数据,可以使用INSERT INTO SELECT语句来进行批量恢复。例如:
```
INSERT INTO 表名 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ... FROM 备份表名 WHERE 条件;
```
其中,表名为需要恢复数据的目标表,列1、列2、列3为目标表的列名,备份表名为备份数据的表名,条件为恢复数据的条件。
完整版Oracle数据库备份和恢复操作手册
1 ORACLE数据库数据备份和恢复操作手册1.1. ORACLE参数设置
进入CMD操作界面,使用sqlplus连接数据库,
图例1数据库连接操作
连接语法:sqlplus system/Oracle2013@orcl
图例2成功连接数据库环境变量设置(在Sqlplus中执行)
create or replace directory <dir_name〉as C:\tmpdir '
图例3环境变量设置
12数据备份
备份脚本:expdp system/Oracle2013@orcl directory=file_path dumpfile=ARADMIN.dat logfile=ARADMIN.Iog schemas=ARADMIN
参数说明
操作:
图例4数据库备份操作
L ■耳耳p®『匸骷日L ■ oxportnd _ B expov'tri&d
■. Rwpnrtiftrl L
■ exported L v
exporiced »■
exported ■v Qxportzod L .
eKpo^tred ■. RKportert
■. exported
■■ exported L … exported L … exported L - exported L ■ exportiert L . exported Hdtittsr Ldble
a KB e
rimwrimTW
■审jm・rnirTWr・
"ARA>HlM Bi B B,T48^
牺wiMn»r』T52"
料RRDniN o.*T53'*
JT8°
,>ftlft>NlN,L*l T9u
orcal数据备份语句
orcal数据备份语句
Oracle数据库备份语句是保障数据库数据安全的重要手段。以下是符合标题要求的Oracle数据备份语句,希望对您有所帮助。
1.全备份语句
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
2.增量备份语句
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG;
3.备份指定表空间
RMAN> BACKUP TABLESPACE users;
4.备份指定数据文件
RMAN> BACKUP DATAFILE 1;
5.增量备份指定表空间
RMAN> BACKUP INCREMENTAL LEVEL 1 TABLESPACE users;
6.备份指定控制文件
RMAN> BACKUP CURRENT CONTROLFILE;
7.备份指定归档日志
RMAN> BACKUP ARCHIVELOG ALL;
8.备份指定时间段内的归档日志
RMAN> BACKUP ARCHIVELOG FROM TIME 'SYSDATE-7' UNTIL TIME 'SYSDATE';
9.备份指定备份集
RMAN> BACKUP BACKUPSET 1;
10.备份指定备份集副本
RMAN> BACKUP BACKUPSET COPY 1;
以上是Oracle数据库备份语句的一些常见用法,不同的备份需求需要使用不同的备份语句。备份后一定要及时验证备份是否成功,并将备份文件保存在安全可靠的地方,以免发生数据丢失情况。
oracle备份与恢复
1.1 基本命令1. 获取帮助$ exp help=y$ imp help=y2. 三种工作方式(1)交互式方式$ exp // 然后按提示输入所需要的参数(2)命令行方式$ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令行中输入所需的参数(3)参数文件方式$ exp parfile=username.par // 在参数文件中输入所需的参数参数文件 username.par 内容 userid=username/userpassword buffer=8192000compress=n grants=yfile=/oracle/test.dmp full=y3. 三种模式(1)表方式,将指定表的数据导出/导入。导出:导出一张或几张表:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2导出某张表的部分数据$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’and col2 \<…\”导入:导入一张或几张表$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y(2)用户方式,将指定用户的所有对象及数据导出/导入。导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)只导出数据对象,不导出数据 (rows=n )$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2commit=y ignore=y(3)全库方式,将数据库中的所有对象导出/导入导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser21.2 高级选项1. 分割成多个文件以多个固定大小文件方式导出:这种做法通常用在表数据量较大,单个 dump文件可能会超出文件系统的限制的情况$ exp user/pwd file=1.dmp,2.dmp,3.dmp,…filesize=1000m log=xxx.log full=y以多个固定大小文件方式导入$ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxx fromuser=dbuser touser=dbuser2 commit=y ignore=y2. 增量导出/导入// oracle 9i 以后 exp 不再支持 inctype必须为 SYS 或 SYSTEM 才可执行增量导出导入增量导出: 包括三个类型:(1)“完全”增量导出(Complete) // 备份整个数据库$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete(2)“增量型”增量导出 导出上一次备份后改变的数据。$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental(3) “累计型”增量导出(Cumulative)只导出自上次“完全”导出之后数据库中变化 了的信息。$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative增量导入:$ imp usr/pwd FULL=y inctype=system/restore/inct ype其中:SYSTEM: 导入系统对象RESTORE: 导入所有用户对象3. 以SYSDBA进行导出/导入1. 用于 Oracle 技术支持2. 用于
oracle数据库全库备份语句
oracle数据库全库备份语句
Oracle数据库是一种关系型数据库管理系统,它可以用于存储和管理大量的结构化数据。在进行数据库管理时,备份是非常重要的一项工作,它可以保护数据库免受数据丢失和系统故障的影响。下面列举了十个Oracle数据库全库备份的语句,以供参考。
1. 使用RMAN进行全库备份:
RMAN是Oracle提供的备份和恢复工具,可以通过以下命令进行全库备份:
```
RMAN> BACKUP DATABASE;
```
2. 使用EXPDP进行全库逻辑备份:
EXPDP是Oracle提供的逻辑备份工具,可以通过以下命令进行全库备份:
```
expdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```
3. 使用IMPDP进行全库逻辑恢复:
IMPDP是Oracle提供的逻辑恢复工具,可以通过以下命令进行全库恢复:
```
impdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```
4. 使用ALTER DATABASE进行全库备份:
ALTER DATABASE命令可以备份整个数据库,可以通过以下命令进行全库备份:
```
SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/path/to/backup/controlfile.bkp';
ORACLE数据库备份及恢复方法
ORACLE数据库备份及恢复⽅法
⼀、oracle数据备份
1、找到电脑右下⽅开始--运⾏,输⼊cmd,进⼊dos命令窗⼝。
2、输⼊sqlplus system/密码@orcl (⼀般管理员登录)--------连接本机oracle数据库
输⼊ sqlplus system/密码@IP:端⼝/orcl (⼀般管理员登录)--------连接⾮本机oracle数据库
3、创建⼀个dmp的⽬录,输⼊create directory dpdata1 as 'E:\temp\dmp';
4、查询是否有此⽬录,select * from dba_directories;
5、在E盘下新建E:\temp\dmp⽬录
6、赋于要导出数据表的所属⽤户权限,grant read,write on directory dpdata1 to ⽤户名;,授权成功以后输⼊exit 退出sql。
7、开始数据备份,expdp system/密码@orcl directory=dpdata1 dumpfile=⽂件名.dmp logfile=⽂件名.log schemas=⽤户名
8、⽬录E:\temp\dmp下⾯可以看到备份⽂件,备份完成。
⼆、oracle数据还原
1、找到电脑右下⽅开始--运⾏,输⼊cmd,进⼊dos命令窗⼝。
2、输⼊sqlplus system/密码@orcl (⼀般管理员登录)--------连接本机oracle数据库
3、删除user,输⼊ drop user ⽤户名 cascade;
4、导⼊还原数据,输⼊ impdp system/密码@orcl directory=dpdata1 dumpfile=dmp⽂件名 logfile=log⽂件名 schemas=⽤户名; 还原完成。
orcal数据备份语句
orcal数据备份语句
Oracle数据库备份语句是数据库管理员经常使用的重要工具,它可以保护数据库的数据安全,防止数据丢失或损坏。以下是一些常用的Oracle数据库备份语句:
1. 全备份语句:
RMAN> BACKUP DATABASE;
这个语句将对整个数据库进行备份,包括数据文件、控制文件和日志文件。
2. 表空间备份语句:
RMAN> BACKUP TABLESPACE example;
这个语句将备份指定的表空间,可以用于恢复该表空间的数据。
3. 数据文件备份语句:
RMAN> BACKUP DATAFILE 1 FORMAT '/backup/datafile1.bak';
这个语句将备份指定的数据文件,可以用于恢复该数据文件的数据。
4. 控制文件备份语句:
RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/backup/controlfile.bak';
这个语句将备份当前的控制文件,以便在需要时进行恢复。
5. 归档日志备份语句:
RMAN> BACKUP ARCHIVELOG ALL FORMAT '/backup/archivelog.bak';
这个语句将备份所有归档日志文件,用于保留数据库变更的历史记录。
6. 增量备份语句:
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
这个语句将备份已更改的数据块,可以用于快速备份大型数据库。
7. 压缩备份语句:
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;
最全的Oracle数据库备份与还原命令
最全的Oracle数据库备份与还原命令【数据导出】
1. 导出orcl中所有的表空间
exp system/manager@orcl file=d:\daochu.dmp full=y
2. 导出system数据库中指定的表空间
exp system/manager@orcl file=d:\daochu.dmp owner=(system,sys)
3. 导出数据库中制定的表数据
exp system/manager@orcl file=d:\daochu.dmp tables=(table1,table2)
4. 导出数据库中table1中字段field1以“00”开头的数据
exp system/manager@orcl file=d:\daochu.dmp tables=(table1)query=" where filed1 like '00%'"
注:如果要压缩,则在最后⾯加上compress=y即可
【数据导⼊】
1. 将D:\daochu.dmp 中的数据导⼊ orcl数据库中。
imp system/manager@orcl file=d:\daochu.dmp
注:如果有的表已经存在,会提⽰报错,这个时候,在后⾯加上ignore=y,即已存在的表不导⼊
2. 将d:\daochu.dmp中的表table1 导⼊
imp system/manager@orcl file=d:\daochu.dmp tables=(table1)
注:导⼊导出时,有时候会出现权限不⾜的情况
这时,需要登录plus进⾏授权,⾸先登录管理员账号,然后:
oracle 备份恢复语句整理(最全)
Oracle备份恢复场景总结
一、数据文件、表空间恢复
1、数据库文件恢复
1>场景一:
问题描述:
test.dbf丢失,有RMAN备份。
重启报错:
Startup;
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/oracle/app/oracle/oradata/orcl/test01.dbf'
run{
startup mount;
allocate channel ch00 type 'SBT_TAPE';
restore datafile 5;
recoverdatafile 5;
alter database open;
release channel ch00;
}
2>场景二
问题描述:
模拟test表空间损坏,删除数据文件(恢复到新目录)
旧目录:/oracle/app/oracle/oradata
新目录: /home/oracle
run{
allocate channel ch00 type 'SBT_TAPE';
sql 'alter database datafile 5 offline';
setnewname for datafile 5 to '/home/oracle/test01.dbf';
restoredatafile 5;
switchdatafile 5;
recoverdatafile 5;
sql 'alter database datafile 4 online';
Oracle数据库备份与恢复总结
Oracle数据库备份与恢复总结
1. EXP/IMP (导出与导入装库与卸库) (6)
1.1基本命令 (6)
1. 获取帮助 (6)
2. 三种工作方式 (6)
3. 三种模式 (7)
1.2高级选项 (7)
1. 分割成多个文件 (7)
2. 增量导出/导入 (8)
3. 以SYSDBA进行导出/导入 (8)
4. 表空间传输(速度快) (8)
1.3优化 (10)
1. 加快exp速度 (10)
2. 加快imp速度 (10)
3. 通过unix/Linux PIPE管道加快exp/imp速度 (10)
4. 全库导入的一般步骤 (12)
1.4常见问题 (12)
1. 字符集问题 (12)
2. 版本问题 (13)
2. SQL*LOADER (14)
2.1基本知识 (14)
1.命令格式 (14)
2.控制文件 (14)
3.数据文件 (15)
4. 坏文件 (16)
5. 日志文件及日志信息 (16)
2.2高级选项 (16)
1. Conventional Path Load 与Direct Path Load (16)
2. SPOOL导出文本数据方法 (16)
2.3脚本 (17)
1. 将表中数据记录导出为字段值用分隔符'|'分开的.dat文件 (17)
2. 将数据导入到相应表中 (18)
3. OS备份/用户管理的备份与恢复(USER MANAGED BACKUP AND RECOVERY) (20)
3.1相关设置 (20)
3.1.1 设置ARCHIVELOG与NONARCHIVELOG模式 (20)
3.1.2 LOGGING 与NOLOGGING (21)
Oracle数据库备份与还原命令
Oracle数据库备份与还原命令
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1)query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面加上compress=y 就可以了
数据的导入
1 将D:\daochu.dmp 中的数据导入TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
Oracle数据库备份与恢复之完全攻略
Oracle数据库备份与恢复之完全攻略
一、导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)表方式(T方式),将指定表的数据导出。
(2)用户方式(U方式),将指定用户的所有对象及数据导出。
(3)全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)“完全”增量导出(Complete)即备份三个数据库,比如:exp system/manager
inctype=complete file=040731.dmp。
(2)“增量型”增量导出备份上一次备份后改变的数据,比如:exp system/manager
inctype=incremental file=040731.dmp。
(3)“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:exp system/manager inctype=cumulative file=040731.dmp。
Oracle数据备份与恢复
Oracle数据备份与恢复
Oracle数据备份与恢复
作者:⽆从考证来源:转载发布时间:2005-9-22 10:25:52 发布⼈:admin 8){NewaspContentLabel.style.fontSize=(--newasp_fontsize)+"pt";NewaspContent
Label.style.lineHeight=(--newasp_lineheight)+"pt";}‘>减⼩字体增⼤字体
数据备份
不论何种⽅式,数据库的备份即为data file/control file/redo file此三种⽂件的备份。
1、exp/imp的备份⽅式
2、脱机备份⽅式(offline backup)
3、联机备份⽅式(online backup)
4、standy的运⾏模式
1、exp/imp的备份⽅式
(1)命令⽅式
可以在online的环境下进⾏。
(2)OEM⽅式
利⽤导出备份向导进⾏导出。
2、脱机备份⽅式(offline backup)
复制相关的⽂件即可。
(1)关闭数据库;
(2)复制⽂件,datafile/control file/redo log file;
(3)打开数据库。
3、联机备份⽅式(online backup)
条件:
(1)数据库不能关闭;
(2)数据库必需处于归档模式(archive mode),即redo log file记录满后,把完整的redo log file保存
在磁盘上;
让数据处于archive mode的⽅法:
(1)设置archive mode;
在initorcl.ora⽂件中设置如下参数:
oracle备份一条数据的语句
Oracle备份一条数据的语句可以使用INSERT INTO SELECT语句,具体语法如下:
INSERT INTO backup_table_name SELECT * FROM original_table_name WHERE condition;
其中,backup_table_name为备份表名,original_table_name为原始表名,condition为需要备份的数据的筛选条件。该语句将原始表中符合条件的数据插入到备份表中,从而实现备份一条数据的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle备份恢复场景总结
一、数据文件、表空间恢复
1、数据库文件恢复
1>场景一:
问题描述:
test.dbf丢失,有RMAN备份。
重启报错:
Startup;
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/oracle/app/oracle/oradata/orcl/test01.dbf'
run{
startup mount;
allocate channel ch00 type 'SBT_TAPE';
restore datafile 5;
recoverdatafile 5;
alter database open;
release channel ch00;
}
2>场景二
问题描述:
模拟test表空间损坏,删除数据文件(恢复到新目录)
旧目录:/oracle/app/oracle/oradata
新目录: /home/oracle
run{
allocate channel ch00 type 'SBT_TAPE';
sql 'alter database datafile 5 offline';
setnewname for datafile 5 to '/home/oracle/test01.dbf';
restoredatafile 5;
switchdatafile 5;
recoverdatafile 5;
sql 'alter database datafile 4 online';
release channel ch00;
}
说明:
set newname for 告诉RMAN 还原数据文件的新位置在哪里。这个命令在restore 前出现。
switch datafile更新controlfile,记录这个新位置。这个命令要在recover 前出现
2、表空间恢复
恢复误删除表空间(已备份),RMAN 必须通过备份的控制文件(与之配套的老控制文
件)进行恢复。
run{
startupnomount;
allocate channel d1 type sbt;
restorecontrolfile from '/bk_43_1_920726015';
sql 'alter database mount';
set until time '2016-08-24 13:17:16';
restore database;
recover database;
alter database open read only;
release channel d1;
}
确保没问题在:
shutdown abort;
startup mount;
alter database open resetlogs;
二、控制文件恢复
1、场景一:控制文件自动备份的恢复
startupnomount
set dbidxxxx需指定DBID
restorecontrolfilefrom autobackup;
alter database mount;
recover database;
alter database open resetlogs;
如何寻找DBID?
1.既然是默认路径,那么就去默认路径寻找,一般在$ORACLE_HOME/dbs目录下,
例如c-361654012-20150312-04,其中361654012就是DBID
2.在数据文件的头部含有DBID
2、场景一:控制文件从非默认地方恢复
这里控制文件从nbu备份的磁带上恢复
备份路径
startupnomount
#从本地恢复
restore controlfile from ‘/u01/c-361654012-20150312-04’;在此之前无需指定DBID 或者
#从SBT_TAPE恢复
restorecontrolfile from '/cntrl_23_1_920645270';
run{
allocate channel d1 type sbt;
restorecontrolfile from '/cntrl_23_1_920645270';
sql 'alter database mount';
recover database;
sql 'alter database open resetlogs';
release channel d1;
}
注释:
1>、restore controlfile必须写在run块了,否则报错:
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
2>sbt的磁带号-/cntrl_23_1_920645270可以从已备份成功的任务里查看。
三、Redo 文件恢复
联机重做日志的3种状态:
current 当前
inactive 非活动
active 活动
观察数据恢复是否需要联机重做日志来恢复。
1.inactive日志丢失的恢复—实例恢复不需要
2.active日志丢失的恢复:日志组对应的脏块还没有从data buffer 写入到data file,不能被
覆盖(但已写入到归档里)—实例恢复需要
3.current日志丢失的恢复—实例恢复需要
1、场景一:inactive日志丢失的恢复
1>正常关闭数据库后(redo的丢失就属于inactive日志丢失的恢复)
shutdown immediate
rm redo*
startup mount
alter database clear logfile '/u01/app/oracle/oradata/ortest/redo01.log';
## alter database clear logfile group n;也行
alter database clear logfile '/u01/app/oracle/oradata/ortest/redo03.log';
alter database clear unarchivedlogfile '/u01/app/oracle/oradata/ortest/redo02.log';
alter database open;
此情况不会丢失数据。
起来后多切几遍日志,看是否正常:
alter system switch logfile;
注意事项:
必须clear 完非current log之后,才能clear unarchived current log(当你不带参数unarchived而clear当前日志的时候会提示你日志需要归档)。