Oracle DBA 学期总结.docx

上传人:b****6 文档编号:8584901 上传时间:2023-01-31 格式:DOCX 页数:62 大小:1.96MB
下载 相关 举报
Oracle DBA 学期总结.docx_第1页
第1页 / 共62页
Oracle DBA 学期总结.docx_第2页
第2页 / 共62页
Oracle DBA 学期总结.docx_第3页
第3页 / 共62页
Oracle DBA 学期总结.docx_第4页
第4页 / 共62页
Oracle DBA 学期总结.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

Oracle DBA 学期总结.docx

《Oracle DBA 学期总结.docx》由会员分享,可在线阅读,更多相关《Oracle DBA 学期总结.docx(62页珍藏版)》请在冰豆网上搜索。

Oracle DBA 学期总结.docx

OracleDBA学期总结

一、简要介绍ORACLE的基本知识,以及做为DBA需要哪些技能和素质。

Oracle整体的认识。

1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)

一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。

  其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(tracefiles,alertfiles)属于数据库文件;参数文件(parameterfile)口令文件(passwordfile)是非数据库文件

  1.1数据文件:

存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。

  由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。

  1.2控制文件:

包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.

  控制文件内容

  。

数据库名

表空间信息

所有数据文件的名字和位置

  。

所有redo日志文件的名字和位置

  。

当前的日志序列号

  。

检查点信息

  。

关于redo日志和归档的当前状态信息

  控制文件的使用过程

  控制文件把Oracle引导到数据库文件的其它部分。

启动一个实例时,Oracle从参数文件中读取控制文件的名字和位置。

安装数据库时,Oracle打开控制文件。

最终打开数据库时,Oracle从控制文件中读取数据文件的列表并打开其中的每个文件。

  1.3重做日志文件:

  含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。

一个数据库至少需要两个重做日志文件.

  1.4跟踪文件及警告日志(TraceFilesandAlertFiles)

  在instance中运行的每一个后台进程都有一个跟踪文件(tracefile)与之相连。

Tracefile记载后台进程所遇到的重大事件的信息。

  警告日志(AlertLog)是一种特殊的跟踪文件,每个数据库都有一个跟踪文件,同步记载数据库的消息和错误.

  1.5参数文件:

包括大量影响Oracle数据库实例功能的设定,如以下设定:

  。

数据库控制文件的定位

  。

Oracle用来缓存从磁盘上读取的数据的内存数量

  。

默认的优化程序的选择和数据库文件相关,执行两个重要的功能

  1〉为数据库指出控制文件

  2〉为数据库指出归档日志的目标

  1.6归档文件:

是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

  1.7口令文件:

认证哪些用户有权限启动和关闭Oracle例程.

  2、逻辑结构(表空间、段、区、块)

  表空间:

是数据库中的基本逻辑结构,一系列数据文件的集合。

  段:

是对象在数据库中占用的空间.

  区:

是为数据一次性预留的一个较大的存储空间.

  块:

ORACLE最基本的存储单位,在建立数据库的时候指定.

  3、内存分配(SGA和PGA)

  SGA:

是用于存储数据库信息的内存区,该信息为数据库进程所共享。

它包含Oracle服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

  PGA:

包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA是只被一个进程使用的区域,PGA在创建进程时分配,在终止进程时回收.

  4、后台进程

  包括数据写进程(DatabaseWriter,DBWR)、日志写进程(LogWriter,LGWR)、系统监控(SystemMonitor,SMON)、进程监控(ProcessMonitor,PMON)、检查点进程(CheckpointProcess,CKPT)、归档进程、服务进程、用户进程)

  数据写进程:

负责将更改的数据从数据库缓冲区高速缓存写入数据文件

  日志写进程:

将重做日志缓冲区中的更改写入在线重做日志文件

  系统监控:

检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复

  进程监控:

负责在一个Oracle进程失败时清理资源

  检查点进程:

负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

该进程在检查点出现时,对全部数据文件的标题进行修改,指示该检查点。

在通常的情况下,该任务由LGWR执行。

然而,如果检查点明显地降低系统性能时,可使CKPT进程运行,将原来由LGWR进程执行的检查点的工作分离出来,由CKPT进程实现。

对于许多应用情况,CKPT进程是不必要的。

只有当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运行。

CKPT进程不将块写入磁盘,该工作是由DBWR完成的。

init.ora文件中CHECKPOINT_PROCESS参数控制CKPT进程的使能或使不能。

缺省时为FALSE,即为使不能。

  归档进程:

在每次日志切换时把已满的日志组进行备份或归档

  服务进程:

用户进程服务。

  用户进程:

在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

  5、SCN(SystemChangeNumber):

  系统改变号,一个由系统内部维护的序列号。

当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

有几个层次的

1.日常操作

2.错误处理

3.数据库优化

4.数据库设计

5.数据库解决方案设计

一个合格的dba应该具备如下技能:

1、熟练操作各种SQL语句

2、熟悉数据库中权限和用户的管理,具备一定的网络安全知识

3、具备数据库恢复、备份技巧

4、对数据库系统所在的操作系统有一定的认识和管理能力,因为数据库系统是不能脱离操作系统独立运行的。

数据库的体系结构

后台程序的工作原理

SMON(系统监控程序)进程执行所需的实例恢复操作(使用联机重做日志文件),它也可以清除数据库,消除系统不再需要的事务对象,还可以将连续的自由空间合成一个大的自由空间,SMON只合并表空间中的空闲空间,这些表空间的默认pctincrease存储值为0

PMON(进程监控程序)后台进程清除失败的用户进程,释放用户当时正在使用的资源,同SMON一样,PMON周期性地唤醒检测它是否需要被使用。

DBWR(数据库写入程序)后台进程负责管理数据块缓冲区及字典缓存区的内容,它以批量写入的方式将修改块从SGA写到数据文件中.当缓冲区中的一缓冲区被修改,它被标志为“弄脏”,DBWR的主区的缓冲区填入数据库或被用户进程弄脏,未用的缓冲区的数目减少。

当未用的缓冲区下降到很少,以致用户进程要从磁盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将管理缓冲存储区,使用户进程总可得到未用的缓冲区。

ORACLE采用LRU(LEASTRECENTLYUSED)算法(最近最少使用算法)保持内存中的数据块是最近使用的,使I/O最小。

LGWR(日志写程序)后台进程负责把联机重做日志缓冲区的内容写入联机重做日志文件,LGWR分批将日志条目写入联机重做日志文件,重做日志缓冲区条目总是包含着数据库的最新状态,这是因为将数据块缓冲区中的修改数据块写入到数据文件中之前,DBWR进程将一直处于等待状态

二、将本学期的自己历次上机作业整理并提交。

包括自己研究的实验记录(所遇到的问题、解决的办法,未解决的实验等)。

开机的步骤,遇到的问题、解决的办法(参数文件的配置与管理)

在无法加载错误文件的时侯,我们可以选择就其设置为脱机,然后直接打开数据库。

验证oracle启动顺序

1、如果删除spfile,启动oracle

2、如果删除pfile,启动oracle

3、initSID.ora,init.ora,spfileSID,pfileSID的关系。

init.ora是一个模版文件,当有了一个数据库的时候它会根据我们的数据库配置自动生成一个叫做initSID.ora的文件。

启动到nomount阶段时,首先要查找参数文件(顺序为先查找spfile$sid.ora,没有查到就查找init$sid.ora,再没有查到就查找init.ora)。

4、oradim-startup-sidorcl和lsnrctlstart

Nomount打开控制文件,可以用来创建数据库的状态,可以执行creat

Mount是用来维护数据库的,比如数据库出现了问题,文件被误删就无法open这是可以在mount的状态下将数据库文件从高数据库文件里除去

Open是数据库可以对全体用户提供服务

Startupnomount

Mount

open

selectaddr,pid,spid,username,program?

?

fromv$process;:

可以和v$session的paddr字段关联

Pidoracl进程identifiler

Spid操作系统的进程identfiler

Username操作系统的用户名而不是oracl的用户名

Program进程正在执行的的程序

查看数据库的状态:

selectstatusfromv$instance;

受限制性的设置

只读:

Shutdownimmediate;

Startupmount;

Alterdatabaseopenreadonly;

查看数据库的名字

表空间所占的空间大小

查看表空间的名称及大小

查看后台进程:

查看控制文件:

通过修该profile复用控制文件

控制文件复制

备份控制文件

(1)列出现有日志文件的位置和名称;显示数据库所拥有的重做日志文件组号、成员的数量和日志文件的大小

(2)说明当前日志组号和最大日志序号。

进行手工日志切换,重新说明当前日志组号和最大日志序号。

(3)在E盘增加新的日志组,其中包含两个成员,大小为1M。

(4)向新增的日志组增加第3个成员,大小为1M。

(他)删除新组的第一个成员。

(6)将新增加的组移动到同其它日志组相同的目录下。

(7)删除新增加的日志组。

日志切换

多个表空间的优势:

1.能够将数据字典与用户数据分离出来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突

2.能够将回退数据与用户数据分离出来,避免由于硬盘损坏而导致永久性的数据丢失

3.能够将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作

4.能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复

5.能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态

6.能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效率

7.能够更佳灵活的为用户设置表空间限额

SYSTEM表空间内存储:

1.数据库的数据字典

2.所有PL/SQL程序的源代码和解析代码

3.数据库对象的定义

所有表空间的数据文件总和不能超过创建数据库时指定的maxdatafiles参数的限制

本地管理表空间:

1.在存储分配过程中不需要访问数据库,可以提高存储分配操作的速度

2.能够避免在表空间的存储管理操作中产生的递归现象

3.不会产生重做和撤销记录

4.简化DBA对表空间的管理操作

5.降低用户对数据字典的依赖性

字典管理方式的表空间:

表空间中所有存储空间的管理信息都保存在数据字典中,在进行存储空间管理时会产生回退和重做记录

本地管理方式的表空间:

表空间中所有存储空间的管理信息都保存在数据文件头部的位图中

在9i中创建表空间默认就是本地管理方式.8i以前的版本,只能用字典管理方式的表空间.

创建表空间

创建还原表空间

查看表空间信息

创建临时表空间(字典管理方式)

一个临时表空间可以被多个数据库用户共享,oracle只会为一个实例创建一个临时段,这个临时段被实例中所有的排序操作共享使用,

但是临时段中的每一个区只能由一个事务使用.临时段在数据库启动后执行第一次排序操作时被创建.

注意:

字典管理方式的临时表空间可以象普通表空间那样使用altertablespace来进行更改

建议将initial和next参数设置成相同的值,并且应当是初始化参数sort_area_size和db_block_size

两个值之和的整数倍,pctincrease参数应当设置成0

改变表空间的可用性:

1.altertablespaceuser01offlinenormal(正常方式)

oracle会执行一次检查点,将SGA区中与该表空间相关的脏缓存块都写入数据文件中,然后再关闭表空间对应的数据文件,下一次将表空间

恢复为联机状态时,不需要进行数据库恢复.

2.altertablespaceuser01offlinetemporary(临时方式)

oracle执行检查点的时候并不会检查各个数据文件的状态,即使某些数据文件不可用,oracle也会忽视这些错误,下一次将表空间

恢复为联机状态时,可能需要进行数据库恢复.如果数据文件可用,oracle会将与该表空间相关的脏缓存块都写入数据文件中.

3.altertablespaceuser01offlineimmediate(立即方式)

oracle不会执行检查点,也不会检查各个数据文件的状态,而是直接将属于表空间的数据文件设置成脱机状态,下一次将表空间

恢复为联机状态时,需要进行数据库恢复.运行在noarchivelog方式下的数据库不允许用这种方式切换到脱机状态.

恢复表空间为联机状态

altertablespaceuser01online;

设置表空间为只读状态

altertablespaceuser01readonly

设置表空间为读写状态

altertablespaceuser01readwrite

删除表空间(不包括对应的数据文件)

droptablespaceusersincludingcontents;

删除表空间(包括对应的数据文件)

droptablespaceusersincludingcontentsanddatafiles;

删除表空间的数据文件

(适用情况:

不小心给一个表空间增加了一个数据文件,或者你把文件大小设得过大,所以想把它删掉)

(注:

Oracle不提供如删除表。

视图一样删除数据文件的方法,数据文件是表空间的一部分,所以不能“移走”表空间。

在对表空间/数据文件进行任何脱机、删除之前,首先对数据库进行一个全备份)

A:

如果数据文件是所在表空间的唯一的数据文件,你只要简单地删除表空间即可:

DROPTABLESPACEINCLUDINGCONTENTS

B:

如果你的表空间有多个数据文件,而你不需要表空间中的内容,或者你可以很容易重新产生表空间的内容,你可以使用

DROPTABLESPACEINCLUDINGCONTENTS;命令来从Oracle数据字典删除表空间、数据文件和表空间的内容。

Oracle不会再访问该表空间中的任何内容。

然后重新创建表空间并重新导入数据。

C:

如果你的表空间有多个数据文件,而你还需保留该表空间中的其它数据文件中的内容,则你必须首先export出该表空间中的所有内容。

为了确定表空间中包含那些内容,运行:

selectowner,segment_name,segment_type

fromdba_segments

wheretablespace_name=''

export出你想保留的内容。

如果export结束,你可以使用DROPTABLESPACEtablespaceINCLUDINGCONTENTS.,这样永久删除表空间的内容,使用操作系统命令物理删除数据文件,按所需数据文件重新创建表空间,把数据import至表空间。

注意:

ALTERDATABASEDATAFILEOFFLINEDROP命令不能允许你删除数据文件,它的目的是脱机该数据文件以删除表空间。

如果在归档模式下,使用ALTERDATABASEDATAFILEOFFLINEDROP来代替OFFLINEDROP。

一旦数据文件脱机,Oracle不会再访问该数据文件的内容,但它仍然是表空间的一部分。

这个数据文件在控制文件中标记OFFLINE,在数据库启动时不会对它与控制文件进行SCN的比较。

在控制文件中保留这个数据文件的入口是方便以后的恢复。

如果你不想按照上述方法来删除表空间,还有其它一些解决方法。

1.如果你想删除数据文件的原因是因为分配了不合适的文件大小,你可以考虑RESIZE命令。

2.如果你不小心增加了一个数据文件,而这个文件还没有分配空间,你可以使用

ALTERDATABASEDATAFILERESIZE;命令使其小于5个Oracle块大小,如果数据文件的大小小于这个,Oracle将不会进行扩展数据文件。

在以后,Oracle可以重建的时候来剔除这个不正确的文件。

创建用户并授权

回收该用户的更新权限。

查看该用户权限情况。

Revokeupdateanytable

Fromff;

删除用户

Dropuserff;

oracle的参数文件(spfile/pfile/initSID.ora)被破坏以后

实验目的:

分别对spfile和pfile进行删除操作,看能否或如何修复并启动数据库

前期知识:

1:

查找spfile的位置:

showparameterspfile;

(F:

\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA)

2:

用pfile文件启动数据库方法:

Startuppfile=$ORACLE_HOME\admin\CL7100\pfile\init.ora.X(X为编号)

实验步骤:

1、spfile破坏/删除后的修复方法:

注:

要知道默认的pfile文件的存放位置。

3.pfile破坏/删除后的修改方法

4、spfile和pfile删除后

小结:

仍可正常启动。

原因:

启动了F:

\oracle\product\10.2.0\db_1\database\initSID.ora文件。

5、接上一步,马上生成spfile文件。

总结:

如果spfileSID.ora和initSID.ora都被破坏了,则可用

Createspfile语句从pfile中直接生成spfile(注意spfile存放位置)

6、initSID、spfileSID、pfileSID文件删除后

答案:

 

总结:

1、如果spfile被删除那么

方法一:

sqlplus/nolog

conn/assysdba;

Createspfile='D:

\oracle\product\10.2.0\db_1\dbs\SPFILESID.ORA'frompfile='D:

\oracle\product\10.2.0\admin\testing\pfile\init.ora.913200824649';

方法二:

SQL>startuppfile='C:

\oracle\product\10.2.0\admin\orcl\pfile\init.ora';--采取指定pfile方式登录数据库

--然后创建spfile 

SQL>createspfilefrompfile='C:

\oracle\product\10.2.0\admin\orcl\pfile\init.ora';

补充:

startupmountpfile='xxxxx'从pfile文件启动数据库

createspfilefrompfile='xxxx'或createspfilefrompfile;从pfile中生成spfile

二、删除一个控制文件

1、更改控制文件

2、删除控制文件

3、复制控制文件

4、startup启动数据库并删除原控制文件

三:

损坏全部控制文件

损坏多个控制文件,或者人为的删除了所有的控制文件,通过控制文件的复制已经不能解决问题,这个时候需要重新建立控制文件。

先决条件:

必须先用alterdatabasebackupcontrolfiletotrace产生一个控制文件的文本备份。

1、sqlplus/nolog

2、conn/assysdba

3、修改由alterdatabasebackupcontrolfiletotrace备份控制文件时产生的脚本,去掉多余的注释即可(也可不修改,只是有部份警告信息)。

大概内容如下(配置不同,数据也不同):

STARTUPNOMOUNT

CREATECONTROLFILEREUSEDATABASE"ORCL"NORESETLOGSNOARCHIVELOG

MAXLOGFILES16

MAXLOGMEMBERS3

MAXDATAFILES100

MAXINSTANCES8

MAXLOGHISTORY292

LOGFILE

GROUP1'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'SIZE50M,

GROUP2'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'SIZE50M,

GROUP3'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'SIZE50M

--STANDBYLOGFILE

DATAFILE

'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',

'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',

'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',

'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',

'F:

\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF',

'F:

\ORCL\TESTSPACE1.DBF',

'F:

\ORCL\TESTSPACE2.DBF'

CHARACTERSETZHS16GBK;

--Commandstore-createincarnationtable

--Belowlo

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

当前位置:首页 > 高等教育 > 工学

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

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