设为首页 收藏本站
查看: 275|回复: 0

[经验分享] Rman--实战

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-7 09:21:14 | 显示全部楼层 |阅读模式
##################################
rman实战  
##################################
#以下是一个实战的rman备份脚本
1
2
3
BACKUP AS COMPRESSED BACKUPSET
SKIP INACCESSIBLE FILESPERSET 10 DATABASE PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;




COMPRESSED:     表示压缩的备份。
SKIP INACCESSIBLE:表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件。
FILESPERSET 10:   表示一个备份集中有多少个文件,这个就是一个备份集有10个文件。

#以下是用来检验filesperset 2这个参数的意义
BACKUP AS COMPRESSED BACKUPSET SKIP INACCESSIBLE FILESPERSET 2 DATABASE;

rman恢复:
    明确两个概念:数据库修复(Restore)和数据库恢复(Recover)
    restore:是指利用备份集的数据文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置
    recover:是指应用所有重做日志,将数据库恢复到崩溃前的状态,或者应用部分redo,将数据库恢复到指定的时间点.
    (前提是:所有重做日志文件都在,包括在线和归档的)

1.对数据库进行完全介质恢复
(1)启动数据库到加载状态:
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
(2)执行恢复操作
RMAN> RESTORE DATABASE;
(3)打开数据库
RMAN> ALTER DATABASE OPEN;

2.恢复表空间

(1)启动数据库到加载状态
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
(2)进行恢复操作
RMAN> SQL 'ALTER TABLESPACE HDMEMBER OFFLINE IMMEDIATE';
RMAN> RESTORE TABLESPACE HDMEMBER;
RMAN> RECOVER TABLESPACE HDMEMBER;
RMAN> SQL 'ALTER TABLESPACE HDMEMBER ONLINE';
(3)打开数据库
RMAN> ALTER DATABASE OPEN;

3.恢复数据文件

(1)启动数据库到加载状态
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
(2)进行恢复操作
RMAN>SQL 'ALTER DATABASE DATAFILE 5 OFFLINE';
RMAN> RESTORE DATAFILE 5;
RMAN> RECOVER DATAFILE 5;
RMAN>SQL 'ALTER DATABASE DATAFILE 5 ONLINE';
(3)打开数据库
RMAN> ALTER DATABASE OPEN;

提示:查询对应的数据文件,表空间和数据文件序号:

附个SQL:用来查询数据文件,临时文件与表空间对应及数据文件序号:
1
2
3
4
5
set linesize 999;
select ts.tablespace_name, df.file_name, df.file_id, tf.file_name
from dba_tablespaces ts, dba_data_files df, dba_temp_files tf
where ts.tablespace_name = df.tablespace_name(+)
and ts.tablespace_name = tf.tablespace_name(+);




示例:归档模式下,假设某数据文件丢失,恢复该数据文件

(1)造假数据
1
2
3
4
5
6
sqlplus /nolog
conn member/member
create table zsd(name varchar2(50));
insert into zsd values ('test1');
insert into zsd values ('test2');
insert into zsd values ('test3');



(2)关闭,删除文件,启动数据库
1
2
3
4
5
6
SQL> conn / as sysdba   
SQL> shutdown immediate;
SQL> host
$ rm -rf /data/ora11g/oradata/zsddb/hdmember01.dbf
SQL> startup
SQL> archive log list(查看一下是否归档)



(3)查看一下示例,并恢复数据库

1
2
3
4
5
6
select instance_name,status from v$instance
set oracle_sid=zsddb
rman target /
RMAN> restore datafile '/data/ora11g/oradata/zsddb/hdmember01.dbf';
RMAN> recover datafile '/data/ora11g/oradata/zsddb/hdmember01.dbf';
RMAN> alter database open;




示例:丢失控制文件的恢复
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SQL> shutdown immediate;
SQL> host
$ rm -rf /data/ora11g/oradata/zsddb/control*
##进入rman
$ rman target /
##随意指定一个DBID
RMAN> set dbid 3391142503
RMAN> restore controlfile from '/data/ora11g/product/11.2.0/db_1/dbs/con_c-1552557445-20130520-06';

RMAN> sql 'alter database mount';
RMAN> restore database;
RMAN> recover database;

RMAN> sql 'alter database open resetlogs';
##(还必须重建临时表空间)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-95035-1-1.html 上篇帖子: Rman--备份命令 下篇帖子: oracle 11g导入到10g引起的错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表