位图索引导致的会话阻塞问题(p7)
Oracle9i&10g编程艺术:深入数据库体系结构第一章 开发成功的Oracle应用位图索引导致的会话阻塞问题(p7)在一个窗口中完成如下操作: scott@CNHTM> create table t(processed_flag varchar2(1));Table created.scott@CNHTM> create bitmap index t_idx on t(processed_flag);Index created.scott@CNHTM> insert into t values('N');1 row created.scott@CNHTM>打开另一个窗口,进行如下操作: scott@CNHTM> insert into t values('N'); 这条语句就会“挂起”,直到在第一个会话中发出commit为止。 --end-- [@more@]
怎么确保最终用户在Oracle数据库中只有一个会话
《Oracle 9i & 10g 编程艺术:深入数据库体系结构》第38页利用概要文件(profile)方式:1、创建一个名称为one_session的概要文件2、为概要文件one_session设置sessions_per_user=1的limit3、为用户分配one_session概要文件4、设置数据库参数resource_limit=true下面演示具体操作过程:[@more@]ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 16 10:12:15 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edi
oracle数据库的挂起(Suspending)和恢复(Resuming)
B14231 第131页alter system suspend语句挂起数据文件和控制文件的I/O操作。挂起状态可以避免备份数据库时的IO操作。当数据库试图进入挂起状态时,允许当前活动的事务完成,新发起的事务会进入队列中。下面演示将数据库挂起以及恢复的过程[@more@]登录数据ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Thu Mar 11 09:49:32 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith
oracle数据库的静默(Quiesce)状态
B14231 第129页一、静默状态(quiesce state)的用处1、在数据库静默状态的时候,只允许dba(这里dba指sysdba或sysoper)执行数据库操作;2、在oracle9i及之前,要达到静默状态的功能,只能重启数据库到限制模式(restricted mode);二、将数据库设置为静默状态的方法是使用"ALTER SYSTEM QUIESCE RESTRICTED"语句。这个语句会等待所有active session变为noactive 状态时完成。[@more@]1、用scott用户,开启一个事务,不提交ora_test@oracle[/home/oracle]> sqlplus scott/tigerSQL*Plus: Release 10.2.0.1.0 - Production
启动oracle数据库到只读模式
(b-14231 第126页)启动数据库到mount状态 ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Mar 7 17:27:26 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.idle> startup mount;ORACLE instance started.Total System Global Area 209715200 bytesFixed Size 1218532 bytesVariable Size 113248284 bytesDatabase Buffers 88080384 bytesRedo Buffers 7168000 bytesDatabase mounted.[@more@]启动数据库到只读模式 idle> alte
启动数据库实例的限制模式(restrict mode)的方法
(b14231 第123页) 可以启动数据库实例到限制模式(restrict mode),这时只有管理员和具有restricted session权限的用户可以登录数据库。下面演示打开和关闭限制模式的方法:启动数据库到限制模式ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Mar 7 15:26:01 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.idle> startup restrictORACLE instance started.Total System Global Area 209715200 bytesFixed Size 1218532 bytes
查看oracle数据库实例参数的集中方式及其异同
(b14231 第110页) 下面是查看oracle实例中数据库参数的集中方法 方式 说明 SHOW PARAMETERS 这个 SQL*Plus 命令显示当前生效的所有参数值 CREATE PFILE 这个sql语句从二进制的spfile文件生成文本的pfile文件 V$PARAMETER 这个视图显示当前生效的参数值。 V$PARAMETER2 这个视图显示当前生效的参数值。并且比较容易区分各个参数值,因为一个参数的每一个值单独显示在一行中(如control_files 参数)。 V$SPPARAMETER 这个视图显示当前生效的参数值。这个视图中当某个参数没有使用的时候,ISSPECIFIED列的值为FALSE --end-- [@more@]
oracle中spfile的默认位置
(b14231 第107页)oracle中spfile的默认位置 平台 默认名称 默认位置 UNIX and Linux spfile$ORACLE_SID.ora $ORACLE_HOME/dbs 或者与数据文件在同一目录 Windows spfile%ORACLE_SID%.ora %ORACLE_HOME%database 实例启动时参数文件的搜索顺序 首先搜索spfile搜索顺序是首先找spfile$ORACLE_SID.ora,如果没有找到,则找spfile.ora如果没找到spfile,则搜索pfile:init$ORACLE_SID.ora如果spfile是裸设备,则会在init$ORACLE_SID.ora文件中使用如下方式指定使用的裸设备:*.spfile=/dev/rlv_spfile --end-- [@more@]
限制oracle数据库实例中的用户(user)总数
如果要限制oracle数据库实例中用户(user)的总数,可以使用LICENSE_MAX_USERS来完成,如设置:LICENSE_MAX_USERS = 200则限定数据库实例的总用户(user)数不能超过200(b14231 第104页)下面演示其效果[@more@]登录数据库ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 23 09:14:58 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data M
取得sga_max_size的建议值
但需要将sga从手动管理修改为自动管理的时候,可以使用如下sql取得合适的sga_max_size的值:(b14231 第96页)sys@CNHTM> SELECT (2 (SELECT SUM(value) FROM V$SGA) -3 (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)4 ) "SGA_TARGET"5 FROM DUAL;SGA_TARGET----------2097152001 row selected.--end--[@more@]
手工创建oracle数据库
下面过程演示手工创建数据库实例的过程:(b14231 第75-80页)1、设置oracle数据库的sidora_test@oracle[/home/oracle]> export ORACLE_SID=cnhtm[@more@]2、确定数据库的认证方式如果需要在其他客户端以sysdba方式连接这个实例,按如下方法创建口令文件ora_test@oracle[/home/oracle]> orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y3、编辑参数文件创建参数文件,文件名为 $ORACLE_HOME/dbs/init$ORACLE_SID.ora,其内容如下ora_test@oracle[/home/oracle]> cat $ORACLE_HOME/dbs/init$ORA
remote_login_passwordfile=shared的时候的限制
shared口令文件不能被编辑。也就是说不能向shared口令文件增加用户。如果修改sys用户或者其他具有sysdba、sysoper权限的用户的的口令的时候会报错。如果要增加用户或修改sysdba、sysoper用户的密码,需要设置REMOTE_LOGIN_PASSWORDFILE参数为exclusive然后再设置为shared。(b14231 第66页) 下面是过程演示:[@more@]1、remote_login_passwordfile参数的默认值 查看remote_login_passwordfile参数sys@CNHTM> show parameter remote_login_passwordfileNAME TYPE VALUE------------------------------------ ----------- -------------
使用oracle的操作系统认证(Operating System Authentication)的方法
对数据库管理员使用操作系统认真的方法,(b14231 第63页)1、创建操作系统用户创建操作系统用户,并将这个用户指定为dba用户组ora_test@root[/root]> useradd -G dba -g oinstall oradbaora_test@root[/root]> id oradbauid=501(oradba) gid=502(oinstall) groups=502(oinstall),501(dba)[@more@]2、修改用户的密码ora_test@root[/root]> passwd oradbaChanging password for user oradba.New UNIX password:BAD PASSWORD: it is based on a dictionary wordRetype new UNIX password:passwd: all authentication tokens update
sysdba登录oracle的schema是sys
当使用sysdba或sysoper特权登录oracle数据库的时候,会使用默认的schema,并不是使用登录数据库的时候指定的用户的schema。sysdba的默认schema是syssysoper的默认schema是public(b14231 第60页)下面是一个检验如上说法的例子[@more@]登录数据库ora_test@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 2 19:01:04 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Parti
查询oracle各组件的版本
查看oracle个组件版本号的语句(b14231 第57页) sys@CNHTM> COL PRODUCT FORMAT A35sys@CNHTM> COL VERSION FORMAT A15sys@CNHTM> COL STATUS FORMAT A15sys@CNHTM> SELECT * FROM PRODUCT_COMPONENT_VERSION;PRODUCT VERSION STATUS----------------------------------- --------------- ---------------NLSRTL 10.2.0.1.0 ProductionOracle Database 10g Enterprise Edit 10.2.0.1.0 ProdionPL/SQL 10.2.0.1.0 ProductionTNS for Linux: 10.2.0.1.0 Production--end-- [@more@]