曾经有朋友问到,在迁移(同平台)的时候由于UNDO表空间过大,不打算要现在的UNDO文件,想要重建一个,该如何做,是否需要通过一些隐含参数来做特殊处理?前提是他拥有一个有效的冷备份(或者Clean Shutdown的数据库)。拥有冷备份,那么这个操作是很简单的,并不需要使用隐含参数。
以下是一个简单的测试过程,重建UNDO表空间的步骤和此类似。
1.假定拥有一个Clean shutdown的数据库(以shutdown immediate方式关闭并执行备份)
C:\Documents and Settings\gqgai>sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.6.0 - Production on Fri Mar 4 20:55:59 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> shutdown immediate;
2.同平台迁移时可以放弃UNDO表空间,这时候启动会抱错ORA-01157:
SQL> startup ORACLE instance started. 。。。 Database mounted. ORA-01157: cannot identify/lock data file 2 - see DBWR trace file ORA-01110: data file 2: 'D:\ORADATA\EYGLE\UNDOTBS01.DBF'
3.删除UNDO文件启动数据库
SQL> alter database datafile 'D:\ORADATA\EYGLE\UNDOTBS01.DBF' offline drop; Database altered. SQL> alter database open; Database altered. SQL> select name from v$datafile; NAME ------------------------------------------------------- D:\ORADATA\EYGLE\SYSTEM01.DBF D:\ORADATA\EYGLE\UNDOTBS01.DBF D:\ORADATA\EYGLE\EYGLE.DBF
4.重建UNDO表空间,并切换为当前UNDO表空间
SQL> create undo tablespace undotbs2 2 datafile 'd:\oradata\eygle\undotbs2.dbf' size 10M; Tablespace created. SQL> ALTER SYSTEM SET undo_tablespace='UNDOTBS2'; System altered.
然后数据库即可恢复正常使用。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。