mysql删除表空间 命令_如何删除表空间的数据文件

这篇博客介绍了在Oracle 10g中,当新增的表空间数据文件被误删除时,如何通过备份的控制文件进行恢复。详细步骤包括利用不完全恢复、设置DBID、恢复控制文件、挂载数据库、恢复数据文件,并最终打开数据库。

展开全部

新增加的表空间数据文件误删除(利用创建表空间前的e68a843231313335323631343130323136353331333339666637控制文件)

===========================================================

利用表空间文件创建前的备份控制文件恢复,10g会自动创建丢失的数据文件恢复

--利用控制文件的不完全恢复,要利用删除文件或表空间前备份的控制文件恢复

利用创建前的控制文件恢复

PENG(sys)>select* from v$version;

BANNER

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

OracleDatabase 10g Enterprise Edition Release 10.2.0.1.0- Prod

PL/SQLRelease 10.2.0.1.0 - Production

CORE10.2.0.1.0 Production

TNSfor 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTLVersion 10.2.0.1.0 - Production

RMAN>backup database ;

PENG(sys)>createtablespace ts_back datafile 'C:ORACLEPRODUCT10.2.0ORADATAORCLTS_BACK.DBF'size 1m autoextend on;

表空间已创建。

PENG(sys)>createtable test(a varchar2(10)) tablespace ts_back;

表已创建。

PENG(sys)>insertinto test values('test');

已创建 1 行。

PENG(sys)>commit;

提交完成。

PENG(sys)>select* from test;

A

----------

test

PENG(sys)>selectdbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

1878113

PENG(sys)>droptablespace ts_back including contents and datafiles;

表空间已删除。

PENG(sys)>select* from test;

select* from test

*

第 1 行出现错误:

ORA-00942:表或视图不存在

PENG(sys)>shutdownimmediate;

数据库已经关闭。

已经卸载数据库。

ORACLE例程已经关闭。

C:>rmantarget sys/sys@orcl36

恢复管理器:Release 10.2.0.1.0 - Production on 星期五 8月 17 13:57:452007

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

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

RMAN>startup nomount;

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

Oracle实例已启动

系统全局区域总计167772160 字节

FixedSize 1247900 字节

VariableSize 75498852 字节

DatabaseBuffers 88080384 字节

RedoBuffers 2945024 字节

--找到了alert.log 的一段,需要用到创建表空间前的控制文件进行恢复C:ORACLEBACKC-497086482-20040820-04

--数据库的dbid是497086482

FriAug 20 11:03:58 2004

Thread1 advanced to log sequence 3

Currentlog# 3 seq# 3 mem# 0: C:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG

FriAug 20 11:04:02 2004

Startingcontrol autobackup

FriAug 20 11:04:04 2004

Errorsin file c:oracleproduct10.2.0adminorcludumporcl_ora_3276.trc:

FriAug 20 11:04:04 2004

Errorsin file c:oracleproduct10.2.0adminorcludumporcl_ora_3276.trc:

FriAug 20 11:04:04 2004

Errorsin file c:oracleproduct10.2.0adminorcludumporcl_ora_3276.trc:

Controlautobackup written to DISK device

handle'C:ORACLEBACKC-497086482-20040820-04'

FriAug 20 11:05:20 2004

RMAN>set dbid 497086482

正在执行命令:SET DBID

RMAN>startup nomount;

Oracle实例已启动

系统全局区域总计167772160 字节

FixedSize 1247900 字节

VariableSize 75498852 字节

DatabaseBuffers 88080384 字节

RedoBuffers 2945024 字节

RMAN>restore controlfile from 'C:ORACLEBACKC-497086482-20040820-04' ;

启动restore 于20-8月 -07

使用目标数据库控制文件替代恢复目录

分配的通道:ORA_DISK_1

通道ORA_DISK_1: sid=157 devtype=DISK

通道ORA_DISK_1: 正在复原控制文件

通道ORA_DISK_1: 恢复完成, 用时: 00:00:04

输出文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL

输出文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL

输出文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL

完成restore 于20-8月 -07

RMAN>sql 'alter database mount';

sql语句: alterdatabase mount

释放的通道:ORA_DISK_1

/*

run{

setuntil scn 1878113;

restoredatabase;

recoverdatabase;

}

*/

C:Documentsand SettingsAdministrator>sqlplus sys/sys@orcl36 as sysdba

idle>selectfile#,name from v$datafile;

FILE#

----------

NAME

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

1

C:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF

2

C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS02.DBF

3

C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF

4

C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF

5

C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF

6

C:ORACLEPRODUCT10.2.0ORADATAORCLPERFSTAT.DBF

7

C:ORACLEPRODUCT10.2.0ORADATAORCLTS_ROW.DBF

8

C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART1.DBF

9

C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART2.DBF

10

C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART3.DBF

11

C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART4.DBF

12

C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS02.DBF

已选择12行。

RMAN>run{

2>set until scn 1878113;

3>restore database;

4>recover database;

5>}

正在执行命令:SET until clause

启动restore 于20-8月 -07

启动implicit crosscheck backup 于20-8月 -07

分配的通道:ORA_DISK_1

通道ORA_DISK_1: sid=155 devtype=DISK

已交叉检验的 6 对象

完成implicit crosscheck backup 于20-8月 -07

启动implicit crosscheck copy 于20-8月 -07

使用通道ORA_DISK_1

已交叉检验的 2 对象

完成implicit crosscheck copy 于20-8月 -07

搜索恢复区域中的所有文件

正在编制文件目录...

没有为文件编制目录

使用通道ORA_DISK_1

通道ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1:正在指定从备份集恢复的数据文件

正将数据文件00002恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS02.DBF

正将数据文件00003恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF

正将数据文件00004恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF

正将数据文件00006恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLPERFSTAT.DBF

正将数据文件00007恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLTS_ROW.DBF

正将数据文件00008恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART1.DBF

正将数据文件00009恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART2.DBF

正将数据文件00010恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART3.DBF

正将数据文件00011恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLTS_PART4.DBF

正将数据文件00012恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS02.DBF

通道ORA_DISK_1: 正在读取备份段C:ORACLEBACKDB_FULL_PENG_20040820_534682924_225_71FTT79C_1_1.BAK

通道ORA_DISK_1: 已恢复备份段 1

段句柄 =C:ORACLEBACKDB_FULL_PENG_20040820_534682924_225_71FTT79C_1_1.BAK 标记 =TAG20040820T110203

通道ORA_DISK_1: 恢复完成, 用时: 00:00:55

通道ORA_DISK_1: 正在开始恢复数据文件备份集

通道ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF

正将数据文件00005恢复到C:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF

通道ORA_DISK_1: 正在读取备份段C:ORACLEBACKDB_FULL_PENG_20040820_534682990_226_72FTT7BE_1_1.BAK

通道ORA_DISK_1: 已恢复备份段 1

段句柄 =C:ORACLEBACKDB_FULL_PENG_20040820_534682990_226_72FTT7BE_1_1.BAK 标记 =TAG20040820T110203

通道ORA_DISK_1: 恢复完成, 用时: 00:00:45

完成restore 于20-8月 -07

启动recover 于20-8月 -07

使用通道ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 2 已作为文件C:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG 存在于磁盘上

存档日志线程 1 序列 3 已作为文件C:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG 存在于磁盘上

存档日志文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG 线程 =1 序列 =2

存档日志文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG 线程 =1 序列 =3

创建数据文件 fno= 13 名称 =C:ORACLEPRODUCT10.2.0ORADATAORCLTS_BACK.DBF

存档日志文件名=C:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG 线程 =1 序列 =3

介质恢复完成, 用时: 00:00:03

完成recover 于20-8月 -07

RMAN>sql 'alter database open resetlogs';

sql语句: alterdatabase open resetlogs

idle>connsys/sys@orcl36 as sysdba ;

已连接。

PENG(sys)>select* from test;

A

----------

test

--利用表空间文件创建前的备份控制文件恢复,10g会自动创建丢失的数据文件恢复

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值