• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Oracle RMAN快速入门指南

发布: 2008-10-21 10:05 | 作者: 网络转载 | 来源: 网络转载 | 查看: 207次 | 进入软件测试论坛讨论

领测软件测试网

11. 脚本
创建或者取代脚本:

RMAN> create script alloc_disk {
   2> # Allocates one disk
   3> allocate channel dev1 type disk;
   4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;
   5> }

RMAN> replace script rel_disk {
   2> # releases disk
   3> release channel dev1;
   5> }

RMAN> replace script backup_db_full {
   2> # Performs a complete backup 
   3> execute script alloc_disk;
   4> backup
   5> .....
   6> execute script rel_disk;
   7> }
前两个脚本分别用来分配和回收通道。

alloc_disk 脚本还额外指定了备份片的最大兆字节数,备份时可以同时打开的输入文件的最大数目,以及每秒钟读每个输入文件的数据缓冲区的最大数目。

第三个脚本调用先前存储的两个脚本进行数据库备份。

运行存储脚本的示范:

RMAN> run {
   2> execute script backup_db_full;
   3> }
注意:存储的脚本必须在{ .... execute <script>; ....}命令中调用。

12. Corruption detection 
RMAN可以备份包含损坏数据块的数据文件,查询视图V$BACK_CORRUPTION和V$COPY_CORRUPTION可以获得有关坏数据的信息。

通过设置 set maxcorrupt 可以跳过指定个数的坏块来避免备份失败。

RMAN> replace script backup_db_full {
   2> # Performs a complete backup
   3> execute script alloc_disk;
   4> set maxcorrupt for datafile 1 to 0;
   5> backup
   6> .....
   7> execute script rel_disk;
   8> }
上面的脚本maxcorrupt for datafile 1 to 0设置为0,所以如果有错误数据块在数据文件1中发现,上面的脚本执行就会失败。

13. 通道
一个通道是RMAN和目标数据库之间的一个连接,"allocate channel"命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型

通道控制命令可以用来:
   控制RMAN使用的O/S资源
   影响并行度
   指定I/O带宽的限制值(设置limit read rate参数)
   定义备份片大小的限制(设置limit kbytes)
   指定当前打开文件的限制值(设置limit maxopenfiles)

14. Report & list commands
14.1. List
list命令查询恢复目录并且产生格式化的查询内容: 

 RMAN> list backupset of datafile 1;
  
  Key File Type LV Completion_time Ckp SCN Ckp Time
  ------- ---- ------------ -- --------------- ---------- --------
  165 1  Full Oct 03 11:24 32022 Oct 03 11:24
  208 1  Full Oct 24 14:27 52059 Oct 24 14:26
  219 1  Full Oct 24 14:31 52061 Oct 24 14:31
  << other entries here >>
  
  RMAN> list backupset of archivelog all;
  
  Key Thrd Seq Completion time
  ------- ---- ------- ---------------
  179 1 94 Oct 03 11:26
  179 1 95 Oct 03 11:26
  << other entries here >>
14.2. Report
REPORT命令同样可以查询恢复目录,但是REPORT命令语法可以构建获得更为有用的信息的指令,REPORT命令输出可以保存到消息日志文件中,但是必须在连接恢复目录时指定MSGLOG或者LOG选项。

可以列出所有数据库中不能恢复的文件列表:

 RMAN> report unrecoverable database;
显示全部数据文件:

RMAN> report schema;
RMAN-03022:正在编译命令:report 数据库模式报表
文件    千字节     表空间    RB     segs 名称 
1       121472     SYSTEM    YES    D:\ORACLE\ORADATA\HIS\SYSTEM01.DBF 
2       327680     RBS       YES    D:\ORACLE\ORADATA\HIS\RBS01.DBF 
3       110592     USERS     NO     D:\ORACLE\ORADATA\HIS\USERS01.DBF 
4       73728      TEMP      NO     D:\ORACLE\ORADATA\HIS\TEMP01.DBF 
5       12288      TOOLS     NO     D:\ORACLE\ORADATA\HIS\TOOLS01.DBF 
6       59392      INDX      NO     D:\ORACLE\ORADATA\HIS\INDX01.DBF 

15. 小提示
经常同步恢复目录

确认删除不需要的归档日志

二、rman总结

备份策略简单原则
rman作为oracle备份最为方便的工具,以下就总结几条常用的命令,希望能方便大家,也希望可以申请授权: 
1、首先使用rman前,需要建一个目录数据库 
2、create tablespce rman datafile '/data/oradata/test/rman.dbf' size 20m; 
3、create user rman identified by rman default tablespace rman temporary tablespace temp; 
4、grant connect,resource,recovery_catalog_ower to rman; 
以上建库和建用户基本成功,接着: 
1、rman target sys/manager@ora8 catalog rman/rman@rman 
2、register database (同步数据库,如果数据库做了alter database open resetlogs,就需要reset database,如果有库结构变化,就需要 

resync catalog) 
3、create script back { 
allocate channel n1 type disk; 
backup database 
format '/data/backup/ora8_%d_%s_%p'; 
release channel n1;} 
4、如果是备份固定的文件或表空间也可以 
create script back_file{ 
allocate channel n1 type disk; 
copy  
datafile 4 to '/data/backup/users.dbf'; 
release channel n1;} 
create script back_tablespace{ 
allocate channel m1 type disk; 
backup tablespace users 
format '/data/backup/users_%t_%s_%p'; 
release channel n1;} 
使用copy就是文件镜像保存,使用backup就是用oracle专有的格式保存,支持压缩等等,此处就不细说了! 
5、执行备份 
run{execute script back;} 
等等! 
以上说了备份数据库,下面是恢复数据库 
1、rman target sys/manager@ora8 catalog rman/rman@rman 
2、run{ 
allcote channel n1 type disk; 
sql "alter tablespce users offline immediate"; 
restore tablespace users; 
recover tablespace users; 
sql "alter tablespace user online"; 
release channel n1;} 
3、run{ 
allocate channel n1 type disk; 
restore database; 
recover database; 
sql "alter database open resetlogs"; 
release channel n1;} 
4、run{ 
allocate channel n1 type disk; 
restore datafile 4; 
release channel n1;} 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

44/4<1234

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网