返回顶部
首页 > 资讯 > 数据库 >Oracle 12C 新特性用rman备份恢复表
  • 100
分享到

Oracle 12C 新特性用rman备份恢复表

2024-04-02 19:04:59 100人浏览 八月长安
摘要

在12c之前对于用户因DDL(DROPTRUNCATE )等操作引起的数据丢失,一般通过数据库时间点不完全恢复、基于表空间的时间点恢复(TSPITR)、闪回技术。 12c 推出了rman基于时间

在12c之前对于用户因DDL(DROPTRUNCATE )等操作引起的数据丢失,一般通过数据库时间点不完全恢复、基于表空间的时间点恢复(TSPITR)、闪回技术。

12c 推出了rman基于时间点对表的恢复。原理如下:

Recover Table 新特性是利用创建辅助临时实例加数据泵工具来实现的。通常在进行Recover Table之前应该准备好两个目录(AUXILIARY DESTINATioN和DATAPUMP DESTINATION),AUXILIARY DESTINATION用来临时存放辅助实例的数据文件,DATAPUMP DESTINATION用来临时存放数据泵导出的文件。

一:测试过程如下:

1.

sql> set lines 60

SQL> desc tb ;

 Name                          Null?    Type

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

 OWNER                                  VARCHAR2(128)

 OBJECT_NAME                            VARCHAR2(128)

 SUBOBJECT_NAME                         VARCHAR2(128)

 OBJECT_ID                              NUMBER

 DATA_OBJECT_ID                         NUMBER

 OBJECT_TYPE                            VARCHAR2(23)

 CREATED                                DATE

 LAST_DDL_TIME                          DATE

SQL> insert into  tb select * from tb ;

72633 rows created.

SQL> commit  ;

Commit complete.

SQL>

SQL> conn / as sysdba

Connected.

2. 切换日志使数据写到磁盘上。

SQL> alter system switch logfile ;

3.rman 备份数据库

Recovery Manager: Release 12.2.0.1.0 -Production on Fri Jun 29 11:41:03 2018

Copyright (c) 1982, 2017, oracle and/or itsaffiliates.  All rights reserved.

connected to target database: MISDB(DBID=4279250949)

RMAN> run

2> {

3> crosscheck arcHivelog all;

4> crosscheck  backup;

5> delete noprompt obsolete;

6> delete noprompt expired backup;

7> allocate channel d1  type disk ;

8> allocate channel d2 type disk ;

9> backup fORMat '/u01/bk/%T_%d_%s_%p.dat'tag 'full_data' database ;         

10> backup format'/u01/bk/%T_%d_%s_%p.arc' tag 'full_arc' archivelog all delete all input ;    

11> backup format'/u01/bk/%T_%d_%s_%p.ctl' tag 'full_ctl' current controlfile;

12> release channel d1;

13> release channel d2;

14> };

released channel: d1

released channel: d2

RMAN>

SQL> select count(*) from rita.tb ;

 COUNT(*)

----------

   145266

SQL> select current_scn from v$database;

CURRENT_SCN

-----------

2074690

4. 删除表

SQL> drop table rita.tb  purge;

SQL> select count(*) from rita.tb ;

 selectcount(*) from rita.tb

                           *

ERROR at line 1:

ORA-00942: table or view does not exist

5. 建辅助目录

[oracle@host01 u01]$ mkdir  recover/

[oracle@host01 u01]$ mkdir  dumpfiles

[oracle@host01 u01]$ ls

app bk  dumpfiles  lost+found recover

[oracle@host01 u01]$ cd dumpfiles/

[oracle@host01 dumpfiles]$ ls

[oracle@host01 dumpfiles]$ cd  ..

[oracle@host01 u01]$

6. 查看数据库备份:

list backup of database;

connected to target database: MISDB(DBID=4279250949)

RMAN>

using target database control file instead ofrecovery catalog

7. 恢复删除的表:

rman target /

Recovery Manager: Release 12.2.0.1.0 -Production on Fri Jun 29 15:22:20 2018

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

connected to target database: MISDB(DBID=4279250949)

RMAN> run{

2> RECOVER TABLE rita.tb

3> UNTIL SCN 2074690

4> AUXILIARY DESTINATION '/u01/recover'

5> datapump destination '/u01/dumpfiles';

6> };

Starting recover at 29-JUN-18

using target database control file instead ofrecovery catalog

current log archived

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=52 instance=misdb1device type=DISK

RMAN-05026: warning: presuming following setof tablespaces applies to specified point-in-time

List of tablespaces expected to have UNDOsegments

Tablespace SYSTEM

Tablespace UNDOTBS1

Creating automatic instance, with SID='ygBi' 自动创建一个数据库实例

oracle@host01 datafile]$ ps -ef |grep smon

grid      5050      1  0 14:57 ?        00:00:00 asm_smon_+ASM1

root      5144      1  1 14:58 ?        00:00:30/u01/app/12.2.0/grid/bin/osysmond.bin

oracle    7730      1  0 15:00 ?        00:00:00 ora_smon_misdb1

oracle   36939      1  015:28 ?        00:00:00 ora_smon_ygBi

reating automatic instance, with SID='ygBi'

initialization parameters used for automatic instance:

db_name=MISDB

db_unique_name=ygBi_pitr_MISDB

compatible=12.2.0

db_block_size=8192

db_files=200

diagnostic_dest=/u01/app/oracle

_system_trig_enabled=FALSE

sga_target=1728M

processes=200

db_create_file_dest=/u01/recover

log_archive_dest_1='location=/u01/recover' --- 这个空间要足够大

#No auxiliary parameter file used

datafile 1 switched to datafile copy

input datafile copy RECID=4 STAMP=980090756 filename=/u01/recover/MISDB/datafile/o1_mf_system_fmcqnsc8_.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=5 STAMP=980090756 filename=/u01/recover/MISDB/datafile/o1_mf_undotbs1_fmcqpx2n_.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=6 STAMP=980090756 filename=/u01/recover/MISDB/datafile/o1_mf_sysaux_fmcqpx17_.dbf

contents of Memory Script:

{

# set requested point in time

set until  scn2074690;

# online the datafiles restored or switched

sql clone "alter database datafile  1 online";

sql clone "alter database datafile  4 online";

sql clone "alter database datafile  3 online";

# recover and open database read only

recover clone database tablespace  "SYSTEM", "UNDOTBS1","SYSAUX";

sql clone 'alter database open read only';

。。。

contents of Memory Script:

{

# create directory for datapump import

sql "create or replace directory TSPITR_DIROBJ_DPDIRas ''

/u01/dumpfiles''";

# create directory for datapump export

sql clone "create or replace directoryTSPITR_DIROBJ_DPDIR as ''

/u01/dumpfiles''";

}

executing Memory Script

sql statement: create or replace directoryTSPITR_DIROBJ_DPDIR as ''/u01/dumpfiles''

sql statement: create or replace directoryTSPITR_DIROBJ_DPDIR as ''/u01/dumpfiles''

Performing export of tables...

  EXPDP> Starting"SYS"."TSPITR_EXP_ygBi_GCph": 

  EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

  EXPDP> Processing object typeTABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

  EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

  EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE

   EXPDP> . .exported "RITA"."TB"                                 19.21 MB  145266 rows

   EXPDP> Mastertable "SYS"."TSPITR_EXP_ygBi_gcph" successfullyloaded/unloaded

   EXPDP>******************************************************************************

   EXPDP> Dumpfile set for SYS.TSPITR_EXP_ygBi_gcph is:

   EXPDP>   /u01/dumpfiles/tspitr_ygBi_13106.dmp

   EXPDP> Job"SYS"."TSPITR_EXP_ygBi_gcph" successfully completed at FriJun 29 15:31:30 2018 elapsed 0 00:01:09

Export completed

contents of Memory Script:

{

# shutdown clone before import

shutdown clone abort

}

executing Memory Script

Oracle instance shut down

Performing import of tables...

  IMPDP> Master table "SYS"."TSPITR_IMP_ygBi_yzeq"successfully loaded/unloaded

  IMPDP> Starting"SYS"."TSPITR_IMP_ygBi_yzeq": 

    IMPDP> Processing object typeTABLE_EXPORT/TABLE/TABLE

   IMPDP>Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

   IMPDP> . .imported "RITA"."TB"                                 19.21 MB  145266 rows

   IMPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

   IMPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

   IMPDP> Job"SYS"."TSPITR_IMP_ygBi_yzeq" successfully completed at FriJun 29 15:32:44 2018 elapsed 0 00:00:41

Import completed

二:从上边的例子可以看出,恢复大体流程是

1.rman  根据指定的表确定备份。

2.rman  根据指定的recover 路径恢复一个辅助实例,恢复到指定的时间点。

Creating automatic instance, with SID='ygBi'

initialization parameters used for automatic instance:

db_name=MISDB

db_unique_name=ygBi_pitr_MISDB

sql statement: alter database mount clone database

sql statement: alter system archive log current

contents of Memory Script:

{

# set requested point in time

set until  scn2074690;

# set destinations for recovery set and auxiliary setdatafiles

set newname for clone datafile  1 to new;

set newname for clone datafile  4 to new;

set newname for clone datafile  3 to new;

set newname for clone tempfile  1 to new;

3. 用恢复好的辅助实例,数据库导出在导入生产环境

EXPDP> Starting"SYS"."TSPITR_EXP_ygBi_gcph": 

   EXPDP>Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

   EXPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

   EXPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

Performing import of tables...

   IMPDP> Mastertable "SYS"."TSPITR_IMP_ygBi_yzeq" successfullyloaded/unloaded

   IMPDP>Starting "SYS"."TSPITR_IMP_ygBi_yzeq": 

   IMPDP>Processing object type TABLE_EXPORT/TABLE/TABLE

   IMPDP>Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

   IMPDP> . .imported "RITA"."TB"                                 19.21 MB  145266 rows

   IMPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

   IMPDP>Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

   IMPDP> Job"SYS"."TSPITR_IMP_ygBi_yzeq" successfully completed at FriJun 29 15:32:44 2018 elapsed 0 00:00:41

Import completed

4. 删除辅助实例

恢复完成。

三:RECOVER TABLE需要注意的几个问题:

1. 目标数据库必须被置于读写模式。

2. 目标数据库必须被置于归档模式。

3.SYS 用户下的表或分区无法恢复。

4. 存储于SYSAUX和SYSTEM表空间下的表和分区无法恢复。

5.Standby 数据库上的表或表分区不能进行恢复。

6. 在执行“RECOVER TABLE”命令时,可以根据需要在以下三种级别指定时间:

(1)SCN号

(2)Sequence number(日志序列号)

(3)Time:根据NLS_LANG和NLS_DATE_FORMAT环境变量中的格式来指定时间,也可以用SYSDATE,比如"SYSDATE-30"、"to_date('2018-06-29:17:51:48','yyyy-mm-ddhh34:mi:ss')"

参考文档

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/bradv/rman-recovering-tables-partitions.html#GUID-87B7F772-335F-4179-81C9-91678D026D01

您可能感兴趣的文档:

--结束END--

本文标题: Oracle 12C 新特性用rman备份恢复表

本文链接: https://lsjlt.com/news/45255.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle 12C 新特性用rman备份恢复表
    在12c之前对于用户因DDL(DROPTRUNCATE )等操作引起的数据丢失,一般通过数据库时间点不完全恢复、基于表空间的时间点恢复(TSPITR)、闪回技术。 12c 推出了rman基于时间...
    99+
    2024-04-02
  • Oracle 12C新特性-RMAN恢复表
    Oracle 12C 新特性 -RMAN 恢复表 oracle 如何恢复单张表数据? 场景一:处理简单,恢复速度快 1 如果表被 delete 、 update 、 ...
    99+
    2024-04-02
  • 12C RMAN备份恢复
    12C 重做日志文件处于共享状态,所以只能在CDB级别设置ARCHIVELOG模式,不能在PDB级别设置。 RMAN可以比较好的操作cdb和pdb备份,同时pdb的备份和恢复可以通过cdb来完成。 =备份...
    99+
    2024-04-02
  • Oracle 12c RMAN新特性
    Oracle 12c RMAN新特性 SYSBACKUP This privilege allows a user to perform backup and recovery operations e...
    99+
    2024-04-02
  • oracle备份与恢复--rman
    (一)、创建恢复目录1、创建恢复目录数据库#mkdir -p /u01/app/oracle/oradata/rmandb#chown -R oracle /u01/app/oracle/oradata/r...
    99+
    2024-04-02
  • ORACLE 12C使用RMAN进行表恢复
         在12C以前的版本中rman可以进行db,tablespace,datafile,block级别和TSPITR的恢复,12C引入了table级别的恢复在...
    99+
    2024-04-02
  • Oracle11g 新特性:优化Rman备份UNDO表空间
    Oracle11gR1的新特性,Rman备份UNDO表空间时排除已经提交的会话对应的数据,提高了Rman备份的效率。官方文档:http://docs.oracle.com/cd/B28359_01/serv...
    99+
    2024-04-02
  • Oracle11g备份恢复新特性有哪些
    小编给大家分享一下Oracle11g备份恢复新特性有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 闪回日志急救还记得 O...
    99+
    2024-04-02
  • Oracle 12c的备份与恢复方法
    本篇内容主要讲解“Oracle 12c的备份与恢复方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle 12c的备份与恢复方法”吧!备份:1.备份全部...
    99+
    2024-04-02
  • Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复
    小编给大家分享一下Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起...
    99+
    2024-04-02
  • Oracle 12.1新特性----使用RMAN从备份中实现recover table
    在Oracle12c版本之前,使用RMAN能恢复的级别为数据库级别和表空间级别,如果只有一张表需要恢复,而在数据库级别或表空间级别做恢复,影响范围就太大了。因此12.2版本中提供了一个新特性使用RMAN在表...
    99+
    2024-04-02
  • Oracle 12c数据库备份与恢复技术(一)
    查询SCN的方法SQL> select current_scn from v$database2 union3 select current_scn from v$d...
    99+
    2024-04-02
  • Oracle 12C使用RMAN将PDB中分表的多个分区恢复到新用户方案中
    Oracle 12C使用RMAN将PDB中分表的多个分区恢复到新用户方案中的操作如下 1.对整个CDB(jy)生成RMAN备份 [oracle@jytest1 ~]$ rman target/ c...
    99+
    2024-04-02
  • Oracle DG从库Rman如何实现备份恢复测试
    这篇文章主要介绍了Oracle DG从库Rman如何实现备份恢复测试,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.系统初始化和数据库安装...
    99+
    2024-04-02
  • Oracle 12c 备份与恢复中resetlogs的概念及用法是什么
    这篇文章给大家介绍Oracle 12c 备份与恢复中resetlogs的概念及用法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。备份与恢复是一门重要...
    99+
    2024-04-02
  • 如何使用RMAN备份将Non-CDB中被drop的表恢复到新用户方案与新表空间中
    这篇文章主要介绍如何使用RMAN备份将Non-CDB中被drop的表恢复到新用户方案与新表空间中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!RMAN使用recover命令...
    99+
    2024-04-02
  • 使用RMAN备份对Non-CDB中的表按时间点进行恢复
    RMAN使用recover命令来将表或表分区恢复到指定的时间点。为了从RMAN备份中恢复表与表分区,你必须提供以下信息: .要被恢复的表或表分区 .表或表分区要被恢复到的特定时间点 .被恢复的表或...
    99+
    2024-04-02
  • Oracle 12C如何使用RMAN将Non-CDB中分表的多个分区恢复到新用户方案中
    这篇文章主要介绍了Oracle 12C如何使用RMAN将Non-CDB中分表的多个分区恢复到新用户方案中,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起...
    99+
    2024-04-02
  • Oracle 12c新特性维护表分区Global Index不失效
    1.新特性官方文档说明 ...
    99+
    2024-04-02
  • Linux环境下oracle数据库Rman备份如何实现异机恢复
    小编给大家分享一下Linux环境下oracle数据库Rman备份如何实现异机恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!备...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作