模拟数据文件丢失时的处理。

bzszp 2005-06-09 03:38:47

有操作不当之处,还请多多指教!

环境win2000 server oracle8.1.7

////////////////////////////////////////
// 创建环境,创建表空间以及数据文件
////////////////////////////////////////
SQL> create tablespace price datafile 'price.ora' size 10M;

表空间已创建。

已用时间: 00: 00: 02.73
SQL> drop tablespace price;

表空间已丢弃。

已用时间: 00: 00: 01.42
SQL> create tablespace plate datafile 'plate.ora' size 10M;

表空间已创建。

已用时间: 00: 00: 02.12
SQL> create user plate identified by plate default tablespace plate;

用户已创建

已用时间: 00: 00: 00.70
SQL> grant connect,resource to plate;

授权成功。

已用时间: 00: 00: 00.10
SQL> connect plate/plate
已连接。
SQL>

////////////////////////////////////////
// 关闭数据库
////////////////////////////////////////
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

C:\Documents and Settings\Administrator>svrmgrl

Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 2000, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SVRMGR> connect internal/oracle
连接成功。
SVRMGR> shutdown immediate
已关闭数据库。
已卸下数据库。
已关闭 ORACLE 实例。
//////////////////////////////////////////////
// 将数据文件plate.ora删除,模拟数据文件丢失
//////////////////////////////////////////////
SVRMGR> startup
已启动 ORACLE 实例。
系统全局区域合计有 29431836个字节
Fixed Size 75804个字节
Variable Size 28459008个字节
Database Buffers 819200个字节
Redo Buffers 77824个字节
已装入数据库。
ORA-01157: ????/?????? 8 - ??? DBWR ????
ORA-01110: ???? 8: 'D:\ORACLE\ORA81\DATABASE\PLATE.ORA'
//////////////////////////////////////////////
// 数据库打开失败,将错误的数据文件offline drop
//////////////////////////////////////////////
SVRMGR> alter database datafile 'd:\oracle\ora81\database\plate.ora' offline dro
p;
语句已处理。
//////////////////////////////////////////////
// 数据库打开成功
//////////////////////////////////////////////
SVRMGR> alter database open;
语句已处理。
SVRMGR>
//////////////////////////////////////////////
// sql*plus中,处理善后工作,删除相关联的表空间
//////////////////////////////////////////////
SQL> connect internal/oracle
已连接。
SQL> col name format a50
SQL> select name,status from v_$datafile;

NAME STATUS
------------------------------ -------
D:\ORACLE\ORADATA\ORAL\SYSTEM01.DBF SYSTEM
D:\ORACLE\ORADATA\ORAL\RBS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\USERS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\TEMP01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\TOOLS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\INDX01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\DR01.DBF ONLINE
D:\ORACLE\ORA81\DATABASE\PLATE.ORA OFFLINE

已选择8行。

已用时间: 00: 00: 00.10
SQL> drop tablespace plate;

表空间已丢弃。

已用时间: 00: 00: 01.82
SQL> col name format a33
SQL> col name format a35
SQL> col name format a50
SQL> select name,status from v_$datafile;

NAME STATUS
-------------------------------------------------- -------
D:\ORACLE\ORADATA\ORAL\SYSTEM01.DBF SYSTEM
D:\ORACLE\ORADATA\ORAL\RBS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\USERS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\TEMP01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\TOOLS01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\INDX01.DBF ONLINE
D:\ORACLE\ORADATA\ORAL\DR01.DBF ONLINE

已选择7行。

已用时间: 00: 00: 00.50
SQL>
//////////////////////////////////////////////
// 处理结束。OK!
//////////////////////////////////////////////
...全文
166 1 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2005-06-14
前几天有人说我的语句在9i下不好用,比较纳闷。
多谢了!
回复
luxuezhu 2005-06-14
为什么会想到这个语句在9i中是否有效呢?
回复
luxuezhu 2005-06-14
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>SQLPLUS /NOLOG

SQL*Plus: Release 9.2.0.5.0 - Production on 星期二 6月 14 08:54:01 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> CONN /AS SYSDBA
已连接。
SQL> create tablespace plate datafile 'plate.ora' size 10M;

表空间已创建。

SQL> create user plate identified by plate default tablespace plate;

用户已创建

SQL> grant connect,resource to plate;

授权成功。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。

Total System Global Area 1049700076 bytes
Fixed Size 456428 bytes
Variable Size 1023410176 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 19 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 19: 'F:\ORACLE\ORA92\DATABASE\PLATE.ORA'


SQL> alter database datafile 'F:\oracle\ora92\database\plate.ora' offline drop;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL>
回复
bzszp 2005-06-14
alter database datafile 'd:\oracle\ora81\database\plate.ora' offline drop;
这条语句在9i 里面也是有效的吧?
回复
chen_cyh 2005-06-13
而且不能登陆svrmgrl ,直接 在sqlplus或者sqlplusw中操作即可。
回复
chen_cyh 2005-06-13
9i下不能用interal用户登陆,直接conn sys/oracle as sysdba
即可。
回复
bzszp 2005-06-13
呵呵,没关系,

希望以后有人贴出9i的测试过程来。
回复
dinya2003 2005-06-13
bzszp(SongZip) 兄:

真抱歉,我不方便测试,现在.
回复
bzszp 2005-06-10
相同的话也告诉我一声,
就全当散分了!
回复
bzszp 2005-06-09
在9i中,操作有什么不同?
我这里没有环境,有条件的朋友测试一下,把过程发上来。
多谢了!

测试之前,最好先给数据库做一下冷备份。
回复
发动态
发帖子
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
社区公告
暂无公告