Oracle 9i DBA Fundamentals I学习笔记(一)
Chapter 01--Oracle Architectural Components
1、 oracle服务器
包含两个组成部分:oracle instance和oracle database
2、 oracle instance
·访问数据库的一种方法
·一个Oracle Instance只能对应一个Oracle database,每次只能打开和使用一个数据库
·由内存结构和后台进程组成:
(内存结构包括SGA和PGA,实例启动时创建SGA,服务器进程启动时创建PGA)
3、 oracle instance和oracle database的关系
一个instance只能对应一个database、
一个database可以有多个instance来访问
4、 连接到oracle实例包括:建立用户连接和创建会话
连接:客户端和服务器建立的连接(主要是TCP连接)
会话:用户与oracle服务器的一种特定连接。
先建立连接,然后创建会话。连接断开后,会话就随之结束
5、 SGA
(1)、SGA是动态的
(2)、大小由SGA_MAX_SIZE参数指定,SGA的最大值不能超过由SGA_MAX_SIZE指定的值
(3)、由SGA组件以粒组为单位进行分配和跟踪
·是连续的虚拟内存分配
·粒组大小由估算的SGA_MAX_SIZE总计大小确定
(4)、SGA的大小不能超过
SGA_MAX_SIZE-DB_CACHE_SIZE-LOG_BUFFER-SHARED_POOL_SIZE
-LARGE_POOL_SIZE-JAVA_POOL_SIZE
(5)、查看Granule以及SGA的组成部分的SQL语句:
select component, granule_size from v$sga_dynamic_components;
(6)、组成部分
·shared pool
·database buffer cache
·redo log buffer
·other structures
(7)、查看SGA相关信息
SQL> show sga;
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL>
6、 PGA
(1)、包含有关单个服务器进程或单个后台进程的数据和控制信息
(2)、在创建进程时分配,并在终止进程时回收。PGA是仅供一个进程使用的内存区
7、专用服务器和共享服务器之间的内存分配差异
一般来讲,PGA内存包括下列组件:
内存区 | 专用服务器 | 共享服务器 |
会话内存的特性 | 专用 | 共享 |
永久区的位置 | PGA | SGA |
运行时区的位置(select) | PGA | SGA |
运行时区的位置(dml/ddl) | PGA | SGA |
8、共享池(shared pool)
(1)、由library cache和data dictionary cache两个内存结构组成。
·库高速缓存(library cache):存储经过编译解析后的SQL和PL/SQL语句的内容。包含shared SQL area和shared PL/SQL area两个组成部分。
其大小由shared pool size决定。其大小决定了编译SGL语句的频率,从而影响性能。
·数据字典高速缓存(data dictionary cache):存储数据字典中的部分信息。可以缩短查询和DML的执行时间,其大小由shared pool size决定。
(2)、用于存储最近执行的SQL语句和最近使用的数据定义
(3)、大小由SHARED_POOL_SIZE参数决定:
alter system set shared_pool_size=64m;
9、数据库缓冲区高速缓存(database buffer cache)
(1)、存储已经从数据文件中检索到的数据块的副本。由独立的子高速缓存区组成:
·DB_CACHE_SZIE:只调整缺省缓冲区高速缓存的大小,这个参数始终存在且不能设置为零
·DB_KEEP_CACHE_SIZE:调整保留缓冲区高速缓存的大小,用于保留内存中很可能会重新使用的块
·DB_RECOVERY_CACHE_SIZE:调整循环缓冲区高速缓存的大小,用于删除内存中重新使用的可能性很小的块
(2)、能够提高获取和更新数据时的性能
(3)、主要由参数DB_BLOCK_SIE确定,大小可以动态调整:
alter system set db_cache_size=96m;
(4)、通过设置DB_CACHE_ADVICE,可以收集用于预测不同高速缓存大小行为的统计信息,
统计信息由视图V$DB_CACHE_ADVICE显示
10、重做日志缓冲区(redo_log_buffer):
记录对数据库数据块所做的全部更改、主要用户恢复。
其中记录的更改称作重做条目、重做条目包含用于重新构造或重做更改的信息。
大小由LOG_BUFFER参数决定。
11、大型共享池
(1)、SGA中可选的内存区
(2)、分担了共享池的一部分工作
(3)、用途:
·共享服务器的会话内存(UGA)
·I/O服务器进程
·备份和恢复操作进程或RMAN
·并行执行消息缓冲区
·不使用LRU
·大小由LARGE_POOL_SIZE确定
12、进程结构
(1)、用户进程:在数据库用户请求连接到oracle服务器时启动
·用户进程并不与Oracle服务器直接进行交互操作,而是通过用户程序接口(UPI)生成各种调用。用户程序接口则可以创建会话并启动服务器进程。
(2)、服务器进程:与oracle例程相连接,在用户建立会话时启动。
用户建立连接后,服务器进程便会启动,以处理用户进程的请求
(3)、后台进程:在oracle例程启动时启动
13、必备的后台进程
(1)、数据库写入程序(DBWn)
在以下情况下写入:
•出现检查点
•灰数据缓冲区达到阈值
•没有空闲缓冲区
•出现超时
•执行了RAC ping请求
•表空间处于OFFLINE状态
•表空间处于READ ONLY状态
•对表执行DROP或TRUNCATE操作
•对表空间执行BEGIN BACKUP
(2)、日志写入器(LGWR)
LGWR在以下情况下写入:
·当提交事务时
•当重做日志缓冲区的三分之一填满时
•当重做日志缓冲区中记录了超过1 MB的更改时
•在DBWn将数据库缓冲区高速缓存中修改的块写入数据文件以前
•每隔三秒
(3)、系统监控程序(SMON)
职责:
•例程恢复
–前滚重做日志中的更改
–打开数据库供用户访问
–回退未提交的事务处理
•合并空闲空间
•回收临时段
(4)、过程监视器(PMON)
例程失败后,通过以下方法进行清理:
•回退事务处理
•释放锁
•释放其它资源
•重新启动已失效的调度程序
(5)、检查点(CKPT)
职责包括:
•在检查点发信号给DBWn
•使用检查点信息更新数据文件的标头
•使用检查点信息更新控制文件
14、表空间:
Oracle数据库内的数据存储在表空间内。
• Oracle数据库可以从逻辑上分组到称为表空间的更小的逻辑空间区。
•一个表空间在某一时刻只能属于一个数据库。
•每个表空间由一个或多个称为数据文件的操作系统文件组成。
•表空间可能包含一个或多个段。
•表空间可以在数据库运行时联机。
•除了SYSTEM表空间或者有活动还原段的表空间,可将其它表空间置于脱机状态而不会影响数据库运行。
•表空间可以在可读写和只读状态之间切换。
15、数据文件(不是逻辑结构):
• Oracle数据库内的每个表空间由一个或者多个称为数据文件的文件组成。这些物理结构与在其上运行Oracle服务器的操作系统是一致的。
•一个数据文件只能属于一个表空间。
•通过分配指定数量的磁盘空间加上少量的开销,Oracle服务器创建表空间数据文件。
•数据文件创建后,数据库管理员可以更改其大小或者指定数据文件应随着表空间内对象的增长而动态增长。
16、段:
•段是在表空间中为特定逻辑存储结构分配的空间。
•表空间可以由一个或多个段组成。
•段无法跨越表空间;但是段可以跨越属于同一表空间的多个数据文件。
•每个段由一个或多个区组成。
17、区:
按区向段分配空间。
•一个或多个区组成一个段。
–当段创建后,它至少由一个区组成。
–随着段的增长,需要向该段添加区。
– DBA可以手动向段添加区。
•一个区就是一组连续的Oracle块。
•区无法跨越数据文件,所以,它必须存在于一个数据文件内。
Oracle 9i DBA Fundamentals I学习笔记(二)
Chapter 02—Getting started with the oracle server
工具 | 说明 |
Oracle Universal Installer (OUI) | |
Oracle Database Configuration Assistant | 与OUI进行交互的图形用户界面工具,也可单独使用,用于创建、删除或修改数据库 |
SQL*Plus | 用于访问Oracle数据库中数据的实用程序 |
Oracle Enterprise Manager | 用于管理、监视和优化一个或多个数据库的图形界面 |
2、 Universal Installer具有以下功能:
•检测组件之间的相关性并根据检测结果执行安装。
•可用于指向定义了发布或登台区域的URL,并可通过HTTP远程安装软件。
•可用于删除已安装的产品。卸装操作是对安装操作的“撤消”。
•维护目标计算机上所有Oracle主目录的清单,其中包括主目录的名称、产品以及主目录上安装的产品的版本。
•检测操作系统的语言,并用该语言运行安装会话。
•可在交互模式或静默模式下运行。Oracle Universal Installer使用响应文件在静默(或非交互)模式下运行。
3、 非交互式安装oracle
使用response file来安装。使用response file可以同时在很多台机器上进行安装。
语法:./runInstaller -responsefile myrespfile -silent
4、 DBCA数据库配置助手
语法:./dbca
5、数据库管理员用户(SYS、SYSTEM用户)
都是系统自动创建的用户。
SYS:超级用户,数据字典的所有者,缺省口令是change_on_install
SYSTEM:Oracle工具使用的附加内部表和视图的所有者,缺省口令是manager
在高版本里面不设置默认口令。
6、 SQL*Plus
连接命令:sqlplus /nolog
conn / as sydba
启动监听器:lsnrctl start。启动监听器后,可以通过客户端连接数据库服务器。
7、 Oracle Enterprise Manager
•用作DBA的集中系统管理工具
•管理、诊断和优化多个数据库的工具
•从多个位置管理多个网络节点和服务的工具
•用于与其他管理员共享任务
•提供管理并行服务器和复制的数据库的工具
8、 Oracle Enterprise Manager体系结构
Oracle Enterprise Manager使用三层体系结构,其中包括:
第一层:控制台客户机和集成工具,为管理员提供图形界面。
第二层:Oracle Management Servers和数据库资料档案库,为处理系统管理任务提供可伸缩的中层结构。
第三层:安装在每个节点上的智能代理,监视Oracle Enterprise Manager服务并执行Management Server上的任务。
并非在所有情况都需要采用三层系统的Oracle Enterprise Manager,Oracle Enterprise Manager也可以仅有两层体系结构,该结构直接连接至数据库。使用独立启动的控制台,一个用户可以使用一个或多个应用程序,而无需使用Oracle Management Server或智能代理。
如果要执行无需使用作业、事件或组系统的基本管理任务,可以使用独立控制台。
Oracle 9i DBA Fundamentals I 学习笔记(三)
Chapter 03—Mangagering an Oracle Instance
1、 初始化参数文件
(1)、初始化参数文件的种类:
·静态参数文件pfile,一般命名方式为initSID.ora
·永久参数文件spfile,一般命名方式为spfileSID.ora
(2)、两种类型的参数:
·显式参数
·隐式参数
(3)、初始化参数文件内容:
•例程参数列表
•与该例程相关联的数据库的名称
•系统全局区(SGA)的内存结构的分配
•如何处理已满的联机重做日志文件
•控制文件的名称和位置
•有关撤消段的信息
为在各种不同情况下优化性能,一个例程可有多个初始化参数文件。
2、 PFILE-initSID.ora(命名规则)
•文本文件
•可以手工修改,使用操作系统编辑器进行修改
•修改成功后,在下一次启动实例后生效
•仅在例程启动过程中打开,在打开过程中是只读的
•默认路径为:$ORACLE_HOME/dbs
(1)、PFILE可以位于客户端
(2)、创建一个PFILE(使用已经存在的pfile创建一个pfile)
cp init.ora $ORACLE_HOME/dbs/initdba01.ora
3、 SPFILE-spfileSID.ora
•二进制文件
•由Oracle服务器进行维护,不能手动修改
•始终驻留在服务器端
•所做更改永久有效,不受关闭和启动的影响
•可以自行调节参数值
•默认路径为:$ORACLE_HOME/dbs
(1)、可以通过PFILE创建SPFLIE(必须具有sysdba权限)
CREATE SPFILE = ‘ $ORACLE_HOME/dbs/spfileDBA01.ora’
FROM PFILE = ‘$ORACLE_HOME/dba/initDBA01.ora’;
在实例启动前后都可以创建。
(2)、修改SPFILE
alter system set parameter = value <comment =’text’>
<deferred> <scope=memory | spfile | both><sid=’sid|*’>
其中
parameter_name:要更改的参数的名称
parameter_value:要将参数更改为的值
COMMENT:添加在SPFILE中被更改的参数旁的注释
SCOPE:确定应在内存中、在SPFILE中还是同时在这两个位置进行更改,值缺省值是both
MEMORY:只能在当前运行的例程中更改参数值
SPFILE:只能在SPFILE中更改参数值
BOTH:在当前运行的例程和SPFILE中均可更改参数值
SID:标识要使用的SPFILE的ORACLE_SID
'sid':更改SPFILE时使用的特定SID
'*':使用缺省SPFILE
deferred:延迟修改,下一次登录时,才修改
4、 SPFILE与PFLIE的区别:
·SPFILE可以被备份
·SPFLIE减少人为错误,提高安全性
·SPFILE减少配置错误
·容易查找到
5、 查看参数:
show parameter parametername;
6、startup命令
(1)、startup命令默认读取参数文件的顺序:
·spfileSID.ora
·缺省SPFILE
·initSID.ora
·缺省PFILE
(2)、使用startup命令时,可以显式指定要使用的pfile。但不可以指定spfile。
如:startup pfile=$ORACLE_HOME/dbs/init.ora
但是可用通过pfile,调用spfile。只需在pfile中追加以下相关语句,指定要使用的spfile文件:spfile=$ORACLE_HOME/dbs/spfileabc.ora
(3)、谁可以启动数据库:
有操作系统特权的用户、有sysdba或者有sysoper特权并通过验证的用户。
7、 启动数据库的几个阶段:
(1)、SHUTDOWN:未启动状态
(2)、NOMOUNT:启动实例。在nomount状态,可以创建数据库和控制文件
--读取初始化参数文件
--分配SGA
--启动后台进程。(没有数据库和与之连接)
--打开报警日志和跟踪文件
(3)、MOUNT:加载数据库,但没有打开数据库。
加载数据库包括以下任务:
--使数据库与以前启动的实例关联
--定位并打开参数文件中指定的控制文件
--读取控制文件以获取数据文件和重做日志文件的名称和状态。但是,在此时不进行数据文件和联机重做日志文件是否存在的检查。
在mount状态,可以重命名数据文件、启用和禁用重做日志归档选项、执行完全数据库恢复。
把一个数据库和一个实例挂接起来。读取控制文件(alter database mount)
(4)、OPEN:打开数据库。读取数据文件和联机重做日志(alter database open)。
Oracle服务器验证所有数据文件和联机重做日志文件是否可以打开,并检查数据库的一致性。如果需要,系统监视(SMON)后台进程将启动例程恢复操作。
*****************************************************************************************************************
[oracle@oracle9idemo ~]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Wed Dec 15 18:06:23 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string denver
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
SQL>
***************************************************************************************************************
8、设置只读模式
STARTUP MOUNT
ALTER DATABASE OPEN READ ONLY;
8、 关闭数据库过程
·close a database:
SGA数据写到磁盘上、连接数据文件和redolog文件关闭掉。控制文件仍然是打开的。
·unmount a database:关闭控制文件
·shutdown an instance
9、 诊断文件
(1)、文件类型:
·警告日志(alterSID.log file):记录数据库日常操作的信息
·后台跟踪文件(background trace files):
记录SMON、PMON、DBWn和其它后台进程失败时产生的重要信息
·用户跟踪文件(user trace files):
记录出现严重用户错误或用户强制执行跟踪文件时产生的重要信息
(2)、命名方式:
background trace files命名方式:SID_processname_PID.trc。
user trace files命名方式:SID_ora_PID.trc
alert log由dba来管理,位于background_dump_dest中。
(3)、存储位置:
·警告日志(alterSID.log file):存储位置由BACKGROUND_DUMP_DEST定义
·后台跟踪文件(background trace files):存储位置由BACKGROUND_DUMP_DEST定义
·用户跟踪文件(user trace files):存储位置由USER_DUMP_DEST定义
10、启用或禁用用户跟踪选项(可以在两种级别进行修改设置)
(1)、会话级别:
–使用ALTER SESSION命令:
ALTER SESSION SET SQL_TRACE = TRUE
–执行DBMS过程:
dbms_system.SET_SQL_TRACE_IN_SESSION
(2)、例程级别
–设置初始化参数:
SQL_TRACE = TRUE
11、查看用户
desc dba_users;
SQL> select username,account_status from dba_users;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SYS OPEN
SYSTEM OPEN
DBSNMP OPEN
SCOTT OPEN
HR OPEN
…
SQL>