缩小甲骨文目录下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文件太大的处理办法