- 浏览: 5176481 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
本人整理编辑,部分内容来自:http://blog.csdn.net/managergh/archive/2007/03/06/1521944.aspx等页面。
1 列出对应物
RMAN>list incarnation;
2 列出备份
2.1概述可用的备份RMAN>list backup summary;
B 表示 backup
F 表示 FULL
A 表示 archive log
0 1 表示 incremental backup
S 说明备份状态 (A AVAILABLE X EXPIRED )
2.2按备份类型列出备份RMAN>list backup by file;
按照 数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出
2.3列出详细备份 RMAN>list backup;
2.4列出过期备份 RMAN>list expired backup;
2.5列出表空间和数据文件备份
list backup of tablespace 和list backup of datafile 输出和list backup 相似
如:list backup of tablespace user_tbs;
list backup of datafile 3;
2.6列出归档日志备份 RMAN>list archivelog all;简要信息
RMAN>list backup of archivelog all; 详细信息
2.7列出控制文件和服务器参数文件
RMAN>list backup of controlfile;
RMAN>list backup of spfile;
=====================================================
=====================================================
RMAN 的 report命令
1. 报告最近没有被备份的数据文件
RMAN>report need backup days=3;
2. 报告备份冗余或恢复窗口
RMAN>report need backup redundancy=2;
RMAN>report need backup recovery window of 2 days;
3. 报告数据文件的不可恢复操作
RMAN>report unrecoverable;
4. 报告数据库模式
RMAN>report schema;
5. 报告丢弃的备份
如果使用了保存策略,备份会标记为丢弃状态 RMAN>report obsolete; 删除丢弃状态备份RMAN>delete obsolete;
=====================================================
=====================================================
RMAN的crosscheck 命令
1 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
2 crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired 的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。
3 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保 存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete。
4 示例:
crosscheck backup
crosscheck backup of datafile 1;
crosscheck backup of tablespace users;
crosscheck backup of controfile;
crosscheck backup of controlfile;
crosscheck backup tag='SAT_BACKUP';
crosscheck backup completed after 'sysdate - 2'
crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
crosscheck backup device type sbt;
crosscheck archivelog all;
crosscheck archivelog like '%ARC00012.001'
crosscheck archivelog from sequence 12;
crosscheck archivelog until sequence 522;
=====================================================
=====================================================
RMAN 的validate 命令
1 validate 命令验证备份集片是否能够被还原
2 list backup summary; 得到了备份集得主键ID如40,然后validate backupset 40;
=====================================================
=====================================================
RMAN 的备份保存策略以及change ,delete命令
0.带delete参数的change 命令删除备份集,从备份介质,并且从控制文件和恢复目录中删除。
change backupset 117,118 delete;
change backuppiece 1304 delete;
change archivelog until logseq =544 delete;
1.两类策略:恢复窗口备份保存策略(recovery windows backup retension policy) 基于时间
备份冗余备份保存策略(backup redundancy backup retension policy) 基于备份的数量
两类策略互相排斥
2.即使使用了备份保存策略,备份到期并不删除,只是在RMAN目录中标记为丢弃,看到的状态依旧为available;
要查看标记为丢弃的备份 report obsolete,只有使用delete obsolete才真正物理删除。
3.configure retension policy to recovery window of 7 days;
configure retension policy to redundancy 3;
显示结果 show all;
4.查看到期丢弃的备份时,可能需要手工保存一些备份 ,可以使用change 命令带keep 参数,使用这个命令后,那些被修改的备份将被认为是个long-term backup,不在受保存策略影响也就是说delete obsolete 也不删除。
5.要使备份时候不受保存策略影响 ,使用带keep参数的backup 命令
backup database keep forever;
backup database keep 5 days;
6.change 命令功能
可以修改备份为永久保存并将以及该备份的相关的日志保存下来,保证总能将备份恢复到当前时间点
change backupset 31 keep forever logs;
可以设置备份丢弃的新日期 ,将备份在多保存7 天,7 天后将删除
change backupset 32 keep until time 'sysdata + 7' logs;
7.change 可以将备份集设置为unavailable
change backupset 33 unavailable;
标记为unavailable状态的备份集并不参与crosscheck;
=====================================================
=====================================================
恢复目录的记录删除
1. $ORACLE_HOME/rdbms/admin/prgrmanc.sql 脚本定期删除恢复目录中具有DELETED状态的记录
2. 要删除旧的对应物记录incarnation.必须从DBINC 表中删除这些对应物,使用RC_DATABASE_INCARNATION 视图来确定要删除的对应物。记录要删除的每个对应物的DBINC_KEY
随后启动SQL*Plus,执行delete from dbinc where dbinc_key=2;
删除示例:
1、删除陈旧备份
当使用RMAN执行备份操作时,RMAN会根据备份冗余策略确定陈旧备份。
RMAN> delete obsolete;
2、删除EXPIRED备份
执行crosscheck命令核对备份集,那么会将该备份集标记为EXPIRED状态。为了删除相应的备份记录,可以执行delete expired backup命令。
RMAN> delete expired backup;
3、删除EXPIRED副本
RMAN> delete expired copy;
4、删除特定备份集
RMAN> delete backupset 19;
5、删除特定备份片
RMAN> delete backuppiece 'd:\backup\DEMO_19.bak';
6、删除所有备份集
RMAN> delete backup;
7、删除特定映像副本
RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak';
8、删除所有映像副本
RMAN> delete copy;
9、在备份后删除输入对象
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input;
=====================================================
=====================================================
手工同步恢复目录
resync catalog;
Oracle同步恢复目录的时候,首先创建快照控制文件,然后比较这个文件和恢复目录,完成后,Oracle 更新恢复目录,使恢复目录和控制文件同步
=====================================================
=====================================================
在RMAN 中存储脚本
1,连接到目标数据库和恢复目录
rman target / catalog rman/rman@rman9i
2,创建脚本
RMAN>create script my_bk_script
2>{backup database plus archivelog;}
create script my_bk_script
3,打印脚本
RMAN>print script my_bk_script;
printing stored scipt:my_bk_script
{backup database plus archivelog;}
4,运行这个脚本,备份目标数据库
RMAN>run {execute scipt my_bk_script;}
5 删除脚本
RMAN>delete script my_bk_script;
=====================================================
=====================================================
archivelog模式下的完全恢复
step1:set oracle_sid=recover
rman target rman_backup/password
configure controlfile autobackup on;
step2:backup database plus archivelog delete input;
step3:shutdown immediate;
step4:重命名所有的数据文件和控制文件,不重命名联机重做日志。
step5: startup nomount;
set DBID=****
restore controlfile from autobackup;
alter database mount;
step6: restore database;
recover database;
alter database open resetlogs;
表空间恢复
sql"alter tablespace users offline";
sql"alter tablespace tools offline";
restore tablespace users,tools;
recover tablespace users,tools;
sql"alter tablespace users online";
sql"alter tablespace tools online";
数据文件恢复
sql"alter database datafile 3 offline";
sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
restore datafile 3
restore datafile 'd:oracleoradatausers01.dbf';
recover datafile 3
recover datafile 'd:oracleoradatausers01.dbf';
sql"alter database datafile 3 online";
sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
=====================================================
=====================================================
切换当前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key
=====================================================
=====================================================
RMAN 恢复示例
1 基于时间点的恢复
run
{
set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'
restore database;
recover database;
alter database open resetlogs;
}
2 基于SCN 的恢复
startup mount;
restore database UNTIL SCN 10000;
recover database UNTIL SCN 10000;
alter database open resetlogs;
3 基于日志序列的恢复
startup mount;
restore database UNTIL SEQUENCE 100 thread 1;
recover database UNTIL SEQUENCE 100 thread 1;
alter database open resetlogs;
4 数据文件所在磁盘出现硬件故障
磁盘故障数据文件将不能被转储到原位置,必顺将数据文件转储到其他磁盘
RMAN>run{
startup force mount;
set newname for datafile 1 to '/opt/datafile/system_new01.pdf';
restore database;
switch datafile all;
recover database;
sql 'alter database open';
}
RMAN>report schema; //恢复后查看数据文件新位置
5 恢复表空间数据文件
示例:SYSTEM表空间的数据文件被删除
RMAN>run{
startup force mount;
restore datafile 1;
recover datafile 1;
sql 'alter database open';}
6 在open状态下恢复关闭后损坏的数据文件
示例:数据文件被误删除
RMAN>run{
2>startup force mount;
3>sql 'alter database datafile 4 offline';//脱机损坏的数据文件
4>sql 'alter database open';//打开数据库
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql 'alter database datafile 4 online';//联机恢复后的数据文件}
7 数据文件所在磁盘出现损坏
RMAN>run{
2>startup force mount;
3>sql 'alter database datafile 4 offline';//脱机损坏的数据文件
4>sql 'alter database open';//打开数据库
5>set newname for datafile 4 to '/opt/datafile/user01.pdf';//指定恢复位置
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql 'alter database datafile 4 online';//联机恢复后的数据文件}
9 恢复表空间:
示例:表空间的数据文件被误删除
RMAN>run{
2>sql 'alter tablespace users offline for recover'; //脱机表空间
3>restore tablespace user;
4>recover tablespace user;
5>sql 'alter tablespace users online';}
10 示例:表空间所在磁盘出现磁盘故障
RMAN>run{
2>sql 'alter tablespace users offline for recover'; //脱机表空间
3>set newname for datafile 4 to '/opt/datafile /user01.dbf';
4>restore tablespace user;
5>switch datafile all;
6>recover tablespace user;
5>sql 'alter tablespace users online';}
11 数据块介质恢复
数据块错误会出现以下错误:
SQL>SELECT * FROM SCOTT.CUSTOMERS;
ORA-01578:ORACLE DATA BLOCK CORRUPTED (FILE #5,BLOCK #21)
ORA-01110:data file 5 :'/opt/oracle/oradata/mydb/sdl.dbf'
RMAN>BLOCKRECOVER DEVICE TYPE DISK
2>DATAFILE 5 BLOCK 21,48,128;
12 不完全恢复
基于时间恢复:
$export nls_date_format='yyyy-mm-dd hh24:mi:ss' //指定日期格式
RMAN>run{
2>startup force mount; //挂载数据库
3>set until time='2007-7-26 20:49:00'; //恢复时间点
4>restore database; //转储数据文件
5>recover database; //根据时间点恢复数据库
6>sql 'alter database open resetlogs';//打开数据库重建redolog文件
7>}
13 基于SCN
确定恢复的SCN
SQL>SELECT CURRENT_SCN FROM V$DATABASE;
RMAN>run{
2>startup force mount;
3>set until scn=n; //设置还原点SCN
4>restore database;
5>recover database;
6>sql 'alter database open resetlogs';
7>}
14 基于日志号:
当不能定位日志号的归档日志时会出现以下错误:
Rman-06025:no backup of log thread 1 seq 6 lowscn 531976 found to restore
RMAN>run{
2>startup force mount;
3>set until sequence=n; //日志号通常为不能定位的日志号
4>restore database;
5>recover database;
6>sql 'alter database open resetlogs';
7>}
15 基于备份控制文件:
当误删的表空间或者数据库有的控制文件损坏时可以使用这种方法
$set nls_date_format='yyyy-mm-dd hh24:mi:ss';
$rman target / catalog rman/rman
RMAN>startup force nomount
RMAN>set dbid=3286265633;
RMAN>restore controlfile from autobackup maxseq 6;
RMAN>alter database mount;
RMAN>run {
2>set until time='2007-7-26 21:07:00'
3>restore database;
4>recover database;
5>sql 'alter database open resetlogs';
6>}
16 不完全恢复后建议删除早期的所有备份并重新备份
RMAN>run{
2>delete noprompt backup;
3>delete noprompt copy;
4>backup database format='/opt/ora_bak/%d_%s.pdf';
5>sql 'alter system archive log current';}
存储格式参数:
%a,活动ID
%c,在多重备份中,备份片的拷贝数,最大256
不是多重备份时,用于备份集为1,用于代理副本拷贝为0
%d,数据库名
%D,公历某月的日期(只有day部分),格式DD
%e,归档日志序号
%f,绝对文件号
%F,由DBID(数据库ID),日月年,序号组成
形式为c-IIIIIIIIII-YYYYMMDD-QQ,c为固定
IIIIIIIIII表示DBID,连接RMAN时指定target,会显示DBID
YYYYMMDD为生成备份时的公历时间,比如20081122
QQ表示为16进制序号,00到FF
%h,归档日志线程号
%I,DBID
%M,公历月份,格式MM
%N,表空间名
%n,数据库名,如果数据库名不满8字符,将在右边自动填充'x'
比如,库名为test,结果将是testxxxx
%p,备份集中的备份片号,从1开始,步进1
Note: If you specify PROXY, then the %p variable must be included in the
FORMAT string either explicitly or implicitly within %U.
%s,备份集号,此号记录在控制文件中,每次备份会自动增加
重建控制文件将会初始化为1
%t,备份集时间戳,秒为单位
%T,公历年月日,格式YYYYMMDD
%u,8字符名称,利用备份集或副本拷贝号,备份生成时间,由系统通过某种算法得出
%U,许多FORMAT的默认值,由系统生成的唯一名称,对于副本拷贝和备份集的含义不同
对于备份集的备份片来说,等同于%u_%p_%c
对于数据文件副本拷贝,等同data-D-%d_id-%I_TS-%N_FNO-%f_%u
对于归档日志副本拷贝,等同arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u
对于控制文件副本拷贝,等同cf-D_%d-id-%I_%u
%Y,公历年,格式YYYY
%%,表示一个百分号字符'%'
1 列出对应物
RMAN>list incarnation;
2 列出备份
2.1概述可用的备份RMAN>list backup summary;
B 表示 backup
F 表示 FULL
A 表示 archive log
0 1 表示 incremental backup
S 说明备份状态 (A AVAILABLE X EXPIRED )
2.2按备份类型列出备份RMAN>list backup by file;
按照 数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出
2.3列出详细备份 RMAN>list backup;
2.4列出过期备份 RMAN>list expired backup;
2.5列出表空间和数据文件备份
list backup of tablespace 和list backup of datafile 输出和list backup 相似
如:list backup of tablespace user_tbs;
list backup of datafile 3;
2.6列出归档日志备份 RMAN>list archivelog all;简要信息
RMAN>list backup of archivelog all; 详细信息
2.7列出控制文件和服务器参数文件
RMAN>list backup of controlfile;
RMAN>list backup of spfile;
=====================================================
=====================================================
RMAN 的 report命令
1. 报告最近没有被备份的数据文件
RMAN>report need backup days=3;
2. 报告备份冗余或恢复窗口
RMAN>report need backup redundancy=2;
RMAN>report need backup recovery window of 2 days;
3. 报告数据文件的不可恢复操作
RMAN>report unrecoverable;
4. 报告数据库模式
RMAN>report schema;
5. 报告丢弃的备份
如果使用了保存策略,备份会标记为丢弃状态 RMAN>report obsolete; 删除丢弃状态备份RMAN>delete obsolete;
=====================================================
=====================================================
RMAN的crosscheck 命令
1 备份集有两种状态A(Available,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
2 crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原先标记为Expired 的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。
3 crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。当设置备份保 存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete。
4 示例:
crosscheck backup
crosscheck backup of datafile 1;
crosscheck backup of tablespace users;
crosscheck backup of controfile;
crosscheck backup of controlfile;
crosscheck backup tag='SAT_BACKUP';
crosscheck backup completed after 'sysdate - 2'
crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
crosscheck backup device type sbt;
crosscheck archivelog all;
crosscheck archivelog like '%ARC00012.001'
crosscheck archivelog from sequence 12;
crosscheck archivelog until sequence 522;
=====================================================
=====================================================
RMAN 的validate 命令
1 validate 命令验证备份集片是否能够被还原
2 list backup summary; 得到了备份集得主键ID如40,然后validate backupset 40;
=====================================================
=====================================================
RMAN 的备份保存策略以及change ,delete命令
0.带delete参数的change 命令删除备份集,从备份介质,并且从控制文件和恢复目录中删除。
change backupset 117,118 delete;
change backuppiece 1304 delete;
change archivelog until logseq =544 delete;
1.两类策略:恢复窗口备份保存策略(recovery windows backup retension policy) 基于时间
备份冗余备份保存策略(backup redundancy backup retension policy) 基于备份的数量
两类策略互相排斥
2.即使使用了备份保存策略,备份到期并不删除,只是在RMAN目录中标记为丢弃,看到的状态依旧为available;
要查看标记为丢弃的备份 report obsolete,只有使用delete obsolete才真正物理删除。
3.configure retension policy to recovery window of 7 days;
configure retension policy to redundancy 3;
显示结果 show all;
4.查看到期丢弃的备份时,可能需要手工保存一些备份 ,可以使用change 命令带keep 参数,使用这个命令后,那些被修改的备份将被认为是个long-term backup,不在受保存策略影响也就是说delete obsolete 也不删除。
5.要使备份时候不受保存策略影响 ,使用带keep参数的backup 命令
backup database keep forever;
backup database keep 5 days;
6.change 命令功能
可以修改备份为永久保存并将以及该备份的相关的日志保存下来,保证总能将备份恢复到当前时间点
change backupset 31 keep forever logs;
可以设置备份丢弃的新日期 ,将备份在多保存7 天,7 天后将删除
change backupset 32 keep until time 'sysdata + 7' logs;
7.change 可以将备份集设置为unavailable
change backupset 33 unavailable;
标记为unavailable状态的备份集并不参与crosscheck;
=====================================================
=====================================================
恢复目录的记录删除
1. $ORACLE_HOME/rdbms/admin/prgrmanc.sql 脚本定期删除恢复目录中具有DELETED状态的记录
2. 要删除旧的对应物记录incarnation.必须从DBINC 表中删除这些对应物,使用RC_DATABASE_INCARNATION 视图来确定要删除的对应物。记录要删除的每个对应物的DBINC_KEY
随后启动SQL*Plus,执行delete from dbinc where dbinc_key=2;
删除示例:
1、删除陈旧备份
当使用RMAN执行备份操作时,RMAN会根据备份冗余策略确定陈旧备份。
RMAN> delete obsolete;
2、删除EXPIRED备份
执行crosscheck命令核对备份集,那么会将该备份集标记为EXPIRED状态。为了删除相应的备份记录,可以执行delete expired backup命令。
RMAN> delete expired backup;
3、删除EXPIRED副本
RMAN> delete expired copy;
4、删除特定备份集
RMAN> delete backupset 19;
5、删除特定备份片
RMAN> delete backuppiece 'd:\backup\DEMO_19.bak';
6、删除所有备份集
RMAN> delete backup;
7、删除特定映像副本
RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak';
8、删除所有映像副本
RMAN> delete copy;
9、在备份后删除输入对象
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input;
=====================================================
=====================================================
手工同步恢复目录
resync catalog;
Oracle同步恢复目录的时候,首先创建快照控制文件,然后比较这个文件和恢复目录,完成后,Oracle 更新恢复目录,使恢复目录和控制文件同步
=====================================================
=====================================================
在RMAN 中存储脚本
1,连接到目标数据库和恢复目录
rman target / catalog rman/rman@rman9i
2,创建脚本
RMAN>create script my_bk_script
2>{backup database plus archivelog;}
create script my_bk_script
3,打印脚本
RMAN>print script my_bk_script;
printing stored scipt:my_bk_script
{backup database plus archivelog;}
4,运行这个脚本,备份目标数据库
RMAN>run {execute scipt my_bk_script;}
5 删除脚本
RMAN>delete script my_bk_script;
=====================================================
=====================================================
archivelog模式下的完全恢复
step1:set oracle_sid=recover
rman target rman_backup/password
configure controlfile autobackup on;
step2:backup database plus archivelog delete input;
step3:shutdown immediate;
step4:重命名所有的数据文件和控制文件,不重命名联机重做日志。
step5: startup nomount;
set DBID=****
restore controlfile from autobackup;
alter database mount;
step6: restore database;
recover database;
alter database open resetlogs;
表空间恢复
sql"alter tablespace users offline";
sql"alter tablespace tools offline";
restore tablespace users,tools;
recover tablespace users,tools;
sql"alter tablespace users online";
sql"alter tablespace tools online";
数据文件恢复
sql"alter database datafile 3 offline";
sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
restore datafile 3
restore datafile 'd:oracleoradatausers01.dbf';
recover datafile 3
recover datafile 'd:oracleoradatausers01.dbf';
sql"alter database datafile 3 online";
sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
=====================================================
=====================================================
切换当前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key
=====================================================
=====================================================
RMAN 恢复示例
1 基于时间点的恢复
run
{
set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'
restore database;
recover database;
alter database open resetlogs;
}
2 基于SCN 的恢复
startup mount;
restore database UNTIL SCN 10000;
recover database UNTIL SCN 10000;
alter database open resetlogs;
3 基于日志序列的恢复
startup mount;
restore database UNTIL SEQUENCE 100 thread 1;
recover database UNTIL SEQUENCE 100 thread 1;
alter database open resetlogs;
4 数据文件所在磁盘出现硬件故障
磁盘故障数据文件将不能被转储到原位置,必顺将数据文件转储到其他磁盘
RMAN>run{
startup force mount;
set newname for datafile 1 to '/opt/datafile/system_new01.pdf';
restore database;
switch datafile all;
recover database;
sql 'alter database open';
}
RMAN>report schema; //恢复后查看数据文件新位置
5 恢复表空间数据文件
示例:SYSTEM表空间的数据文件被删除
RMAN>run{
startup force mount;
restore datafile 1;
recover datafile 1;
sql 'alter database open';}
6 在open状态下恢复关闭后损坏的数据文件
示例:数据文件被误删除
RMAN>run{
2>startup force mount;
3>sql 'alter database datafile 4 offline';//脱机损坏的数据文件
4>sql 'alter database open';//打开数据库
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql 'alter database datafile 4 online';//联机恢复后的数据文件}
7 数据文件所在磁盘出现损坏
RMAN>run{
2>startup force mount;
3>sql 'alter database datafile 4 offline';//脱机损坏的数据文件
4>sql 'alter database open';//打开数据库
5>set newname for datafile 4 to '/opt/datafile/user01.pdf';//指定恢复位置
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql 'alter database datafile 4 online';//联机恢复后的数据文件}
9 恢复表空间:
示例:表空间的数据文件被误删除
RMAN>run{
2>sql 'alter tablespace users offline for recover'; //脱机表空间
3>restore tablespace user;
4>recover tablespace user;
5>sql 'alter tablespace users online';}
10 示例:表空间所在磁盘出现磁盘故障
RMAN>run{
2>sql 'alter tablespace users offline for recover'; //脱机表空间
3>set newname for datafile 4 to '/opt/datafile /user01.dbf';
4>restore tablespace user;
5>switch datafile all;
6>recover tablespace user;
5>sql 'alter tablespace users online';}
11 数据块介质恢复
数据块错误会出现以下错误:
SQL>SELECT * FROM SCOTT.CUSTOMERS;
ORA-01578:ORACLE DATA BLOCK CORRUPTED (FILE #5,BLOCK #21)
ORA-01110:data file 5 :'/opt/oracle/oradata/mydb/sdl.dbf'
RMAN>BLOCKRECOVER DEVICE TYPE DISK
2>DATAFILE 5 BLOCK 21,48,128;
12 不完全恢复
基于时间恢复:
$export nls_date_format='yyyy-mm-dd hh24:mi:ss' //指定日期格式
RMAN>run{
2>startup force mount; //挂载数据库
3>set until time='2007-7-26 20:49:00'; //恢复时间点
4>restore database; //转储数据文件
5>recover database; //根据时间点恢复数据库
6>sql 'alter database open resetlogs';//打开数据库重建redolog文件
7>}
13 基于SCN
确定恢复的SCN
SQL>SELECT CURRENT_SCN FROM V$DATABASE;
RMAN>run{
2>startup force mount;
3>set until scn=n; //设置还原点SCN
4>restore database;
5>recover database;
6>sql 'alter database open resetlogs';
7>}
14 基于日志号:
当不能定位日志号的归档日志时会出现以下错误:
Rman-06025:no backup of log thread 1 seq 6 lowscn 531976 found to restore
RMAN>run{
2>startup force mount;
3>set until sequence=n; //日志号通常为不能定位的日志号
4>restore database;
5>recover database;
6>sql 'alter database open resetlogs';
7>}
15 基于备份控制文件:
当误删的表空间或者数据库有的控制文件损坏时可以使用这种方法
$set nls_date_format='yyyy-mm-dd hh24:mi:ss';
$rman target / catalog rman/rman
RMAN>startup force nomount
RMAN>set dbid=3286265633;
RMAN>restore controlfile from autobackup maxseq 6;
RMAN>alter database mount;
RMAN>run {
2>set until time='2007-7-26 21:07:00'
3>restore database;
4>recover database;
5>sql 'alter database open resetlogs';
6>}
16 不完全恢复后建议删除早期的所有备份并重新备份
RMAN>run{
2>delete noprompt backup;
3>delete noprompt copy;
4>backup database format='/opt/ora_bak/%d_%s.pdf';
5>sql 'alter system archive log current';}
存储格式参数:
%a,活动ID
%c,在多重备份中,备份片的拷贝数,最大256
不是多重备份时,用于备份集为1,用于代理副本拷贝为0
%d,数据库名
%D,公历某月的日期(只有day部分),格式DD
%e,归档日志序号
%f,绝对文件号
%F,由DBID(数据库ID),日月年,序号组成
形式为c-IIIIIIIIII-YYYYMMDD-QQ,c为固定
IIIIIIIIII表示DBID,连接RMAN时指定target,会显示DBID
YYYYMMDD为生成备份时的公历时间,比如20081122
QQ表示为16进制序号,00到FF
%h,归档日志线程号
%I,DBID
%M,公历月份,格式MM
%N,表空间名
%n,数据库名,如果数据库名不满8字符,将在右边自动填充'x'
比如,库名为test,结果将是testxxxx
%p,备份集中的备份片号,从1开始,步进1
Note: If you specify PROXY, then the %p variable must be included in the
FORMAT string either explicitly or implicitly within %U.
%s,备份集号,此号记录在控制文件中,每次备份会自动增加
重建控制文件将会初始化为1
%t,备份集时间戳,秒为单位
%T,公历年月日,格式YYYYMMDD
%u,8字符名称,利用备份集或副本拷贝号,备份生成时间,由系统通过某种算法得出
%U,许多FORMAT的默认值,由系统生成的唯一名称,对于副本拷贝和备份集的含义不同
对于备份集的备份片来说,等同于%u_%p_%c
对于数据文件副本拷贝,等同data-D-%d_id-%I_TS-%N_FNO-%f_%u
对于归档日志副本拷贝,等同arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u
对于控制文件副本拷贝,等同cf-D_%d-id-%I_%u
%Y,公历年,格式YYYY
%%,表示一个百分号字符'%'
发表评论
-
Oracle连接故障的排除
2024-09-09 22:33 709Oracle版本为11G,操作系统为Windows Ser ... -
Oracle数据库相关系统突然提示“SQLException:违反协议”
2024-02-19 15:50 5263SQLException:违反协议这个异常可能由很多的 ... -
CentOS在Docker中安装Oracle
2024-02-06 12:13 12911.拉取Oracle镜像,并检 ... -
Windows Server安装oracle数据库一直停在82%
2023-02-04 12:01 636网上有个说法:服务器超过一定数量的CPU后,将不能正常安装 ... -
ORA-04030错误处理
2023-02-04 11:52 2720【错误描述】 错误信息如下: ORA-04030:在尝 ... -
ORA-04030错误处理
2023-02-04 11:45 403【错误描述】 错误信息如下: ORA-04030:在尝 ... -
Linux安装MySQL数据库
2019-06-10 22:27 18381.进入安装包所在目录,解压: tar zxvf mysql- ... -
确定MySQL在Linux系统中配置文件的位置
2019-04-14 19:30 27931.通过which mysql命令来查看mysql的安装位置。 ... -
mysql set names 命令和 mysql 字符编码问题
2019-04-12 00:34 1170转自:https://www.cnblogs.com/digd ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2018-11-17 23:16 2229转自:https://blog.csdn.net/ ... -
Oracle删除大量数据的实践
2016-11-07 18:03 5852一、引言 从来没有 ... -
Oracle 数据库简明教程 V0.1
2016-03-23 21:01 2076供初学者入门学习使用,以开发者常见、常用的知识为主,基本上 ... -
Oracle拆分字符串函数
2016-03-23 10:58 3381create or replace type string ... -
Oracle数据库远程连接无响应
2016-03-21 10:20 4341故障现象: 服务器本机使用sqlplus / as s ... -
Oracle PGA详解
2015-10-21 15:34 11501转自:http://yanguz123.iteye.com/b ... -
Oracle12C导入dmp数据
2015-10-08 23:43 20565Oracle12C,发生了较大的变化。以前熟悉的东西变得陌 ... -
SQLLDR数据导入小结
2015-07-25 22:06 75611.创建数据表 CREATE TABLE ... -
Window7安装Oracle10
2015-03-06 12:14 1636每次安装都要百度,转到自己的博客上,找起来方便,还能增加访 ... -
Oracle SQL Developer 连接 Mysql 数据库
2015-02-25 19:36 3697下载JDBC包,解压缩这里只要mysql-connector- ... -
Mysql数据备份与恢复
2015-02-25 19:15 1376备份/恢复策略 1. 要定期做 mysql备份,并考虑系统可以 ...
相关推荐
### Oracle Rman命令详解 #### 一、RMAN命令类型及使用场景 ##### 1.1 独立命令(Standalone Command) 独立命令是指在RMAN中可以直接执行的命令,这类命令通常不依赖于其他命令,能够独立完成某个功能。例如备份表...
### Oracle RMAN 命令详解 #### 一、RMAN 概述 RMAN (Recovery Manager) 是 Oracle 提供的一种强大而灵活的工具,主要用于数据库备份与恢复。RMAN 支持多种类型的命令,主要包括独立命令和作业命令。 - **独立...
此文档中详解介绍了oracle数据库中关于RMAN命令的详细及其注意事项
RMAN(Recovery Manager...通过这些RMAN命令,数据库管理员可以有效地管理数据库备份,确保数据的安全性和可恢复性。理解并熟练运用这些命令对于维护数据库的正常运行至关重要,尤其是在处理大量数据和复杂恢复场景时。
RMAN备份命令详解 RMAN(Recovery Manager)是Oracle数据库备份和恢复的工具,提供了多种备份方式和恢复选项。下面是RMAN备份命令的详细解释: 一、切换服务器归档模式 在开始备份之前,需要切换服务器到归档模式...
#### RMAN命令详解 1. **备份数据库** - **全库备份**:`RMAN> BACKUP DATABASE;` - 这条命令会备份整个数据库。 - **增量备份**:`RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;` - 使用增量备份可以显著减少...
最全最详细最实用的oracle rman命令大全,你值得拥有。
#### RMAN命令详解 1. **数据库备份** - **全库备份**: - NOARCHIVELOG模式下的全库备份: ```sql RMAN> backup database; ``` - OPEN状态下的全库备份: ```sql RMAN> backup database; ``` - 排除特定...
连接RMAN可以使用`%rman target/rman@mydb`命令,这将启动RMAN并以RMAN用户身份连接到指定的数据库实例。在RMAN环境中,可以配置默认设备类型、备份的并行级别、备份文件的存储位置等。例如,`configure default ...
#### 三、RMAN 命令详解 在10g版本中,大多数RMAN命令可以独立执行,无需其他命令配合。 ##### 1. 启动/关闭目标数据库 使用 `startup` 和 `shutdown immediate` 命令可以轻松控制目标数据库的状态。 **RMAN命令...
RMAN命令详解 RMAN的命令体系丰富,包括但不限于以下几种: - **backup**:用于创建数据库备份,支持全库备份、表空间备份、数据文件备份等。 - **recover**:用于数据库恢复操作,可恢复至某一时间点、某一SCN或...
#### RMAN命令详解 **RMAN命令分类** RMAN提供了一系列丰富的命令用于管理数据库备份和恢复,主要包括以下几类: 1. **控制命令**:用于控制RMAN会话的开始和结束,如`STARTUP`、`SHUTDOWN`等。 2. **备份命令**...
#### 二、RMAN命令详解 **1. 启动、关闭数据库** - **启动数据库**:`startup` 或 `startup mount` 或 `startup nomount` - `startup`: 完全启动数据库 - `startup mount`: 加载数据库但不打开 - `startup ...
### RMAN常用命令详解 #### 1. 连接数据库 - **命令**: `connect target /` - **功能**: 此命令用于连接到目标数据库。`target`后面通常跟具体的数据库用户,例如`sys`或者特定的恢复管理器(RMAN)用户。在本例中,...
### RMAN常用参数及命令详解 #### 一、RMAN登录命令 RMAN(Recovery Manager)是Oracle数据库提供的一款强大的备份与恢复工具。通过不同的登录方式,可以满足不同的管理和维护需求。 - **rman nocatalog**:此...
rman备份恢复详解 RMAN(Recovery Manager)是一种Oracle数据库备份和恢复工具,能够帮助DBA快速备份和恢复数据库。下面将详细介绍RMAN自动备份和恢复的相关知识点。 一、为什么需要设置自动归档模式? 在使用...