综合训练项目和练习参考答案
第1章练习参考答案 1.C 2.D 3.B 4.B
--------------------------------------------------------------------------- 第2章练习参考答案 1.C 2.C 3.A 4.B
--------------------------------------------------------------------------- 第3章练习参考答案
1.B 2.D 3.B 4.A 5.B 6.C 7.A
--------------------------------------------------------------------------- 第4章练习参考答案
1.C 2.B 3.D 4.D 5.D 6.A 7.B 8.D 9.C 10.B 11.B 12.C 13.C 14.D 15.C 16.C 17.D
--------------------------------------------------------------------------- 第5章综合训练项目参考答案 1.使用初始化参数文件。
1)以sysdba身份连接到数据库,关闭数据库。 CONN / AS SYSDBA SHUTDOWN
2)从spfile创建一个新的pfile,将pfile 存放在$Oracle_Home\\database 路径
下。
CREATE PFILE FROM SPFILE;
在$Oracle_Home\\database 路径下创建静态初始化参数文件。 3)修改pfile中的参数open_cursors=200。 用写字板修改中的参数open_cursors=200。 4)使用pfile初始化参数文件启动数据库。
STARTUP PFILE='D:\\Oracle\\ORA92\\database\\'; 其中路径根据具体安装确定。 5)检查初始化参数open_cursors的值。 SHOW PARAMETER OPEN_CURSOR, 显示结果值应为200。
6)关闭数据库,重新用spfile启动数据库。 SHUTDOWN,STARTUP
7)动态修改参数open_cursors=300,但重新启动后参数原值保持不变。 ALTER SYSTEM SET OPEN_CURSORS=300 SCOPE=MEMORY 2.验证只读方式。
1)关闭数据库并且以只读方式打开。 SHUTDOWN
STARTUP OPEN READ ONLY;
2)以SCOTT用户连接到数据库,插入一条记录到EMP表。 解释发生的现象和原因。 CONN SCOTT/TIGER
INSERT INTO emp(empno,ename) VALUES(8001,'test'); 插入失败,因为数据库处于只读状态。 3)将数据库改为可读可写状态。 SHUTDOWN,STARTUP 3.验证关闭方式。
1)打开一个SQL*Plus,以SCOTT用户连接,修改EMP表SCOTT的工资为9000,但
不提交。
SQLPLUS /NOLOG SQL>CONN SCOTT/TIGER
SQL>UPDATE EMP SET SAL=9000 WHERE EMPNO=7788;
2)在以SYS账户登录的会话中。并且执行事务关闭,能否关闭,解释原因。 SQL>SHUTDOWN TRANSACTIONAL
处于等待,等待所有事务的完成后关闭。
3)在SCOTT会话中执行回滚操作,并退出(Exit), 解释发生的现象和原因。 SQL>ROLLBACK;
SYS会话开始执行关闭操作。 4.验证受限状态。
1)打开一个SQL*Plus,以SYS用户连接,打开数据库到OPEN状态。 SQLPLUS /NOLOG SQL>CONN / AS SYSDBA
2)重新启动一个SQL*Plus,并以SCOTT用户连接。 SQLPLUS /NOLOG SQL>CONN SCOTT/TIGER
3)在SYS会话中,将数据库切换至受限状态。 SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
4)在SCOTT会话中,查询EMP表中的记录,能否成功,解释原因。 SQL>SELECT * FROM EMP;
成功,启动受限状态,不影响已登录的会话。 5)退出SCOTT会话,重新连接,能否成功,解释原因。 SQL>CONN SCOTT/TIGER
登录失败,数据库系统处于限制状态,SCOTT无权登录。 6)在SYS会话中,将数据库退出受限状态,切换至正常状态。 SQL>ALTER SYSTEM DISABLE RESTRICTED SESSION; 7)重新连接到SCOTT用户,能否成功,解释原因。 SQL>CONN SCOTT/TIGER 成功
第5章练习参考答案
1.C 2.D 3.B 4.A 5.C 6.B 7.C
--------------------------------------------------------------------------- 第6章综合训练项目参考答案
1.以sysdba身份连接到数据库,查看控制文件位置和名称。 SQL>CONN / AS SYSDBA
SQL>SELECT * FROM V$CONTROLFILE;
2.查询控制文件中可记载的最大数据文件个数是多少。
SQL>SELECT * FROM V$CONTROLFILE_RECORD_SECTION; 查看DTATAFILE记录RECORDS_TOTAL字段
3.通过服务器端初始化参数建立改静态初始化参数,并修静态初始化参数文件,去掉一个控制文件。
参看第4章,修改control_files参数。
4.指定用静态初始化参数启动数据库,运行一段时间。 STARTUP PFILE=…
5.使用show命令显示控制文件的名称和位置。 SQL>SHOW PARAMETER control_files
6.重新用服务器端初始化参数启动数据库,说明出错的现象和原因。 SQL>STARTUP
装载失败,原因是重新启动,初始化参数中,仍然指定3个控制文件,其中的一个
控制文件已经失效
7.描述采取的对策,维护控制文件,直到数据库能够正常打开。 方法1:修改服务器端初始化参数,去掉失效的控制文件。 方法2:用好的初始化参数文件覆盖失效的初始化参数文件 第6章练习参考答案
1.B 2.D 3.C 4.C 5.D
--------------------------------------------------------------------------- 第7章综合训练项目参考答案
1.列出现有日志文件的位置和名称;显示数据库所拥有的重做日志文件组号、成员的数量和日志文件的大小。
SQL>CONN / AS SYSDBA
SQL> SELECT member FROM v$logfile;
SQL> SELECT group#,members,bytes FROM v$log; 2.查询数据库的归档模式;查询是否启用了自动归档。 SQL> ARCHIVE LOG LIST;
3.说明当前日志组号,和最大日志序列号。进行手工日志切换,重新说明当前日志组号,和最大日志序列号。
SQL> SELECT group#,sequence# FROM v$log where status='CURRENT';
其中:查看group#和sequence#,group#代表日志组号,sequence#表日志序列号。
CURRENT代表当前日志状态,当前日志的日志序列号总是最大的。
SQL>ALTER SYSTEM SWITCH LOGFILE;
SQL> SELECT group#,sequence# FROM v$log where status='CURRENT'; 4.在E:\\盘增加新的日志组,里面有两个成员,大小为1M。 SQL> ALTER DATABASE ADD LOGFILE GROUP 4 ('E:\\4a','E:\\') SIZE 1M;
5.向新增的日志组增加第三个成员,大小为1M。 SQL> ALTER DATABASE ADD LOGFILE MEMBER 'E:\\4c' to GROUP 4; 6.删除新组的第一个成员。
SQL> ALTER DATABASE DROP LOGFILE MEMBER 'E:\\4a'; 7.将新增加的组移动到同其它日志组相同的目录下。 SQL>SHUTDOWN;
COPY重做日志文件到新位置 SQL>STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE 'E:\\ ' TO 'd:\\oracle\\oradata\\db01\\';
SQL> ALTER DATABASE RENAME FILE 'E:\\ 4c' TO 'd:\\oracle\\oradata\\db01\\4c'; SQL>ALTER DATABASE OPEN; 8.删除新增加的日志组。
SQL> ALTER DATABASE DROP LOGFILE GROUP 4;
9.将数据库置于归档模式的手工归档状态下,进行多次日志切换,直到进入等待状态,尝试解除等待状态。
先设置归档模式 SQL> CONN / AS SYSDBA; SQL> SHUTDOWN; SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
oracle数据库-综合训练项目答案



