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数据字典缓存组成,存储的内容分别是sql ,pl/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 。
11g比10g多管理了pga,把sga和pga一同管理。
11如果你有余力,请参照文档在虚拟机上完成手工建库的五个步骤:1 创建文件夹 2 编写初始化参数文件 3 编写建库语句 4 跑三个脚本 5 配置默认表空间(实验题目)。
12请问初始化参数文件分成哪两种,其中哪一种是server维护的,哪一种是你自己维护的?哪一种是可以手工编辑的,哪一种的是不能手工编辑而必须用alter system set命令编辑的?哪一种是二进制文件?下面这个数据库是用哪种参数文件启动的?如果一个库的SID叫PROD,它的两种参数文件分别应该命名成什么?
答案:初始化参数文件分成pfile和spfile,其中spfile是服务器维护的,pfile是你自己维护的。pfile是手工可以编辑的,而spfile是不能手工编辑而必须用alter system set命令编辑的。
spfile是二进制文件,可以通过strings命令来查看二进制文件。上面的数据库是用pfile启动的。如果一个库的SID叫PROD,它的两种参数文件分别应该命名成initPROD.ora和spfilePROD.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转化成spfile:create spfile from pfile;
spfilie转化成pfile:create 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 immediate,shutdown 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请问哪些操作会用到临时表空间,请最少列举三种。
索引create或rebuild。
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 migrate,pctused太大会引起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有多少位,分别表示的含义是什么?
答案:rowid共18位。按照顺序代表的含义分别是:
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