oracle期末复习要点.docx

上传人:b****5 文档编号:11623352 上传时间:2023-03-29 格式:DOCX 页数:13 大小:20.97KB
下载 相关 举报
oracle期末复习要点.docx_第1页
第1页 / 共13页
oracle期末复习要点.docx_第2页
第2页 / 共13页
oracle期末复习要点.docx_第3页
第3页 / 共13页
oracle期末复习要点.docx_第4页
第4页 / 共13页
oracle期末复习要点.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

oracle期末复习要点.docx

《oracle期末复习要点.docx》由会员分享,可在线阅读,更多相关《oracle期末复习要点.docx(13页珍藏版)》请在冰豆网上搜索。

oracle期末复习要点.docx

oracle期末复习要点

作业

1.启动OEM服务和监听服务。

并写出数据库的三种启动状态以及各个状态之间转换的语句。

数据库的4种关闭方式(第一章)

答:

(1)启动监听:

lsnrctlstart 查看监听:

lsnrctlstatus停止监听:

lsnrctlstop

启动OracleServiceORCL服务:

netstartOracleServiceORCL

startupnomout;

alterdatabasemount;

shutdownimmeadiate;

startupmount;

alterdatabaseopen;

shutdownabort;

startupopen;

alterusersystemidentifidebyaa;

alterusersystemidentifidebyaaa;

(2)STARTUP[NOMOUNT|MOUNT|OPEN|FORSE][RESTRICT][PFILE='PFILE_NAME'];

 nomount启动例程,但不装载数据库,即只完成启动步骤的第一步

Mount启动例程,装载数据库,但不打开数据库,即只完成启动步骤的第一步和第二步

Open启动例程,装载数据库,打开数据库,即完成全部的三个步骤

转换

.从NoMount模式切换到Mount模式(没有从mount切换到nomount的)命令:

ALTERDATABASEMOUNT;

当数据库状态为关闭时,切换到Open模式

命令:

ALTERDATABASEOPEN;

在Open模式下,还可以选择将数据库设置为非受限状态和受限状态。

命令:

在启动Open模式时,添加restrict关键字:

startuprestrict

设置或取消受限状态:

altersystemenable\disablerestrictedsession;

(3)1、shutdownnormal  正常方式关闭数据库。

 

2.shutdownimmediate  立即方式关闭数据库。

 

3、shutdownabort 强行关闭 

4.shutdowntransaction事务关闭

2.请写出Oracle体系的逻辑(内部)结构及其作用、物理(外部)结构和作用。

(第二章)

答:

1.逻辑(内部)结构包括表空间(TableSpace)表(Table)约束条件(constraint)分区(partition)用户(User)索引(index)方案(schema)同义词{权限及角色(role)}{段(segment)盘区(extent)块(datablock)}

作用:

为了更好的管理物理磁盘上的数据文件,Oracle引入了逻辑存储的概念(描述了数据库的内部存储结构,即从技术概念上描述如何组织、管理数据)

2.物理(外部)结构包括数据文件(datafile数据文件用来存储数据库的数据)日志文件(重做日志文件记录对数据库的所有修改信息logsfiles{联机日志文件()归档日志文件()})控制文件(controlfiles用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:

数据库名及数据库唯一标识

数据文件和日志文件标识)

参数文件(是来调用控制文件的)

作用:

3.请写出Oracle体系的内存、进程组成及其作用。

(第二章)

答:

(1)内存结构:

(系统全局区SGA)包括了数据块缓存区,字典缓存区,重做日志缓冲区,SQL共享池

作用:

内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle10g使用动态

内存管理。

所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用

量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管理允许在数据库服

务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读

取标准内存块时使用标准内存设置

(2)进程结构包括 --DBWn(DatabaseWriter):

数据库写入

   --PMON(ProcessMoniter):

进程监控

  --LGWR(LogWriter):

日志写入

   --SMON(SystemMoniter):

系统监控

 --RECO(Recovery):

恢复

   --CKPT(Chekpoint):

检查点

   --ARCn(Archiver):

归档

   --LCKn(Lock):

   --Dnnn(Dispatcher):

调度

作用:

是用来维持数据库的物理结构和存储结构之间的关系的

4.创建(修改、删除)表,完整性约束,增删改查。

答:

创建表:

CREATETABLES1

(SNOVARCHAR2(10)PRIMARYKEY,

SNAMEVARCHAR2(10),

DEPTVARCHAR2(20));

修改表:

ALTERTABLES1ADD(XFNUMBER

(2));

alterTABLES1

(SNOVARCHAR2(8)PRIMARYKEY,

SNAMEVARCHAR2(10),

DEPTVARCHAR2(20));

删除表:

dropTABLES1;

完整性约束:

createTABLES1

(SNOVARCHAR2(8)PRIMARYKEY,

SNAMEVARCHAR2(10),

DEPTVARCHAR2(20)

Foreignkey(cno)referencescourse(cno));

增:

insertintoS1values('2','aa2','xxx');

Commit;

删deletefromS1whereso=’2’;

改:

updateS1setdept=’YYY’whereSno=’2’;

查:

select*fromS1;

5.基于表创建(修改、删除)同义词。

(第三章)

答:

创建:

createpublicsynonymb_sforsystem.b;

修改:

alterpublicsynonymb_sforsystem.b;

删除:

dropsynonymsystem.b_s;

6.基于表创建(修改、删除)视图。

(第四章)

答:

创建:

createorreplaceviewnameasselectx,yfromtable1,table2wheretable1.sno=table2.snowithcheckoption;

修改:

createorreplaceviewnameasselectx,y,z,qfromtable1,table2wheretable1.sno=table2.snowithcheckoption;

删除:

dropviewname;

7.创建(修改、删除)索引,索引字段基于表的某字段。

(第五章)

答:

例如:

为表K的课程名(KCM)列建立索引

创建:

createindexnameonK(KCM);

例如:

重命名索引name

修改:

alterindexname1renameonname;

例如:

删除索引name

删除:

dropindexname;

8.依据表,创建(修改、删除)函数,并调用函数。

第六章)

答:

例如:

计算某门课程全体学生的成绩

创建函数:

createorreplacefunctionavge

(cnuminvarchar)

returnnumber

as

avger_cjnumber(3);

begin

selectavg(CJ)intoavger_cj

fromCJB

whereKCH=cnum

groupbyKCH;

return(avger_cj);

endavge;

函数的调用:

declare

abnumber;

anumber;

begin

a:

=&a;或者a:

=avge(10);

ab:

=avge(a);

dbms_output.put_line(a||'号课的平均分是:

'||ab);

end;

修改:

删除:

dropfunctionavge;

9.创建(修改、删除)触发器:

DML,替换,系统。

(第七章)

答:

(1)DML触发器

例如:

利用触发器在数据库XSCJ的XSB表执行插入操作后给出相应的提示

创建:

createorreplacetriggername

AtlerinsertonXSBforeachrow

Declare

Infochar(10);

Begin

Ifinsertingthen

Info:

=”插入”;

Endif;

DBMS_OUTPUT.PUT_LINE(info);

End;

修改:

删除:

droptriggername;

(2)替换触发器

例如:

在XSCJ数据库中建立视图stu_view包括学生学号、专业、课程号、成绩。

该视图依赖于XSB和CJB,是不更新视图,在视图上创建insteadof触发器,当向视图插入数据时,分别向XSB和成绩表插入数据

创建:

创建视图

Createviewstu_view

As

SelectXSB.xh,zy,kch,cj

FromXSB,CJB

WhereXSB.xh=CJB.xh

创建替换触发器

Createorreplacetriggerinsteat

Insteadofinsertonstu_viewforeachrow

Declaer

Xhchar(8);

Xbchar

(2);

Cssjdate;

Begin

Xm:

=’张三’;

Xb:

=’男’;

Cssj:

=’01-1月-90’;

InsertintoXSBvalue(:

NEW.xh,xm,xb,cssj,:

NEW.zy,);

InsertintoCJBvalues(:

NEW.xh,:

NEW.kch,:

NEW.cj);

End;

调用

Insertintostu_viewvalues(‘0999’,’计’,’01’,99);

修改:

删除:

droptriggerinsteat;

(3)系统触发器

例如:

创建一个用户事件触发器,记录用户system所删除的所有对象。

创建:

首先先创建一个表格

Createtabledrop_user(

Namechar(30)

Typechar(20)

Drop_datedate);

创建触发器

Createorreplacetriggername

Beforedroponsystem.schema

Begin

Insertintodrop_uservalues(name,type,sysdate);

End;

修改:

删除:

droptriggername;

10.通过保存点恢复表中误删除信息(第七章)

答:

例如向数据库XSCJ的XSB表添加一行数据,设置一个保存点,然后删除该行数据后,新插入的数据并没有被删除,因为事务中使用了ROLLBACKTO语句将操作回退到保存点,即删除前的状态

插入数据

insertintoXSBvalues(‘01’,’张’,’男’,TO_DATE(‘19990202’,‘YYYYMMDD’),’计算机’,8);

然后设置保存点

Savepointmy_sav;

查询:

select*fromXSBwhereXH=’01’;

删除:

deletefromXSBwhereXH=’01’;

然后回退到保存点my_sav

Rollbacktomy_sav;

Commmit;

11.口令认证方式创建(修改)用户(角色);给用户(角色)授予系统的角色;并授予基于方案下的对象权限;撤销系统权限;撤销用对象权限;删除用户(角色)。

(第九章)

答:

(1)例如,创建一个A的用户,口令为angel,默认表空间为USERS,临时表空间为TEMP,没有定额,使用默认概要文件

CreateuserAidentifiedbyangel

DefaulttablespaceUSERS

TemporarytablespaceTEMP

Accountunlock;

(2)给用户(角色)授予系统的角色:

Grantcreateanytable,createanyviewtoA;

(3)基于方案下的对象权限

Grantselect,insertonXSBtoA;

(4)撤销系统权限,撤销用对象权限

Revokecreateanytable,createanyviewfromA;

Revokeselect,insertonXSBfromA;

(5)删除用户(角色)

DropuserA;

12.编写SQL命令将数据库转换至archivelog(或非归档)模式。

(第十章)

答:

SQL>connsys/aaaassysdba

SQL>ARCHIVELOGLIST;数据库日志模式非存档模式

SQL>alterdatabasemount;数据库已装载

SQL>shutdownimmediate数据库已经关闭。

SQL>startupmount;ORACLE例程已经启动。

SQL>ALTERDATABASEARCHIVELOG;数据库已更改。

SQL>ARCHIVELOGSTART;已处理的语句

SQL>ALTERDATABASEOPEN;数据库已更改

SQL>ARCHIVELOGLIST;数据库日志模式存档模式

13.使用命令完成Rman工具恢复目录的配置。

(恢复目录的设置;数据库的注册(第十章)

答:

1生成数据文件

createtablespacermantsdatafile'e:

\app\rman\rmants.ora'size20M;

2生成用户和表空间

createuserrmanidentifiedbyrman

defaulttablespacermants

temporarytablespacetemp

quotaunlimitedonrmants;

3赋予权限

grantrecovery_catalog_ownertorman;

4在目录数据库中创建恢复目录

rmancatalogrman/rman

createcatalogtablespacermants;

rmantargetsys/sys@orcl

connectcatalogrman/rman@orcl

registerdatabase;

.建立恢复目录:

 

第一步,在目录数据库中创建恢复目录所用表空间:

 

SQL>createtablespacerman_tsdatafile'd:

\Oracle\oradata\rman\rman_ts.dbf'size20M; 

第二步,在目录数据库中创建RMAN用户并授权:

 

SQL>createuserrmanidentifiedbyrmandefaulttablespacerman_tstemporarytablespacetempquotaunlimitedonrman_ts; 

用户已创建。

 

SQL>grantrecovery_catalog_ownerconnect,resourcetorman; 

授权成功。

 

第三步,在目录数据库中创建恢复目录 

C:

\>rmancatalogrman/rman 

恢复管理器:

版本8.1.6.0.0-Production 

RMAN-06008:

连接到恢复目录数据库 

RMAN-06428:

未安装恢复目录 

RMAN>createcatalogtablespacerman_ts; 

RMAN-06431:

恢复目录已创建 

14.创建数据泵目录“dpump_dir”,使用数据泵导出Ora用户下的SC表,导出文件为SC.DMP;并模拟导入(忽略对象存在创建错误)。

(第十章)

答:

(1)创建数据泵目录“dpump_dir”

Createdirectorydpump_diras‘d:

\bar’;

必须给导入导出的用户赋予目录的读写权限

Grantread,writeondirectorydpump_dir<用户名>;

然后根据提示依次写下命令句如下:

EXPDPsystem123dumpfile=SC.DMPdirectory=dump_dirtables=SCJOB_NAME=SC_JOB

(2)

15.IMP/EXP导入/导出(第十章)P258

答:

(1)导出有三种模式:

交互模式、命令行模式、参数文件模式

以交互模式为例,输入语句如下:

EXP(回车)

System

123

默认值(回车)

XSB.DMP(输入导出文件名)

(2)u>T(选择输出类型)

其余选择默认

XSB(输入导出表名)

(2)导入有用户模式、表模式、全局模式(数据库模式)

IMP(回车)

System

123

XSB.DMP(输入导入文件名)

如果对象存在,选择YES

System(输入用户名,导入的数据会在此用户模式下创建)

XSB(输入要创建表的名称)

16.举例实现Oracle数据库的4种闪回。

(第十一章)

答:

查询闪回:

Settimeon;

查询,删除

然后查询闪回

select*fromaaaasoftimestampto_timestamp('2011-11-2909:

36:

48','YYYY-MM-DDHH24:

MI:

SS');

将闪回的数据插入到表中

Insertintoaaa

select*fromaaaasoftimestampto_timestamp('2011-11-2909:

36:

48','YYYY-MM-DDHH24:

MI:

SS');

表闪回:

Settimeon

查询

select*froma1;

删除

deletefroma1whereaa='a';

commit;

表闪回

Flashbacktablea1totimestampTO_TIMESTAMP('2011-11-2909:

36:

48','YYYY-MM-DDHH24:

MI:

SS');

使用表闪回恢复数据

Altertablea1enablerowmovement;

Flashbacktablea1totimestampTO_TIMESTAMP('2011-11-2909:

36:

48','YYYY-MM-DDHH24:

MI:

SS');

删除闪回:

select* fromtab;

droptablea1;

select* fromtab;

selectobject_name,original_name,type,droptimefromrecyclebin;

showrecyclebin;

FLASHBACKTABLEa1TOBEFOREDROP;

selectobject_name,original_name,type,droptimefromrecyclebin;

showrecyclebin;

select* fromtab;

管理回收站:

droptablea1;

showrecyclebin;

PURGERECYCLEBIN;

createtablea1asselect*fromaaa;

select* fromtab;

select* froma1;

DROPTABLEa1PURGE;

createtablea1asselect*fromaaa;

createtablea2asselect*fromaaa;

droptablea1;

droptablea2PURGE;

showrecyclebin;

purgetablea1;

showrecyclebin;

数据库闪回:

1)查看闪回信息

showparameterdb_recovery_file_dest;

showparameterflashback;

确认实例是否归档

selectdbid,name,log_modefromv$database;

shutdownimmediate

设置flashbackdatabase为启用

startupmount;

alterdatabaseflashbackon;

alterdatabaseopen;

1.查看当前数据库是否是归档模式和启用了闪回数据库功能

selectdbid,name,log_modefromv$database;

archiveloglist

showparameterdb_recovery_file_dest;

2.查看当前时间和旧的闪回号

showuser;

selectsysdatefromdual;

selectoldest_flashback_scn,oldest_flashback_timefromv$flashback_database_log;

settimeon

3当前用户下创建例表a2

createtablea2asselect*fromaa.aaa;

4确定时间点,模拟误操作,删除表a2

selectsysdatefromdual;

droptablea2;

desca2;

5以mount打开数据库并进行数据库闪回

shutdownimmediate

startupmountexclusive;

flashbackdatabasetotimestamp(to_date('2011-12-0609:

12:

02','YYYY-MM-DDHH24:

MI:

SS'));

alterdatabaseopenresetlogs;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1