管理进程和会话

/* 管理服务器操作模式 */

默认情况下,除了OLTP类型的数据库外,DBCA创建的数据库都是使用专用服务器操作模式
确定数据库当前的操作模式:
SQL> select server
  2  from v$session
  3  where audsid=userenv('SESSIONID');

SERVER
------------------
DEDICATED

/* 监视进程状态 */

每个服务进程和后台进程都具有一个对应的跟踪文件.
警告文件的名称通常是<SID>Alert.LOG.它是一个特殊的跟踪文件,记录了数据库中DBA级别的管理操作以及实例内部的错误信息,包括:
* 所有发生过的内部错误(ORA-600),块损坏错误(ORA-1578),死锁错误(ORA-60)
* 所有执行过的DBA操作(CREATE,ALTER,DROP,STARTUP,SHUTDOWN等语句)
* 与共享服务进程和调度进程相关的信息和错误信息
* 数据库和实例启动时说使用的初始化参数设置

跟踪文件和警告文件的存储位置由如下两个初始化参数指定:
BACKGROUND_DUMP_DEST:后台进程的跟踪文件和警告文件的位置,默认为ORACLE_BASE/admin/bdump
USER_DUMP_DEST:服务进程的跟踪文件的位置,默认为ORACLE_BASE/admin/udump

/* 管理用户会话 */

当一个会话被中止时,会话中的尚未提交的事务被回退.
SID:会话系统标识
SERIAL#:会话序列标识
通过会话系统标识和会话序列标识可以唯一确定实例中的一个会话,ORACLE也能区分同一个用户的两次连接.

查看会话:
SQL> select sid,serial#,username,osuser,status
  2  from v$session
  3  where osuser='keke';

       SID    SERIAL# USERNAME       OSUSER          STATUS
---------- ---------- ------------------------------------------
       113      12291 BSP            keke            INACTIVE
       199      26450 BSP            keke            INACTIVE


中止会话:
SQL> alter system kill session '113,12291';

/* 管理事务 */

事务是一项工作中的一个逻辑单元,包含一条或多条SQL语句,是不可分割的最小单元.

当发生如下情况时,ORACLE认为一个事务结束:
* 用户执行COMMIT或ROLLBACK语句
* 用户执行了一条DDL语句
* 用户主动断开到ORACLE的连接,这时用户当前的事务被自动提交
* 用户进程意外中止,这时用户当前的事务将自动回退

事务提交时ORACLE完成的操作:
* 在为该事务指定的回退段中的内部事务表内记录下这个事务已被提交,并且生成一个唯一的系统变更码(SCN)记录在内部事务中,用于唯一标识这个事务
* LGWR将重做日志缓存中的重做记录写入联机重做日志文件,写入重做日志的同时还将写入该事务的SCN
* ORACLE服务进程释放事务所使用的所有记录锁与表锁
* ORACLE通知用户事务提交成功
* ORACLE将该事务标记为完成

回退整个事务的步骤:
* ORACLE通过使用回退段中的回退条目,撤销事务中所有SQL语句对数据库进行的修改
* ORACLE服务进程释放事务使用的所有锁
* ORACLE通知用户事务回退成功
* ORACLE将该事务标记为完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值