博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RMAN命令详解
阅读量:6734 次
发布时间:2019-06-25

本文共 6210 字,大约阅读时间需要 20 分钟。

hot3.png

显示所有RMAN配置

rman target sys/oracle nocatalog

show all;

 

建立OS目录“D:\BACKUP\RMAN”

run {host mkdir “D:\BACKUP\RMAN”}

 

配置RMAN备份文件默认格式为“%d_%s.bak”,然后显示自动通道配置。

configure channel device type disk format ‘D:\BACKUP\RMAN\%d_%s.bak’;

show channel;

 

配置备份冗余度为3,然后显示备份冗余度

configure retention policy to redundancy 3;

show retention policy;

 

清除备份冗余度配置,然后显示备份冗余度

configure retention policy clear;

show retention policy;

 

 

 

建立PRACTICE 数据库的备份集

分配3个通道,设置备份片文件最大尺寸为400M

建立备份集,文件格式:“%d_%s_%p.bak”,备份目录:“D:\BACKUP\RMAN”

清除通道分配

使用list backup 命令列出所有备份集。

rman targt sys/oracle nocatalog

run {

configure channel device type disk maxpiecesize 400M;  --设置最大尺寸400M

configure device type disk parallelism 3;    --分配3个并行通道

backup database format=’e:\backup\rman\%d_%s_%p.bak’;   --以指定格式备份

configure channel device type disk clear;      --还原最大尺度限制

configure device type disk clear;             --还原并行度

}

list backup;

 

 

 

 

 

建立表空间USERS的备份集

使用REPORT SCHEMA 命令报告目标数据库的物理方案

建立备份集,文件格式:“%N_%s.bak”, 备份目录:D:\backup\rman

使用list backup 命令列出所有备份集

report schema;

backup tablespace users format=’e:\backup\rman\%N_%s.bak’;

list backup of tablespace users;

 

建立最近一天归档日志的备份集

手工切换日志3次

sql ‘alter system switch logfile’;

sql ‘alter system switch logfile’;

sql ‘alter system switch logfile’;

 

建立归档日志的备份集

backup archivelog from time ‘sysdate-1’ until time ‘sysdate’

format=’e:\backup\rman\%d_%s.bak’;

 

使用list backup 命令列出所有备份集

list backup of archivelog all;

 

建立增量备份和累计备份

在USER01表空间上执行增量0级备份

backup incremental level 0 tablespace user01;

建立示例表test_7,并执行pl/sql块插入数据

run  {host ‘sqlplus sys/oracle as sysdba’;}

create table test_7(cola INT) TABLESPACE user01;

begin

for I in 1..100000 loop

insert into test_7 values(i);

end loop;

commit;

end;

/

 

在USER01表空间上执行增量1级备份

exit

backup incremental level 1 tablespace user01;

 

为示例表test_7插入1000000行数据

run  {host ‘sqlplus sys/oracle as sysdba’;}

create tale test_7(cola INT) TABLESPACE user01;

begin

for I in 100000..200000 loop

insert into test_7 values(i);

end loop;

commit;

end;

/

exit

在user01表空间上执行累积1级备份

backup incremental level 1 cumulative tablespace user01;

 

在USER01表空间上执行增量0级备份

backup incremental level 0 tablespace user01;

 

列出user01表空间的所有备份集,并比较各个备份片文件的尺寸

list backup of tablespace user01;

 

 

 

在USER01表空间的数据文件上建立映像副本

使用REPORT SCHEMA 命令报告目标数据库物理方案

report schema;

 

备份user01表空间的数据文件,备份目录:D:\BACKUP\RMAN

copy datafile 5 to ‘e:\backup\rman\df_5.bak’;

 

 

RMAN恢复

恢复SYSTEM表空间

建立示例表test_8 插入6行数据并提交

create table test_8(cola INT) TABLESPACE system;

insert into test_8 values(1);

insert into test_8 values(2);

insert into test_8 values(3);

insert into test_8 values(4);

insert into test_8 values(5);

insert into test_8 values(6);

 

模拟损坏

rman target sys/oracle nocatalog

report schema;

shutdown immediate

run {host ‘del E:\PRACTICE\SYSTEM01.DBF’;}

 

重启数据库,打开数据库,检查是否完全恢复

startup

run {

restore datafile 1;

recover datafile 1;

alter database open;

}

run  {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_8

 

恢复其他表空间(USER

建立示例表test_9,插入3行数据并提交

create table test_9(cola INT) TABLESPACE users;

insert into test_9 values(1);

insert into test_9 values(2);

insert into test_9 values(3);

commit;

 

模拟损坏

恢复users表空间

检查test_9是否完全恢复

shutdown immediate;

run {host ‘del e:\practice\users01.dbf’;}

startup

run {

sql ‘alter database datafile 4 offline’;

sql ‘alter database open’;

restore tablespace users;

recover tablespace users;

sql ‘alter tablespace users online’;

}

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_9;

 

基于时间的不完全恢复

建立示例表test_10,插入6行数据并提交

create test_10 (cola INT) TABLESPACE user01;

insert into test_10 values(1);

insert into test_10 values(2);

insert into test_10 values(3);

insert into test_10 values(4);

insert into test_10 values(5);

insert into test_10 values(6);

commit;

 

查询sysdate函数确定当前系统日期和时间

select to_char(sysdate,’YYYY-MM-DD HH24:MI:SS’) from dual;

 

模拟误操作

DROP table test_10;

 

恢复并检查结果

set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS

rman target sys/oracle@practice nocatalog

run {

startup force mount;

set until time ‘’;

restore database;

recover database;

alter database open resetlogs;

}

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_10;

 

基于取消的不完全恢复

建立示例表TEST_11,并插入6行数据每插入一行提交一次,并手工切换日志

create table test_11(cola INT) TABLESPACE user01;

insert into test_11 values(2);

commit;

insert into test_11 values(3);

commit;

insert into test_11 values(4);

commit;

insert into test_11 values(5);

commit;

insert into test_11 values(6);

commit;

alter system switch logfile;

 

模拟损坏, 恢复数据,并检查test_11表的结果

shutdown immediate;

run {host ‘del e:\practice\user01.dbf’;}

run {host ‘del e:\practice\archive\47_1_993476187.ARC’}

run {host ‘del C:\practice\archive\47_1_993476187.ARC’}

 

run{

startup force mount;

setuntil sequence=3;

restore database;

recover database;

alter database open resetlogs;

}

 

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test11;

 

RMAN维护

REPORT:,查看目标数据库物理结构,查看需要备份的文件,陈旧的备份文件

LIST:列出所有备份集,备份片,映像副本

CROSSCHECK:查看备份状态是否失效,保持同步状态

DELETE:删除    --noprompt 不显示信息

CHANGE:改变备份集,备份片状态,以及是否长久保存

CATALOG:添加用户备份到RMAN备份资料库中

 

删除所有备份集和映像副本

delete noprompt backup;

delete noprompt copy;

 

使用REPORT命令

报告数据库物理方案

export schema;

 

报告3天为备份的数据文件,然后备份相应的数据文件

report need backup days 1 database;

 

在user01表空间上执行以下语句建立TEST_12表:

CREATE TABLE test_12 TABLESPACE user01 NOLOGGING

AS SELECT * FROM test11;

 

报告不可恢复的数据文件,然后备份相应的数据文件

report unrecoverable;

backup datafile 5 format =”E:\BACKUP\rman\%d_%s.bak”;

 

使用LIST命令

列出表空间 USERS 的备份集

list backup of tablespace users;

 

列出所有数据库的副本

list incarnation of database;

 

使用CROSSCHECK命令

列出表空间USER01的备份集,然后使用OS命令删除某个备份集文件

list backup of tablespace user01;

run {host ‘del e:\backup\rman\practice_16.bak’;}

 

使用CROSSCHECK 命令核对表空间USER01的备份集

crosscheck backup of tablespace user01;

 

使用DELETE命令

删除陈旧备份

delete noprompt obsolete;

 

删除EXPIRED备份集

delete expired backup;

 

使用CHANGE命令

列出表空间USER的备份集,然后改变备份集为UNAVAILABLE状态

list backup of tablespace users;

change backupset 13 unavailable;

 

列出表空间USER的备份集,然后改变备份集为AVAILABLE状态

list backup of tablespace users;

change backupset 13 unavailable;

 

 

使用CATALOG命令

使用用户管理备份方式备份USER01表空间

run {host ‘sqlplus sys/oracle @practice as sysdba’;}

alter tablespace user01 begin backup;

host copy e:\practice\user01.dbf d:\backup\rman

alter tablespace user01 end backup;

exit

 

追加USER01表空间备份信息到RMAN资料库

catalog datafile copy ‘E:\backup\rman\user01.dbf’;

转载于:https://my.oschina.net/u/3966437/blog/3022434

你可能感兴趣的文章
Node安装升级和基本使用
查看>>
链式队列
查看>>
基于Apache的DBCP建立独立于Web的数据库连接池配置
查看>>
使用html语言替换字符串中的特殊标点符号
查看>>
关于文章《for循环里面设置setTimeout弹出数据顺序是乱的》的一些问题
查看>>
iOS GCD编程
查看>>
Spring MVC 静态资源引入
查看>>
Nodejs:利用formidable上传文件
查看>>
ajax 请求去除浏览器缓存处理
查看>>
基于libsmart的网络编程示例之EchoServer
查看>>
【漫游C++11】nullptr与std::nullptr_t
查看>>
《设计模式 系列》- UML类图
查看>>
银行业务技术知识
查看>>
Zend_Session以数据库存session方法
查看>>
养成良好的项目文件上传习惯
查看>>
nagios与飞信的整合
查看>>
基于mpvue搭建小程序项目框架
查看>>
使用commons-email 发送邮件
查看>>
windows下,在任意文件夹右键添加打开命令窗口(包括以管理员方式)
查看>>
关于java在用jdbc技术往mysql数据库插入数据出现乱码问题的解决方案
查看>>