7ORACLE数据库有哪几种标准备份方式分别描述下相关内容。

7ORACLE数据库有哪几种标准备份方式分别描述下相关内容。,第1张

Oracle作为目前世界上市场份额占有率最高的大型通用数据库,在世界上各行各业的信息化建设中起着核心首脑的作用。它(软件自身以及它所依赖运行的硬件)一旦出现问题,轻则导致业务中断,重则丢失部分数据,严重则全部数据不可逆转性损毁!这种情况在信息化越来越占生产主导地位的今天意味着什么各大CIO都非常清楚,所以他们想尽一切办法坚决杜绝这种情况的发生!

 针对Oracle数据库来说,主要有以下四种备份方式

 一、导出/导入(Export/Import)

 导出导入是一种最初级的备份方式,它采用定时将全量、增量或者差异数据以表、用户或者全库为单位导出到某种格式的文件中达到备份的目的。它作为标准的命令被集成到了Oracle开发语言中。可以通过DBA手动执行备份命令,或者通过脚本和工具自动执行。RMAN就是此类工具中的佼佼者,曾经有很多DBA在使用。

 但它是一种定时备份的模式,具有明显的备份时间窗口。备份间隔内仍然存在数据丢失的可能,比如每一天做一个增量备份的话,那么最大会丢失一天的数据。如果是可以允许一段时间内数据丢失的业务,可以采用这种模式。反之只能采用下面的一种备份模式——热备份。

 二、热备份

 对于热备份来说,故名思议就是刚出炉的数据还是热乎的就开始执行备份的 *** 作。实现热备份的方式目前主要有两种方式,逻辑方式和物理方式。

 1、逻辑方式

 如果把Oracle数据库比作一个美女的话,那么实例库就是她的整个身体,表空间就是她的骨骼,表是她的筋络,数据是她的血肉。视图、事务、函数、pack包等是她身体上毛发和的饰品。

 对于逻辑方式备份来说就是用一种方式勾勒出了这位美女的模样,让人看上去能认出就是那位美女,但是仔细看的话可能又有所不同。

 这种勾勒的方式又分为两种:

 1)SQL语句模式

 SQL的全称是,它是一种语言,而不是专指一种数据库。很多人习惯把MSSQL简称为SQL,这是不对的。SQL之前必须加了MS(Microsoft)才能是一种数据库的名字。

 SQL这种语言,大多数数据库都支持。Oracle的老大埃里森当年也是因为首先致力于对SQL语言的支持,才在SQL成为标准后挫败了很多当时没有纳入到SQL语言标准范畴内的数据库。

 既然Oracle支持SQL语句,那么就可以用SQL语句进行逻辑勾勒。我们知道当我们提交数据的时候并不关心是提交到了哪种数据库里面去了,以什么样的方式存储。最终只要能提交成功并能查、改、删皆可。这些都是通过SQL语句来实现的,它同样不关心数据库的种类和存储方式。这就意味着我们就可以用SQL语句将数据从源端数据库抽取出来,然后将它装载在某个目标的数据库里面。源端数据库和目标端数据库可以是不一样的品牌,甚至可以不在同一平台上。就如同我们在勾勒美女的时候是用油画布还是国画宣纸都不影响最终对美女的展现。

 CDC(Change Data Capture)就是以这种模式对Oracle进行增量备份的,当然它更多情况下用以做数据整合。

 这种模式听起来似乎很美,可以不用管平台不用管数据库,直接抽取和装载数据库。但是要素描我们首先得雇佣一个画家,这一块的投资颇大,就如同CDC价值不菲一样。

 另外它有一个缺点:在执行SQL语句的时候占用了Oracle自身大量的资源,甚至影响到了它的正常运行。

 其次,在执行SQL语言时对于SQL语言细分的组成部分:DDL (数据定义语言)、DML (数据 *** 作语言)、DCL (数据控制语言)和TCL(事务控制语言)以及特殊的字段比如blob和clob字段等的支持并不完美,效率低下甚至就不支持。

 2)日志重做模式

 我们用素描的方式来比喻逻辑备份里面的SQL语句模式,那么对于归档重做的模式我们称之为复印。归档日志是Oracle独有的一种模式,它会将自己做过的所有事情的过程都记录在里面。如果照着归档重新做一遍,则能得到同样的结果,这个结果是相对比较接近源生产库的。在这里之所以使用“相对比较接近”是因为还是有所差别的,就如彩色照片复印出来是黑白的,内容看上去差不多,但还是有差别,且存在很多限制。OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)就是两款Orcle两款典型的日志重做工具。前者是Oracle收购的公司,后者是Oracle企业版包含的一个工具。

 使用日志重做模式首先采用这种方法数据库必须至于归档模式下,且要是Force Logging(强制记录日志)状态。这才能满足日志重做的基本条件。因为Oracle的日志分为OnlineLog(联机日志)和ArchiveLog Log(归档日志)。如果写入的数据量较小,那么可以直接对OnlineLog进行重做。但如果写入的数据量很大或者巨大,那么对OnlineLog进行重做是来不及的,就只有延后对ArchiveLog Log进行重做。而对于一下NoLogging(无日志)的数据 *** 作就没有办法进行重做了,所以必须采用将数据库模式设置为Force Logging(强制记录日志)状态。这对数据库的使用具有很大的限制。

 另外OGG(Oracle Goldengate)以及ODG(Oracle Dataguard)的逻辑Standby模式虽然在源端获取数据是通过归档日志,但是在目标端(备份机)上进行数据还原的时候是转换成SQL语句来进行的。这就具有了1)中所述使用SQL语句的一些缺点。

 2、物理方式

 同于我们将SQL逻辑方式比如素描,把日志重做逻辑方式比作复印,则物理方式就是复制人。

 卷复制、分割镜像快照等技术就是一种常用的物理方式。乍看起来这种模式要优于逻辑方式,但是它的优势恰恰就是它的劣势。就如同我们打得复制人的比方,在复制人的时候必须每一个染色体每一个DNA都不能出差错。否则将会前功尽弃。对于Oracle这种结构化数据来说,它的精密性不亚于人体。一旦在物理复制的时候不完整或者出错,将会导致整个数据库不可用。所以物理复制不能是单纯的把数据库当作文件进行表面复制,必须是建立在对Oracle数据的逻辑存储结构深入分析的基础之上,才能保证复制出来的数据是100%可用的。

 三、冷备份

 从前文课件不管是逻辑方式的热备份还是物理方式的热备份,它都存在一些问题。举个例子来说:源端数据库的一个事务写完生产ArchiveLog Log后,ArchiveLog Log转换成SQL语句在备份机上执行,执行到一半的时候正好停机了。再开机时这个没有执行完的SQL就有可能导致整个Oracle数据库无法Open。

 为了尽可能的避免这种情况,用户往往在指定的时间(比如凌晨2-3点)将源端数据库合法Shutdown(关闭),以确保数据库在可用的状态时拷贝出一份完成的数据出来。

 很明显拷贝的前提是将数据库Shutdown,就是说业务需要停止。所以这种备份叫做冷备份。

 四、CDP

 SNIA(全球网络存储工业协会StorageNetworkingIndustryAssociation)对什么是CDP做了明确界定:1、有变化就备份2、至少备份到另外一个地方3、可以恢复到任意时间点。实现的模式主要有三种:基于块、基于文件、基于应用。

 按照这一点来卡的话ODG的物理Standby模式可以算是。

 ODG的物理Standby模式在创建时,使用主库进行一个全copy(可以理解为不用shutdown的冷备份)。在此基础之上以“基于块”的模式对数据进行物理的拷贝和恢复。此时目标段(备份机)就是完全是源端数据库的一个复制,因为它是Oracle自身的工具,所以它深入了解Oracle自身的逻辑结构,从而有效的避免了物理复制存在数据库不可用的问题。

 但是对于CDP里面的第3点:可以恢复到任意时间点。它必须借助Oracle的另外一个功能Oracle Undo(撤消日志)。

 我们知道Oracle的中文名是甲骨文,它一定意义上反映了Oracle数据库 *** 作的难易程度。

 ODG的物理Standby模式虽然看起来很美,但是第一:它只属于Oracle,第二:需要专业DBA配置和维护。这就使得它的使用成本过高而成为“王谢堂前燕” ,难以飞入“寻常百姓家”。

推荐答案很不错。对于新手来说很容易学。我补充几句吧:

关于冷备份:

冷备份就是关闭数据库后的备份,流程1关闭数据库(sql>shutdown immediate)2复制数据文件到新的目录(也可以拷贝重做日志或者其它文件,看你要备份什么)3重启数据库

推荐答案采用的是逻辑备份的方式,简单的说就是把对象的数据结构,数据导出来。

不熟语句的话,推荐装个plsql dev,图形界面直接用工具导就行了。

Oracle自动备份的三种方法:

Oracle自动备份数据库不外乎以下三种方式:

WINDOWS下的任务计划(At命令)

UNIX下的Crontab

第三方工具如Viritas

在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron

1、生成脚本文件,如backuprcv 假定文件内容如下:

$>cat backuprcv 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_archivebat,内容包括rman cmdfile = backuprcv 在unix下生成 backup_archivesh,内容包括oracle/ramn/rman cmdfile = backuprcv

3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下

$>cat oracle

0 23 0 backup_archivesh

#表示星期天23点对数据库备份

0 12,18 backup_archivesh

#表示每天12点,18点备份

Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来。

这个用rman就可以实现。设置策略为保存7天的备份,然后删除过期备份即可。

RMAN>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

RMAN> crosscheck backup; 

RMAN> delete obsolete;

以上就是关于7ORACLE数据库有哪几种标准备份方式分别描述下相关内容。全部的内容,包括:7ORACLE数据库有哪几种标准备份方式分别描述下相关内容。、oracle 数据库备份详细步骤、oracle中怎么设置数据库自动备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9707650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存