undo表空间

--查询数据在哪个块哪号文件
--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;



猜你喜欢

转载自blog.csdn.net/zheng1513759191/article/details/80345862