记一次Window下RMAN的完全备份和恢复

        因为操作系统重装,oracle也要重新弄下,系统Windows,数据库“Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production”。        

        系统安装之前,oracle是正常使用的。停了各项业务后,关闭数据库并启动到mount状态,然后使用RMAN备份数据文件和控制文件、spfile文件。

备份:

shutdown immediate;

rman target /

startup mount;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   'E:\backup\orcl_%d_%U.bak';

backup database;

备份完成后,生成了两个备份集,

 使用list backup查看备份集合内容,备份集70包含了orcl库的数据文件,备份集71包含了SPFILE和控制文件;

 重装操作系统之后,安装oracle软件只安装oracle软件,不创建实例,添加一个监听;oracle所使用的路径都是之前保持一致。

通过设定环境变量来启动空实例

set ORACLE_SID=orcl

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on 星期一 7月 18 10:10:57 2022

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus

 在tnsnames和listener中添加了orcl的信息,也是一样的报错信息。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 3214568793124)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator\product\12.2.0\dbhome_1\log
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 3214568793124)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

看来windows没法这样连接空实例。

使用oradim工具创建一个空实例服务,连接到空实例;

C:\Users\Administrator>oradim -new -sid orcl
实例已创建。

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on 星期一 7月 18 10:27:12 2022

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

已连接到空闲例程。

将主目录下文件\dbs\init.ora复制到\database\initORCL.ORA,将文件中的<ORACLE_BASE>替换为oracle主目录路径D:\app\Administrator\product\12.2.0\dbhome_1。

使用RMAN启动实例到nomount状态:

C:\Users\Administrator>rman target /

恢复管理器: Release 12.2.0.1.0 - Production on 星期一 7月 18 10:27:32 2022

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount pfile='D:\app\Administrator\product\12.2.0\dbhome_1\database\initORCL.ORA';

已连接到目标数据库 (未启动)
Oracle 实例已启动

系统全局区域总计    5150605312 字节

Fixed Size                     8757520 字节
Variable Size               1124077296 字节
Database Buffers            4009754624 字节
Redo Buffers                   8015872 字节

从备份集中恢复spfile文件,重启实例:

RMAN> restore spfile from 'E:\backup\O1_MF_S_1110018030_KDZ2C8H0_.BKP';

从位于 18-7月 -22 的 restore 开始
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=161 设备类型=DISK

通道 ORA_DISK_1: 正在从 AUTOBACKUP E:\backup\O1_MF_S_1110018030_KDZ2C8H0_.BKP 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
在 18-7月 -22 完成了 restore


RMAN> shutdown immediate

Oracle 实例已关闭

RMAN> startup nomount

已连接到目标数据库 (未启动)
Oracle 实例已启动

系统全局区域总计    5150605312 字节

Fixed Size                     8757520 字节
Variable Size               1124077296 字节
Database Buffers            4009754624 字节
Redo Buffers                   8015872 字节

^C
C:\Users\Administrator>rman target /

恢复管理器: Release 12.2.0.1.0 - Production on 星期一 7月 18 10:55:03 2022

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (未装载)

从备份集中恢复控制文件,启动实例到mount:

RMAN> restore controlfile from 'E:\backup\O1_MF_S_1110018030_KDZ2C8H0_.BKP';

从位于 18-7月 -22 的 restore 开始
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL
在 18-7月 -22 完成了 restore

RMAN> alter database mount;

已处理语句
释放的通道: ORA_DISK_1

RMAN> 

备份集注册到控制文件中(这一步没有验证是否需要,因为备份的控制文件中应该是包含了之前的备份信息的,并且在新的系统中备份路径也没有改变):

RMAN> catalog start with 'E:\backup';

从位于 18-7月 -22 的 implicit crosscheck backup 开始
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=161 设备类型=DISK
已交叉检验的 3 对象
在 18-7月 -22 完成了 implicit crosscheck backup

从位于 18-7月 -22 的 implicit crosscheck copy 开始
使用通道 ORA_DISK_1
已交叉检验的 4 对象
在 18-7月 -22 完成了 implicit crosscheck copy

搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录

搜索与样式 E:\backup 匹配的所有文件

数据库未知文件的列表
=====================================
文件名: E:\BACKUP\O1_MF_S_1110018030_KDZ2C8H0_.BKP

是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
目录编制完毕

已列入目录的文件的列表
=======================
文件名: E:\BACKUP\O1_MF_S_1110018030_KDZ2C8H0_.BKP

RMAN>

此时可以使用 list backup查看备份信息。

恢复数据文件

RMAN> restore database;

从位于 18-7月 -22 的 restore 开始
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\MFW333.ORA
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\TBS1.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\OCP.ORA
通道 ORA_DISK_1: 将数据文件 00008 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\MFW333_1.ORA
通道 ORA_DISK_1: 将数据文件 00009 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\MFW333_2.ORA
通道 ORA_DISK_1: 正在读取备份片段 E:\BACKUP\ORCL_ORCL_2U12J494_1_1.BAK
通道 ORA_DISK_1: 片段句柄 = E:\BACKUP\ORCL_ORCL_2U12J494_1_1.BAK 标记 = TAG20220714T105947
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:15:26
在 18-7月 -22 完成了 restore

RMAN>

因为数据库是在没有打开的状态下进行的一致性备份,所以无需recover步骤;

使用resetlog参数打开数据库

alter database open resetlogs;

数据库已更改。

使用sqlplus查询数据正常。

SQL> select count(*) from mfw333.stockhis;

  COUNT(*)
----------
  12337970

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 5150605312 bytes
Fixed Size                  8757520 bytes
Variable Size            1124077296 bytes
Database Buffers         4009754624 bytes
Redo Buffers                8015872 bytes
数据库装载完毕。
数据库已经打开。
SQL>

over。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值