• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle以TSPITR方式恢复表空间数据一例

mysql 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

其实TSPITR方式是对整个表空间的恢复,无论该表空间上有多少张表或对象,只要是自包含的表空间,就可以使用这种方法来进行恢复。

其使用前提为两个:

1. 必须存在相应的备份集合

2. 表空间对象是子包含的,也就是其他表空间中不包括与这个表空间对象相关的对象数据(互相独立)

恢复步骤和原理如下:

首先完成数据检查工作,确定备份集合和表空间完整性

时间点

数据库

下面通过实验来进行演示操作:

–创建测试用户zlm并赋予权限

SQL> create user zlm identified by zlm;

User created.

SQL> grant dba to zlm;

Grant succeeded.

–创建测试表空间tspitr

SQL> create tablespace tspitr datafile ‘/data/oradata/ora10g/tspitr01.dbf’ size 100m autoextend off extent management local uniform size 1m segment space management auto;

Tablespace created.

–修改用户zlm缺省表空间为tspitr

SQL> alter user zlm default tablespace tspitr;

User altered.

SQL> show user

USER is “”

SQL> conn zlm/zlm@ora10g213

Connected.

SQL> !

–创建一个RMAN备份集

[oracle@bak ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 – Production on Fri Dec 26 16:44:00 2014

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

connected to target database: ORA10G (DBID=4175411955)

RMAN> backup as compressed backupset database format ‘/u01/orabackup/backupsets/full_ora10g_%U’ plus archive log format ‘/u01/orabackup/backupsets/arc_ora10g_%U’ delete all input;

Starting backup at 26-DEC-14

current log archived

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=138 devtype=DISK

channel ORA_DISK_1: starting compressed archive log backupset

channel ORA_DISK_1: specifying archive log(s) in backup set

input archive log thread=1 sequence=30 recid=30 stamp=867343597

channel ORA_DISK_1: starting piece 1 at 26-DEC-14

channel ORA_DISK_1: finished piece 1 at 26-DEC-14

piece handle=/u01/orabackup/backupsets/arc_ora10g_13pr577g_1_1 tag=TAG20141226T164639 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04

channel ORA_DISK_1: deleting archive log(s)

archive log filename=/oracle/flash_recovery_area/ORA10G/archivelog/2014_12_26/o1_mf_1_30_b9t83f1s_.arc recid=30 stamp=867343597

Finished backup at 26-DEC-14

Starting backup at 26-DEC-14

using channel ORA_DISK_1

channel ORA_DISK_1: starting compressed full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=/data/oradata/ora10g/system01.dbf

input datafile fno=00003 name=/data/oradata/ora10g/sysaux01.dbf

input datafile fno=00002 name=/data/oradata/ora10g/undotbs01.dbf

input datafile fno=00005 name=/data/oradata/ora10g/example01.dbf

input datafile fno=00006 name=/data/oradata/ora10g/tspitr01.dbf

input本文来源gaodai$ma#com搞$代*码网2 datafile fno=00004 name=/data/oradata/ora10g/users01.dbf

channel ORA_DISK_1: starting piece 1 at 26-DEC-14

channel ORA_DISK_1: finished piece 1 at 26-DEC-14

piece handle=/u01/orabackup/backupsets/full_ora10g_14pr577l_1_1 tag=TAG20141226T164644 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:02:47

Finished backup at 26-DEC-14

Starting backup at 26-DEC-14

current log archived

using channel ORA_DISK_1

channel ORA_DISK_1: starting compressed archive log backupset

channel ORA_DISK_1: specifying archive log(s) in backup set

input archive log thread=1 sequence=31 recid=31 stamp=867343772

channel ORA_DISK_1: starting piece 1 at 26-DEC-14

channel ORA_DISK_1: finished piece 1 at 26-DEC-14

piece handle=/u01/orabackup/backupsets/arc_ora10g_15pr57ct_1_1 tag=TAG20141226T164933 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

channel ORA_DISK_1: deleting archive log(s)

archive log filename=/oracle/flash_recovery_area/ORA10G/archivelog/2014_12_26/o1_mf_1_31_b9t88wnv_.arc recid=31 stamp=867343772

Finished backup at 26-DEC-14

Starting Control File and SPFILE Autobackup at 26-DEC-14

piece handle=/u01/orabackup/backupsets/ora10g-c-4175411955-20141226-05.ctl comment=NONE

Finished Control File and SPFILE Autobackup at 26-DEC-14

RMAN> exit

Recovery Manager complete.

–连接到测试用户zlm查看当前日志

[oracle@bak ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 – Production on Fri Dec 26 16:50:46 2014

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

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production

With the Partitioning, OLAP and Data Mining options

SQL> conn zlm/zlm@ora10g213

Connected.

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

———- —————-

32 CURRENT

30 INACTIVE

31 ACTIVE

–创建测试表t1,并切换若干次日志

SQL> create table t1 as select * from dba_objects;

Table created.

SQL> alter system switch logfile;

System altered.

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

———- —————-

32 ACTIVE

33 CURRENT

31 ACTIVE

SQL> alter system switch logfile;

System altered.

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

———- —————-

32 ACTIVE

33 ACTIVE

34 CURRENT –此时仍然时候数据的

SQL> select count(*) from t1;

COUNT(*)

———-

50382

–对表进行truancate操作,模拟误操作

SQL> truncate table t1;

Table truncated.

SQL> select count(*) from t1;

COUNT(*)

———-

0

SQL> alter system switch logfile;

System altered.

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

———- —————-

35 CURRENT –truncate之后又切换了一次日志,当前日志为35

33 ACTIVE

34 ACTIVE

SQL> !


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle以TSPITR方式恢复表空间数据一例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址