高级数据库知识点_第1页
高级数据库知识点_第2页
高级数据库知识点_第3页
高级数据库知识点_第4页
高级数据库知识点_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章进程:OralceServiceORCL:数据库服务,是核心服务,是数据库启动的基础(必须启动)OralceOraDb11g_home1TNSListner:监听器服务,在远程访问数据库才需要(必须启动)OralceOraDb11g_home1ConfigurationManager:配置Oralce启动时的参数的服务(非必须)OralceOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务(非必须)OralceJobSchedulerORCL:数据库作业调度服务(非必须)OralceDBConsoleorcl:控制台服务,只有该服务启动了才可以使

2、用web方式的企业管理器管理(非必须)OralceVssWriterORCL:是Oralce对VSS提供支持的服务(非必须)OralceMTSRecoveryService:允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务第三章:数据库内存结构,后台进程结构,存储结构之间的关系:SGA:system global area 系统全局区。是用于存储数据库信息的内存区,该信息为数据库进程所共享。又称共享全局区物理结构组成:数据文件,控制文件,重做日志文件,归档日志文件,初始化参数文件,跟踪文件,告警文件逻辑存储结构组成和关系:数据块:最小的逻辑存储单元,是

3、数据库执行输入,输出操作的最小单位区:由一系列连续的数据块构成的逻辑存储单元,是存储空间分配的最小单位段:由一个或多个连续或不连续的区组成的逻辑存储单元,用于存储特定的,具有独立存储结构的数据库对象表空间:是数据库最大的逻辑存储单元,数据库的大小从逻辑上看就是由表空间决定的,所有表空间大小的和就是数据库的大小。DBWR进程何时启动:1.当满足下列某个条件时:服务器进程在数据高速缓存区中搜索一定数据的缓存块后,仍然没有找到可用的空闲缓存块2.检查点发生时3.当数据高速缓冲区中LRU(最少置换)列表长度达到初始化参数DB_BLOCK_WRITE_BATCH指定值的一半时 4.DBWR进程发生超时L

4、GWR进程何时被启动:1. 当用户通过COMMIT语句提交当前事务2. 重做日志缓冲区被写满三分之一3. DBWR进程开始将脏缓存块写入数据文件4. LGWR进程超时内存结构:SGA:由数据缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。(提供所有的服务器进程和后台进程共享)PGA:程序

5、全局区(又称私有全局区),在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小(创建服务器进程的同时要为该服务器进程分配一个内存区)后台进程:DBWR:数据库写入进程,进程负责把数据高速缓冲区中已经被修改过的数据(“脏”缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多的空闲缓存块,保证服务器进程将所需要的数据从数据文件读取到数据高速缓冲区中,提高缓存命中率。 LGWR日志写入进程负责把重做日志缓冲区的重

6、做记录写入重做日志文件中永久保存。 CKPT检查点进程,进程的作用就是执行检查点,更新控制文件与数据文件的头部,使其同步;,触发DBWR进程,将脏缓存块写入数据文件。 SMON系统监控进程,进程的主要功能包括:在实例启动时负责对数据库进行恢复;回收不再使用的临时空间;将各个表空间的空闲碎片合并。 PMON进程监控进程,进程的主要功能包括:负责恢复失败的用户进程或服务器进程,并且释放进程所占用的资源;清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务,释放会话所占用的锁、SGA、PGA等资源;监控调度进程和服务器进程的状态,如果它们失败,则尝试重新启动它们,并

7、释放它们所占用的各种资源。 ARCH归档进程,进程用户归档重做日志文件。 RECO进程用户数据库恢复。第5章:创建永久性表空间:1. 区自动扩展,段自动管理方式create tablespace hrtbs1 datafile 路径 size 50M;2. 区定制分配,段采用自动管理create tablespace hrtbs2 datafile 路径 size 50M extent management local uniform size 512K;3. 区自动扩展,段采用手动管理create tablespace hrtb3 datafile 路径 size 50M

8、 segment space management manual;创建大文件表空间创建大文件表空间,文件大小为1G,区的分配采用定制方式create bigfile tablespace big_tbs datafile 路径 size 1G uniform size 512K;创建临时表空间:create temporary tablespace hrtmp1 tempfile 路径 size 20M extent management local uniform size 15M;将一个或多个表空间组成一个临时表空间组create temporary tablespace hrtmp2 t

9、emfile 路径 size 20M extent management local uniform size 15Mtablespace group temp_group;创建撤销表空间create undo tablespce hrundo1 datafile 路径 size 20M;修改表空间大小1. 为表空间添加数据文件1.1 为表空间添加一个大小为10MB的数据文件alter tablespace users add datafile 路径 size 10M;1.2 为表空间添加一个大小为5MB的临时数据文件alter tablespace temp add tempfile 路径

10、size 5M;2. 改变数据文件的扩展性2.1 修改数据库的表空间的某个文件为自动增长方式alter database datafile 路径 autoextend on next 1M maxsize unlimited;2.2 取消数据库的表空间的数据文件的自动增长方式alter database datafile 路径 autoextend off;3. 重新设置数据文件大小alter database datafile 路径 resize 8M;改变数据文件的名称或者位置1. 改变同一个表空间的数据文件名称或位置1.1将其所属表空间设置为脱机状态alter tablespace us

11、ers offline;1.2 在操作系统中改变数据文件的名称或位置 host copy 原路径 目的路径;1.3 执行修改语句,修改数据字典和控制文件中与该数据文件相关的信息 alter tablespace users rename datafile 原路径 to 新路径;1.4 将数据文件所属表空间设置为联机状态 alter tablespace users online;2. 改变属于多个表空间的数据文件的名称或位置2.1 关闭数据库 shutdown immediate;2.2 启动数据库到加载状态(mount)startup mount;2.3 在操作系统中改变数据文件的名称或位置

12、host copy 原路径 目的路径;2.4 执行修改语句,修改数据字典和控制文件中与该数据文件相关的信息alter database rename file 原路径 to 新路径, 原路径 to 新路径;2.5 打开数据库alter database open;查询数据文件信息select tablespace_name, file_name from xxx;备份控制文件的原因及如何备份:为了避免由于控制文件的损坏或者丢失而导致数据库系统崩溃,需要对控制文件进行备份。特别是对数据库物理结构做出修改之后,都需要重新备份。1可以将控制文件备份为二进制文件。Alter database back

13、up controlfile to 路径;2. 备份为文本文件alter database backup controlfile to trace;说明重做日志文件的作用:重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。重做日志的工作过程:重做日志缓冲区1,4,7,2,5,8,3,6,9,LGWR日志切换日志切换日志切换重做日志文件3重做日志文件2重做日志文件1至少要两个重做日志文件,采用循环写的方式进行工作。这样能保证,当一个重做日志文件在进行归档时,还有另一

14、个重做日志文件可用。当一个重做日志文件被写满后,后台过程LGWR开始写入下一个重做日志文件,即日志切换,同时产生一个“日志序列号”,并将这个号码分配给即将开始使用的重做日志文件,当所有的重做日志文件都写满后,LGWR进程再写入第一个重做日志文件。数据库归档的必要性及如何进行归档设置归档是数据库恢复及热备份的基础。只用当数据库归档模式时,才可以进行热备份和完全恢复。进行归档设置包括归档模式设置(ARCHIVELOG)、归档方式设置以及归档路径的设置等。归档目标的设置方法和注意事项1. 关闭数据库2. 设置归档目的地3. 将数据库启动到加载状态4. 改变数据库归档模式5. 打开数据库数据库表空间的

15、种类及不同类型表空间的作用数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。 SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突说明数据库控制文件的作用。控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息

16、加载数据文件和重做日志文件,最后打开数据文件和重做日志文件。数据库、表空间、数据文件及数据库对象之间的关系一个数据库由一个或多个表空间构成,不同的表空间用于存放不同应用的数据,表空间的大小决定了数据库的大小。一个表空间对应一个或多个数据文件,数据文件的大小决定了表空间的大小。一个数据文件只能从属于一个表空间。一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所对应的一个或多个数据文件中。第6章:索引的作用,以及建立和维护索引所需要解决的问题索引用于提高数据的查询效率。根据索引值是否唯一,可以分为唯一性索引和非唯一性索引;根据索引的组织结构不同,可以分为平衡树索引和位图索引;根据索引基于

17、的列数不同可以分为单列索引和复合索引。主要问题:(1)索引不要与表存放在同一个表空间内(2)一个表的索引不要过多(3)对于大表而且使用频繁的表,在生产时最好不要去加索引(4)数据量小的表,使用不频繁的不要单独另建立索引(5)在查询条件中几个条件一起使用的,适合建立组合索引,否则不要建立组合索引,当单独引用非第一字段时将发生全表扫描(6)在查询的时候,where条件不要对索引的列做处理,而要对后面的条件字段做处理。否则用不上这个列上的索引。视图的作用以及分类视图是从一个或多个表或视图中提取出来的数据的一种表现形式。在数据库中只有视图的定义,而没有实际对应“表”的存在。通过视图的使用可以提高数据的

18、安全性,隐藏数据的复杂性,简化查询语句,分离应用程序与基础表,保存复杂查询等。简单视图和复杂视图表的约束包括:主键约束:定义了主键约束的列取值不能为空,也不能重复。 Ø 唯一值约束:定义了唯一值约束的列取值不能重复。 Ø 检查约束:定义了检查约束的列取值要满足检查条件。 外键约束:定义了外键约束的列取值要么是主表参照列的值,要么是空值。 Ø 空/非空约束:定义了非空约束的列取值不能为空。第7章数据插入:(同一类型只能插入一次)insert into xxx values(xx, xx, xx);

19、数据合并:merge into t_emp t using so_emo son (t.id = s.id)when matched then update set t.naem = , t.de = s.dewhen not matched then insert values(s.id, , s.de);第8章上机实验40句第9章PL/SQL:变量和常量类型:表名.列名%TYPE;代表使用列表名%ROWTYPE或者普通的类型声明变量和常量:declare/*格式:变量/常量名 (如果是常量要加上constant)类型 (如果是常量必须要赋值)赋值用:=或者defau

20、lt 值;*/v1 constant number(4) := 3;v2 number(4) not null := 10;v3 number(4) default 10;查询语句:先声明变量然后通过select xx into 这个变量 from table xxx where xxx;declarev1 em.salary%TYPE;beginselect salary into v1 from em where salary > 3000;end;在DBMS的控制台输出:DBMS_OUTPUT.PUT_LINE(v1);控制结构:IF语句IF xxx THEN xxxx;IF xx

21、x THEN xxxx ELSE xxxx;IF xxx THEN xxxx ELSIF xxx THEN xxxx;END IF;CASE语句:CASEWHEN xxxx THEN xxx;WHEN xxxx THEN xxx;ELSE xxx;END CASE;循环语句:1.相当于死循环,然后有个条件跳出循环LOOPxxx;EXIT WHEN xxx;/*这句话是当条件满足,跳出循环*/END LOOP;2.条件循环WHILE xxx/*满足条件循环*/LOOPxxx;END LOOP;3.for循环declarev number:= 10;beginfor v in 1.100 LOOP

22、xxx;END LOOP;end;例:求1-100的偶数和DECLAREv_count NUMBER := 1;v_sum NUMBER := 0;BEGINWHILE v_count <= 100LOOPIF mod(v_count, 2) = 0 THEN v_sum := v_sum + v_count;END IF;v_count := v_count + 1;END LOOP;DBMS_OUTPUT.PUT_LINE(v_sum);END;第10章创建一个存储过程/*创建一个为dep的存储过程,声明存储过程中的变量*/CREATE OR REPLACE PROCEDURE de

23、p(P_dep em.dep_id%TYPE,p_avgsal OUT em.salary%TYPE,/*OUT是表示希望返回多个值*/p_count OUT NUMBER)AS BEGIN/*将em表中查找到的数据赋值到存储变量*/select avg(salary), count(*) into p_avgsal, p_count from emwhere dep_id = p_dep;/*捕获异常*/EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE(no exists);END dep;创建包首先创建包规范:(相当于头文件)CREA

24、TE OR REPLACE PACKAGE pkg_empASminsal NUMBER;maxsal NUMBER;e_beyondbound EXCEPTION;PROCEDURE update_sal(p_empno NUMBER, p_sal NUMBER);PROCEDURE add_employee(p_empno NUMBER, p_sal NUMBER);END pkg_emp;然后创建包体CREATE OR REPLACE PACKAGE BODY pkg_empAS/*update函数的实现*/PEOCEDURE update_sal(p_empno NUMBER, p_sal NUMBER);ASBEGINselect min(salary), max(salary) into mins

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论