数据库处于归档模式。
在数据库里新建了一个表空间,共有3个数据文件。
各10M,表空间内有一张23M的表。
SQL> select count(*) from ldy.t1;
COUNT(*)
----------
605136
SQL> col segment_name for a20
SQL> col tablespace_name for a20
SQL> select segment_name,tablespace_name,bytes/1024/1024 mb from dba_segments where owner='LDY';
SEGMENT_NAME TABLESPACE_NAME MB
-------------------- -------------------- ----------
T1 LDY 23
关闭数据库,将表空间的其中一个数据文件删除,启动后报错:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 230689668 bytes
Database Buffers 373293056 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORADATA\LDY01.DBF'
此时数据库为mount状态。
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
增加回该数据文件。
SQL>alter database create datafile 'E:\ORACLE\ORADATA\LDY01.DBF';
数据库已更改。
介质恢复。
SQL>recover datafile 6;
完成介质恢复。
数据库打开,正常查询。
SQL> alter database open;
数据库已更改。
SQL> select count(*) from ldy.t1;
COUNT(*)
----------
605136
附加实验:
同样一张表:
SQL> select count(*) from t1;
COUNT(*)
----------
706000
SQL> select segment_name,tablespace_name,bytes/1024/1204 mb from dba_segments where
owner='LDY';
SEGMENT_NAME TABLESPACE_NAME MB
----------------- ------------------------------ ----------
T1 LDY 22.9634551
之后切换log。
SQL> alter system switch logfile;
系统已更改。
将数据库关闭后,删除E:\ORACLE\ORADATA\目录,该目录下只有LDY表空间的文件。
同样启动:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 243272580 bytes
Database Buffers 360710144 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'E:\ORACLE\ORADATA\LDY01.DBF'
在新的路径下创建数据文件:
alter database create datafile 'E:\ORACLE\ORADATA\LDY01.DBF' as 'E:\ORACLE\LDY01.DBF';
alter database create datafile 'E:\ORACLE\ORADATA\LDY02.DBF' as 'E:\ORACLE\LDY02.DBF';
alter database create datafile 'E:\ORACLE\ORADATA\LDY03.DBF' as 'E:\ORACLE\LDY03.DBF';
之后恢复表空间:
SQL> recover tablespace ldy;
完成介质恢复。
打开数据库:
SQL> alter database open;
数据库已更改。
阅读(1201) | 评论(0) | 转发(0) |