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

[经验分享] oracle备份 使用RMAN 工具

[复制链接]

尚未签到

发表于 2018-9-6 13:40:05 | 显示全部楼层 |阅读模式
  在日常维护中 备份是我们运维最常做的工作,并且非常重要 。 那九妹带你 使用RMAN 工具备份Orcle
  三、使用RMAN工具
  RMAN(recovery  manager)是oracle的一个重要工具,用于备份和恢复数据库文件、归档日志和控制文件。也可以用来执行完全或不完全的数据库恢复。RMAN有3种不同的用户接口:命令行方式,GUI方式(集成在OEM中的备份管理器)、api方式(用于集成到第三方的备份软件中)。它具有如下优点:
  1)支持在线热备份
  2)支持多级增量备份
  3)支持并行备份、恢复
  4)减少所需要的备份量
  5)备份、恢复使用简单
  RMAN有丰富的特性集。随着oracle新版本的发布,RMAN特性也不断增强,使得RMAN几乎在任何情况下都可以备份和恢复数据库。其中很多的新特性都是针对日常工作中所遇到的问题和困难开发的。
  1、RMAN组件
DSC0000.png

  1)target database(目标数据库)
  目标数据库就是需要RMAN对其进行备份与恢复的数据库。RMAN可以备份数据文件、控制文件、归档日志文件、spfile。
  2)server  session(服务器会话)
  RMAN启动数据库上的oracle服务器进程,并建立一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、恢复的实际操作。
  3)RMAN repository(RMAN资料库)
  RMAN使用过程中会用到的控制信息,是一些关于备份、归档日志及RMAN活动的元数据。
  4)recovery  catalog(恢复目录)
  恢复目录是建立在RMAN恢复目录数据库上的一种schema对象,用于保存RMAN资料库数据。
  恢复目录是一个可选的组件。RMAN会将资料库数据记录在目标数据库的控制文件中,但这样不够安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN备份失效。所以建议在单独的一个数据中建立恢复目录另外保存一份资料库数据。
  对于
  对于大部分中等环境的企业环境,将RMAN备份信息存储在恢复目录数据库中,而不是存储在目标数据库的控制文件中,这样能够发挥RMAN工具的全部功能,此外,RMAN的很多高级功能也只有在创建了恢复目录的环境下才被支持。
  5)MML(媒体管理库)
  MML(media management layer)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理,如果你要想直接通过RMAN备份到磁带上,就必须配置媒体管理层,媒体管理层的工具和RMAN共同完成备份与恢复。
  6)快闪恢复区
  快闪恢复区是oracle数据库用于保存所有与恢复相关的文件的默认磁盘位置。这些相关文件包括归档日志、RMAN备份、控制文件自动备份、复用的控制文件和重做日志副本及闪回日志文件。
  7)辅助数据库
  在正常使用时,RMAN会与目标数据库一起使用,如果创建了恢复目录数据库,那么也会与恢复目录数据库一起使用。在某些情况下,希望创建辅助数据库,辅助数据库是使用RMAN从目标数据库的备份中创建新的数据库。辅助数据库能被创建作为备用数据库使用。在产品数据库发生灾难时,能够在不丢失任何数据及停机时间最短的情况下切换至备用数据库。
  2、创建恢复目录
DSC0001.png

  恢复目录存在于RMAN的目录数据库中,类似于标准的数据库目录,主要包含如下几个部分的信息:
  1)备份和恢复信息,可以是多个目标数据库
  2)RMAN脚本,可以存储供重复使用
  3)关于数据文件和日志文件的本分信息
  4)关于目标数据库的表空间和数据文件的信息
  rman 工具的基本组件及工作原理以在上面陈列出来 接下来九妹带你正式使用RMAN 备份
  大体分为6

  •   创建恢复目录数据库(类似于容器存放备份内容 )
  •   在恢复目录中创建RMAN用户并授权
  •   在恢复数据库中创建恢复目录
  •   注册
  •   通道分配(自动  手动  有默认通道可不创建)
  •   开始备份
  1.
  1)创建恢复目录数据库
  create tablespace ccdatafile '/opt/oracle/oradata/cc.ora'   cc:恢复目录数据库明名称
  size 20M autoextend on next 5m maxsize unlimited            大小20m  可扩展5m 可不限制增长
DSC0002.png

  2.
  1)在恢复目录数据库中创建RMAN 用户并授权

  create user lmy>  temporary tablespace temp                                    临时的表空间是temp
DSC0003.png

  3.授予权限
  grant connect,resource to ydw
  grant recovery_catalog_owner to ydw
  4.创建目录
DSC0004.png

  5.注册
DSC0005.png

  6.通道
  通道分配
  使用RMAN进行备份和恢复操作时,必须进行通道的分配,一个通道是RMAN和目标数据库之间的一个连接,通道指定了某种类型的设备用于备份和恢复,RMAN可以使用的通道设备包括磁盘与磁带两种。
  1.自动通道
DSC0006.png

DSC0007.png

  2.手动通道
DSC0008.png 6

  6.恢复
  在归档方式下备份与恢复
  要用RMAN进行联机备份操作。数据库就必须位于归档模式。恢复目录必须打开,目标数据库进程必须启动,数据库已经加载或者打开。
  1)备份和恢复整个数据库
  查看当前数据模式为非归档模式
DSC0009.png

DSC00010.png

  修改为归档模式
DSC00011.png

DSC00012.png

  换RMAN 用户开始备份
  rman catalogg lmy/oracle target /
  backup database;
  查看快闪恢复区 发现备份成功
DSC00013.png

  备份时 不包含归档日志文件
  如果还要包含归档日志文件,则要加上plus archivelog关键字,delete input的意思是在备份完成后,删除archivelog文件。
  backup database plus archivelog delete input;
  测试备份是否可以生效   删除文件 sytem01.dbf  系统文件

  •   前因在关闭数据库情况下进行
  •   使用 sys链接ramn
    DSC00014.png

  •   重建数据库物理文件
    DSC00015.png

  •   同步恢复
    DSC00016.png

  •   打开数据库
    DSC00017.png

    DSC00018.png

  •   已经恢复
    DSC00019.png

  二.
  1)备份和恢复表空间
  表空间users备份:
DSC00020.png

  备份多个表空间
DSC00021.png

  使用 run  方式备份
  run
  {
  allocatv channel ch1 device type disk;
  backup format '/opt/bakup/rmanback/%U’
  releasw channel ch1;
  }
  如果只丢失了特定的表空间的数据文件,那么可以选择只恢复这个表空间,而不是恢复整个数据库,表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间offline
  恢复表空间
DSC00022.png

  补充自动备份:
  1)生成脚本文件,如backup.rcv
  假定文件内容如下:
  $>cat backup.rcv
  connect target sys/password rcvcat rman/rman@localname;
  run{
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  allocate channel c3 type disk;
  backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
  archivelog all delete input;
  release channel c1;
  release channel c2;
  release channel c3;
  }
  2)生成执行文件
  在windows上生成backup_archive.bat,内容包括
  rman cmdfile = backup.rcv
  在unix下生成 backup_archive.sh,内容包括
  /oracle/ramn/rman cmdfile = backup.rcv
  3)加入调度
  在windows中用任务计划向导即可,或使用at命令。
  在unix中,在目标机器上编写一个文件,用以启动自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下
  $>cat oracle
  0 23 * * 0 backup_archive.sh
  #表示星期天23点对数据库备份
  0 12,18 * * * backup_archive.sh
  #表示每天12点,18点备份
  Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来


运维网声明 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.iyunv.com/thread-564132-1-1.html 上篇帖子: 某一用户登录oracle过慢 下篇帖子: oracle分区交换技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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