--SESSION的概念
新窗口(不同SESSION)查询到1 a的原理,是由于存在undo表空间,oracle将修改前的数据放在undo表空间
/*SESSIO会话 --通过session信息查找对应的操作系统进程
select distinct sid from v$mystat; --查询当前SESSION的ID
Select * From v$session where sid in (143) --查看SESSION,PADDR=1FE4C60C 操作系统进程号,PROCESS 236:3628 PLSQL进程号:客户端线程(linux只有客户端线程)
SELECT * FROM V$PROCESS WHERE ADDR = '1FE4C60C' --PID=15 oracle分配的id,SPID=1852 服务器端操作系统对应的线程
UNIX下根据SPID=1852 在线程中直接KILL就可以了
windows下 只能看到ORACLE.EXE的进程号 有2中方法
方法1:需要在oracle其他SESSION中执行以下语句
ALTER SYSTEM KILL SESSION(145,1852) --将SESSION在oracle中kill,所占资源将在一段时候后被PMON释放
方法2:CMD下使用orakill杀进程 orakill sid thread
orakill testrid 1852 --删除成功显示:Kill of thread id 1852 in instance testrid successfully signalled.
*/
--windows下查看现成工具process explorer
Select * From v$mystat
--==================
SID:System Identifier --数据库的SID
SID:Session Identifier --SESSION的SID
--==================
--*************CONNECT的概念
--当使用sqlplus ta/ta@testdb输入的用户和密码是错误的时候
Select Count(*) From v$session ; --SESSION数17个
Select Count(*) From v$process --进程19个,默认比SESSION多1个,另外一个就是输入错误用户和密码的连接进程
Select addr From v$PROCESS
Minus
Select paddr FROM V$SESSION
Select * From SYSTEM_PRIVILEGE_MAP --系统权限表
Select * From DBA_ROLES --角色表
Select * From DBA_SYS_PRIVS Where GRANTEE='CONNECT' --CONNECT角色的权限 CREATE SESSION
--*************ROWID
Select T.*,Rowid From T
AAAC78 AAB AAAHMK AAA
Segment 段编号 相对编号,表空间内部文件的标识 数据块 行
--====================
Select object_id,data_object_id From dba_objects Where object_name ='T';--obcject_id = 10256,data_object_id = 12028,
--obcject_id<>data_object_id的情况,1.alter table t move;--移动后ROWID改变
省略部分,详细介绍见047-11.rowid和index的原理.sql
Select * From dba_objects Where data_object_id Is Null --没有data_object_id的object不是段segment,如job,procedure
--====================
--************UNDO表空间
Select * From dba_tablespaces
Select * From dba_data_files
Select * From dba_temp_files
Select * From dba_segments Where tablespace_name='UNDOTBS2' --查看UNDO表空间段 回滚段
Select * From dba_extents Where segment_name = 'TT'
Select * From dba_tables Where Table_name = 'TT'
--创建UNDO表空间
Create Undo Tablespace undotbs2 Datafile 'C:\oracle\product\10.2.0\oradata\undotbs02.dbf' Size 10m;
Insert Into t Values(1,'a',Sysdate)
Insert Into t Values(2,'b',Sysdate)
Insert Into t Values(3,'d',Sysdate)
Update t Set Name='c' Where Id = 3 --未提交
Select * From t --本窗口看到 1 c sysdate
重打开一个cmd窗口:
cd \ --操作系统验证
sqlplus / As Sysdba --操作系统验证后,不需要密码即可登录sys用户
Select * From system.t --新窗口看到 3 d sysdate
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15810196/viewspace-1130230/
,如需转载,请注明出处,否则将追究法律责任。