oracle作业题及答案

来源:互联网 发布:js获取远程html内容 编辑:程序博客网 时间:2024/04/29 11:18

答案

1 oracle由instance和database组成,instance由sga后台进程组成,database的实质是文件,请列举出至少三种文件:datafiles数据文件,control files控制文件,redo log files联机日志文件,archived logfiles归档日志,password files密码文件,parameter files 参数文件等

请至少列举出三种ORACLE的进程:pmonsmon dbwr lgwr ckpt arch

 

2 shared_pool由libary cache库缓存data dictionary cache数据字典缓存组成,存储的内容分别是sqlpl/sql执行计划数据库对象的定义,用于语法语义的检查

 

3 Database Buffer Cache数据缓冲区分成default池,keep池和recycle,其中default用LRU算法在空间紧张的情况下把数据临时换出内存,下面的操作

altertable scott.dept storage(buffer_pool keep);

 

可以scott.dept表的内容缓存在内存,提高该表的访问速度,而且该表只要数据库不重启,不会被置换出内存。

 

4 Oracle为了数据可以恢复,需要把数据缓冲区中数据的变化记录到日志中,请问由serverprocess进程把数据缓冲区中的数据变化写到redo logbuffer里面,又由lgwr进程把日志缓冲区中的日志写到redo logfiles联机日志文件里面,如果是归档模式,又由哪个进程ARCH把这些联机日志文件中的日志转储整理成为archived log files归档日志文件。

 

5备份恢复和数据的复制最好配置哪个池large pool大池

 

6  请问redo logbuffer日志缓冲区应该设置多大?以下哪个答案最接近。

A 10m    B 100m   C 1G   D 越大越好

 

7

请列举未来几十年,改变世界的六件大事(按照时间顺序):

 

8 手工建库时,要先在哪个目录下建立文件夹存放相应的数据库文件?

cd $ORACLE_BASE/oradata

 

9 如果手工建库(库名是ALICE)时,你执行了下面的查询,请问ALICE文件夹的权限对吗?如果不对,改用什么命令改正。

答案:

chmod 755 ALICE

如果组不对,不是oracle oinstall组,可以用下面命令改变:

chown -R oracle:oinstall /u01/app/oracle/oradata/ALICE

 

 

 

10请问通过设置什么参数实现ASSM管理:请分成10g和11g分别回答,并解释11g的参数和10g参数的关系,多管理了什么内容。

答案:10g sga_target它的上限是sga_max_size

       11gmemory_target  它的上限是memory_max_target

       11g10g多管理了pga,把sgapga一同管理。

 

11如果你有余力,请参照文档在虚拟机上完成手工建库的五个步骤:1 创建文件夹 2 编写初始化参数文件 3 编写建库语句 4 跑三个脚本 5 配置默认表空间(实验题目)。

12请问初始化参数文件分成哪两种,其中哪一种是server维护的,哪一种是你自己维护的?哪一种是可以手工编辑的,哪一种的是不能手工编辑而必须用alter system set命令编辑的?哪一种是二进制文件?下面这个数据库是用哪种参数文件启动的?如果一个库的SID叫PROD,它的两种参数文件分别应该命名成什么?

答案:初始化参数文件分成pfilespfile,其中spfile是服务器维护的,pfile是你自己维护的。pfile是手工可以编辑的,而spfile是不能手工编辑而必须用alter system set命令编辑的。

spfile是二进制文件,可以通过strings命令来查看二进制文件。上面的数据库是用pfile启动的。如果一个库的SIDPROD,它的两种参数文件分别应该命名成initPROD.oraspfilePROD.ora

 

13 请问oracle软件的安装目录在什么位置?oracle的listener.ora和tnsnames.ora文件应该配置在什么位置?数据库的文件放在什么目录下?初始化参数文件默认放在什么地方?

答案:

oracle软件安装在$ORACLE_HOME下面。

 

监听和tnsnams.ora文件放在$ORACLE_HOME/network/admin

 

数据库文件放在cd$ORACLE_BASE/oradata

 

初始化参数文件放在

cd $ORACLE_HOME/dbs

 

14 两种参数文件用什么命令可以相互转化?

pfilie转化成spfilecreate spfile from pfile;

spfilie转化成pfilecreate pfile from spfile;

或者:

create pfile from memory;

create spfile from memory;

 

15请问oracle启动的三阶段是什么?每个阶段所了哪些事情?

nomout阶段:1读取初始化参数文件

             2产生oracle instance(产生后台进程并为sga的各个池非配内存)。

mount阶段:读取control file控制文件,获知oracle的物理结构和各种信息。

open阶段: 真正打开了数据文件和日志文件,并核对数据库的一致性。

16 请问数据库关闭的四种方式是什么?作为dba,正常关库用哪一种关闭方式?哪种关库方式最不安全,容易对数据库造成损坏。

四种关闭数据库的方式:

1shutdown normal;

2 shutdown transactional;

3 shutdown immediate;

4 shutdown abort;

其中正常关库是shutdown immediateshutdown abort容易对数据库造成损坏。

 

17 请问手工建库要跑的三个脚本的名称是什么,分别有什么用处,请标明用哪个用户跑这三个脚本。

@?/rdbms/admin/catalog.sql创建数据字典。

@?/rdbms/admin/catproc.sql创建oracle的包和存储过程。

@?/sqlplus/admin/pupbld.sql使一般用户可以登录oracle

最后一个最好以conn system/manager运行,前两个脚本用sys用户运行。

 

18 如果一个库没有defaulttablespace 默认表空间,用户创建的表会占用哪个表空间的空间?

system表空间。

 

19 请写出下列权限的值

644  -rw- r-- r--

700     r代表4 w代表2 x代表1

755     d 代表目录,从第二个开始算 三位一算

777     简单

 

20 请写出命令,把控制文件的内容dump到tracefile跟踪文件中。

alter database backupcontrolfile to trace;

 

21 请用两句话概括控制文件的作用,并用一个词概控制文件相当于数据库的什么?

1定义数据库当前物理状态(各种文件的位置)2维护数据的一致性。

控制文件相当于数据库的记忆。

 

22用什么命令查看日志组信息和日志成员信息。

select * from v$log;

col member for a50

select * from v$logfile;

 

23如果出现故障,数据库采用归档模式最佳情况下可以恢复到什么时刻,采用非归档模式最佳情况下可以恢复到什么时刻。

归档可以恢复到最后一次提交,非归档只能恢复到最后一次备份。

 

24数据库的空闲区管理分成功数据字典管理和本地管理两种方式,请问哪种方式是用位图代替数据字典进行空闲区的管理的。假设表空间lxtbs1 的数据文件位置位于'/u01/app/oracle/oradata/PROD/disk3/lxtbs01.dbf',表空间lxtbs2的数据文件位于'/u01/app/oracle/oradata/PROD/disk4/lxtbs02.dbf',请分别写出命令,创建一个本地管理的自动增长的表空间lxtbs1 ,数据文件大小是100m。接着,创建一个本地管理的uniformsize为1m的表空间lxtbs2 ,数据文件大小是100m

答案:空闲区本地管理用位图代替数据字典进行空闲区的管理的。

create tablespace lxtbs1datafile '/u01/app/oracle/oradata/PROD/disk3/lxtbs01.dbf' size 100m extentmanagement local;

或者:

create tablespace lxtbs1datafile '/u01/app/oracle/oradata/PROD/disk3/lxtbs01.dbf' size 100m;

 

create tablespace lxtbs2datafile '/u01/app/oracle/oradata/PROD/disk4/lxtbs02.dbf' size 100m uniformsiize 1m;

 

25用户A查看lxtb1,发下该表有如下条数据:

select count(*) from lxtb1;

他把lxtb1数据全部删除,自己看到lxtb1为条:

但是修改没有提交,用户B此时查看表lxtb1,发现如下结果,

A用户提交后,B用户发现此时lxtb1的数据变成了0条。

请问该机制是由哪个表空间实现的?

答案:undo表空间。

 

26请问哪些操作会用到临时表空间,请最少列举三种。

  索引createrebuild

  Order by group by

  Distinct 操作 

  Union intersect minus

  analyze 分析表的统计信息。

 

27如图所示,表空间lxtbs1的空间即将用完,我想把它的数据文件的空间从原来的50m扩大,并最大扩大到100m,该如何书写命令达到这样的目的。

答案:

alter database datafile 5autoextend on next 10m maxsize 100m;

 

28 A用户执行了如下的操作:

然后执行:

alter tablespace bigtbs add datafile '/u01/app/oracle/oradata/PROD/disk3/bigtbs02.dbf'size 50m;但是他发现语句报错了,请问最有可能的错误原始是什么?

答案:因为上述的表空间是bigfile表空间,该表空间只能有一个数据文件,不能添加数据文件。

 

29 数据库名为PROD的库默认块大小是8k用户执行下面的操作报错:

create tablespace lxtbs11 datafile'/u01/app/oracle/oradata/PROD/disk3/lxtbs111.dbf' size 50m blocksize 2k;

请问最可能的导致报错的原因是什么?

答案:因为数据库默认块大小不是2k,所以要给2k的表空间分配专门的缓冲区。

alter system set db_2k_cache_size=40m;

 

30如下图所示:请问假如pctfree和pctused这两个参数如果设置的不合适,会引发哪两种现象。这两种现象往往分别是由哪些dml操作引起的。

 

答案:pctfree太小会引起行迁移row migratepctused太大会引起row chain

row migrate往往是由update操作引起的,row chain是由insert操作引起的。

 

 

31请问段空间手动管理和自动管理分别是用哪种机制管理空闲块的?

段空间手工管理是用free list

段空间自动管理是用bitmap位图。

 

32请简述delete和truncate操作的区别:

(1)delete语句会产生undo数据,用于事务的回滚,因此速度很,并且不立即释放空间,delete不会降低高水位线全表扫描查询很慢。delete可以删除部分数据。

(2)truncate几乎不会产生undo数据,因此不能做事务回滚,速度,立即释放空间,

truncate 降低了高水位线全表扫描的查询很快。truncate会删除所有数据或某分区的数据。

 

33某用户执行delete from A;

commit;

如何用delete语句降低表A高水位线,请给出两种方法?

答案:

方法一:

alter table A move;

方法二:

alter table A enable rowmovement;

alter table A shrinkspace;

 

34请简述undo的四大作用。

1回滚事务:rollback

2读一致性

3实例的恢复:instancerecovery

4倒叙查询flashback query。

 

35请问delete,insert,update三种dml语句分别生成的undo数据内容是什么,哪种dml语句生成的undo数据最多?

insert  产生的undo:rowid

delete  产生的undo :整行数据

update 产生的undo:修改字段的新旧值。

其中delete生成的undo数据最多。

 

36 rowid有多少位,分别表示的含义是什么?

答案:rowid18位。按照顺序代表的含义分别是:

6位对象号  3位文件号  6位块号  3位行号。

 

37如下图所示:scott用户的emp表存放在users表空间,emp表上面有一个索引PK_EMP也存放在users表空间,请问如何把scott用户的emp表迁移到lxtbs表空间并把emp表上面的索引迁移到indx表空间。

selecttable_name,tablespace_name,blocks from dba_tables where  table_name='EMP' and owner='SCOTT';

 

selectindex_name,table_name,tablespace_name from dba_indexes where owner='SCOTT';

 

答案

alter table scott.emp move tablespace lxtbs;

alter index scott.PK_EMP rebuild tablespace indx;

 

 

38如果一个表删除时报错,如下图所示:

droptable dept;

如果想删除该表应该怎样做,如果想删掉该表的主键列deptno该怎样做,请写出命令?

答案:

如果删表:drop table dept cascade constraints;

如果删主键列:alter table dept drop column deptno cascadeconstraints ;

 

 

39位图索引和b-tree索引适用的场景分别是什么?

位图索引适合于:

数据的基数比较小重复值较多update很少的表,适合于olap系统。

b-tree索引适合于:

数据的基数比较大重复值较少update较多的表,适合于oltp系统。

 

40 请写出冷备份脚本,其中备份的位置是'/home/oracle/prod_bak/cold_bak'。

答案:

set echo off trimspool off heading off feedback offverify off time off

set pagesize 0 linesize 200

define bakdir='/home/oracle/prod_bak/cold_bak'

define bakscp='/home/oracle/prod_bak/cold_cmd.sql'

spool &bakscp

 select 'host cp'||name||' &bakdir ' from v$datafile order by 1;

 select 'host cp'||name||' &bakdir ' from v$controlfile order by 1;

spool off

shutdown immediate

@&bakscp

startup

 

 

原创粉丝点击