Oracle数据备份与恢复
为了保证数据库的高可用性,Oracle数据库提供了备份和恢复机制,以便在数据库发生故障时完成对数据库的恢复操作,避免损失重要的数据资源
丢失数据分为:物理丢失:操作系统的数据库主键(数据文件、控机文件、重做日志文件以及归档日志文件)
逻辑丢失:表、索引和表记录等数据库主键的丢失
针对上述情况,Oracle系统能实现物理数据备份与逻辑数据备份。虽然这两种备份模式可以相互替代,但是在备份计划内有必要包含两种模式,以避免数据丢失。
物理数据备份主要针对如下文件备份:
数据文件
控制文件
归档重做日志
物理备份通常按照预定的时间间隔运行以防止数据库的物理丢失。当然,如果想保证能够把系统恢复到最后一次提交时的状态,必须以物理备份为基础,同时还必须有自上次物理备份以来累积的归档日志与重做日志
备份一个Oracle数据库有3种标准方式:导出、脱机备份和联机备份
导出方式:数据库的理解备份 常用的工具有EXP和EXPDP
其他两种方式都是物理文件备份,常用的工具有RMAN
物理备份就是复制数据库的文件,而不管其逻辑内容如何。由于使用操作系统的备份命令,所以这些备份也称为文件系统备份。
Oracle支持两种不同类型的物理文件备份:脱机备份和联机备份
脱机备份:当数据库正常关闭时,对数据库的备份。关闭数据库后,可以对如下文件进行脱机备份:
所有数据文件
所有控制文件
所有联机重做日志文件
参数文件(可选择)
当数据库关闭时,对所有这些文件进行备份可以得到一个数据库关闭时的完整镜像。以后可以从备份中获取整个文件集,并使用该文件恢复数据库。除非执行一个联机备份,否则当数据库打开时,不允许对数据库执行文件系统备份。当数据库处于archivelog模式时,可以对数据库执行联机备份。联机备份时需要先将表空间设置为备份状态,然后再备份其他数据文件,最后再将表空间恢复为正常状态
联机备份:数据库打开时,可以进行的备份,数据库可以从一个联机备份中完全恢复,并且可以通过归档的重做日志恢复到任意时刻。可以联机备份如下文件:
所有数据文件
归档的重做日志文件
控制文件
优点:1.提供了完全的时间点恢复
2.在文件系统备份时允许数据库保持打开状态。
RMAN工具概述
RMAN时随着Oracle服务器软件一同安装的Oracle工具软件,它专门用于对数据库进行备份、修复和恢复操作。如果使用RMAN作为数据库备份与恢复工具,那么所有的备份和恢复操作都可以再RMAN环境下使用RMAN命令完成,这样可以减少DBA在对数据库进行备份与恢复时产生的错误,提高备份与恢复效率
RMAN组件
RMAN命令执行器
RMAN命令执行器提供了对 RMAN实用程序的访问,它允许DBA输入执行备份和恢复操作所需的命令,DBA可以使用命令行或图形用户界面GUI与RMAN交互。当开始一个RMAN会话时,系统将为RMAN创建一个用户进程,并在Oracle服务器上启动两个默认进程,分别用于提供与目标数据库的连接和监视远程调用。
目标数据库
RMAN恢复目录
RMAN在数据库上建立的一种存储对象,它由RMAN自动维护。当使用RMAN执行备份和恢复操作时,RMAN将从目标数据库的控制文件中自动获取信息,包括数据库结构、归档日志、数据文件备份信息等,这些信息将被存储到恢复目录中
介质管理子系统
RMAN通道
RMAN具有一整套配套参数,这些默认配置将自动应用于所有的RMAN对象,通过show all命令可以查看当前所有的默认设置。
对RMAN的配置主要针对其通道进行。RMAN在执行数据库备份与恢复操作时,都要使用服务器进程,启动服务器进程是通过分配通道来实现的。当服务器进程执行备份和恢复操作时,只有一个RMAN会话与分配的服务器进程进行通信
1.手动分配通道
如:手动分配一个名称为ch_1的通道,要求通过这个通道创建的文件都具有统一的名称格式:d:\oraclebf\%u_%c.bak。另外要求利用这个通道对表空间system、user、tbsp_1和ts_1进行备份
run{
allocate channel ch_1 device type disk
format="d:\oraclebf\%u_%c.bak";
backup tablespace system,users,tbsp_1,ts_1 channel ch_1;
}
2.自动分配通道
在run命令块外部使用backup,restore,delete命令
在run命令块内部执行backup等命令之前,未使用allocate channel命令手动分配通道
configure device type sbt/disk parallelism n:用于定义rman使用的通道数量
configure default device type to disk/sbt:用于指定自动通道的默认设备
configure channel device type:用于设置自动通道的参数
RMAN命令
1.连接到目标数据库
rman nocatalog
rman targe sys/nocatalog
rman target/
rman target sys/password @网络连接串
如果目标数据库与RMAN不在同一台服务器上,必须使用"@网络连接串"的方法
如果为RMAN创建了恢复目录,则可以按如下方法之一连接到目标数据库。如果目标数据库与RMAN不在同一服务器,则需要添加网络连接
rman target /catalog rman/ramn@man
rman target sys/change_on_install catalog rman/rman
connect catalog sys/password@网络连接串号
如:首先创建恢复目录,然后使用rman工具连接到数据库,最后注册数据库
connect system/xcn258 as sysdba
create tablespace rman_tbsp datafile 'd:\rmanplay\rman_tbsp.dbf'
size 2g
create user rman_user identified by mrsoft
default tablespace rman_tbsp
temporary tablespace temp;
grant connect,recovery_catalog_owner,resource to rman_user;
rman target system/xcn258 catalog rman_user/mrsoft;
create catalog tablespace rman_tbsp;
register database;
使用RMAN工具备份
RMAN可以进行完全备份(full backup)和增量备份(incremental backup)
注意:RMAN可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份
增量备份的优势:
1.在不降低备份频率的基础上能够缩小备份的大小,从而节省磁盘或磁带的存储空间
2.当数据库运行在非归档模式时,定时的增量备份可以提供类似于归档重做日志文件的功能
注意:如果数据库处于noarchivelog模式时,则只能执行一致的增量备份,因此数据库必须关闭;而在archivelog模式中,数据库可以时打开的,也可以是关闭的
RMAN中建立的增量备份可以具有不同的级别,每个级别都是用一个不小于0的整数来标识
级别0:是增量备份的基础,因为进行级别为0的备份时,RMAN会将数据文件中所有已使用的数据块都复制到备份集中,类似于建立完全备份
级别大于0的增量备份将只包含与前一次备份相比发生了变化的数据块
增量备份有两种方式:
差异备份
默认的备份类型,它会备份上一次进行的同级或者低级备份以来的所有变化的数据块。
累积备份
则备份上次低级备份以来所有的数据块
使用RMAN备份数据库文件和归档日志
当数据库打开时,可以使用rman backup命令备份以下对象
归档重做日志文件
数据文件
数据库
表空间
控制文件
备份集
1.备份数据库
--实现非一致性备份整个数据库
rman>backup database format 'd:\oraclebf\oradb_%Y_%M_%D_%U.bak'
>maxsetsize 2g
之后:对当前的重做日志进行归档
rman>sql 'alter system archive log current'
可以查看本数据库建立的备份集与备份片段
list backup of database;
--实现一致性备份整个数据库
rman>shutdown immediate
rman>startup mount
rman>backup database format='d:\oraclebf\oradb_%d_%s.bak';
rman>alter database open;
2.备份表空间
run{
allocate channel ch_1 type disk;
backup tablespace tbsp_1,ts_1
format 'd:\oraclebf\%d_%p_%t_%c.dbf';
}
list backup of tablespace tbsp_1,ts_1;
3.备份数据文件及数据文件的复制
backup datafile 1,2,3 filesperset 3;
list backup of datafile 1,2,3
4.备份控制文件
自动备份控制文件:configure controlfile autobackup :on
手动
如:
backup current controlfile;
backup tablespace tbsp_1 include current controlfile;
list backup of controlfile
5.备份重做日志
归档重做日志是成功进行介质恢复的关键,需要周期性地进行备份。
如:backup archivelog all delete all input;
注意:在对数据库、控制文件或其他数据库对象进行备份时,如果在BACKUP命中中指定了plus archivelog参数,也可以同时对归档重做日志文件进行备份
list backup fo archivelog all;
增量备份
0级差异增量备份
对system,sysaux和users表空间进行了一次0级差异增量备份
run{
allocate channel ch_1 type disk;
backup incremental level=0
format 'd:\orabf\ora11g_%m_%d_%c.bak'
tablespace system,sysaux,users;
}
1级差异增量备份
backup incremental level=1
format 'd:\orabf\ora11g_%m_%d_%c.bak'
tablespace system;
2级累积增量备份
backup incremental level=2 cumulative tablespace example
format 'd:\orabf\ora11g_%m_%d_%c.bak'
使用RMAN工具完全恢复
完全数据库恢复:恢复到出现故障的时刻,即当前的状态
不完全数据库恢复:恢复到出现故障的前一时刻,即过去某一时刻的数据库同步的状态
dbms.logmnr_d.build
暂时使用有问题
Oracle数据备份与恢复的更多相关文章
- 转://Oracle 数据备份与恢复微实践
1.模拟控制文件丢失后的数据库恢复(完全恢复) 今天的主题是备份与恢复,目的就是保护数据的安全性,众所周知Oracle之所以在市场上占据了50%的份额,与它提供了强大的数据保护措施是分不开的,下面我们 ...
- Oracle 数据备份与恢复
前言 一:备份与恢复概述 二:RMAN 工具概述 1: RMAN 组件 1: RMAN命令执行器 [oracle@localhost ~]$ rman target system/nocatalog ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:Oracle数据备份与恢复
run{ allocate channel ch_1 device type disk format = 'd:\oraclebf\%u_%c.bak'; backup tablespace syst ...
- Oracle数据常用的备份与恢复?
Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归 ...
- Oracle数据库备份与恢复的三种方法
转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出 ...
- ORACLE数据库备份与恢复详解
ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻 ...
- oracle 数据库备份与恢复
oracle 数据库备份与恢复 包含四个部分: 1.数据泵备份与恢复 2.rman备份与恢复 3.CSV增量备份恢复 4.截库操作 1.数据泵备份与恢复 expdp/ / impdp 时的 CONTE ...
- Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具
一.密码恢复及设置 目标: 本案例要求熟悉MySQL管理密码的控制,完成以下任务操作: 练习重置MySQL管理密码的操作 通过正常途径设置MySQL数据库的管理密码 步骤: 步骤一:重置MySQL管理 ...
- oracle(数据备份)
1 --oracle数据备份(三种方法) 2 --1.逻辑备份与恢复:用Oracle提供的工具,导入/导出(exp,imp),数据 3 --泵导入/导出(impdp,expdp),装入器(SQL*Lo ...
随机推荐
- @Transactional实现原理
Transactional是spring中定义的事务注解,在方法或类上加该注解开启事务.主要是通过反射获取bean的注解信息,利用AOP对编程式事务进行封装实现.AOP对事务的封装可以看我的这篇文章的 ...
- git flow 基础了解
git flow 软件开发中的一个分支管理流程.利用它可以让软件开发有条不紊的进行,先对它进行一个大概的了解吧,后面工作了实际用到了在深入研究一下. 先看下它的工作流程: 这张图看着一脸茫然,先放在这 ...
- jdk8中几个核心的函数式接口笔记
1. Function接口 /** * function 接口测试 * function 函数只能接受一个参数,要接受两个参数,得使用BiFunction接口 */ public class Func ...
- python 快速排序实现
# -*- coding: utf-8 -*- def quicksort(array): # 基线条件:为空或只包含一个元素的数组是"有序"的 if len(array) < ...
- 牛客假日团队赛2 C 修围栏 ( 哈夫曼树,贪心)
链接:https://ac.nowcoder.com/acm/contest/924/C 来源:牛客网 修围栏 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...
- bzoj4819 [Sdoi2017]新生舞会 分数规划+最大费用最大流
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4819 题解 首先上面说, \[ C = \frac{\sum\limits_{i=1}^n a ...
- django搭建一个小型的服务器运维网站-查看和修改服务器配置与数据库的路由
目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...
- IO流二
1 数据流(了解) 1.1 概述 为了方便的操作java语言的基本数据类型和String类型的数据,可以使用数据流. 数据流的分类: DataInputStream DataOutputStream ...
- windows 10安装python3和python2
安装包下载: 安装包下载请点我 下载完安装包就可以开始安装了,下面是流程图! Python3.6安装流程: 选择自定义安装: 直接next 为电脑上的所有用户安装 然后install就ok了! 安装完 ...
- Python---面向对象---案例
a = 5print(5/10)# 地板除(功能类似于数学模块当中floor()向下取整操作)print(5//10)print(a%10)b = 25print(b/10)print(b//10)p ...