NBU网络备份大全之oracle系统热备份

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 学习和掌握如何使用NBU备份文件系统,对于一个数据管理员来说,仅仅是一个开始。因为对于大部分企业来说,买来NBU主要是为了备份企业数据库的数据,保护数据库的数据安全,进而保证企业应用的安全运行。

学习和掌握如何使用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的理解。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
14天前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【10月更文挑战第3天】随着网络技术的发展,网络安全问题日益严峻,传统防御手段已显不足。本文探讨了构建AI驱动的自适应网络安全防御系统的必要性及其关键环节:数据采集、行为分析、威胁识别、响应决策和执行。通过Python库(如scapy、scikit-learn和TensorFlow)的应用实例,展示了如何利用AI技术提升网络安全防护水平。这种系统能够实时监控、智能分析并自动化响应,显著提高防护效率与准确性,为数字世界提供更强大的安全保障。
35 2
|
1月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
73 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
1月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
96 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
86 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
1月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
74 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
70 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
16天前
|
域名解析 缓存 网络协议
【网络】DNS,域名解析系统
【网络】DNS,域名解析系统
60 1
|
21天前
|
人工智能 安全 网络安全
云计算与网络安全:构建安全的数字生态系统
随着云计算技术的广泛应用,网络安全问题日益凸显。本文从云服务、网络安全和信息安全等技术领域出发,探讨了云计算与网络安全的关系及其挑战,并提出了相应的解决方案。通过深入分析云服务的安全架构、网络安全的防护策略以及信息安全的管理措施,揭示了构建安全数字生态系统的重要性。同时,强调了技术创新、人才培养和政策法规在保障云计算与网络安全方面的重要作用,为相关领域的研究和实践提供了有益的参考。
39 7
|
27天前
|
网络协议 安全
网络中IP地址与域名系统
网络中IP地址与域名系统
37 3
|
9天前
|
物联网 5G 调度

推荐镜像

更多