对于undotbs01.dbf文件太大的处理办法

  

缩小甲骨文目录下UNDOTBS01。DBF文件的大小


<强>使用系统用户登录甲骨文

linux下执行

修改数据库数据文件'/opt/Oracle/oradata/res/undotbs01。dbf的调整100;

windows下执行改变数据库功能的E: \ \ ORADATA \ UNDOTBS01甲骨文。DBF的调整100;


其中'/opt/oracle/oradata/res/undotbs01。dbf的为您系统中UNDOTBS01.DBF文件的存储路径;100米为重置后的大小,根据需要修改。


1。创建一个新的小的撤消表空间

linux下执行:

创建undotbs2撤消表空间数据文件'/opt/oracle/oradata/res/undotbs02.dbf”   大小100重用autoextend>创建撤消表空间UNDOTBS2丢失“E: \ oradata \ UNDOTBS02.DBF”   大小100重用AUTOEXTEND>选择r。“状态”状态,   r。segment_name“名称”,   r。tablespace_name“表”,   年代。区段“范围”,   TO_CHAR ((s.bytes/1024/1024),“99999990.000”)“大小”   从系统。dba_rollback_segs r,系统。dba_segments年代   在r。segment_name=s.segment_name   和s。segment_type(“回滚”、“TYPE2撤销”)   和r。tablespace_name=' UNDOTBS1 '和状态=霸谙摺?如果上面有状态在线的对象,可以查询具体对象的sid,串行#


,(4)查看当前是什么在使用这个回滚段

选择r.NAME s.sid, s。串行#系列,   年代。用户名、s。机,   t.start_time, t。的地位,   t。used_ublk,   substr (s。项目1,15)“操作”   从v会话年代美元,美元交易t v rollname r美元,美元rollstat g   在t。addr=s.taddr   和t。xidusn=r.usn   和r。usn=g.usn   ORDER BY t。used_ublk desc; ——比如:对象为:sid 474系列6794
,(5)根据sid查出具体的sql
从v会话美元,选择sql_text v $ sqltext_with_newlines b   解码(a。sql_hash_value, 0 prev_hash_value sql_hash_value)=b.hash_value   和a.sid=, sid命令块;

如果该sql不重要,可以直接杀该会话。

——(6)杀死会话

改变系统杀死会话“474、6794”;


,(7)删除旧的撤消表空间

依旧使用系统用户登录,执行

删除表空间undotbs1包括内容和数据文件来完成;(删除表空间undotbs1包括内容;这个只删除的表空间名没有删除掉数据文件的)


,(8)确认删除是否成功;

选择从v $表空间名称;


,(9)确定$ ORACLE_HOME/dbs/spfileoinms。奥拉内容是否发生变更:

更多美元spfileoinms.ora

* .undo_management='汽车'

* .undo_retention=10800

*。undo_tablespace=' UNDOTBS2 '

——(10)如果没有发生变更请执行如下语句:

完成创建从spfile pfile;

文件创建。


——(11)删除原撤消表空间的数据文件,其文件名为步骤中执行的结果。

# rm ORACLE_BASE/oradata ORACLE_SID/undotbs01美元。dbf


(虽然已经删除了系统所对应的撤消表空间的数据文件,但用df - h查看,该系统空间不能释放。

主要是由于甲骨文的一个进程在访问该文件。可以杀死甲骨文访问进程,或者重启数据库后,即可释放系统的空间。)


3。重启数据库

可以使用系统用户,从sqlplus登录,执行启动力命令,强制重启

若觉得强制重启不安全的话,可以先关闭立即在启动数据库启动


至此,UNDOTBS01。DBF文件缩小完毕,如果想要还原原来的表空间名称,重新执行方法二即可。


4。切换回UNTOTBS1表空间

——(1)新建立UNDOTBS1表空间

创建撤消表空间UNDOTBS1
数据文件'/oracle/oradata/撤销/undotbs01。dbf '
大小100 autoextend>选择r。“状态”状态,   r。segment_name“名称”,   r。tablespace_name“表”,   年代。区段“范围”,   TO_CHAR ((s.bytes/1024/1024),“99999990.000”)“大小”   从系统。dba_rollback_segs r,系统。dba_segments年代   在r。segment_name=s.segment_name   和s。segment_type(“回滚”、“TYPE2撤销”)   和r.tablespace_name=' UNDOTBS2 '   ORDER BY 5 DESC;

,(5)删除

删除表空间UNDOTBS2包括内容和数据文件来完成;

,(6)确认删除是否成功;

选择从v $表空间名称;


<强>

修改数据库数据文件'/u01/app/oracle/oradata/orcl/undotbs01。dbf的autoextend;      修改数据库数据文件' D: \ app \管理员\ oradata \ undotbs01。dbf的autoextend;

对于undotbs01.dbf文件太大的处理办法