oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦
简答(20) cursor与reference cursor的区别 Oracle数据库的隔离性特点 Oracle数据库中在startup and shutdown 中文件系统和服务的启动和加载过程
简答(20) cursor与reference cursor的区别 Oracle数据库的隔离性特点 Oracle数据库中在startup and shutdown 中文件系统和服务的启动和加载过程
答案:REF CURSOR游标:
动态游标,在运行的时候才能确定游标使用的查询。分类:
强类型(限制)REF CURSOR,规定返回类型
弱类型(非限制)REF CURSOR,不规定返回类型,可以获取任何结果集。
TYPE ref_cursor_name IS REF CURSOR [RETURN return_type]
Oracle 的隔离级别
SQL92定义的隔离级别在理论上很完善,但是 Oracle 显然认为在实际实现的时候并不应该完全照搬SQL92的模型。
- Oracle不支持 SQL92 标准中的“读取未提交数据(read uncommitted)”隔离级别,想要脏读都没可能。
- Oracle 支持 SQL92 标准中的“读取已提交数据(read committed)”隔离级别,(这也是Oracle默认的隔离级别)。
- Oracle不支持 SQL92 标准中的“可重现的读取(repeatable read)”隔离级别,要想避免“不可重现的读取(nonrepeatable read)”可以直接使用“序列化(serializable)”隔离级别。
- Oracle 支持 SQL92 标准中的“序列化(serializable)”隔离级别,但是并不真正阻塞事务的执行(这一点在后文还有详述)。
- Oracle 还另外增加了一个非SQL92标准的“只读(read-only)”隔离级别。
oracle startup的时候分为三个步骤:
1. Start an instance.
2. Mount the database.
3. Open the database.
三个步骤中所要做的工作主要如下:
1、start an instance
命令为 startup nomount
在这一步中主要工作有:
Reading the parameter file initsid.ora
Allocating the SGA
Starting the background processes
Opening the ALERT file and the trace files
读参数文件是为了读里面的dbname,各个内存参数的大小,比如sga的大小,以便分配内存,还有控制文件的路径等。在这一步并不打开控制文件,所以如果你要重建控制文件的时候,需要工作在这个状态下。
2、Mount the database.
命令为 startup mount,如果在nomount状态下命令为: alter database mount
在这一步中主要工作有:
Associating a database with a previously started instance
Locating and opening the control files specified in the parameter file
Reading the control files to obtain the names and status of the data files and redo log files
在这一步,主要用到的文件是控制文件.然后读控制文件,得到各个数据文件和联机日志文件的名字和状态(online or offline) ,但是并不去检查各个文件是否存在.所以如果你要修改数据文件的名字和重建联机日志文件等操作,就需要工作在mount状态下.因为下一步要打开各个数据文件和联机日志文件,所以如果数据文件不存在,你就需要在mount状态下,恢复文件,才能使下一步不报错误.
3、Open the database.
命令为 startup,如果在mount状态下命令为: alter database open.
在这一步中主要工作有:
Opening the online data files
Opening the online redo log files
在这一步中,数据库主要的工作是打开第2步中在控制文件中读到的在线的联机日志文件和数据文件.如果数据文件和联机日志文件不存在,oracle就会报错.oracle打开数据文件和日志文件之后,会对数据文件和日志文件进行一致性检查,如果发现不一致,会启动SMON进程进行实例恢复.
另外,在整个过程中密码文件都是必须的,因为要验证操作的用户是否具有适当的权限。这个只是从宏观上来看oracle启动的整个过程。
其他:有意思,我也来简答一下(简答哦,前面那位兄弟回答的也不错的,就是有点多了)
1:一个是静态SQL 一个是动态SQL用的
2:多版本一致性
3:nomount --- mount --- open
nomont:仅仅开启pfile spfile
mount:开启控制文件
open:开启其他所有文件 你是网2的
上一个:oracle数据库RMAN备份可以在同一机器上的两个数据库上进行么
下一个:oracle怎么把某个数据库的权限给某个用户