现在的位置: 首页 > 数据库 > 正文

还原表空间、临时表空间及索引表空间恢复优化

2014年11月18日 数据库 ⁄ 共 1090字 暂无评论 ⁄ 阅读 804 次

Oracle数据库系统在进行备份和恢复时要消耗大量的系统资源,特别是所操作的表空间(数据文件)较大时。所以,我们有必要减少备份或恢复的数据量以提高系统效率。如,对于某些表空间不备份不恢复,而直接重建。不将备份文件复制到旧路径,而直接修改文件路径使用备份数据文件等。

非当前还原表空间恢复:

对于非当前表空间,我们可以直接重建而不进行备份恢复。

查看当前还原表空间,使用语句:show parameter undo;。

查看系统所有还原表空间,使用语句:

select tablespace_name,status,contents from dba_tablespaces where contents = ‘UNDO’;

查看还原表空间数据文件及对应还原表空间:

select file_id,file_name,tablespace_name from dba_data_files where tablespace_name like ‘%UNDO%’,在创建还原表空间时我们最好在表空间名上带上UNDO以识别。

非当前还原表空间故障恢复步骤:

1)将数据文件设为脱机并删除,使用语句:alter database datafile num offline drop;,然后open数据库。

2)查看数据文件对应的表空间,使用语句:select file_id,file_name,tablespace_name from dba_data_files where tablespace_name like ‘%UNDO%’,使用drop故障非相前还原表空间。

3)用create undo tablespace重新创建还原表空间。

只读表空间和临时表空间恢复:

只读表空间只需要备份一次就好了,但在表空间状态更改前后都必须备份控制文件。

丢失临时文件并不影响Oracle数据库的启动,Oracle数据库可以在丢失临时文件的情况下正常打开。在这种情况下,Oracle数据库系统会自动创建丢失的临时文件,同时将相关信息写入报警文件(alert log)。

临时表空间文件丢失,可以直接重建一个新文件,然后drop掉丢失文件就OK了。

索引表空间恢复:

只存放索引的表空间可以不做备份,而采取重建的方法来恢复。在重建索引时可以使用nologging选项,这样创建索引将不做redo,可以提高系统效率。

在表空间恢复时,最耗时的部分可能是往回复制备份文件的操作。这时,我们可以直接使用语句修改表空间数据文件的指向,然后使用recover命令。节省文件复制所消耗的时间,以提升恢复速度。

声明:该笔记转载自《Oracle DBA培训教程》,仅用于个人学习,若侵犯到您的版权敬请告知!

» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?