Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1262269
  • 博文数量: 1211
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 14340
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-09 11:20
文章分类

全部博文(1211)

文章存档

2011年(1)

2008年(1210)

我的朋友

分类: 服务器与存储

2008-06-11 18:13:06

学习和掌握如何使用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业务类型的需要。

    注意,笔者假设用于已经阅读过前作,故在讲述中会忽略一些基本的配置过程,重点在于将冷备份和热备份的区别。所以如果对细节不是很清楚的用户,可以翻阅前作。

热备份的条件:

    用户如果需要进行热备份,那么必须将数据库设置为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提供的脚本文件:/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 $?”则返回非零值,在这种情况下,用户需要从输入文件中发现错误原因并修改运行脚本。只有该脚本可以手动运行成功后,才能在备份策略中运行成功。

阅读(369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~