非当前的还原表空间的恢复
======================================================新建一个还原表空间===========================================================================
1、查询所有的还原表空间:
SQL> select tablespace_name,status,contents from dba_tablespaces
2 where contents='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
2、输出还原操作相关的参数:
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 7200
undo_tablespace string UNDOTBS1
3、新建一个还原表空间:
create undo tablespace lianxi_undo
datafile 'C:\orcl1122\undo\lianxi_undo.dbf'
size 50M
extent management local
4、查看:
SQL> select tablespace_name,status,contents from dba_tablespaces
2 where contents='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
LIANXI_UNDO ONLINE UNDO
SQL> show parameter undo;还是原来的空间
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 7200
undo_tablespace string UNDOTBS1
SQL> select file_id,file_name,tablespace_name ,bytes/1024/1024M
2 from dba_data_files where tablespace_name like '%UNDO%';
FILE_ID FILE_NAME TABLESPACE_NAME M
---------- -------------------------------------------------------------------------------- ------------------------------ ----------
3 C:\ORACEL\BASE\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1 100
12 C:\ORCL1122\UNDO\LIANXI_UNDO.DBF LIANXI_UNDO 50
==================================================删除新建的还原表空间,制造事件=====================================================================
1、关闭数据库、 手动删除新建的表空间
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2、启动数据库:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 289407440 bytes
Database Buffers 239075328 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 12: 'C:\ORCL1122\UNDO\LIANXI_UNDO.DBF'
3、将此文件脱机 删除:
SQL> alter database datafile 12 offline drop;
数据库已更改。
4、启动数据库:
SQL> alter database open;
数据库已更改。
5、查询还原表空间: 已经删除了,但数据库认为还在呢。
SQL> select tablespace_name,status,contents from dba_tablespaces where contents
='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
LIANXI_UNDO ONLINE UNDO
6、再次执行删除表空间
SQL> drop tablespace lianxi_undo;
表空间已删除。
7、执行新建的语句,再次新建一份即可。
create undo tablespace lianxi_undo
datafile 'C:\orcl1122\undo\lianxi_undo.dbf'
size 50M
extent management local;
======================================================新建一个还原表空间===========================================================================
1、查询所有的还原表空间:
SQL> select tablespace_name,status,contents from dba_tablespaces
2 where contents='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
2、输出还原操作相关的参数:
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 7200
undo_tablespace string UNDOTBS1
3、新建一个还原表空间:
create undo tablespace lianxi_undo
datafile 'C:\orcl1122\undo\lianxi_undo.dbf'
size 50M
extent management local
4、查看:
SQL> select tablespace_name,status,contents from dba_tablespaces
2 where contents='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
LIANXI_UNDO ONLINE UNDO
SQL> show parameter undo;还是原来的空间
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 7200
undo_tablespace string UNDOTBS1
SQL> select file_id,file_name,tablespace_name ,bytes/1024/1024M
2 from dba_data_files where tablespace_name like '%UNDO%';
FILE_ID FILE_NAME TABLESPACE_NAME M
---------- -------------------------------------------------------------------------------- ------------------------------ ----------
3 C:\ORACEL\BASE\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1 100
12 C:\ORCL1122\UNDO\LIANXI_UNDO.DBF LIANXI_UNDO 50
==================================================删除新建的还原表空间,制造事件=====================================================================
1、关闭数据库、 手动删除新建的表空间
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2、启动数据库:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 289407440 bytes
Database Buffers 239075328 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 12: 'C:\ORCL1122\UNDO\LIANXI_UNDO.DBF'
3、将此文件脱机 删除:
SQL> alter database datafile 12 offline drop;
数据库已更改。
4、启动数据库:
SQL> alter database open;
数据库已更改。
5、查询还原表空间: 已经删除了,但数据库认为还在呢。
SQL> select tablespace_name,status,contents from dba_tablespaces where contents
='UNDO';
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
UNDOTBS1 ONLINE UNDO
LIANXI_UNDO ONLINE UNDO
6、再次执行删除表空间
SQL> drop tablespace lianxi_undo;
表空间已删除。
7、执行新建的语句,再次新建一份即可。
create undo tablespace lianxi_undo
datafile 'C:\orcl1122\undo\lianxi_undo.dbf'
size 50M
extent management local;