TSM恢复oracle rac.docx

上传人:b****5 文档编号:3257968 上传时间:2022-11-21 格式:DOCX 页数:32 大小:1.12MB
下载 相关 举报
TSM恢复oracle rac.docx_第1页
第1页 / 共32页
TSM恢复oracle rac.docx_第2页
第2页 / 共32页
TSM恢复oracle rac.docx_第3页
第3页 / 共32页
TSM恢复oracle rac.docx_第4页
第4页 / 共32页
TSM恢复oracle rac.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

TSM恢复oracle rac.docx

《TSM恢复oracle rac.docx》由会员分享,可在线阅读,更多相关《TSM恢复oracle rac.docx(32页珍藏版)》请在冰豆网上搜索。

TSM恢复oracle rac.docx

TSM恢复oraclerac

本次操作只是在同一个rac环境里做的实验,感觉不太好,请大家指点,大家发表建议,谢谢大家。

 

TSM+VTL+ORACLE_RAC恢复调试记录

 

日期:

2012-04-25

目录

一、模拟dbca卸载和恢复数据库3

1、磁盘恢复3

1.1修改参数3

1.2备份4

1.3删除数据库5

1.4恢复7

2、磁带恢复16

2.1修改参数16

2.2备份16

2.3删除数据库17

2.4恢复18

二、表被误删除29

三、恢复datafile30

一、模拟dbca卸载和恢复数据库

以下测试是当数据库的控制文件、数据文件、spfile均丢失的情况下做的测试(相当于dbca卸载数据库)

1、磁盘恢复

1.1修改参数

在数据库正常的情况下,修改rman的相关参数(红色为要修改的,如果是off,改为on)

查看到当前的要修改的为off,将其改为on;开启autobackup模式。

这里启用了控制文件以及spfile的自动备份。

当前没有任何备份:

1.2备份

对数据库进行一次0级备份(全备份):

RMAN>backupincrementallevel0database;

1.3删除数据库

接着删除asm上的数据文件、控制文件以及spfile;在删除之前确定dbid和停止所有数据库实例

当前的数据库的dbid为1037271645。

(每次安装的数据库的dbid都是不同的)

停止所有数据库实例

grid@oradb1$srvctlstopdatabase-dpowerdb

删除powerdb的所有数据文件

删除powerdb的控制文件

把+data/powerdb/下所有的文件删除

将powerdb数据库在+data下的文件全部删除后,两个节点都不能访问powerdb

1.4恢复

1.4.1恢复spfile

oracle@oradb1$startup

起不来,报错,首先恢复spfile

RMAN>startupnomount

RMAN>setdbid1037271645#这里的dbid是备份时记下的

进入闪回区,找到autobackup下的文件

恢复spfile

在恢复spfile之前,请确保数据库存储区(即+DATA)下的powerdb目录存在,不存在则去建立

RMAN>restorespfilefrom

'+fra/powerdb/autobackup/2012_04_29/s_781896953.882.781896955';

进入asmcmd查看,要恢复的数据库的spfile是否恢复

grid@oradb1$asmcmd

ASMCMD>cddata/powerdb

ASMCMD>ls

恢复spfile成功,接着恢复控制文件

1.4.2恢复控制文件

恢复控制文件前,请确认当前数据库关闭

oracle@oradb1$rmantarget/

RMAN>startupnomount

RMAN>setdbid1037271645

RMAN>restore controlfilefrom 

'+fra/powerdb/autobackup/2012_04_29/s_781896953.882.781896955'fromautobackup;

1.4.3恢复数据库

将数据库切换到mount状态,恢复数据文件

RMAN>alterdatabasemount;

RMAN>restoredatabase;

RMAN>recoverdatabase;

恢复完成以resetlogs方式打开数据库

RMAN>alterdatabaseopenresetlogs;

在另一节点直接startup即可。

SQL>startup

1.4.4恢复一个临时的pfile

恢复pfile

RMAN>restorespfiletopfile'$ORACLE_HOME/dbs/init11g.ora'from'+fra/POWERDB/AUTOBACKUP/2012_04_29/s_781896953.882.781896955';

查看/oradb/app/oracle/product/11.2/dbhome_1/dbs/init11g.ora文件里的dbname是不是powerdb,以及文件里对控制文件的描述(主要是控制文件后面的一串数字)和ASM里的控制文件是否一致,不一致则将其改为与ASM里的一致

1.4.5重新创建spfile

重新创建spfile的原因:

由于当前的恢复的数据库的spfile并不是指向数据库+DATA/powedb/parameterfile目录下的spfile,而是指向一个dummy的目录下的spfile,如下图所示:

因此,这里我们创建指向powerdb数据库的sfpile。

关闭数据库后再启动

RMAN>shutdownimmediate#(两节点都执行)

RMAN>startupforcenomountpfile=’/oradb/app/oracle/product/11.2/dbhome_1/dbs/

init11g.ora’;

这时把ASM里+DATA/powerdb/的spfile删除

然后在SQL里创建spfile

SQL>createspfile=’+DATA/powerdb/spfilepowerdb.ora’frompfile;

进入ASM里查看当前的spfile是否链接在+DATA/powerdb/parameterfile目录下

1.4.6创建数据库默认的pfile

在oradb1节点上:

oracle@oradb1$sqlplus/assysdba

SQL>startupforcemountpfile='/oradb/app/oracle/product/11.2/dbhome_1/dbs/init11g.ora';

SQL>createpfilefromspfile='+DATA/POWERDB/spfilepowerdb.ora';

在oradb2节点上:

oracle@oradb2$sqlplus/assysdba

SQL>createpfilefromspfile='+DATA/POWERDB/spfilepowerdb.ora';

至此,从磁盘上恢复数据库完成。

2、磁带恢复

2.1修改参数

首先修改数据库相关参数(具体修改操作参考磁盘恢复)

2.2备份

在rman里执行

这里我们可以看到,在备份数据库时,特定为spifle和控制文件的备份做了格式限定,便于恢复时找到对应的spifle和controlfile,下面到tsm里找当前的spfile和控制文件,如下图:

这样就可以很好的对应spfile和controlfile。

2.3删除数据库

接着删除asm上的数据文件、控制文件以及spfile;在删除之前确定dbid和停止所有数据库实例

当前的数据库的dbid为1037356728。

(每次安装的数据库的dbid都是不同的)

停止所有数据库实例

grid@oradb1$srvctlstopdatabase-dpowerdb

删除数据库powerdb的所有文件

将powerdb数据库在+data下的文件全部删除后,两个节点都不能访问powerdb

2.4恢复

2.4.1恢复spfile

oracle@oradb1$startup

起不来,报错,首先恢复spfile

RMAN>startupnomount

RMAN>setdbid1037356728#这里的dbid是备份时记下的

恢复spfile

在恢复spfile之前,请确保数据库存储区(即+DATA)下的powerdb目录存在,不存在则去建立,还有去tsm里找到当前的spfile,当前的spifle在tsm里为spfile_POWERDB_20120430_9_1(如下图)

从磁带中恢复spfile。

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>allocatechannelt2type'sbt_tape'parms

5>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

6>restorespfilefrom'spfile_POWERDB_20120430_9_1';

7>releasechannelt1;

8>releasechannelt2;

9>}

进入asmcmd查看,要恢复的数据库的spfile是否恢复

恢复spfile成功,接着恢复控制文件

2.4.2恢复控制文件

恢复控制文件前,请确认当前数据库关闭

恢复控制文件

oracle@oradb1$rmantarget/

RMAN>startupnomount

RMAN>setdbid1037356728

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>allocatechannelt2type'sbt_tape'parms

5>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

6>restorecontrolfilefrom'ctl_POWERDB_20120430_8_1';

7>releasechannelt1;

8>releasechannelt2;

9>}

2.4.3恢复数据库

将数据库切换到mount状态,恢复数据文件

RMAN>alterdatabasemount;

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>allocatechannelt2type'sbt_tape'parms

5>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

6>restoredatabase;

7>releasechannelt1;

8>releasechannelt2;

9>}

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>allocatechannelt2type'sbt_tape'parms

5>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

6>recoverdatabase;

7>releasechannelt1;

8>releasechannelt2;

9>}

恢复完成以resetlogs方式打开数据库

RMAN>alterdatabaseopenresetlogs;

在另一节点直接startup即可。

SQL>startup

2.4.4恢复一个临时的pfile

恢复pfile

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>restorespfiletopfile'$ORACLE_HOME/dbs/init11g.ora'from

'spfile_POWERDB_20120501_10_1';

5>releasechannelt1;

6>}

查看/oradb/app/oracle/product/11.2/dbhome_1/dbs/init11g.ora文件里的dbname是不是powerdb,以及文件里对控制文件的描述(主要是控制文件后面的一串数字)和ASM里的控制文件是否一致,不一致则将其改为与ASM里的一致

2.4.5重新创建spfile

重新创建spfile的原因:

由于当前的恢复的数据库的spfile并不是指向数据库+DATA/powedb/parameterfile目录下的spfile,而是指向一个DB_UNKNOWN的目录下的spfile,如下图所示:

因此,这里我们创建指向powerdb数据库的sfpile。

关闭数据库后再启动

RMAN>shutdownimmediate#(两节点都执行)

RMAN>startupforcenomountpfile='$ORACLE_HOME/dbs/init11g.ora';

这时把ASM里+DATA/powerdb/的spfile删除

然后在SQL里创建spfile

SQL>createspfile='+DATA/POWERDB/spfilepowerdb.ora'from

pfile='$ORACLE_HOME/dbs/init11g.ora';

进入ASM里查看当前的spfile是否链接在+DATA/powerdb/parameterfile目录下

2.4.6创建数据库默认的pfile

在oradb1节点上:

oracle@oradb1$sqlplus/assysdba

SQL>startupforcemountpfile='/oradb/app/oracle/product/11.2/dbhome_1/dbs/init11g.ora';

SQL>createpfilefromspfile='+DATA/POWERDB/spfilepowerdb.ora';

在oradb2节点上:

oracle@oradb2$sqlplus/assysdba

SQL>createpfilefromspfile='+DATA/POWERDB/spfilepowerdb.ora';

至此,从磁带上恢复数据库完成。

二、表被误删除

一个表被误删除,可用oracle的flashback功能恢复

例如:

名为aaa的表被误删除的恢复

flashbacktableaaatobeforedrop;

举例:

一个名为test的用户,有一个表test,里面有数据

删除这个test表,

恢复这个表:

三、恢复datafile

1、建立一个测试的表空间,名为aaa,并为其创建默认的使用用户bbb、赋予其相关权限和创建表

SQL>createtablespaceaaadatafile'+DATA'size10M;

Tablespacecreated.

SQL>createuserbbbidentifiedby123defaulttablespaceaaa;

Usercreated.

SQL>grantconnect,dba,resourcetobbb;

Grantsucceeded.

SQL>alteruserbbbdefaulttablespaceaaa;

Useraltered.

SQL>selectfile_namefromdba_data_files;

FILE_NAME

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

+DATA/powerdb/datafile/users.268.782152659

+DATA/powerdb/datafile/undotbs1.258.782152663

+DATA/powerdb/datafile/sysaux.263.782152661

+DATA/powerdb/datafile/system.275.782152657

+DATA/powerdb/datafile/example.269.782152663

+DATA/powerdb/datafile/undotbs2.260.782152659

+DATA/powerdb/datafile/aaa.266.782165977

7rowsselected.

SQL>connbbb/123

Connected.

SQL>createtableabc(aanumber,bbnumberprimarykey);

Tablecreated.

SQL>insertintoabc(aa,bb)values(12,13);

1rowcreated.

SQL>insertintoabc(aa,bb)values(11,23);

1rowcreated.

SQL>commit;

Commitcomplete.

SQL>select*fromabc;

AABB

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

1213

1123

备份aaa这个表空间

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>backuptablespaceaaa;

5>}

2、删除这个表空间的数据文件

删除时,要将aaa这个表空间offline

进入asmcmd,删除aaa这个数据文件

3、恢复数据文件(以从磁带上恢复为例(从磁盘上恢复类似))

RMAN>run{

2>allocatechannelt1type'sbt_tape'parms

3>'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';

4>restoretablespaceaaa;

5>recovertablespaceaaa;

6>releasechannelt1;

7>}

进入asmcmd查看是否恢复

将aaa表空间online,使其能使用

SQL>altertablespaceaaaonline;

完成。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1