当前位置: 首页 > news >正文

oracle11g数据库 冷备份与冷恢复


我们在做备份时,究竟需要备份数据库的哪些文件呢?

其实只需要备份数据文件和控制文件就可以了,其他的参数文件,重做日志文件以及口令文件与数据文件相比都非常小,所以在一般情况下都会一起备份。

冷备份步骤:

1.v$contorlfile 找到所有的控制文件

2.dba_data_files 找到所有的数据文件

3.v$logfile找到所有的日志文件

4.v$tempfiles 和v$tablespace找到所有的临时文件以及与表空间的对应关系

5.正常关闭数据库

6.将所有的文件复制到硬盘或者磁带上

7.重新启动数据库

冷恢复:

1.正常关闭数据库

2.将备份的所有文件复制到原来的位置

3.重新启动数据库

实验:

1.首先找到要备份的文件的位置

SQL> select file_name,file_id,tablespace_name,bytes,blocks,status from dba_data_files;FILE_NAME                          FILE_ID TABLESPACE_NAME              BYTES     BLOCKS STATUS
-------------------------------------------------- ---------- ------------------------------ ---------- ---------- ---------
/u01/app/oracle/oradata/cai/users01.dbf             4 USERS                   62914560       7680 AVAILABLE
/u01/app/oracle/oradata/cai/undotbs01.dbf            3 UNDOTBS1                  110100480      13440 AVAILABLE
/u01/app/oracle/oradata/cai/sysaux01.dbf            2 SYSAUX                  587202560      71680 AVAILABLE
/u01/app/oracle/oradata/cai/system01.dbf            1 SYSTEM                  828375040     101120 AVAILABLE
/u01/app/oracle/oradata/cai/example01.dbf            5 EXAMPLE                  104857600      12800 AVAILABLESQL> select status,name from v$controlfile;
SQL> col name for a60;
SQL> /STATUS    NAME
------- ------------------------------------------------------------/u01/app/oracle/oradata/cai/control01.ctl/u01/app/oracle/flash_recovery_area/cai/control02.ctlSQL> select group#,status,member from v$logfile;
SQL> col member for a30
SQL> /GROUP# STATUS  MEMBER
---------- ------- ------------------------------3       /u01/app/oracle/oradata/cai/redo03.log2       /u01/app/oracle/oradata/cai/redo02.log1       /u01/app/oracle/oradata/cai/redo01.logSQL> show parameter pfile;NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
spfile                     string     /u01/app/oracle/product/11.2.0/db_home1/dbs/spfilecai.oraSQL> select name from v$tempfile;NAME
------------------------------------------------------------
/u01/app/oracle/oradata/cai/temp01.dbf

2.创建一张测试表

SQL> create user nice identified by oracle2  default tablespace example3  quota 1m on example;User created.SQL> grant create table,connect ,dba to nice;
\
Grant succeeded.SQL>conn nice/oracle                       
Connected.
SQL> show user
USER is "NICE"SQL> create table test(id number);Table created.SQL> insert into test values(1);
insert into test values(1)*
ERROR at line 1:
ORA-01647: tablespace 'EXAMPLE' is read-only, cannot allocate space in itSQL> alter user nice default tablespace users quota 1m on users;User altered.SQL> drop table test ;Table dropped.SQL> create table test(id number);Table created.SQL> insert into test values(1);
insert into test values(1)*
ERROR at line 1:
ORA-01647: tablespace 'USERS' is read-only, cannot allocate space in itSQL> select tablespace_name,status from dba_tablespaces;TABLESPACE_NAME            STATUS
------------------------------ ---------
SYSTEM                   ONLINE
SYSAUX                   ONLINE
UNDOTBS1               ONLINE
TEMP                   ONLINE
USERS                   READ ONLY
EXAMPLE                READ ONLY6 rows selected.SQL> alter tablespace users read write;Tablespace altered.SQL> insert into test values(1);1 row created.SQL> select * from test;ID
----------1SQL> conn sys/oracle as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

3.复制要备份的文件到备份目录

[oracle@11g ~]$ cd /u01/app/oracle/product/11.2.0/db_home1/dbs/
[oracle@11g dbs]$ ll -ls
total 28
4 -rw-rw---- 1 oracle oinstall 1544 Feb 29 13:29 hc_cai.dat
4 -rw-rw---- 1 oracle oinstall 1544 Jan  8 13:15 hc_DBUA0.dat
4 -rw-r--r-- 1 oracle oinstall  962 Feb 29 12:26 initcai.ora
4 -rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora
4 -rw-r----- 1 oracle oinstall   24 Jan  8 13:18 lkCAI
4 -rw-r----- 1 oracle oinstall 1536 Jan  8 13:21 orapwcai
4 -rw-r----- 1 oracle oinstall 2560 Feb 29 13:24 spfilecai.ora
[oracle@11g dbs]$ scp initcai.ora /home/oracle/backup
[oracle@11g dbs]$ scp spfilecai.ora /home/oracle/backup
[oracle@11g dbs]$ cd /u01/app/oracle/oradata/cai/
[oracle@11g cai]$ ll -ls
total 18222249552 -rw-r----- 1 oracle oinstall   9781248 Feb 29 13:29 control01.ctl
102408 -rw-r----- 1 oracle oinstall 104865792 Jan 14 17:35 example01.dbf51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:29 redo01.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:26 redo02.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:26 redo03.log
573448 -rw-r----- 1 oracle oinstall 587210752 Feb 29 13:29 sysaux01.dbf
808968 -rw-r----- 1 oracle oinstall 828383232 Feb 29 13:29 system01.dbf5260 -rw-r----- 1 oracle oinstall  38805504 Feb 29 12:02 temp01.dbf
107528 -rw-r----- 1 oracle oinstall 110108672 Feb 29 13:29 undotbs01.dbf61448 -rw-r----- 1 oracle oinstall  62922752 Feb 29 13:29 users01.dbf
[oracle@11g cai]$ scp * /home/oracle/backup
[oracle@11g cai]$ cd /home/oracle/backup
[oracle@11g backup]$ ll -ls
total 18242209552 -rw-r----- 1 oracle oinstall   9781248 Feb 29 13:30 control01.ctl
102408 -rw-r----- 1 oracle oinstall 104865792 Feb 29 13:30 example01.dbf4 -rw-r--r-- 1 oracle oinstall       962 Feb 29 13:30 initcai.ora51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:30 redo01.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:30 redo02.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 13:30 redo03.log4 -rw-r----- 1 oracle oinstall      2560 Feb 29 13:30 spfilecai.ora
573448 -rw-r----- 1 oracle oinstall 587210752 Feb 29 13:30 sysaux01.dbf
808968 -rw-r----- 1 oracle oinstall 828383232 Feb 29 13:30 system01.dbf7248 -rw-r----- 1 oracle oinstall  38805504 Feb 29 13:30 temp01.dbf
107528 -rw-r----- 1 oracle oinstall 110108672 Feb 29 13:30 undotbs01.dbf61448 -rw-r----- 1 oracle oinstall  62922752 Feb 29 13:30 users01.dbf

3.模拟数据丢失,truncate table test

SQL> startup
ORACLE instance started.Total System Global Area  885211136 bytes
Fixed Size		    2218432 bytes
Variable Size		  369100352 bytes
Database Buffers	  507510784 bytes
Redo Buffers		    6381568 bytes
Database mounted.
Database opened.
SQL> select * from test;ID
----------1SQL> truncate table test;Table truncated.SQL> select * from test;no rows selected

4.将备份的文件复制回原来的位置

我这里做了一个不一样的实验,首先我只将表所在的数据文件恢复到原来的位置,启动数据库后发现数据表中还是没有数据

[oracle@11g backup]$ ll -ls
total 18242129552 -rw-r----- 1 oracle oinstall   9781248 Feb 29 15:35 control01.ctl
102408 -rw-r----- 1 oracle oinstall 104865792 Feb 29 15:35 example01.dbf51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 15:35 redo01.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 15:35 redo02.log51204 -rw-r----- 1 oracle oinstall  52429312 Feb 29 15:35 redo03.log
573448 -rw-r----- 1 oracle oinstall 587210752 Feb 29 15:35 sysaux01.dbf
808968 -rw-r----- 1 oracle oinstall 828383232 Feb 29 15:35 system01.dbf7248 -rw-r----- 1 oracle oinstall  38805504 Feb 29 15:35 temp01.dbf
107528 -rw-r----- 1 oracle oinstall 110108672 Feb 29 15:35 undotbs01.dbf61448 -rw-r----- 1 oracle oinstall  62922752 Feb 29 15:35 users01.dbf
[oracle@11g backup]$ scp users01.dbf /u01/app/oracle/oradata/cai
SQL> startup;
ORACLE instance started.Total System Global Area  885211136 bytes
Fixed Size		    2218432 bytes
Variable Size		  369100352 bytes
Database Buffers	  507510784 bytes
Redo Buffers		    6381568 bytes
Database mounted.
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/u01/app/oracle/oradata/cai/users01.dbf'SQL> recover datafile 4;
Media recovery complete.
SQL> alter database open;Database altered.SQL> select * from test;no rows selected

然后我又继续对控制文件进行恢复,报错如下

SQL> alter database mount;Database altered.SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/u01/app/oracle/oradata/cai/system01.dbf'
ORA-01207: file is more recent than control file - old control file



所以冷恢复必须对全库进行恢复,不能只是单独的恢复丢失数据的数据文件和控制文件

SQL> startup;
ORACLE instance started.Total System Global Area  885211136 bytes
Fixed Size            2218432 bytes
Variable Size          369100352 bytes
Database Buffers      507510784 bytes
Redo Buffers            6381568 bytes
Database mounted.
Database opened.
SQL> select * from test;ID
----------1


 


 

相关文章:

oracle11g数据库 冷备份与冷恢复

我们在做备份时,究竟需要备份数据库的哪些文件呢? 其实只需要备份数据文件和控制文件就可以了,其他的参数文件,重做日志文件以及口令文件与数据文件相比都非常小,所以在一般情况下都会一起备份。 冷备份步骤&#xf…...

考研数据结构算法机试训练1

中南大学上机压轴题 测试数据: 3 500 0.6 100 0.8 200 0.7 100 输出 390首先要对输入的折扣进行排序,优先使用比率低的z进行支付。 然后用lowcost记录目前多少钱是打过折的。T-lowcost就是剩余没打折的。 每次循环用上一个人的折扣额度。若所有人折扣额…...

SAP PO接口行项目json缺少中括号[]问题

PO接口小问题问题:如果需要同时传输DATA与ITEM,此处选择很重要,如果选择:HTTP Header ITEM将缺少[].需要注意 PO接口小问题 问题:如果需要同时传输DATA与ITEM,此处选择很重要,如果选择&#…...

STM32_DS18B20_1_芯片简介及初始化配置

DS18B20介绍 DS18B20数字温度计提供9位到12位摄氏度的温度测量,并具有非易失性,用户可编程的上下触发点的报警功能。DS18B20通过1线总线进行通信,根据定义,该总线只需要一条数据线,即可与中央微处理器进行通信…...

每天一个数据分析题(一百六十四)

关于OLAP系统,下列选项不正确的是() A. 是基于数据仓库的信息进行分析处理过程 B. 用户数量相对较少,其用户主要是业务决策人员与管理人员 C. 对响应时间要求非常高。 D. 基础数据来源于生产系统的操作数据,也就是…...

单词倒排——c语言解法

以下是题目: 这个题中有三个点, 一个是将非字母的字符转换为空格, 第二是如果有两个连续的空格, 那么就可以将这两个连续的空格变成一个空格。 第三个点就是让单词倒排。 那么我们就可以将这三个点分别封装成三个函数。 还有就是…...

Python + Selenium —— 网页元素定位之class name定位!

class 属性可以为元素应用一个或者多个 CSS 样式类。 利用此属性可以与指定的 CSS 样式类关联起来,以此达到设置元素样式的功能。 可以这样理解,比如一个页面上的所有按钮,都想做成同样的样式,那么是不是要在每个按钮上写同样的 c…...

matlab simulink变压器温度仿真

1、内容简介 略 48-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab simulink变压器温度仿真_哔哩哔哩_bilibili 4、参考论文 略 大型油浸风冷变压器绕组温度场分析_高原 基于顶层油温的变压器绕组热点温度计算改进模型_陈伟根 基于热电类比理论的油浸式电…...

设计模式七:责任链模式

文章目录 1、责任链模式2、spring中的责任链模式Spring InterceptorServlet FilterNetty 1、责任链模式 责任链模式为请求创建了一个接收者对象的链,在这种模式下,通常每个节点都包含对另一个节点者的引用。每个节点针对请求,处理自己感兴趣…...

Git,GitHub与GitLab分别是什么?有什么关系和区别?

Git 定义:Git 是一个分布式版本控制系统,用于跟踪文件的变化,并协助多人协作开发软件项目。作用:Git 可以在本地存储完整的项目历史记录,并允许开发者在不同的分支上进行独立的开发,最后将它们合并到主干分…...

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents 一、 查询集合中的Documents二 选择字段三、 其他查询选项3.1 Hints3.2 游标批大小Cursor Batch Size3.3 Collations3.4 读取首选项Read Preference3.5 Comments 四、查询Distinct值五、GeoSpatial Q…...

git describe

git describe一般用于查看当前提交距离上次最近的tag是什么,并且还可以知道差了多少个commit,在工程实践当中是个非常好用的命令 如果git describe后面什么都不加的话,默认找的是最近的有注释的tag 如何打有注释的tag打注释? g…...

React Switch用法及手写Switch实现

问&#xff1a;如果注册的路由特别多&#xff0c;找到一个匹配项以后还会一直往下找&#xff0c;我们想让react找到一个匹配项以后不再继续了&#xff0c;怎么处理&#xff1f;答&#xff1a;<Switch>独特之处在于它只绘制子元素中第一个匹配的路由元素。 如果没有<Sw…...

PowerShell执行策略:确保脚本安全执行的关键

PowerShell执行策略&#xff1a;确保脚本安全执行的关键 在自动化和脚本任务管理中&#xff0c;PowerShell 是 Windows 系统管理员和自动化工程师的强大工具。但随着这种强大的能力也带来了安全风险&#xff0c;特别是在执行未经验证的脚本时。为了降低这种风险&#xff0c;Po…...

LeetCode 热题 100 | 图论(上)

目录 1 200. 岛屿数量 2 994. 腐烂的橘子 2.1 智障遍历法 2.2 仿层序遍历法 菜鸟做题&#xff0c;语言是 C 1 200. 岛屿数量 解题思路&#xff1a; 遍历二维数组&#xff0c;寻找 “1”&#xff08;若找到则岛屿数量 1&#xff09;寻找与当前 “1” 直接或间接连接在…...

跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture

封装2DRenderer&#xff1a; Renderer.h: #include"ytpch.h" #include"Renderer.h" #include <Platform/OpenGL/OpenGLShader.h> #include"Renderer2D.h" namespace YOTO {Renderer::SceneData* Renderer::m_SceneData new Renderer::S…...

多个值时 if [ -z 报错 binary operator expected

if [ ! -z "\$client_pid" ]; then 报错: line 23: [: 662: binary operator expected 改成 if [[ ! -z "\$client_pid" ]]; then 即可。 unix - binary operator expected error when checking if a file with full pathname exists - Stack Overflo…...

如何使用ChatGPT创建一份优质简历

目录 第一步&#xff1a;明确目标和重点 第二步&#xff1a;与ChatGPT建立对话 第三步&#xff1a;整理生成的内容 第四步&#xff1a;注重行文风格 第五步&#xff1a;强调成就和量化结果 第六步&#xff1a;个性化和定制 第七步&#xff1a;反复修改和完善 总结 在现…...

k8s(6)

目录 一.kubectl 命令行管理K8S 陈述式资源管理方式&#xff08;可理解成使用一条kubectl命令及其参数选项来实现资源对象的管理操作&#xff09; service的4的基本类型&#xff1a; service的端口 应用发布策略&#xff1a; 声明式资源管理方式&#xff08;可理解成使用…...

自动驾驶框架:自动驾驶汽车定位-感知-规划-决策-控制概述,按照我的架构图理解:决策决定的是速度,规划决定的是路径(架构理解推荐)

1.按照我的架构图理解&#xff1a;决策决定的是速度&#xff0c;规划决定的是路径 参考链接&#xff1a;【自动驾驶】运动规划丨速度规划丨自动驾驶速度规划及状态协调方法 2.下面是参考别人的理解&#xff1a; 自动驾驶汽车定位-感知-规划-决策-控制概述 规划-决策-控制知…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划&#xff0c;涵盖存储系统的布局、数据存储策略等&#xff0c;它明确数据如何存储、管理与访问&#xff0c;为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...

当下AI智能硬件方案浅谈

背景&#xff1a; 现在大模型出来以后&#xff0c;打破了常规的机械式的对话&#xff0c;人机对话变得更聪明一点。 对话用到的技术主要是实时音视频&#xff0c;简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术&#xff0c;开发自己的大模型。商用方案多见为字节、百…...