RMAN备份数据库_使用RMAN备份数据库文件

2023-10-26

1.使用RMAN备份整个数据库

可以在数据库挂载或打开时执行整个数据库备份。

使用BACKUP DATABASE命令从RMAN提示符中执行整个数据库的备份。

你可能想从整个数据库备份中排除特定的表空间。可以通过执行CONFIGURE EXCLUDE命令跨RMAN会话持续地跳过你总是想跳过的每个表空间。可以使用BACKUP … NOEXCLUDE命令覆盖配置的设置。

备份数据库:
1) 启动RMAN,连接到目标数据库和恢复目录(如果使用的话)。
2) 确保数据库处于挂载或打开状态。
3) 在RMAN提示符下执行BACKUP DATABASE命令。

最简单的命令格式不需要选项或参数:
BACKUP DATABASE;

备份的文件(数据文件,控制文件,spfile)列表取决于在BACKUP命令中使用的关键字。

以下示例备份数据库,切换在线redo日志和包括归档日志在备份中:
BACKUP DATABASE PLUS ARCHIVELOG;

在备份之后立即归档日志,可以确保有备份期间的一整组归档日志。这样,保证在还原备份之后可以执行介质恢复。


2.使用RMAN备份表空间和数据文件

可以使用BACKUP TABLESPACE命令备份一个或多个表空间,使用BACKUP DATAFILE命令备份一个或多个数据文件。

当指定表空间时,RMAN内部转换表空间名称到一个数据文件列表。数据库可以处于挂载或打开状态。表空间可以是读写或只读状态。

注:可传输的表空间不需要像在之前的版本中一样必须处于读写模式来做备份。

当数据文件1包含在备份中时,RMAN自动备份控制文件和spfile(如果实例使用spfile启动)。如果控制文件自动备份已启用,那么RMAN将当前的控制文件和spfile写到不同的自动备份片。否则,RMAN将这些文件包含在包含数据文件1的备份集中。

备份表空间或数据文件:
1) 启动RMAN,连接到目标数据库和恢复目录(如果使用的话)。
2) 确保数据库处于挂载或打开状态。
3)在RMAN提示符下执行BACKUP TABLESPACE或BACKUP DATAFILE命令。

以下示例备份users和tools表空间到磁带:
BACKUP
  DEVICE TYPE sbt
  TABLESPACE users, tools;

以下示例使用SBT 通道备份数据文件1到4和存储在/tmp/system01.db的数据文件拷贝到磁带:
BACKUP
  DEVICE TYPE sbt
  DATAFILE 1,2,3,4
  DATAFILECOPY ‘/tmp/system01.dbf’;


3.使用RMAN备份控制文件

当数据库挂载或打开时,可以备份控制文件。RMAN使用控制文件的快照来确保一个读一致的版本。

如果CONFIGURE CONTROLFILE AUTOBACKUP命令设置为ON(缺省是OFF),那么RMAN在每次备份和数据库结构更改之后自动备份控制文件和spfile。控制文件自动备份包含之前的备份的元数据,对于灾难恢复是至关重要的。

注:可以还原在一个Data Guard数据库上做的控制文件的备份到环境中的其它任何数据库。主和备控制文件备份是可互相交换的。

如果自动备份特性没有设置,那么必须使用以下一种方式手动备份控制文件:
1) 运行BACKUP CURRENT CONTROLFILE
2) 使用BACKUP命令的INCLUDE CURRENT CONTROLFILE选项来包含控制文件的备份在备份中。
3) 备份数据文件1,因为RMAN自动包含控制文件和spfile在数据文件1的备份中。

注:如果控制文件的块大小与数据文件1的块大小不同,那么控制文件不能写到与数据文件相同的备份集中,如果块大小不同,RMAN将控制文件写到一个单独的备份集中。列V$CONTROLFILE.BLOCK_SIZE表示控制文件的块大小,而DB_BLOCK_SIZE初始化参数表示数据文件1的块大小。


3.1.关于控制文件的手动备份

控制文件的手动备份与控制文件的自动备份不相同。RMAN在备份BACKUP命令中指定的文件之后做控制文件的自动备份。

因此,自动备份(不像手动的控制文件备份)包含了关于刚刚完成的备份的元数据。另外,RMAN可以自动还原自动备份而不使用恢复目录。

可以作为备份集或映像拷贝手动备份当前的控制文件。对于备份集,RMAN首先为读一致性创建一个快照控制文件。可以配置快照控制文件的文件名称和位置。在做映像拷贝时不需要一个快照控制文件。

在Oracle RAC环境中,会应用下面的限制:
1) 快照控制文件必须在共享存储上,也就是说,可以被所有实例访问的存储。
2) 当前控制文件的映像拷贝的目的地必须是共享存储。


3.2.手动备份控制文件

可以在备份其它文件时指定INCLUDE CURRENT CONTROLFILE或指定BACKUP CURRENT CONTROLFILE来手动备份控制文件。

也可以通过指定CONTROLFILECOPY参数来备份磁盘上的控制文件拷贝。

手动备份控制文件:
1) 启动RMAN,连接到目标数据库和恢复目录(如果使用的话)。
2)确保数据库处于挂载或打开状态。
3)在RMAN提示符下执行BACKUP命令和期望的控制文件子语句。

以下示例备份表空间users到磁带和包含当前的控制文件到备份:
BACKUP DEVICE TYPE sbt
 TABLESPACE users
 INCLUDE CURRENT CONTROLFILE;


以下示例作为备份集备份当前控制文件到快速恢复区域:
BACKUP CURRENT CONTROLFILE;
RMAN首先创建快照控制文件。

以下示例作为映像拷贝备份当前控制文件到缺省的磁盘设备:
BACKUP AS COPY
 CURRENT CONTROLFILE
 FORMAT ‘/tmp/control01.ctl’;


以下示例备份在之前的示例中创建的控制文件拷贝到磁带:
BACKUP DEVICE TYPE sbt
 CONTROLFILECOPY ‘/tmp/control01.ctl’;

当备份一个控制文件拷贝时,快照控制文件是不需要的。

如果控制文件自动备份特性已启用,那么RMAN在这些示例中做2个控制文件备份:在BACKUP命令中指定的文件的显式备份和控制文件与spfile的自动备份。


4.使用RMAN备份服务器参数文件spfile

RMAN在某些情况中自动备份当前的spfile。BACKUP SPFILE命令显式备份参数文件。备份的spfile是当前被实例使用的服务器参数文件。

备份spfile:
1)启动RMAN,连接到目标数据库和恢复目录(如果使用的话)。
2)确保数据库处于挂载或打开状态。
数据库必须使用spfile启动。如果实例使用客户端的初始化参数文件pfile启动,那么RMAN在执行BACKUP … SPFILE时报错。
3)执行BACKUP … SPFILE命令。

以下示例备份spfile到磁带:
BACKUP DEVICE TYPE sbt SPFILE;


5.在非归档模式备份数据库

只有数据库在关闭和一致的状态时,才能在非归档(NOARCHIVELOG)模式下备份数据库。

以下脚本将数据库置于一致的整个数据库备份的正确模式,然后备份数据库。脚本假设控制文件的自动备份已经为数据库启用。

可以跳过表空间,比如只读表空间,但如果数据库从备份中还原,任何跳过的从上一次备份以来没有脱机的或只读的表空间会丢失。

在非归档模式备份数据库:
SHUTDOWN IMMEDIATE;

# Start the database in case it suffered instance failure or was
# closed with SHUTDOWN ABORT before starting this script.
STARTUP FORCE DBA;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

# this example uses automatic channels to make the backup
BACKUP
 INCREMENTAL LEVEL 0
 MAXSETSIZE 10G
  DATABASE
  TAG ‘BACKUP_1’;

# Now that the backup is complete, open the database.
ALTER DATABASE OPEN;



来源:《Oracle Database Backup and Recovery User’s Guide,19c》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RMAN备份数据库_使用RMAN备份数据库文件 的相关文章

  • 使用Powershell访问远程Oracle数据库

    我需要能够连接到我的网络上基于 Windows 7 的 Oracle 服务器 32 位 Oracle XE 我需要连接的机器运行 Windows 7 64 位 两台机器上都安装了 Powershell 我已在 64 位计算机上安装了 Ora
  • 如何在 Hibernate 中自动递增复合主键中的 Id?

    我有一个带有复合主键的表 groupId and batchId 实体类看起来像 Entity name EMPLOYEE public class Employee EmbeddedId private EmployeePK employ
  • FROM 子句中的嵌套括号是否有效的 Oracle SQL 语法?

    此查询使用正确的 Oracle 语法吗 select from dual a where a dummy X 它可以在 11g 和 12c 中运行 但它是真正有效的语法吗 或者这只是一个编译器 错误 将来可能会修复 导致代码失败 我怀疑这是
  • fetchsize和batchsize对Spark的影响

    我想通过以下方式控制 RDB 的读写速度Spark直接 但标题已经透露的相关参数似乎不起作用 我可以得出这样的结论吗fetchsize and batchsize我的测试方法不起作用 或者它们确实会影响阅读和写作方面 因为测量结果基于规模是
  • REgex从oracle中的字符串中获取数字

    我有以下格式的字符串 阿克拉姆 88 jamesstree 20140418 阿克兰 8 约翰街 20140418 阿克兰 888 johnstreet 20140418 现在我只想检索 88 8 和 888 值 我为此编写了以下查询 SU
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • LiveSQL 不断向我显示:ORA-00933:SQL 命令未正确结束[重复]

    这个问题在这里已经有答案了 INSERT INTO Countries Country Capital Cities VALUES Philippines Manila 122 USA Washington 19495 Brazil Bra
  • 如何找到多个列中的最小值

    我在我的 DB 3 col 中有一个值 我想在所有这些值中找到一个值 如下所述 表名 MyTable id col1 col2 col3 1 200 300 400 2 100 150 300 3 800 102 20 4 80 80 0
  • 在标准化数据库模式中是否可以有多个外键?

    Address addressID houseNumber postcode roadName city county Reservation reservationID roomNo leadGuestID guest2ID guest3
  • Oracle 语法 - 我们是否必须在新旧语法之间进行选择?

    我在一个由大约 8 名开发人员组成的团队中负责大约 1 000 000 行源代码的代码库 我们的代码基本上是一个使用 Oracle 数据库的应用程序 但代码随着时间的推移而不断发展 我们有大量九十年代中期的源代码 团队中就我们用于查询 Or
  • 我怎样才能知道oracle 9i中哪些值是数字

    我有这个包含 varchar 的数据库 我想知道哪些记录保存数值 我试过REGEXP COUNT和其他 但我在 9i 上运行 我认为这是针对 10g gt 我怎样才能实现这个目标 I tried select to number my co
  • 用于捕获审计跟踪的数据库设计的想法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何维护数据库中的数据日志 我必须维护对每一行所做的每次更改的日志 这意味着我不能允许DELETE and UPDATE待执行 我怎样才能保留这
  • 使用 TLS 证书 JDBC 连接到 Oracle 数据库

    我正在尝试用 Java 编写一个连接类来使用 JDBC 驱动程序连接到 Oracle 数据库 但我想保护用于连接到 Oracle 数据库的参数 例如 jdbcurl 用户名 密码 我必须使用 TLS 证书概念来连接到 Java 中的 Ora
  • HTML5 数据库存储(SQL lite) - 几个问题

    你好 我在网上找不到足够的关于 HTML5 数据库存储使用示例 CRUD 的初学者资源 我正在像这样打开 创建 我的数据库 var db document ready function try if window openDatabase
  • 串行类型的外键 - 确保始终手动填充

    我有两个表 国家和地区 CREATE TABLE Countries id SERIAL name VARCHAR 40 NOT NULL PRIMARY KEY id CREATE TABLE Regions id SERIAL coun
  • 有没有办法阻止 SQL Express 2008 空闲?

    我使用 SQL Express 2008 作为 Web 应用程序的后端 问题是 Web 应用程序是在工作时间使用的 因此有时在午餐或休息时间 如果 20 分钟内没有用户登录 SQL Express 将进入空闲状态模式并释放其缓存 我知道这一
  • 我应该用不可变或可变的数据结构来表示数据库数据吗?

    我目前正在使用 Scala 进行编程 但我想这适用于任何函数式编程语言 或者更确切地说 任何建议不变性并可以与数据库交互的编程语言 当我从数据库中获取数据时 我将其映射到模型数据结构 在函数式编程中 数据结构往往是不可变的 但是数据库中的数
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i

随机推荐

  • Linux 编译运行查找头文件和库的顺序

    linux中在使用gcc进行编译时 可能会出现找不到相应库或头文件的情况 往往让人十分头疼 因此 此文描述了库和头文件的查找顺序和一些注意事项 希望能帮助大家在出错时能够快速定位和解决 头文件 gcc在编译时按照如下顺序寻找所需要的头文件
  • set,env和export的区别

    http blog csdn net longxibendi article details 6125075 http blog chinaunix net uid 128922 id 289956 html set 显示 设置 shell
  • JSP编程手记------jsp页url中传中文参数乱码问题续

    一个偶然的机会 发现了一个解决jsp页url中传中文参数乱码的方法 比我前面说的用隐形的form表单来的更加漂亮和容易 具体方法如下 程序清单 response sendRedirect gh 0001 xm java net URLEnc
  • Qt手动设置Kits套件

    Qt编译器版本手动设置方式 文章目录 Qt编译器版本手动设置方式 前言 一 安装MSVC2019 32bit 二 手动设置kits套件 总结 前言 在给Qt Creator添加自定义控件时 遇到的版本问题让人头疼 我用的Qt5 12 10
  • 那一年读过的技术经典书

    转载请注明 http blog csdn net xinzhangyanxiang article details 10199757 大学刚毕业 总结起来读过的书并不算多 而且主要集中在大四的时期读的 在此把经典统一总结一遍 先总结机器学习
  • Qt信号和信号槽(二)

    目录 信号槽使用拓展 示例1 一个信号可以对应多个槽函数 在上篇文章的代码中进行修改 示例2 用信号连接信号 信号槽的连接方式 示例 Lambda表达式 语法格式 定义和调用 信号槽使用拓展 一个信号可以连接多个槽函数 发送一个信号有多个处
  • SpringBoot使用quartz, 注入feignClient, client为null

    使用 autowired 活着构造方法注入 打断点查看注入的feigncliet为null 搜索网上的一些博客 大致原因是因为quartz启动是通过反射将一些类注入进来 启动的时候引用这个类还没初始化好 下面是解决方案 使用spring 提
  • OpenRestry-demo

    openRestry 基于Nginx和lua的高性能web平台内置了大量lua库和第三方的模块 为了使用lua开发一些定制功能 安装环境 安装环境 yum y install pcre devel openssl devel gcc cur
  • 基本的传染病模型:SI、SIS、SIR及其Python代码实现

    本文主要参考博客 http chengjunwang com en 2013 08 learn basic epidemic models with python 该博客有一些笔误 并且有些地方表述不准确 推荐大家阅读Albert Lasz
  • 【腾讯云 Cloud Studio 实战训练营】通过云IDE构建Web3项目

    iOS开发上架主页 在强者的眼中 没有最好 只有更好 移动开发领域优质创作者 阿里云专家博主 文章目录 背景 一 前言 二 Cloud Studio 主要功能和应用场景 三 Cloud Studio 实验前期准备 3 1 打开官网 3 2
  • 在MATLAB中,用Simulink搭建一个二阶传递函数模型

    文章目录 1 模型准备 二阶传递函数模型 1 1 二阶传递函数模型 1 1 1 时域模型 1 1 2 频域模型 1 2 二阶传递函数公式和参数 2 开始建模 在simulink中搭建二阶传递函数模型 2 1 从simulink库中添加传递函
  • python选择文件夹,并自动发送这个文件夹下的所有文件(以附件的形式)至指定邮箱(通过163邮箱)

    工作中需要将自动生成的表格发送给办公邮箱继续处理 结合遍历文件夹和自动发邮件 做出了可以选择文件夹 并自动发送这个文件夹下的所有文件 以附件的形式 至指定邮箱 import smtplib from email mime multipart
  • jdk8新特性-方法引用

    1 作用 什么是方法引用 方法引用是jdk8推出的一个新特性 在一定的条件下可以替换lambda表达式 可以理解为方法引用实际上还是一个lambda表达式 lambda表达式用法可参见 https blog csdn net xiao yu
  • Centos7 使用yum命令安装软件失败,报错"Couldn't open file /media/cdrom/repodata/repomd.xml"

    今天使用CentOS7安装docker的时候 安装失败 报错 yum install docker 已加载插件 fastestmirror langpacks file media cdrom repodata repomd xml Err
  • java记录操作日志(对象修改细节)

    背景 由于业务涉及收入敏感信息 需记录数据变更前的内容和变更后的内容 但是不能为完成任务而硬编码 要适用于不同bean 针对这种情况 本文使用泛型 反射和基于AOP的自定义注解技术来完成 对对象属性的描述通过自定义注解来完成 读取里面的属性
  • 使用Cytoscape画PPI网络图

    打开Cytoscape软件 根据菜单导入string interactions tsv文件 File gt Import gt Network from File 会弹出下图对话框 在对话框中设置如下 选中string interactio
  • Spring Cloud 2020.0.0 正式发布,对开发者来说意味着什么?

    作者 YourBatman 在线教育领域资深架构师 Spring Framework 开源贡献者 冷冷 云集架构师 开源项目 pig 负责人 Spring Cloud Alibaba Committer 来源 阿里巴巴云原生公众号 北京时间
  • 生成模型的2022年——人工智能AIGC顶级论文回顾

    2022年是生成模型奇幻发展的一年 Stable Diffusion 创造了超现实主义的艺术 ChatGPT 回答了生命意义的问题 Make a Video 从文本生成了栩栩如生的马儿 DreamFusion 生成了不可思议的三维模型 多个
  • java不是纯面向对象的语言,太原java培训班:Java到底是不是一种纯面向对象语言?(二)...

    参考译文 Java官方描述 参考翻译 以上都说明 在JVM内部 其实原始类型就是对象 当你打开 Javadoc 对 Class 类的定义中 通过 CTRL F 查找关键字 primitive 将会发现证据在表面 在JVM里 它把基本类型当作
  • RMAN备份数据库_使用RMAN备份数据库文件

    1 使用RMAN备份整个数据库 可以在数据库挂载或打开时执行整个数据库备份 使用BACKUP DATABASE命令从RMAN提示符中执行整个数据库的备份 你可能想从整个数据库备份中排除特定的表空间 可以通过执行CONFIGURE EXCLU