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

[经验分享] NBU网络备份大全之oracle系统热备份

[复制链接]

尚未签到

发表于 2016-7-30 14:49:21 | 显示全部楼层 |阅读模式
  学习和掌握如何使用NBU备份文件系统,对于一个数据管理员来说,仅仅是一个开始。因为对于大部分企业来说,买来NBU主要是为了备份企业数据库的数据,保护数据库的数据安全,进而保证企业应用的安全运行。因此,从本文起,将陆续推出针对oracle、DB2和sybase的数据库备份。 Oracle备份简介: 简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份。 按照备份的工具,可以分为EXP/IMP备份和RMAN。一般来说,Exp/Imp是oracle的一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有很强的功能。但是目前主要最广泛的Oracle备份恢复工具是rman 。RMAN是Oracle提供的一个数据库备份和恢复工具,利用rman可以方便进行数据库的冷备份和热备份。此外,有一些个人用户,会使用OS拷贝,但是它的缺点是占用空间大,而且拷贝文件的内容一般与系统环境有很大关系,转移到其他机器不容易恢复,不是企业用户的选择。 在本文中,我们将介绍如何利用NBU和oracle的rman工具进行oracle的热备份。热备份也称为联机(Archivelog)备份,是当数据库打开并对用户有效是的OS级的数据备份。热备份与冷备份最大的区别就在于备份时不需要关闭数据库,适合于24×7业务类型的需要。 注意,笔者假设用于已经阅读过前作《用NBU备份oracle系统-冷备份》,故在讲述中会忽略一些基本的配置过程,重点在于将冷备份和热备份的区别。所以如果对细节不是很清楚的用户,可以翻阅前作。 热备份的条件: 用户如果需要进行热备份,那么必须将数据库设置为archivelog模式。用户可以登录数据库后,通过“SQL> archive log list”查看数据库的模式是否是archivelog模式。如果用户数据库不是在archivelog模式下,可以通过下列命令将其设置为归档模式: · SQL>shutdown immediate · SQL>startup mount · SQL>alter database archivelog · SQL>alter database open 在归档模式下,用户的数据库会将所有的日志记录起来,所以时间一久就会占用大量的磁盘空间,所以用户可以按需,将数据库改回到非归档模式,方法如下所示: · SQL>shutdown immediate · SQL>startup mount · SQL>alter database noarchivelog · SQL>alter database open 热备份的类型: 从NBU的角度来说,oracle的热备份分为两种:一种是数据库备份,可以在不关闭数据库的情况下,备份某个数据库的数据文件、控制文件和归档日志文件等等;第二种备份模式是热备份表空间,可以在数据库关闭的情况下,备份某个数据库表空间的内容。在本文中,我们就分别介绍一下如何进行数据库级备份和表空间级备份。 注:在这里,我只会讲到如何修改备份脚本来进行备份,如果用户对于如何创建oracle备份策略、如何运行全备份和增量备份、如何寻找NBU提供的备份脚本模板等问题存在疑惑的话,请参加前文《用NBU备份oracle系统-冷备份》。 数据库级热备份: 对于数据库级热备份来说,我们可以利用NBU提供的脚本文件:/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/hot_database_backup.sh,这是一个可执行脚本,内容就是在设置好运行oracle rman程序所需的一些环境变量后,从root用户切换到oracle系统用户的帐号下,利用rman程序,将数据库的数据文件、归档日志文件和控制文件备份到用户指定的存储单元中。在该文件中,我们需要修改如下参数(建议将该文件拷贝一份出来做修改,以免改错): ORACLE_HOME:表示oracle所在的目录,NBU需要到其目录下执行相应的rman命令; ORACLE_SID:指明需要冷备份的数据库; ORACLE_USER:oracle数据库所属的系统用户,NBU会先用该用户登录,再执行各种备份操作; TARGET_CONNECT_STR:登录oracle数据库的帐号,必须是系统管理员,因为冷备份需要停止oracle数据库先; 热备份和冷备份模板脚本修改的区别在于:冷备份需要指定oracle启动文件参数,这是因为冷备份需要关闭和重新启动数据库,所以需要启动配置文件;而热备份不关闭数据库,所以不需要该变量。 重要:另外需要用户注意的是,NBU提供的脚本运行时,会在脚本所在目录下生成一个同名的.out文件,里面记录了NBU脚本运行时产生的日志,然而该脚本会将这个日志名称作为参数传递给rman,而rman无法识别该参数中“.out”中的“.”,所以当运行该脚本时,会出现图一所示的错误,解决办法是:要么用户在hot_database_backup.sh脚本中,将这条rman命令中的记录日志相关内容删除(图二);要么利用转义字符处理该字符串,使得rman可以正确识别该命令。 图一:执行NBU脚本出现的问题 图二:用户需要在脚本中所做的删除 这样,用户就可以将该脚本放到oracle备份策略中的备份选择中并执行它了。 小窍门:为了保证NBU脚本没有问题,用户在运行NBU备份策略之前,最好手动运行该脚本,并通过查看相关的“.out”文件来检查是否脚本可以运行正确,如果脚本运行错误,则用户输入“# echo $?”则返回非零值,在这种情况下,用户需要从输入文件中发现错误原因并修改运行脚本。只有该脚本可以手动运行成功后,才能在备份策略中运行成功。 表空间级热备份: 在使用表空间级备份之前,我们需要先解释一下catalog数据库(此catalog非NBU之catalog,是oracle的内容)。Catalog也是一个数据库(几十兆而已),只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录。 在表空间级热备份中,需要首先创建一个catalog数据库,所需命令如下: 1, 为目录创建一个单独的表空间: SQL>Create tablespace TS_RMAN datafile '/oracle/catalog_rman.bdf size 50m; 2, 创建RMAN用户: SQL>Create user RMAN identified by RMAN default tablespace TS_RMAN temporary tablespace temp; 3, 给RMAN授予权限: SQL>Grant connect , resource , recovery_catalog_owner to rman; 4, 连接到目标数据库和CATALOG数据库: rman target system/manager@target_tnsname rcvcat rman/rman@catalog_tnsname 其中,target_tnsname是我们想要备份的数据库名称,catalog_tnsname是刚才创建rman表空间和rman用户所在数据库的名称,可以和备份数据库一个,因为我们这里仅仅是备份其他表空间。 5, 创建CATALOG用户的表: rman>create catalog 6, 登记目标数据库: rman>register database 这样,我们就成功创建了catalog表空间来存放备份信息。 为了使得用户可以热备份oracle表空间,NBU为用户提供了一个模板脚本:/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/hot_tablespace_backup.sh。用户需要修改的内容,除了和上述数据库级热备份需要的参数外,还需要下列参数: RCVCAT_TNS:就是catalog表空间所在的数据库名称; RCVCAT_CONNECT_STR:就是连接RCVCAT_TNS数据库所需要的rman的帐号信息,在本例中就是“RCVCAT_CONNECT_STR=rman/rman”。 此外,在模板脚本中,只是热备份用户的SYSTEM表空间,而用户可以修改脚本,使得可以热备份其他的表空间。首先我们需要查找到数据库中所有的表空间,见图三: 图三:查看数据库的表空间 在找到需要热备份的表空间后,用户需要修改hot_tablespace_backup.sh脚本中的字段,见图四: 图四:修改表空间名称 由图四可知,我们在脚本中修改黄圈以内的名称为任何存在的表空间名称即可。 这样,对于表空间级的备份脚本就修改完毕了,用户可以试着运行该脚本,并通过输入文件hot_tablespace_backup.sh.out来解决可能出现的错误(一步一步教着,应该没什么错误吧!),如果脚本可以运行正常,那么就需要将其加入到NBU的备份策略中,并设置好全备份和差分备份的日程表即可。 通过本文的介绍,用户可以通过修改NBU自带的备份脚本,对oracle系统做数据库级或者表空间级的热备份了。希望本文可以在用户使用NBU oracle代理的过程中,加深用户对于oracle数据库和NBU的理解。

运维网声明 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-251326-1-1.html 上篇帖子: Oracle安全数据系统架构全接触(1) 下篇帖子: 使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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