Oracle冷备份及其恢复

article/2025/1/10 20:24:37

一、 冷备份的概念

    冷备份是指在数据库关闭状态下所做的物理拷贝,也称脱机备份。

    适合于非归档模式下的备份,而且也只能采用这种方式备份。

 

二、 需要备份的文件

    必须备份的文件:

      数据文件和控制文件

     可以备份的文件:

       重做日志文件、临时文件、二进制参数文件(spfile)、口令文件

        

三、 冷备份的步骤

    1. 找到所需要的备份文件

    2. 正常关闭数据库

    3. 备份文件到指定的备份路径下

    4. 重新启动数据库

 

四、 冷脚本的写法

4.1 查看文件位置及状态

  --查看实例和数据库的相关信息     

SQL> select instance_name,version,status,archiver,database_status from v$instance;INSTANCE_NAME     VERSION       STATUS    ARCHIVE DATABASE_STATUS
---------------- ----------------- ------------ ------- -----------------
dbsrv1         11.2.0.1.0       OPEN     STOPPED ACTIVE

 

SQL> select dbid,name,log_mode from v$database;DBID NAME      LOG_MODE
---------- --------- ------------294555525 DBSRV1    NOARCHIVELOG

 

  --查看数据文件及状态信息

复制代码

SQL> col file_name  for a50
SQL> col tablespace_name for a15
SQL> select file_name,tablespace_name,status,online_status from dba_data_files;FILE_NAME                                   TABLESPACE_NAME STATUS    ONLINE_
-------------------------------------------------- --------------- --------- -------
/opt/oracle/app/oradata/dbsrv1/users01.dbf      USERS         AVAILABLE   ONLINE
/opt/oracle/app/oradata/dbsrv1/undotbs01.dbf     UNDOTBS1       AVAILABLE   ONLINE
/opt/oracle/app/oradata/dbsrv1/sysaux01.dbf         SYSAUX        AVAILABLE   ONLINE
/opt/oracle/app/oradata/dbsrv1/system01.dbf         SYSTEM        AVAILABLE   SYSTEM
/opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf      COSTCTL_TBS   AVAILABLE    ONLINE
/opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF          DEV_DATA      AVAILABLE   ONLINE
/opt/oracle/app/oradata/pdms/PDMS_DATA.dbf           PDMS_DATA      AVAILABLE  ONLINE

复制代码

  查看数据文件

复制代码

SQL> col name for a50
SQL> select file#, name, status from v$datafile;FILE# NAME                                       STATUS
---------- -------------------------------------------------- -------1 /opt/oracle/app/oradata/dbsrv1/system01.dbf          SYSTEM2 /opt/oracle/app/oradata/dbsrv1/sysaux01.dbf          ONLINE3 /opt/oracle/app/oradata/dbsrv1/undotbs01.dbf       ONLINE4 /opt/oracle/app/oradata/dbsrv1/users01.dbf          ONLINE5 /opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf    ONLINE6 /opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF          ONLINE7 /opt/oracle/app/oradata/pdms/PDMS_DATA.dbf          ONLINE

复制代码

 

  --查看临时文件

复制代码

SQL> col name for a60
SQL> select name from v$tempfile;NAME
------------------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/temp01.dbf
/opt/oracle/app/oradata/costctl/COSTCTL_TBS_temp.dbf
/opt/oracle/app/oradata/pdms/PDMS_DATA_TEMP.dbf

复制代码

 

  --查看日志文件

复制代码

SQL> select member from v$logfile;MEMBER
--------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/redo03.log
/opt/oracle/app/oradata/dbsrv1/redo02.log
/opt/oracle/app/oradata/dbsrv1/redo01.log

复制代码

  --查看控制文件

SQL> select name from v$controlfile;NAME
------------------------------------------------------------
/opt/oracle/app/oradata/dbsrv1/control01.ctl
/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl

  --查看参数文件

SQL> show parameter pfileNAME                     TYPE        VALUE
------------------------------------ ---------- ------------------------------
spfile                     string    /opt/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/spfiledbsrv1.ora

 

4.2 进行备份

方案一、

 --创建备份目录

SQL> ho mkdir -p /u03/backup/coolbak

 --使用连接符生成复制文件命令

SQL> select 'ho cp' ||name|| '/u03/backup/coolbak' from v$controlfile;'HOCP'||NAME||'/U03/BACKUP/COOLBAK'
--------------------------------------------------------------------------------
ho cp/opt/oracle/app/oradata/dbsrv1/control01.ctl/u03/backup/coolbak
ho cp/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl/u03/backup/coolbak

 

 SQL> save /tmp/tmpbak.sql;   --将上面的输入保存为tmpbak.sqlCreated file /tmp/tmpbak.sql

 

编辑coolbak.sql

注意修改密码文件的位置和pfile的名字

复制代码

    set feedback offset heading offset verify offset trimspool offset pagesize 0set linesize 200define dir = '/u03/backup/coolbak'define script = '/u03/backup/coolbak.txt'define passwd = '/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl'spool &scriptselect 'ho cp -pv ' || name || ' &dir' from v$controlfileunion allselect 'ho cp -pv ' || name || ' &dir' from v$datafileunion allselect 'ho cp -pv ' || member || ' &dir'  from v$logfileunion allselect 'ho cp -pv ' || name || ' &dir' from v$tempfile/create pfile = '&dir/initorcl.ora' from spfile;ho cp -pv   &passwd  &dirspool offshutdown immediateho mkdir -pv /u03/backup/coolbakho rm -rf /u03/backup/coolbak/*start &scriptstartup

复制代码

 

 --执行coolbak.sql

    SQL> @/tmp/coolbak.sql;

 --执行过程及数据库启动略

       

    --启动后查看备份的文件

需要注意的是这种方式不利于恢复,得去寻找恢复的目录最好在cool后建立与数据库相同的目录。

 

 

 冷恢复的步骤

脱机恢复到原来位置的步骤:

  1. 如果数据库没有关闭,需关闭数据库

  2. 将所有的备份数据文件和备份控制文件复制到数据库原来的位置

  3. 也可以将其它所有的备份文件复制到数据库原来的位置(该操作不是必须的)

  4. 重启数据库

 恢复成功后,数据库即恢复到上一次的备份,恢复所需要的时间就是复制文件所需要的时间

 

 

脱机恢复到非原来位置的步骤:

  有时候储存数据文件的磁盘坏了,可能需要改变数据文件的恢复位置

  1. 将备份文件恢复到正常的磁盘上

  2. 将数据库加载为mount状态(startup mount)

  3. alter database rename file 'u01/xxx.DBF'  to 'u02/xxx.DBF'    (u01磁盘损坏)

  4. alter database open

 

 

----------------------------------

https://www.cnblogs.com/zydev/p/6170352.html


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

相关文章

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…

postman获取浏览器/手机客户端的Request 请求信息

在用POSTMAN测试接口时&#xff0c;我们需要填写一些请求信息&#xff0c;而有些信息&#xff0c;如登陆验证信息如header信息我们需要登陆获取。 我们可以在POSTMAN上调用登陆接口&#xff0c;会自动将cookie信息带过来。 这里有一个更简便的方法。可以自动将客户端&#xff…

将您的Plex客户端与所有本地和mac个人媒体无缝连接

Plex Media Server破解版将您的Plex客户端与所有本地和mac个人媒体无缝连接。集中式库管理&#xff0c;在线内容流和强大的转码功能相结合&#xff0c;提供了无与伦比的灵活和易用。 此软件测试环境为11.2.3系统&#xff01; Plex Media Server破解版安装教程 下载软件完成后…