当前位置: 首页 > 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; 自动驾驶汽车定位-感知-规划-决策-控制概述 规划-决策-控制知…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...