Oracle数据库在线备份相关原理描述 (oracle是什么)

教程大全 2025-07-20 12:52:27 浏览

1 概述

Oracle数据库在线备份相关原理描述

文章主要是从Oracle数据库的基本原理开始的,讨论Oracle数据库在线备份原理及利用这些相关原理作为Oracle数据库的远程复制提供一种方法,也就是Oracle远程备份的实现。本文提供的远程备份实现的过程是从实践中产生的。该过程只要稍加修改就可以运用到相应的实际工作中。因此具有实践的指导意义。以下涉及到的数据库的内容仅限于Oracle公司数据库的范围。

2 Oracle 工作机制

在讨论Oracle在线备份之前,我们先作一些准备工作。

2.1基本概念

由于我们讨论的Oracle在线备份涉及到以下Oracle的几个基本而且非常重要的概念。为了说明方便,下面我们对这几个重要的概念作一些说明。

1)数据库的表

表是数据库中最基本而且是最重要的概念,表是数据库用来存放数据的地方。应用业务中的数据就是保存在数据库的表中。

2)数据查询语句

数据查询语句主要是对数据库中的数据进行查询于浏览。也就是对数据库中的表的记录进行查询。在 Oracle数据库中,数据查询的命令是

3)DML语句

在Oracle数据库中,DML(DATA MANIPULATION LANGUAGE)语句,也就是数据操纵语言,指那些对Oracle数据库中数据进行修改的语句。这种修改仅限于数据库中的数据,也就是表中的记录。而不是数据库中的对象。从后面可以看书,理解这一点非常重要。DML语句有以下几类:

A)数据的增加

往数据库中增加数据是DML语句一个功能,在数据库中数据的增加表现为数据库中表的记录的增加。 Oracle数据库中增加记录的命令是

B)数据的修改

数据库中的数据并不是一成不变的,有时由于应用或是业务要求的变化,可能需要修改数据库中的数据。数据库中数据的修改表现出来是对数据库的表中的记录进行修改。DML语句可以用来对数据库中的数据进行修改。 Oracle数据库中修改表中的记录的语句是

C)数据的删除

数据库中的数据不再需要时,要将其从数据库中删除。也就是把记录从数据库的表中删除。 Oracle数据库删除记录的命令是

4)DDL语句

在Oracle数据库中,对象的创建是由DDL语句完成。DDL (DATA DEFINITION LANGUAGE)语句一经发布,则数据库中将增加一个对象,如表,用户等等。

2.2 Oracle对DML语句的处理

有了以上的一些基本概念,我们可以讨论Oracle在线备份了。在此之前,我们首先来看Oracle对DML(DELETE、UPDATE、INSERT)语句的处理过程:(该系统的拓扑结构为CLIENT/SERVER模式)

从上图可以看出, Oracle数据库对DML语句的出来过程如下:

1) 用户(CLIENT)将DML语句传递给 服务器 (SERVER)。(如图,该DML语句是UPDATE)

2) SERVER进程将需要的数据块从数据文件读到内存区(SGA区)的DATA BUFFER CACHE中,同时在该区中对数据进行修改。

3) 将整个修改过程由内存中的DATA BUFFER CACHE 区COPY到内存区的REDO LOG BUFFER。这次COPY不但保存了数据库修改后的值,而且保存数据库修改前的值。

4) DML语句对数据库的都会有Oracle的SERVER进程记录到Oracle的内存结构REDO LOG BUFFER中。因此,我们只要把所有REDO LOG BUFFER 中的信息记录下来,那么我们就记录了所有DML语句对数据库的修改。这个纪录过程由Oracle的另一个后台进程来完成。

该数据库中有三组REDO LOG FILES,每组中有两个成员,这两个成员是相互镜像的。Oracle 数据库的后台进程写满***组之后,接着写第二组,写满第二组之后写向第三组。写满地三组之后Oracle地处处理依据Oracle运行方式不同而不同。

1. Oracle运行方式为非归档方式

在这种情况下,Oracle数据库不会在任何处理接着写向***组,将***组原有的数据覆盖掉。因此REDO LOG FILES原有的数据不可用,故数据库在这种情况下不可恢复。

数据库每次写向一组新的REDO LOG FILE 时都会为该组分配一个序号。这个序号是递增,而且***的。并且可以按指定的方式REDO LOG FILE的文件名相关。这样如果REDO LOG FILE 在相同的目录下也不会同名。

2. Oracle 运行方式为归档方式

在这种情况下,Oracle数据库接着写向***组之前,将***组做一个备份。这个备份就是我们用来做恢复的依据。如图:

归档的REDO LOG FILES (ARCHIVED LOG FILE)是对原REDO LOG FILE 的物理拷贝。这个拷贝是可由数据库的后台进程ARCH自动完成的。(由于每一个REDO LOG FILE的名字中有一个***的序号,因此ARCHIVED LOG FILE的名字也有一个***序号。这个序号决定了做恢复时的使用ARCHIVED LOG FILE 顺序。)

从上可知:

1. DML语句对数据库的修改记录在REDO LOG BUFFER 中

2. REDO LOG BUFFER中信息记录在REDO LOG FILE中

3. REDO LOG FILE 中的信息记录在ARCHIVED LOG FILES 中

因此,把所有的ARCHIVED LOG FILES 保存下来就保存所有对Oracle数据库的修改。

用归档来考虑备份与恢复时,必须指出:

1. 如果发出的SQL语句指定了NOLOGGING等将对数据库修改不记入REDOLOGFILE时,这些信息是不能恢复的。此时须借助于其它类型的备份

归档只记录了对数据库的DML语句修改,因此在做恢复时,必须有一个全备份做基础。归档作用在这个全备份上,重演以前对Oracle数据库的DML的修改来达到恢复的目的

【编辑推荐】


SQL数据库如何自动备份和恢复?

一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录3、选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份二、还原数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取3、点击新建好的数据库名称-->然后点上面菜单中的工具-->选择恢复数据库4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是,现在的数据库是zw0002,就改成),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\或者d:\sqldata\),否则恢复将报错6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

怎样进行DB2备份

1、离线全备份1)、首先确保没有用户使用DB2:$db2 list applications for db sample2)、停掉数据库并重新启动,以便断掉所有连接:db2stop forcedb2start3)、执行备份命令:(使用TSM作为备份的介质)db2 backup db sample use tsm备份成功,将会返回一个时间戳。 4)、检查备份成功:Db2 list history backup all for sample ,可以看到多了这个备份的纪录。 Db2adutl query命令也可以看到返回值。 5)、备注:首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。 2、 在线备份:1)、首先打开一下支持在线备份的数据库配置参数:db2 update db cfg for sample using userexit on 启用用户出口db2 update db cfg for sample using logretain on 启用归档日志db2 update db cfg for sample using trackmod on 启用增量备份功能(需要各个Node都分别做设置)开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。 做一下离线全备份,参考上面的命令。 2)、在线备份命令如下:db2 backup db sample online use tsm备份成功,返回一个时间戳。 3)、同样可以用db2adutl 和db2 list history察看备份纪录。 4)、备注:同样,对每个节点都做这个操作。 3、 在线增量备份1)、在开启了必须的三个参数的情况下,做增量备份:db2 backup db sample online incremental use tsm备份成功,返回一个时间戳。 2)、同样可以用db2adutl 和db2 list history察看备份纪录。 3)、还有一种delta的备份:db2 backup db sample online incremental delta use tsm这两种备份的区别,类似Oracle exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。 4)、备注:同样,对每个节点都做这个操作。

mysql数据库定时备份 怎么实现 您会吗

研究下mysqldump命令行,然后写bat文件,最后把bat放到服务的任务计划里定时执行。 先cd到你的mysql安装目录的bin文件夹下然后执行mysqldump -u wcnc -p smgp_apps_wcnc > ------------------------------------------------------------------mysql导出整个数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐