《企业级数据库实验习题.doc》由会员分享,可在线阅读,更多相关《企业级数据库实验习题.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、得 分一、单项选择题(15分,每小题1分)111客户端访问Oracle数据库ORCL,在服务器端下列( )服务的启动不是必须的。A、OracleMTSRecoveryServiceB、OracleOra92TNSListenerC、OracleOra92AgentD、OracleServiceORCL2在服务器安装后创建的数据库ORCL中,SYSTEM用户的默认口令是( )。A、MANAGERB、SYSC、ORACLED、CHANGE_ON_INSTALL3手工创建数据库时,执行CREATE DATABASE语句前,应当先执行( )命令来启动实例。A、STARTUP INSTANCEB、STA
2、RTUP NOMOUNTC、STARTUP MOUNTD、STARTUP RESTRICT4通过SET AUTO OFF关闭自动提交后,下列( )语句需要运行COMMIT来提交对数据库的更新。A、ALTER TABLEB、GRANTC、UPDATED、SELECT5在创建或修改用户时,可以使用下列( )子句来指定系统为用户在USERS表空间上分配的空间配额。A、SIZE 10MB、QUOTA 10MC、DEFAULT 10MD、MAXSIZE 10M6下列哪个后台进程不是ORACLE实例必须启动的进程( )。A、DBWRB、LGWRC、SMOND、ARCn7ORACLE使用下列( )后台进程,
3、用于来释放一个失败的用户进程所占用的资源,并恢复它的正常运行。A、PMONB、LGWRC、SMOND、DBWR8在数据库打开时,下列( )表空间不能切换为脱机状态。A、TEMPB、USERS C、INDEXD、SYSTEM9SGA中哪一个缓存区是以循环方式写入的( )。A、DATABASE BUFFERB、REDO LOG BUFFERC、LARGE POOLD、SHARED POOL10在Oracle数据库中,数据文件、控制文件和重做日志文件的最低数量要求分别是( )。A、2 1 2B、2 2 1C、1 1 2D、1 2 111下面的网络协议中,Oracle 9i不支持的是( )。A、TCP
4、/IP网络协议B、使用SSL的TCP/IP网络协议C、IPS/SPX和LU6.2网络协议D、命名管道12在ORACLE的块空间管理时,下列( )参数设置用于UPDATE操作的预留空间大小。A、INITIALB、PCTFREEC、PCTUSEDD、PCTINC13要改变数据库的归档模式,数据库应当处于哪一种状态下( )。A、不加载状态B、加载但不打开状态C、受限打开状态D、关闭状态14下面选项中,( )不属于ORACLE数据库物理存储结构。A、数据文件B、重做日志文件C、控制文件D、初始化参数文件15下面各种类型的备份中,( )是一致性的完全备份。A、数据库正常关闭后做的完全备份B、联机完全备份
5、C、数据库打开时对脱机表空间做的备份D、热备份得 分二、判断题(15分,每小题1分,正确标T,错误标F)( )16DBA在执行管理操作时,Oracle数据库不能工作在共享服务进程模式,只能工作在专用服务进程模式。( )17在配置监听服务器时,默认的监听器端口是3069。( )18某用户只要被授予CREATE TABLESPACE的系统权限,就可以创建自己专用的系统表空间。( )19在Oracle的表空间的管理中,字典管理方式比本地管理方式能够获得更好的系统性能。( )20在将表空间设置为脱机状态后,属于这个表空间的数据文件仍然处于联机状态。( )21创建用户时,如果没有指定表空间,系统将自动将
6、STSTEM表空间作为用户的默认表空间。( )22只有同时具有CREATE SESSON和RESTRICTED SESSON系统权限的用户才能访问受限状态的数据库。( )23如果为表定义了约束,将在事务提交时进行约束检查。( )24可以为实例启动多个归档进程,以提高归档操作的速度。( )25当参数LOG_ARCHIVE_START设置为TRUE时,系统会马上启用自动归档模式。( )26一个监听器可以同时为多个数据库服务。( )27在非归档模式下,用户只能通过手工方式对重做日志文件进行归档。( )28当Oracle在联机状态下对某数据文件存取发生错误时,系统会自动将此数据文件设置为脱机状态。(
7、)29DBA用户可以在任何时刻删除数据库中的任何用户。( )30在概要文件中,参数PASSWORD_VERIFY_FUNCTION用于指定验证用户口令复杂度的函数。得 分三、实验现象与分析(45分)Oracle的DBA用户SYS在SQL * PLUS中,使用如下命令连接到数据库ORCL:SQL CONNECT SYS/oracleORCL AS SYSDBA系统提示如下错误信息:ERROR:ORA-12541:TNS: 没有监听器31简析出现以上错误的主要原因是什么?如何解决?(7分)原因:监听器没有正确配置。解决方法:在服务器端,运行Net Manager工具,进行服务的监听器的正确配置,然
8、后在WINDOW的服务组件中,重新启动监听器服务OracleOra92TNSListener和相应的数据库服务OracleServiceORCL后,重新在SQL PLUS窗口中登录连接数据库ORCL即可。在解决了以上错误,正常登录后,执行了如下命令:SQL SPOOL D:PARAMETERSQL SHOW PARAMETERSQL SPOOL OFF32简述以上3个命令行的执行结果?(5分)查询数据库ORCL的初始化参数信息,并将查询结果输出到外部文件D:PARAMETER.LST中,在OS中以记事本的方式打开文件,就可以查看各种参数信息。SYS用户在对数据库ORCL脱机备份前,用如下命令先
9、将用户表空间USERS置为脱机状态:SQL ALTER TABLESPACE USERS DATAFILE OFFLINE系统提示如下错误信息:ERROR:ORA-01145:除非启用介质恢复,否则不允许紧急脱机33简析出现以上错误的主要原因是什么?如何解决?(8分)原因:数据工作在非归档模式,置脱机,数据库必须处于归档模式解决:将数据库启动到mount状态,使用alter database archivelog命令更改数据库的归档模式;然后再打开数据库执行数据库的脱机操作。(注意:备份完成后,必须先用recover datafile命令,对数据库执行介质恢复,才能恢复数据库的联机状态。)SY
10、S用户运行如下命令,通过查询动态性能视图V$CONTROLFILE获得ORCL数据库的控制文件信息:SQL SELECT * FROM V$CONTROLFILE系统显示如下信息:STATUS NAME C:ORACLEORADATAORCLCONTROL01.CTL C:ORACLEORADATAORCLCONTROL02.CTL C:ORACLEORADATAORCLCONTROL03.CTL34如何为数据库ORCL添加一个控制文件CONTROL04.CTL?(5分)首先使用如下命令,修改初始化参数文件的control_files参数SQL alter system set control
11、_files= C:ORACLEORADATAORCLCONTROL01.CTL, C:ORACLEORADATAORCLCONTROL02.CTL, C:ORACLEORADATAORCLCONTROL03.CTL, C:ORACLEORADATAORCLCONTROL04.CTLscope=spfile然后运行SQL shutdown immediate,立即关闭数据库,在OS的相应位置,利用已有控制文件,复制生成CONTROL04.CTL文件最后重新打开数据库SYS用户执行如下命令,查询日志组信息:SQL SELECT * FROM V$LOGFILE系统显示如下信息:GROUP# ST
12、ATUS TYPE MEMBER2 ONLINE C:ORACLEORADATAORCLREDO02.LOG1 STALE ONLINE C:ORACLEORADATAORCLREDO01.LOG3 STALE ONLINE C:ORACLEORADATAORCLREDO0301.LOG3 STALE ONLINE C:ORACLEORADATAORCLREDO0302.LOG自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊装 订 线 内 不 要 答 题SYS用户执行如下命令,查询日志组的成员信息:SQL SELECT GROUP#,BYTES,MEMBERS,STATUS FR
13、OM V$LOG系统显示如下信息: GROUP# BYTES MEMBERS STATUS 1 (100M) 1 INACTIVE 2 (100M) 1 CURRENT 3 (100M) 2 INACTIVE35根据以上信息,简析ORACLE的日志管理机制?(7分)说明ORACLE的重做日志文件是多日志组之间循环写,当数据库处于非归档模式,是直接覆盖写,当数据库处于归档模式,覆盖写之前,先将重做日志文件进行归档。SYS用户继续执行如下操作:SQL ALTER DATABASE ADD LOGFILE MEMBERC:ORACLEORADATAORCLREDO0303.LOGTO GROUP 3
14、 SIZE 50M系统提示如下错误信息:ORA-00933: SQL 命令未正确结束36简析出现以上错误的主要原因是什么?写出正确的命令?(5分)同一个日志组的日志文件应该是一样大小的,所以为一个日志组增加一个日志文件时不应该用SIZE语句来指定大小。正确语句:SQL ALTER DATABASE ADD LOGFILE MEMBERC:ORACLEORADATAORCLREDO0303.LOGTO GROUP 3SYS用户,执行如下语句创建表STUDENT:SQL CREATE TABLESTUDENT(SNO CHAR(9),SNAME CHAR(8),SEX CHAR(2))TABLES
15、PACE USERSSTORAGE ( INITIAL 256K,NEXT 512K,MAXEXTENTS 4,PCTINCREASE 50 )37Oracle最多为Student表分配多少区空间?空间大小分别是多少?(8分)Oracle最多为STUDENT表分配4个区空间,其中:1) 第1个区的大小由INITIAL参数指定,大小为256K2) 第2个区的大小由NEXT参数指定,大小为512K3) 第3个区的大小由公式:NEXT *(1 + PCTINCREASE%)指定,大小为768K4) 第4个区的大小由公式:(第3个区空间大小) *(1 + PCTINCREASE%)指定,大小为1152
16、K创建表STUDENT成功,数据库就为表分配了256K的空间(第1个区空间)。得 分四、PL/SQL编程(25分)有表结构如下:1) EMP(EMPNO NUMBER,ENAME CHAR(8),LEN_Of_SERVICE DATE,SAL NUMBER(7,2),DEPTNO NUMBER),各属性的含义依次为:员工编号、员工姓名、工龄,月薪,所属部门;2) DEPT(DEPTNO NUMBER,DNAME CHAR(20) ,ENUM NUMBER),各属性的含义依次为:部门编号、部门名、部门人数;试进行如下PL/SQL编程:38编写一个触发器trgr_Del_Emp,当在表EMP中删除
17、一个员工信息时,表DEPT的ENUM字段值自动减1。(10分)SQL create or replace trigger trgr_Del_Empafter delete on empfor each rowdeclare v_enum dept.enum%type; begin if (:old.deptno is not null) then select enum into v_enum from dept where deptno = :old.deptno; update dept set enum = enum - 1 where deptno = : old.deptno; en
18、d if; end;39编写存储过程AddEmpSal,给员工涨工资,工龄低于10年的涨1000元,大于等于10年且小于等于20年的涨2000元,大于20年的涨3000元;并在输出涨工资前总额,涨工资后总额,及其涨工资的总额。(15分)SQL create or replace procedure AddEmpSal( totalSal1 out number, totalSal2 out number, increSal out number)ASbegin totalSal1 := 0; totalSal2 := 0; increSal := 0; for i_empInfo in (se
19、lect empno, LEN_Of_SERVICE, sal from emp) loop case when (i_empInfo. LEN_Of_SERVICE 20) then update emp set sal = sal + 3000 where empno=i_empInfo.Empno; totalSal1 := totalSal1 + i_empInfo.Sal; increSal := increSal + 3000; else update emp set sal = sal + 2000 where empno=i_empInfo.Empno; totalSal1 := totalSal1 + i_empInfo.Sal; increSal := increSal + 2000; end case; end loop; totalSal2 := totalSal1 + increSal;end;
限制150内