--查询数据在哪个块哪号文件 --empno=7839在4号数据文件(user表空间)的151号块里面 SELECT ENAME, SAL, DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) BLOCK#, DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) AS FILE# FROM SCOTT.EMP WHERE EMPNO = 7839; SELECT * FROM v$datafile; --查看undo是不是自动管理 SQL> show parameter undo_management --查看undo是哪个表空间 SQL> show parameter undo_tablespace --name=SYSTEM为系统段,用来存放系统表空间产生的镜像数据 --其它 非系统回归段,用来存放非系统表空间的镜像 SELECT * FROM v$rollname;
--undo查询视图 SELECT * FROM v$rollstat; SELECT * FROM v$rollname; SELECT * FROM Dba_Segments; SELECT * FROM Dba_Rollback_Segs; SELECT * FROM v$transaction;
--undo表空间保留时间 SQL> show parameter undo_retention --默认为秒 --undo表空间建立 CREATE UNDO TABLESPACE MYUNDO DATAFILE '/u01/app/oracle/oradata/orcl/myundo1.dbf' SIZE 10M AUTOEXTEND ON; --undo删除(当前正在用的无法删) DROP TABLESPACE MYUNDO INCLUDING CONTENTS AND DATAFILES; --改undo表空间 ALTER SYSTEM SET UNDO_TABLESPACE=MYUNDO; --undo改名(oracle重启后undo参数被修改) ALTER TABLESPACE UNDOTBS RENAME TO UNDOTBS2; SELECT tablespace_name FROM Dba_Tablespaces; --undo表空间大小计算 UNDO SPACE=(undo_reterntion*(UNDO blocks PER SECOND*db BLOCK SIZE))+db block_size; SELECT SUM(undoblks)/SUM((end_time-begin_time)*10800) FROM v$undostat; SQL> show parameter undo_re;--undo_reterntion SQL> show parameter block_s;