使用RMAN恢复表空间

1.前期准备

  • 1.1 添加一个新的表空间进行试验

SYS@hfdr>create tablespace zhangyun datafile '/u01/app/oracle/oradata/recovery.dbf' size 30m autoextend on maxsize 500m; 

表空间已创建。
  • 1.2 验证创建

SYS@hfdr>select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TBS_OGG
ZHANGYUN
已选择7行。
  • 1.3 使用rman进行备份

RMAN> backup database plus archivelog;
启动 backup 于 12-4月 -22
当前日志已存档
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=146 设备类型=DISK
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=81 RECID=1 STAMP=1097249456
输入归档日志线程=1 序列=82 RECID=2 STAMP=1097276433
输入归档日志线程=1 序列=83 RECID=3 STAMP=1098607032
输入归档日志线程=1 序列=84 RECID=4 STAMP=1098627631
输入归档日志线程=1 序列=85 RECID=5 STAMP=1098868687
输入归档日志线程=1 序列=86 RECID=6 STAMP=1098914414
输入归档日志线程=1 序列=87 RECID=7 STAMP=1098945049
输入归档日志线程=1 序列=88 RECID=8 STAMP=1098997933
输入归档日志线程=1 序列=89 RECID=9 STAMP=1099607489
输入归档日志线程=1 序列=90 RECID=10 STAMP=1099647951
输入归档日志线程=1 序列=91 RECID=11 STAMP=1099647951
.....完成 backup 于 12-4月 -22

2.删除表空间

SYS@hfdr>drop tablespace zhangyun including contents and datafiles;

表空间已删除。
//including contents and datafiles 删除表空间的同时删除数据文件。

进行验证

SYS@hfdr>select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TBS_OGG

SYS@hfdr>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/opt/oradata/hfdr/system01.dbf
/opt/oradata/hfdr/sysaux01.dbf
/opt/oradata/hfdr/undotbs01.dbf
/opt/oradata/hfdr/users01.dbf
/opt/oradata/hfdr/tbs_ogg01.dbf

3.恢复表空间

  • 3.1查看日志,找到删除的时间点

Tue Apr 12 23:28:15 2022
drop tablespace zhangyun including contents and datafiles
Deleted file /u01/app/oracle/oradata/zhangyun.dbf
Completed: drop tablespace zhangyun including contents and datafiles
  • 3.2 使用rman进行恢复

[oracle@zhangyun] /opt/app/oracle/diag/rdbms/hfdr/hfdr/trace> rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期二 4月 12 23:48:39 2022
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: HFDR (DBID=1652509351)

RMAN> recover tablespace zhangyun until time "to_date('2022-04-12 23:45:00','yyyy-mm-dd hh24:mi:ss')" auxiliary destination '/home/oracle';
启动 recover 于 12-4月 -22
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=16 设备类型=DISK
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
.......
正在执行内存脚本
sql 语句: alter tablespace  ZHANGYUN read write
sql 语句: alter tablespace  ZHANGYUN offline
sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
删除自动实例
自动实例已删除
已删除辅助实例文件 /home/oracle/HFDR/datafile/o1_mf_temp_k5c7wl5m_.tmp
已删除辅助实例文件 /home/oracle/HFDR/onlinelog/o1_mf_3_k5c7wkjq_.log
已删除辅助实例文件 /home/oracle/HFDR/onlinelog/o1_mf_2_k5c7wjjs_.log
已删除辅助实例文件 /home/oracle/HFDR/onlinelog/o1_mf_1_k5c7wj7m_.log
已删除辅助实例文件 /home/oracle/HFDR/datafile/o1_mf_sysaux_k5c7v2l0_.dbf
已删除辅助实例文件 /home/oracle/HFDR/datafile/o1_mf_undotbs1_k5c7v2ky_.dbf
已删除辅助实例文件 /home/oracle/HFDR/datafile/o1_mf_system_k5c7v2kz_.dbf
已删除辅助实例文件 /home/oracle/HFDR/controlfile/o1_mf_k5c7tx0y_.ctl
完成 recover 于 12-4月 -22
  • 3.3 验证恢复

[oracle@zhangyun] /home/oracle> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期二 4月 12 23:52:07 2022
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@hfdr>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/opt/oradata/hfdr/system01.dbf
/opt/oradata/hfdr/sysaux01.dbf
/opt/oradata/hfdr/undotbs01.dbf
/opt/oradata/hfdr/users01.dbf
/opt/oradata/hfdr/tbs_ogg01.dbf
/u01/app/oracle/oradata/zhangyun.dbf
已选择6行。
//可以看到数据文件已经恢复

4.也可以查询scn来进行恢复操作

  • 4.1 登录数据库查询

SYS@hfdr>select timestamp_to_scn(to_date('2022-04-12 23:45:00','yyyy-mm-dd hh24:mi:ss')) from dual;

TIMESTAMP_TO_SCN(TO_DATE('2022-04-1223:45:00','YYYY-MM-DDHH24:MI:SS'))
----------------------------------------------------------------------
							       1409260
  • 4.2 登录RMAN恢复

RMAN> recover tablespace zhangyun until scn 1409260 aulixiary destination '/home/oracle';
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Oracle 数据库中,只读表空间无法进行更新操作,因此需要采用特殊的方式进行恢复。以下是在使用 RMAN 进行只读表空间恢复的步骤: 1. 在正常情况下,只读表空间无法进行备份。因此,我们需要在只读表空间变为可写状态之后进行备份。可以使用以下命令将只读表空间变为可写状态: ``` ALTER TABLESPACE tablespace_name READ WRITE; ``` 2. 确认只读表空间已经变为可写状态,并且进行备份。 3. 当只读表空间出现问题需要恢复时,需要先将只读表空间变为可写状态。可以使用以下命令将只读表空间变为可写状态: ``` ALTER TABLESPACE tablespace_name READ WRITE; ``` 4. 使用 RMAN 进行恢复操作。可以使用以下命令进行只读表空间恢复: ``` RMAN> RUN { SET NEWNAME FOR DATAFILE 'datafile_path' TO 'new_datafile_path'; RESTORE TABLESPACE tablespace_name; RECOVER TABLESPACE tablespace_name; } ``` 其中,`datafile_path` 是只读表空间的数据文件路径,`new_datafile_path` 是恢复后的数据文件路径。 5. 恢复完成后,将只读表空间变为只读状态。可以使用以下命令将只读表空间变为只读状态: ``` ALTER TABLESPACE tablespace_name READ ONLY; ``` 以上就是使用 RMAN 进行只读表空间恢复的步骤。需要注意的是,在进行只读表空间恢复前,必须将只读表空间变为可写状态,并进行备份。 ### 回答2: OracleRMAN(Recovery Manager)是一个备份和恢复工具,用于管理数据库的备份和恢复操作。在恢复只读表空间时,我们可以按照以下步骤进行操作: 1. 首先,使用RMAN备份只读表空间。我们可以使用备份命令将只读表空间备份到一个可用的位置,以便在恢复过程中将其还原回数据库。例如,可以使用类似如下的备份命令: RMAN> BACKUP TABLESPACE tablespacename; 2. 在确认备份已经完成后,我们可以开始恢复只读表空间。首先,将只读表空间离线,并清空表空间。可以使用以下SQL语句来执行此操作: SQL> ALTER TABLESPACE tablespacename OFFLINE IMMEDIATE; SQL> DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES; 3. 接下来,使用RMAN将备份的只读表空间还原到数据库。我们可以使用如下命令将备份的只读表空间还原到数据库中: RMAN> RESTORE TABLESPACE tablespacename; 4. 在还原完成后,将只读表空间重新设置为只读模式。使用以下SQL语句来执行此操作: SQL> ALTER TABLESPACE tablespacename READ ONLY; 通过以上步骤,我们可以使用RMAN备份和恢复工具来成功恢复只读表空间。需要注意的是,恢复只读表空间时需要进行足够的备份,以便能够还原到最近可用的状态,并确保在恢复过程中不会丢失任何数据。 ### 回答3: OracleRMAN(Recovery Manager)可以用于恢复只读表空间。以下是恢复只读表空间的步骤: 1. 首先,确定需要恢复的只读表空间的名称。可以通过查询数据库的v$tablespace视图来获取表空间的信息。 2. 在RMAN命令行界面中,连接到目标数据库。 3. 运行以下命令来将表空间置为可读写状态: ``` SQL 'ALTER TABLESPACE <tablespace_name> READ WRITE'; ``` 4. 运行以下命令来检测并修复表空间的结构问题: ``` RECOVER TABLESPACE <tablespace_name>; ``` 5. 运行以下命令来还原和恢复表空间中的数据文件: ``` RESTORE TABLESPACE <tablespace_name>; RECOVER TABLESPACE <tablespace_name>; ``` 6. 最后,将表空间设置为只读状态: ``` SQL 'ALTER TABLESPACE <tablespace_name> READ ONLY'; ``` 需要注意的是,在执行恢复操作之前,最好备份数据库以及相关的数据文件。此外,恢复只读表空间可能需要一定的时间,具体取决于表空间大小和系统配置。 总之,使用RMAN工具可以方便地恢复只读表空间,确保数据库的完整性和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值