nbu备份oracle.docx
- 文档编号:11789333
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:16
- 大小:305.38KB
nbu备份oracle.docx
《nbu备份oracle.docx》由会员分享,可在线阅读,更多相关《nbu备份oracle.docx(16页珍藏版)》请在冰豆网上搜索。
nbu备份oracle
nbu备份oracle
学习和掌握如何使用NBU备份文件系统,对于一个数据管理员来说,仅仅是一个开始。
因为对于大部分企业来说,买来NBU主要是为了备份企业数据库的数据,保护数据库的数据安全,进而保证企业应用的安全运行。
Oracle备份简介:
简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份。
按照备份的工具,可以分为EXP/IMP备份和RMAN。
一般来说,Exp/Imp是oracle的一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有很强的功能。
但是目前主要最广泛的Oracle备份恢复工具是rman。
RMAN是Oracle提供的一个数据库备份和恢复工具,利用rman可以方便进行数据库的冷备份和热备份。
此外,有一些个人用户,会使用OS拷贝,但是它的缺点是占用空间大,而且拷贝文件的内容一般与系统环境有很大关系,转移到其他机器不容易恢复,不是企业用户的选择。
在本文中,我们将介绍如何利用NBU和oracle的rman工具进行oracle的冷备份。
NBU备份oracle步骤简介:
如果用户需要备份oracle数据库,那么需要依次进行如下步骤:
1, 按照NBUoracle代理到NBU客户端,使得NBU能够获取客户端的oracle数据库的内容;
2, 在NBU主服务器(masterserver)上,创建类型为oracle备份的备份策略,使得NBU可以定时发起NBU备份;
3, 手动运行oracle备份策略,确定备份策略配置无误;
4, 添加增量备份,手动运行增量备份,检查无错误;
5, 在指定oracle运行时刻检查备份作业的工作情况,确定其可以自动运行无误。
现在,我们来依次介绍一下相关的步骤:
一, 安装NBUoracle代理
首先用户需要将oracle代理软件挂载到文件系统中,然后运行install脚本,在显示界面中选择“2NetBackupDatabaseAgentSoftware”,在接着出来的界面中选择远程按照或者本地安装后,出现按照数据库代理界面,如图一所示:
图一:
选择NBU数据库代理
首先,本文作者假定用户已经阅读过前作(《NBU设置备份策略》),所以与普通策略配置相同的地方,将不重复阐述。
设定备份属性页
在设置备份策略的时候,首先需要在策略属性页中,将备份类型设置为oracle,然后指定数据保存到什么地方(需要提前设置好存储单元,详见《NBU设置存储单元》一文),如图二所示:
图二:
设置oracle备份策略-属性
1. 设定备份日程表
在备份策略的日程表设定中,有一个默认存在的备份日程表“Default-Application-Backup”,这次我们先不管它,我们去创建一个全备份日程表,如图三所示:
图三:
NBU备份策略-全备份日程表属性
由图三可知,在日程表的属性中,主要是可以修改日程表的名称,另外就是备份类型是“AutomaticFullBackup”,其他的选项去普通配置相同,请参见《NBU设置备份策略》。
注意这里要设置好NBU全备份的频率,太过频繁会导致磁盘占用的增多,如果是冷备份的话,还会导致数据库停机频繁,所以一般一周到几个月比较合适。
接着用户需要去设定oracle全备份的日程表,就是周几的什么时间可以执行全备份,用户可以选择周一下午到周二早晨(非工作时间),然后点击“duplicate”按钮,指定周几都可以,但是一定要是下班时间,见图四:
图四:
NBU备份策略-设置启动时间
2. 设定备份客户端:
在设定好oracle的全备份日程表之后,我们就可以设置NBU客户端列表了,这里与普通备份策略的设置没有什么区别,所以这里不在累述了。
3. 设定备份选择
在oracle备份策略的配置中,对于备份选择是非常重要的,这里将花费一些篇幅重点介绍它,见图五:
图五:
添加备份选择
在图五所示界面中,有两个选项:
一是模板类型(Templateset),其中包括RMAN方式和imp/exp方式两种,如图六所示:
图六:
oracle备份的模板类型
本文因为要做oracle的冷备份,所以在这里选择RMAN方式,接着需要添加一个运行脚本。
这个是我们备份过程中的重点。
备份脚本就是一系列命令的集合,它内部记录了系统的oracle用户、登录oracle的用户帐号、要访问的数据库等等,此外,它还能获取到NBU的参数,包括备份的类型、要备份到的目标地等等。
通过这些参数,我们就可以让NBU的oracle代理帮助我们自动备份oracle数据库了。
现在可能会有读者说,我不会写脚本啊。
没有关系,NBU为用户提供了各种备份的模板,存放在/usr/openv/netbackup/ext/db_ext/oracle/samples目录下,见图七:
图七:
备份脚本模板
由图七可见,NBU为oracle备份提供了rman、exp和imp的各种脚本。
今天我们要从最基础的冷备份讲起,所以我们要去修改的脚本是cold_database_backup.sh(注:
cold_duplex_database_backup_full.sh脚本是为多个拷贝而设计的,目前我们只做一个拷贝,所以不需要这个)。
对于cold_database_backup.sh脚本来说,我们只需要修改脚本中的如下参数即可:
ORACLE_HOME:
表示oracle所在的目录,NBU需要到其目录下执行相应的rman命令;
ORACLE_SID:
指明需要冷备份的数据库;
ORACLE_USER:
oracle数据库所属的系统用户,NBU会先用该用户登录,再执行各种备份操作;
TARGET_CONNECT_STR:
登录oracle数据库的帐号,必须是系统管理员,因为冷备份需要停止oracle数据库先;
TARGET_INIT_FILE:
指定启动脚本,冷备份完毕后重启oracle时候需要;
对于冷备份来说,修改如下项目即可,大家可以看修改后的模板,见图八:
图八:
修改脚本模板实例
在用户修改好脚本之后,就可以将其添加到oracle的备份选择中去了,见图九:
图九:
添加备份选择
在设置好上述属性之后,oracle备份策略就成功了制定了
三, 手动运行全备份策略:
右键点击新生成的备份策略,选择手动执行,然后在活动监控器页面观察oracle备份执行的情况,见图十:
图十:
全备份oracle数据库
由图十可见,oracle备份已经成功,在全备份过程中,oracle代理启动了一些属性为“applicationbackup”的子任务(jobid分别是128、129、130)来完成全备份。
四, 增加差分备份:
由于全备份会占用很长的备份时间,所以用户使用备份策略时,不仅仅要设置好全备份,而且要在每两个全备份之间,设置一些差分备份,在减少备份时间的同时,增加备份的次数。
差分备份日程表的设置很简单,仅仅需要在原先生成的全备份策略中,添加一个差分备份日程表即可,见图十一:
图十一:
差分备份日程表
此外,需要设置好差分策略启动的时间,见图十二:
图十二:
差分备份执行时间表
五, 手动执行差分备份日程表:
在设置好差分备份日程表之后,我们可以点击该备份策略,选择执行差分备份(图十三),之后在活动监控界面检查作业的执行情况(图十四):
图十三:
选择差分备份
图十四:
监控差分备份情况
由图十四可知,差分备份已经顺利执行完毕了(注意图十四的schedule列,里面包括全备份和差分备份)。
这样,用户就顺利执行了以后oracle数据库的冷备份。
接着,用户需要等待NBU在备份策略设定的启动时间到达时,查看是否作业能够自动运行,如果可以,那么NBU的备份策略就算是大功告成了。
热备份的条件:
用户如果需要进行热备份,那么必须将数据库设置为archivelog模式。
用户可以登录数据库后,通过“SQL>archiveloglist”查看数据库的模式是否是archivelog模式。
如果用户数据库不是在archivelog模式下,可以通过下列命令将其设置为归档模式:
• SQL>shutdownimmediate
• SQL>startupmount
• SQL>alterdatabasearchivelog
• SQL>alterdatabaseopen
在归档模式下,用户的数据库会将所有的日志记录起来,所以时间一久就会占用大量的磁盘空间,所以用户可以按需,将数据库改回到非归档模式,方法如下所示:
• SQL>shutdownimmediate
• SQL>startupmount
• SQL>alterdatabasenoarchivelog
• SQL>alterdatabaseopen
热备份的类型:
从NBU的角度来说,oracle的热备份分为两种:
一种是数据库备份,可以在不关闭数据库的情况下,备份某个数据库的数据文件、控制文件和归档日志文件等等;第二种备份模式是热备份表空间,可以在数据库关闭的情况下,备份某个数据库表空间的内容。
在本文中,我们就分别介绍一下如何进行数据库级备份和表空间级备份。
注:
在这里,我只会讲到如何修改备份脚本来进行备份,如果用户对于如何创建oracle备份策略、如何运行全备份和增量备份、如何寻找NBU提供的备份脚本模板等问题存在疑惑的话,请参加前文《用NBU备份oracle系统-冷备份》。
数据库级热备份:
对于数据库级热备份来说,我们可以利用NBU提供的脚本文件:
/usr/openv/netbackup/ext/db_ext/oracle/samples/rman/hot_database_backup.sh,这是一个可执行脚本,内容就是在设置好运行oraclerman程序所需的一些环境变量后,从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>CreatetablespaceTS_RMANdatafile'/oracle/catalog_rman.bdfsize50m;
2, 创建RMAN用户:
SQL>CreateuserRMANidentifiedbyRMANdefaulttablespaceTS_RMANtemporarytablespacetemp;
3, 给RMAN授予权限:
SQL>Grantconnect,resource,recovery_catalog_ownertorman;
4, 连接到目标数据库和CATALOG数据库:
rmantargetsystem/manager@target_tnsnamercvcatrman/rman@catalog_tnsname
其中,target_tnsname是我们想要备份的数据库名称,catalog_tnsname是刚才创建rman表空间和rman用户所在数据库的名称,可以和备份数据库一个,因为我们这里仅仅是备份其他表空间。
5, 创建CATALOG用户的表:
rman>createcatalog
6, 登记目标数据库:
rman>registerdatabase
这样,我们就成功创建了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系统做数据库级或者表空间级的热备份了。
希望本文可以在用户使用NBUoracle代理的过程中,加深用户对于oracle数据库和NBU的理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nbu 备份 oracle
![提示](https://static.bdocx.com/images/bang_tan.gif)