查询Oracle正在执行的SQL语句
from V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS AND A.SQL_HASH_VALUE=B.HASH_VALUE order by b.cpu_time desc
select tablespace_name,sum(bytes)/1024/1024/1024 from dba_data_files group by tablespace_name;
表空间的空闲容量:
select tablespace_name,sum(bytes) from dba_free_space group by tablespace_name;
系统表空间:
select tablespace_name from dba_tablespaces;
系统数据文件:
select file_name from dba_data_files;
系统控制文件:
select value from v$parameter where name=’control_files’;
系统重做日志文件:
select member from v$logfile;
归档日志文件:
select value from v$parameter where name=’log_archive_dest’;
清空临时表空间
create temporary tablespace TEMP2 TEMPFILE 'e:/oradata/temp02.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --创建中转临时表空间
3.alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2
4.drop tablespace temp including contents and datafiles;--删除原来临时表空间
5.create temporary tablespace TEMP TEMPFILE 'D:/oracle/product/10.2.0/oradata/orcl/temp01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --重新创建临时表空间
6.alter database default temporary tablespace temp; --重置缺省临时表空间
drop tablespace temp2 including contents and datafiles;
清除undo空间
SQL>connsys/sms@smsdbas sysdba
SQL>create undo tablespace UNDOTBS2 datafile 'e:/oradata/UNDOTBS02.DBF'size 1024M extent management local;
SQL>alter system set undo_tablespace=UNDOTBS2;
SQL>drop tablespace UNDOTBS1 including contents;
SQL>shutdown immediate
SQL>host del C:/oracle/oradata/smsdb/UNDOTBS01.DBF;
删除一个undo表空间出错默认分类 2008-10-15 15:18:17 阅读32 评论0 字号:大中小 订阅
问题:删除一个undo表空间出错
错误信息:ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间
问题重现:
1、创建一个新的undo表空间
SQL>Create undo tablespace undo2 datafile’ C:/oradata/jjfx/gajt_data/undo2.dbf’size 10000M;
2、切换undo表空间
SQL>Alter system set undo_tablespace=undo2;
3、删除原有的表空间
SQL>Drop tablespace undoTBS including contents;
ORA-01548: 已找到活动回退段'_SYSSMU1$',终止删除表空间
解决办法:
1、查看所有回滚段信息:
2、 select segment_name ,status,tablespace_name from dba_rollback_segs;
结果如下:
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM ONLINE SYSTEM
_SYSSMU1$ NEEDS RECOVERY UNDOTBS1
_SYSSMU2$ NEEDS RECOVERY UNDOTBS1
_SYSSMU3$ NEEDS RECOVERY UNDOTBS1
_SYSSMU4$ NEEDS RECOVERY UNDOTBS1
_SYSSMU5$ NEEDS RECOVERY UNDOTBS1
_SYSSMU6$ NEEDS RECOVERY UNDOTBS1
_SYSSMU7$ NEEDS RECOVERY UNDOTBS1
_SYSSMU8$ NEEDS RECOVERY UNDOTBS1
_SYSSMU9$ NEEDS RECOVERY UNDOTBS1
_SYSSMU10$ NEEDS RECOVERY UNDOTBS1
SEGMENT_NAME STATUS TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU11$ OFFLINE UNDO2
_SYSSMU12$ OFFLINE UNDO2
_SYSSMU13$ OFFLINE UNDO2
_SYSSMU14$ OFFLINE UNDO2
_SYSSMU15$ OFFLINE UNDO2
_SYSSMU16$ OFFLINE UNDO2
_SYSSMU17$ OFFLINE UNDO2
_SYSSMU18$ OFFLINE UNDO2
_SYSSMU19$ OFFLINE UNDO2
_SYSSMU20$ OFFLINE UNDO2
已选择21行。
这说明有前10条记录是在UNDOTBS1表空间回滚事务。这就是UNDOTBS1不能删除的原因。
3、创建pfile
由于spfile是一个二进制文件,不能在原文件上修改,因此可以根据它生成一个新的配置文件—pfile.
a)、查看系统是以pfile还是spfile启动
Select isspecified,count(*) from v$spparameter group by isspecified;
如果返回结果里有true,表明oracle使用spfile的配置启动。如果全为false,则表明使用pfile启动。
b)、查看spfile本地位置
show parameter spfile;
创建pfile过程如下:
SQL>Create pfile=’D:pfileSID.ora’from spfile;
所创建的文件可以在spfile同级目录下找到。我生成的是pfilejjfx.ora
4、添回过漏信息:
修改pfilejjfx.ora,在最后添加如下语句:
_CORRUPTED_ROLLBACK_SEGMENTS = (_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$,_SYSSMU11$,_SYSSMU12$,_SYSSMU13$,_SYSSMU14$,_SYSSMU15$,_SYSSMU16$,_SYSSMU17$,_SYSSMU18$,_SYSSMU19$,_SYSSMU20$,_SYSSMU21$,_SYSSMU22$,_SYSSMU23$,_SYSSMU24$,_SYSSMU25$,_SYSSMU26$,_SYSSMU27$,_SYSSMU28$,_SYSSMU29$,_SYSSMU30$,_SYSSMU31$,_SYSSMU32$,_SYSSMU33$,_SYSSMU34$,_SYSSMU35$,_SYSSMU36$,_SYSSMU37$,_SYSSMU38$,_SYSSMU39$,_SYSSMU40$,_SYSSMU84$,_SYSSMU85$,_SYSSMU86$)
5、关闭服务
Shutdown immediate;
6、使用pfile启动服务
Startup pfile=’ D:/oracle/product/10.2.0/db_1/database/pfilejjfx.ora’
7、删除旧的undow表空间
Drop tablespace undotbs01 including contents;