oracle数据库集群 冷备份_Oracle冷备份和热备份的处理

article/2025/1/10 20:25:34

一、摘要

Oracle 的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),

而备份恢复又可以根据数据库的工作模式分为非归档模式 (Nonarchivelog-style)和归档模式(Archivelog-style),

通常,我们把非归档模式称为冷备份,而相应的把归档模式称 为热备份。

逻辑备份 - 冷备份

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

物理备份 - 冷备份

冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。

此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。

冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。

因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。

物理备份 - 热备份

热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。

热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。

一旦数据库处于archive log模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。

备份方式分类

60fb9c75b5fc414c63cc3d0fac73c3a6.png

二、逻辑备份

现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

理论基础:Oracle提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型):

(1). 表方式(T) 可以将指定的表导出备份;

(2). 全库方式(Full) 将数据库中的所有对象导出;

(3). 用户方式(U) 可以将指定的用户相应的所有数据对象导出;

在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。

增量导出又可以分为三种类别:

(1). 完全增量导出(Complete Export) 这种方式将把整个数据库文件导出备份;

exp system/密码@数据库名 inctype=complete file=存放目录\yyyymmdd.dmp (为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名)

(2). 增量型增量导出(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;

exp system/密码@数据库名 inctype=incremental file=存放目录\yyyymmdd.dmp

(3). 累积型增量导出(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息;

exp system/密码@数据库名 inctype=cumulative file=存放目录\yyyymmdd.dmp

通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),

一般,我们采用普遍认可的下面的方式进行每天的增量备份:

Mon:完全备份(A)

Tue:增量导出(B)

Wed:增量导出(C)

Thu:增量导出(D)

Fri:累计导出(E)

Sat:增量导出(F)

Sun:增量导出(G)

这样,我们可以保证每周数据的完整性,以及恢复时的快捷和最大限度的数据损失。

恢复的时候,假设事故发生在周末,DBA可按这样的步骤来恢复数据库:

第一步:用命令CREATE DATABASE重新生成数据库结构;

第二步:创建一个足够大的附加回滚。

第三步:完全增量导入A:

imp system/密码@数据库名 inctype=RESTORE FULL=Y FILE=A

第四步:累计增量导入E:

imp system/密码@数据库名 inctype=RESTORE FULL=Y FILE=E

第五步:最近增量导入F:

imp system/密码@数据库名 inctype=RESTORE FULL=Y FILE=F

通常情况下,DBA所要做的导入导出备份就算完成,只要科学的按照规律作出备份,就可以将数据的损失降低到最小,提供更可靠的服务。

另外,DBA最好对每次的备份做一个比较详细的说明文档,使得数据库的恢复更加可靠。

三、冷备份

冷备份在数据库出现问题是 只会恢复到备份时的那一时间点,备份完成到数据库出现问题需要恢复时的这一时间段内的所有新数据、修改记录都无法恢复。

热备份只能在归档模式下进行,冷备份不需要归档模式,归档模式会对系统性能尤其是磁盘I/O造成一定的影响,但是相对于归档的好处和安全性,相信大多数DBA都会选择归档模式。

1、优点:

只需拷贝文件即可,是非常快速的备份方法。

只需将文件再拷贝回去,就可以恢复到某一时间点上。

与数据库归档的模式相结合可以使数据库很好地恢复。

维护量较少,但安全性确相对较高。

2、缺点:

在进行数据库冷备份的过程中数据库必须处于关闭状态。

单独使用冷备份时,数据库只能完成基于某一时间点上的恢复。

若磁盘空间有限,冷备份只能将备份数据拷贝到磁带等其他外部存储上,速度会更慢。

冷备份不能按表或按用户恢复。

3.基本流程

当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,

当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,

这样,就完成了一次快捷安全等数据转移。

由于是在数据库不提供服务的关闭状态,所以称为冷备份。

冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:

Step1. 首先关闭数据库(shutdown normal)

Step2. 拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))

Step3. 重新启动数据库(startup),以上的步骤我们可以用一个脚本来完成操作:

su – oracle < sqlplus /nolog

connect / as sysdba

shutdown immediate;

!cp 文件备份位置(所有的日志、数据、控制及参数文件);

startup;

exit;

Step4. 这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。

Step5. 恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。

四、热备份

热备份支持在数据库不停机的情况下进行备份,冷备份是必须在数据库shutdown以后使用操作系统的命令对表空间进行拷贝进行的备份。

热备份适用于重要的数据库,比如7x24不能中断的生产系统,同时可以保证数据库在出现崩溃时结合归档日志可以恢复到任意一个时间点,不会造成数据丢失。

1、优点:

可在表空间或数据文件级备份,备份时间短。

可达到秒级恢复(恢复到某一时间点上)。

可对几乎所有数据库实体作恢复。

恢复是快速的,在大多数情况下在数据库仍工作时恢复。

备份时数据库仍可用。

2、缺点:

因难以维护,所以要特别仔细小心,不允许“以失败而告终”。

若热备份不成功,所得结果不可用于时间点的恢复。

不能出错,否则后果严重。

3.基本流程

当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉(少许访问量)时,

这个情况下,我们就需要归档方式下的备份,就是下面讨论的热备份。

热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。具体步骤如下:

Step1. 通过视图v$database,查看数据库是否在Archive模式下: SQL> select log_mode from v$database;

如果不是Archive模式

则设定数据库运行于归档模式下:SQL>shutdown immediate

SQL>startup mount

SQL> alter database archivelog;

SQL> alter database open;

如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如:

正常shutdown数据库,在参数文件中init.ora中加入如下参数

SQL>shutdown immediate

修改init.ora:

LOG_ARCHIVE_START=TRUE

LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(归档日值存放位置可以自己定义)

SQL>startup

然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。

其中参数LOG_ARCHIVE_DEST1是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。

归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。

注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用。

另外,为创建一个有效的备份,当数据库在创建时,必须履行一个全数据库的冷备份,就是说数据库需要运行在归档方式,然后正常关闭数据库,备份所有的数据库组成文件。

这一备份是整个备份的基础,因为该备份提供了一个所有数据库文件的拷贝。(体现了冷备份与热备份的合作关系,以及强大的能力)

Step2. 备份表空间文件:

(1). 首先,修改表空间文件为备份模式 ALTER TABLESPACE tablespace_name BEGIN BACKUP;

(2).然后,拷贝表空间文件到安全区域 !CP tablespace_name D_PATH;

(3).最后,将表空间的备份模式关闭 ALTER TABLESPACE tablespace_name END BACKUP;

Step3. 对归档日志文件的备份:

停止归档进程-->备份归档日志文件-->启动归档进程

如果日志文档比较多,我们将它们写入一个文件成为一个恢复的参考:$ files ls <归档文件路径>/arch*.dbf;export files

Step4. 备份控制文件:

SQL> alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;

当然,我们也可以将上面的东东写为一个脚本,在需要的时候执行就可以了:

脚本范例:

su – oracle < sqlplus /nolog

connect / as sysdba

ALTER TABLESPACE tablespace_name BEGIN BACKUP

!CP tablespace_name D_PATH

ALTER TABLESPACE tablespace_name END BACKUP

alter database backup controlfile to 'controlfile_back_name' reuse;

!files ls <归档文件路径>/arch*.dbf;export files

热备份的恢复,对于归档方式数据库的恢复要求不但有有效的日志备份还要求有一个在归档方式下作的有效的全库备份。

归档备份在理论上可以无数据丢失,但是对于硬件以及操作人员的要求都比较高。

在我们使用归档方式备份的时候,全库物理备份也是非常重要的。

归档方式下数据库的恢复要求从全备份到失败点所有的日志都要完好无缺。

恢复步骤:LOG_ARCHIVE_DEST_1

shutdown数据库。

将全备份的数据文件放到原来系统的目录中。

将全备份到失败点的所有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的位置。

利用sqlplus登陆到空实例。(connect / as sysdba)

然后 startup mount

set autorecovery on

recover database;

alter database open;


http://chatgpt.dhexx.cn/article/TvmcN6yB.shtml

相关文章

oracle冷热备份优缺点,数据库冷热备份优缺点

一、热备份介绍 热备份是在数据库运行的情况下&#xff0c;采用archivelog mode方式备份数据库的方法。所以&#xff0c;假如你有昨天夜里的一个冷备份而且又有今天的热备份文件&#xff0c;在发生问题时&#xff0c;就可以利用这些资料恢复更多的信息。热备份要求数据库在Arch…

Oracle冷备份及其恢复

一、 冷备份的概念 冷备份是指在数据库关闭状态下所做的物理拷贝&#xff0c;也称脱机备份。 适合于非归档模式下的备份&#xff0c;而且也只能采用这种方式备份。 二、 需要备份的文件 必须备份的文件&#xff1a; 数据文件和控制文件 可以备份的文件&#xff1a; 重做日志文件…

js合并两个对象-仿jquery中的$.extend()

也许有些人不想使用jquery的$.extend()的方法或者项目中没有使用到jquery的&#xff0c;那么下面就给大家展示一种用原生写的合并对象的方法。&#xff08;虽然方法是在别人上“借”来的&#xff0c;但是就当记录一下吧&#xff01;&#xff09; <!DOCTYPE html> <htm…

js把两个数组对象合并成一个一一对应的数组对象

vue做了一个简单的天气demo&#xff0c;其中想把天气指数的数据中每条加一个我找的图片&#xff0c;使用js的api实现&#xff0c;我工作中使用的次数也较少&#xff0c;记录一下。 请求的天气数据&#xff1a;lifeIndexData 自己的图片数据&#xff1a;arr 最终实现&#xff…

【js两个数组对象根据属性相同的值合并】

js两个数组对象根据属性相同的值合并 数组对象合并方法 数组对象 const a[{uid: 1,name: 黄鹤楼},{uid: 2,name: 鹳雀楼},{uid: 3,name: 岳阳楼},{uid: 4,name: 滕王阁}]const b[{uid: 1,address: 湖北武汉黄鹤楼},{uid: 2,address: 山西运城鹳雀楼},{uid: 3,address: 湖南岳阳…

解决 MySQL 数据库创建失败问题

解决 MySQL 数据库创建失败问题 报错信息解决方法查看数据库位置删除数据库 注意 报错信息 Schema directory ‘./zabbix’ already exists. This must be resolved manually (e.g. by moving the schema directory to another location) 解决方法 查看数据库位置 命令&…

MySQL数据库创建表

1、创建表test use demo create table test(id int(11),name varchar(50)); desc&#xff1a;描述&#xff08;是个动词&#xff09; 表里的名字和字段名必须有意义 create table student(sno char(11) primary key,sname varchar(20) not null); 主键 …

Mysql-创建数据库和数据表时指定编码格式

1. 查看当前数据库的版本 select version(); 2. 查看当前库支持的字符集 show charset 3.创建数据库ctest且指定编码方式为utf8 create database Ctest default CHARACTER set utf8 collate utf8_general_ci; 4. 创建表且指定表的编码方式为utf8 create table user( id int…

mysql创建库几种方法_MySQL创建数据库的两种方法

本文为大家分享了两种mysql创建数据库的方法&#xff0c;供大家参考&#xff0c;具体内容如下 第一种方法&#xff1a;使用 mysqladmin 创建数据库使用普通用户&#xff0c;你可能需要特定的权限来创建或者删除 mysql 数据库。 所以我们这边使用root用户登录&#xff0c;root用…

使用Navicat for Mysql创建数据库

创建数据库 序号图片备注1新建连接&#xff0c;创建连接之后双击连接打开mysql2右击连接名&#xff0c;打开新建数据库3新建数据库 创建数据库表1&#xff08;导入sql&#xff09; 可以通过使用PowerDesigner创建MySQL数据库生成sql文件 链接: 使用PowerDesigner创建MySQL数…

mysql创建表shop_Mysql创建数据库

顺利连接到mysql服务器后,就可以使用数据定义语言(DDL)定义和管理数据对象了,包括数据库、表、索引和视图。在建立数据表之前&#xff0c;首先应该先创建个数据库,基本的建立数据库语句命令比较简单。 例如为商店创建一个名为shop的数据库,需要在MySQL控制台输入以下命令 CREAT…

mysql创建数据库并指定字符集

CREATE DATABASE data_test DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;创建数据库"data_test"&#xff0c;并指定字符集为&#xff1a;utf8mb4&#xff0c;排序规则&#xff1a;utf8mb4_general_ci

mysql 创建数据库 utf8 命令_mysql创建数据库 utf8

CentOS6.5下通过Shell创建、备份、还原MySQL数据库 CentOS6.5下通过Shell创建、备份、还原MySQL数据库 创建数据库&#xff1a; mysql -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS yourDatabaseName DEFAULT CHARSET utf8 COLLATE utf8_g... 文章 微wx笑 2014-12-…

MySQL入门:如何创建数据库?

本文详细概述了如何使用不同的方法和工具&#xff08;包括用于MySQL的命令行&#xff0c;工作台和dbForge Studio&#xff09;在MySQL中创建数据库。 MySQL是基于SQL的关系数据库管理系统。它是由Oracle Corporation开发&#xff0c;分发和支持的。MySQL是免费的开源软件&…

MySQL数据库的创建和操作

MySQL数据库的创建和操作 创建数据库实际上是在数据库系统中划分出一部分空间&#xff0c;用来存储和区分不同的数据。创建数据库是进行表操作的基础&#xff0c;也是进行数据管理的基础。 MySQL 的库操作分为以下四种。 1&#xff0e;创建库 在 MySQL 中&#xff0c; 创建…

ESP32-IDF开发实例-网络编程-MQTT客户端

MQTT客户端 ESP32是一系列高度集成的、专为移动设备、可穿戴电子产品设计的物联网模块,其集成了天线开关、RF balun、功率放大器、低接收噪声放大器,滤波器、电源管理模块等,可以独立运行应用,也可以通过SPI/SDIO或I2C/UART接口为其他设备提供WiFi和蓝牙功能。 本次实例将…

ESP32-IDF开发实例-网络编程-HTTPS客户端

HTTPS客户端 ESP32是一系列高度集成的、专为移动设备、可穿戴电子产品设计的物联网模块,其集成了天线开关、RF balun、功率放大器、低接收噪声放大器,滤波器、电源管理模块等,可以独立运行应用,也可以通过SPI/SDIO或I2C/UART接口为其他设备提供WiFi和蓝牙功能。 本次实例将…

手机客户端控制互联网电视

之前有个wifi-红外模块配置的事情由我来管&#xff0c;它用于互联网云电视的一个项目。由于以前的遥控设备里的wifi模块不稳定&#xff0c;经常出现断网情况&#xff0c;最近就新进了带有天线的wifi模块。于是我就来配置一下&#xff0c;顺便总结这方面的步骤&#xff0c;以妨时…

4G图传移动视频取证-可视安全生产监管-常见问题解答FAQ-1,C/S客户端软件常用操作

适用产品&#xff1a; 4G智能安全帽、头盔摄像头、4G执法记录仪、4G/5G布控球、4G图传智能手电、智能眼镜、各类4G DVR/NVR、无人机4G/5G补传等&#xff0c;统一接入 大型可视指挥调度平台VMS/smarteye统一管理。 注意&#xff1a;从2021-10-25日之后&#xff0c;smarteye平…

分布式天线系统将填补无线网络连接缺口

无论是办公大楼、机场&#xff0c;还是购物中心或体育场&#xff0c;无线网络已成为员工、客户以及租户等的基本需求。在企业中&#xff0c;为提高移动性和员工生产效率应运而生的携带个人设备 (BYOD) 政策&#xff0c;为IT部门应对高度可用的数据访问能力带来了巨大的挑战。 2…