Oracle DBA培训教程:从实践中学习Oracle数据库管理与维护(第2版)笔记


  1. 要获得企业管理器控制台的HTTP端口号,可进入$ORACLE_HOME\install目录(可能为F:\oralce\product\10.2.0\db_1\install),寻找portlist.ini正文文件。
  2. 其他用户解锁语句:alter user scott identified by tiger account unlock;

Scott脚本 SQL:@F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql

3.ORACLE9i体系结构图:


ORACLE11G体系结构图:


内存结构:PGASGAsystem global area

程序全局区program global areaPGA),oracle创建一个服务器进程的同时要为该服务器进程分配一个内存区,不能共享,且只属于一个进程。

程序全局区:排序区、游标状态区、会话信息区、堆栈区

如果是共享服务器进程或多线程配置,以上结构除了堆栈区大部分信息会存在SGA中的large pool中(如果没有large pool 则放在shared pool中)

Instance:SGAbackground processes

系统全局区(SGAshared poolDB buffer cacheredo log buffersJAVA poollarge pool

其中,共享池(shared pool)由库高速缓存(library cache)和数据字典高速缓存(data dictionary cache)组成。

Library cache:服务器进程将SQLPL/SQL语句正文和编译后的代码(parsed code)以及执行计划都放在共享池(Shared pool)的库高速缓存中,在进行编译时,服务器进程首先会在共享池中搜索是否有相同SQLPL/SQL语句(正文,注意CURSOR_SHARING参数的设置),若有,就不进行后续编译处理,直接使用已存在的编译后的代码和执行计划。使用LRULsast recently used)算法。当用户修改某个对象的定义后,共享池中的代码都会置为无效。

Data dictionary cache:当oracle执行SQL语句时,服务器进程将把数据文件、表、索引、列、用户和其他的数据对象的定义和权限信息放入数据字典高速缓存。因为访问较频繁,可以尽量设置大一些,无法直接修改,可以通过更改shared pool修改。

数据库高速缓冲区(database buffer cache):用户执行查询语句后进行数据提取,服务器进程将首先在database buffer cache中搜寻所需的数据,如果找到了就直接使用,不进行磁盘操作,如果没有找到就将进行磁盘操作将数据文件中的数据读入到database buffer cache。使用LRULsast recently used)算法。可以使用DB_BLOCK_SIZEDB_BLOCK_BUFFER两个参数设置database buffer cache(两者乘积)大小.

SQL>alter system set db_cache_size=48M

重做日志缓冲区(redo log buffer

大池(large pool,提高效率)、JAVA 池(java pool,能够编译JAVA命令)

Background processesSMONPMONCKPTDBWRLGWRARC0

重做日志写进程(log writerLGWR)负责将重做日志缓冲区的记录顺序地写到重做日志文件中。重做日志进程在下列情况下将重做日志缓冲区记录顺序写到重做日志文件中,见P22

数据库写进程(DBWR/DBWnoracle允许一个实例最多启动10个数据库写进程,DBW0~DBW9.数据库写进程将在下列事情发生时把数据库高速缓冲区中的数据写到数据文件中p23

系统监督进程(SMON

进程监督进程(PMON

校验点(checkpoint

归档日志(ARCH/ARCn

数据文件:控制文件(control files)、重做日志文件(redo log files)、数据文件(data files、归档重做日志文件(archived redo log files

  1. 用户进程与服务器连接方式:专用服务器连接(dedicated server connection)、多线程连接(MTS

专用服务器连接:基于interprocess communicationIPC)机制的连接、基于网络协议(如TCP/IP)的C/S连接、客户端-应用服务器-服务器三层模型

MTS:在联机事务处理(online transaction processingOLTP)系统配置时的一种连接。

  1. 查询语句处理阶段:编译(parse)、执行(execute)、提取数据(fetch

Parse:在进行编译时,服务器进程PGA,会将SQL语句的正文放入共享池(Shared pool)的库高速缓存(library cache)中并将完成以下处理

首先,在共享池中搜索是否有相同的SQL语句(正文),如果没有就进行后续的处理

检查该SQL语句的语法是否正确

通过查看数据字典来检查表和列的定义

对所操作的对象加编译锁(parse locks,以便在编译语句期间这些对象的定义不能被改变

检查所引用对象的用户权限

生成执行该SQL语句所需要的优化的执行计划(执行步骤)

SQL语句和执行计划装入共享的SQL

ExecuteORACLE 服务器进程开始执行SQL语句是因为它已经获得了执行SQL语句所需的全部资源和信息

Fetchoracle 服务器进程选择所需的数据行,并在需要时进行排序,最后将结果返回用户(进程)。

  1. 系统变化数(system change number,SCN)无论某个事务(transaction)被提交,oracle服务器就产生一个SCN,并将其赋予给该事务所有的数据行,在同一个数据库中SCN是单调递增并且唯一的。

7.sys用户拥有数据库中数据字典,默认口令为change_on_install,在使用sys登陆数据库时,应该使用sysdbasysoper权限连接。

System是拥有由oracle工具所使用的附加内部表和视图,默认口令manger

  1. 初始化参数文件:静态参数文件(parameter filePFILE),该文件为正文文件,可以编辑保存、动态服务器参数文件(SPFILE),该文件为二进制文件,不能编辑保存。

Pfile一般文件名为:initSID.oraSPFILE文件名一般为:spfileSID.oraSID为实例名。

CREATE SPFILE=[=’SPFILE’] FROM PFILE [=’PFILE’]

CREATE PFILE=[=’PFILE’] FROM SPFILE

Spool c:\sql\parameter

  1. 数据库启动执行顺序spfileSID,若无,则SPFILE文件,若无,则initSID文件,若无,则默认的PFILE文件

10.STARTUP [FORCE] [RESTRICT][PFILE=文件名]

[OPEN [RECOVER] [DATABASE] |MOUNT|NOMIUNT ]

NOMOUNT(只启动实例并不打开数据库中任何文件,连控制文件都不打开,一般在创建数据库时使用):分配SGA、启动所需全部后台进程、打开报警文件(alertSID.log)和追踪文件(trace

MOUNT(启动实例,打开控制文件):将数据库与已启动的实例关联起来、利用初始化参数文件中的说明锁定并打开控制文件、读控制文件以获取数据文件和重做日志文件的名字和状态的信息,但并不检查这些文件是否存在。

OPENstartup默认方式):打开所有联机数据文件、打开所有联机重做日志文件

ALTER DATABASE OPEN

ALTER DATABASE READ ONLY;

ALTER DATABASE READ WRITE;

STARTUP RESTRICT(限制模式)

Alter system ebable restricted session;活动的数据库更改为限制模式,对将来登陆的有效,已经在线的无效。

11.SHUTDOWN [NORMAL |TRANSACTIONAL |IMMEDIATE |ABORT]

关闭方式

A

I

T

N

允许新的链接

NO

NO

NO

NO

等待到当前所有会话结束

NO

NO

NO

YES

等到到当前所有的事务(交易)结束

NO

NO

YES

YES

强制型检查点和关闭文件

NO

YES

YES

YES

 

12.SELECT SID,SERIAL#,USERNAME ,TYPE FROM V$SESSION

ALTER SYSTEM KILL SESSION ‘SID(会话标识符),SERIAL#(序列号)

  1. 诊断文件常见的有3类:报警文件(unix中为alertSID.logNT系统为SIDALRT.log)、后台进程追踪文件(background trace files)和用户进程追踪文件(USER trace files

报警文件:包括了数据库日常操作信息,存在在由background_dump_dest参数所定义的目录下,一般由下往上看,也可以利用报警文件的提示到追踪文件中查找更详细的信息。包含信息:数据库启动或关闭的时间、所有非默认化初始化参数、LGWR正在写的日志序列号、日志的切换信息、所执行的alter语句、创建的表空间和还原段等。

后台进程追踪文件记录LGWRSMON等遇到的错误

用户进程追踪文件是由用户进程创建,也可以由服务器进程产生,包含了用来追踪用户SQL语句的统计信息,也包含了用户的错误信息。存放在user_dump_dest参数定义的目录下,大小由max_dump_filr_size参数定义,默认10M

Alter session set sql_trace=true(会话级,追踪完毕最好关闭)

Sql_trace=true(实例级,在初始化参数里修改,建议不开)

  1. 数据字典是由oracle服务器创建和维护的一组只读的系统表(与审计有关的数据字典(以AUD$开头)除外,这些可以修改),分为两大类:基表、数据字典视图。

数据字典视图分为3大类,前缀分别为USERALLDBA

USER_*:有关用户所拥有的对象的信息,即用户自己创建的对象的信息

ALL_*:有关用户可以访问的对象的信息,即用户自己创建的信息再加上其他用户创建的对象但该用户有权访问的信息

DBA_*:有关整个数据库中对象的信息

这里的*可以为TABLEINDEXOBJECTS

Select * from user_catalog;/cat

动态性能视图,以v$开头,sys用户拥有所有的动态性能视图,实时反映了数据库运行的状态。

Select * from dictionary |v$fixed_table;

Select name,created,log_mode,open_mode from v$database;

Select host_name,instance_name,version from v$instance;

Select * from v$version;

Select * from v$controlfile;

Select group#,members,bytes,status,archived from v$log;

Select * from v$logfile;

Archive log list

Select tablespace_name,block_size,status,contents,logging from dba_tablespaces;

Select file_id,file_name,tablespace_name,status,bytes from dba_date_files;

Select username,created from dba_users;

  1. 数据库的控制文件是一个比较小的二进制文件,记载了物理数据库的当前状态,每一个控制文件只属于一个数据库,但为了防止控制文件丢失,一个数据库一般不止一个控制文件,这些控制文件中的内容完全一样。在数据库装载或者打开之前,这些控制文件必须能被oracle访问,为了防止磁盘的物理故障,这些控制文件最好放在不同的物理磁盘上,最好放在不同的物理磁盘控制器上。

控制文件中的信息P72

相关数据字典v$archived v$archived_log v$backup v$database v$datafile v$log v$logfile v$loghist v$tablespace v$tempfile

Select type,record_size,records_total,records_userd from v$controlfile_record_section;

Alter system set control_files=’d:\disk3\control01.ctl’….

Alter database backup controlfile to ‘d:\backup\control.bak’;

16. COL[UMN] [{column | expr} [option...] ]

 where option is one of the following clauses: 

ALI[AS] alias  CLE[AR]  ENTMAP {ON|OFF}  FOLD_A[FTER]  FOLD_B[EFORE]  FOR[MAT] format  HEA[DING] text  JUS[TIFY] {L[EFT] | C[ENTER] | C[ENTRE] | R[IGHT]}  LIKE {expr | alias}  NEWL[INE]  NEW_V[ALUE] variable  NOPRI[NT] | PRI[NT]  NUL[L] text  OLD_V[ALUE] variable  ON|OFF  WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]

对字符:col char format a20

对数字:col num format 999999

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页