体系结构及管理:2.5-3天
备份与恢复:5天-5.5天
性能调整:5天-5.5天
Oracle Server:例程和数据库
用户进程:客户应用程序(发出SQL语句)
服务器进程:为用户进程所分配(默认:一一对应)
执行SQL操作(影子进程)
ORA-1034:例程未启动(特权用户:STARTUP)
连接:用户进程到服务器进程的物理通信通道
会话:特定用户的连接
例程:由一组内存结构和后台进程组成
SGA(System Global Area):数据高速缓存 重做日志缓冲区共享池
后台进程:隐含执行(SMON PMON DBWR LGWR CKPT ARCH)
数据库:由一组OS文件组成
数据文件:存放数据(数据字典 用户数据 UNDO数据)
控制文件:记录和维护数据库的物理结构(关联例程和数据库)
重做日志:记录数据库变化(恢复数据库)
参数文件:存放例程的初始化参数(PFILE和SPFILE)
口令文件:验证特权用户(启动 关闭 备份和恢复)
归档日志:非活动重做日志的备份(完全恢复数据库)
处理SELECT:
1 解析:生成执行计划(内部执行步骤)---库高速缓存
2 执行:数据-->数据高速缓存
3 提取数据:数据-->客户端
A:SELECT * FROM emp WHERE empno=7788--100字节
B:SELECT * FROM emp WHERE EMPNO=7788;
9I:共享池尺寸可以动态修改
数据块:Oracle在数据文件上执行IO操作的最小单位(8K)
9I:
1 不同表空间可以使用不同数据块尺寸(不指定BLOCKSIZE:标准数据块)
2 不同数据块尺寸只能使用不同数据高速子缓存
3 数据高速缓存尺寸可以动态修改
DB_nK_cache_size:定义非标准的数据高速缓存
PGA(Program Global Area):存放后台进程和服务器进程的数据和控制信息
1 SGA:共享,PGA:私有
2 pga_aggregate_target(9I):PGA总计内存空间
排序区:存放排序操作的临时数据(ORDER BY)
会话信息:存放会话所具有的权限和角色
游标状态:SQL语句所处的阶段
堆栈空间:存放会话变量
处理DML语句:解析和执行
执行步骤:
1 数据-->数据高速缓存
2 在被作用行上加锁
3 数据变化-->重做日志缓冲区
4 修改数据(数据段 UNDO段)
UNDO段:存放事务所修改数据的旧值
UPDATE emp SET sal=1000 WHERE empno=7788;
INSERT
重做日志缓冲区尺寸不能动态修改
脏缓冲区:DML操作后的缓冲区
DBWR:脏缓冲区写入到数据文件(DBWn)---db_writer_processes
--发出检查点
检查点:用于同步数据库的数据文件 控制文件和重做日志(当前SCN完全一致)
1 关闭数据库(SHUTDOWN ABORT例外)
2 日志切换
3 强制检查点
4 初始化参数
SCN(System Change Number):记录数据库变化的惟一标识号(顺序递增)
---备份和恢复
A:UPDATE ---100000
B:DELETE ---100100
LGWR:重做日志缓冲区-->重做日志
1 3S
2 COMMIT(快速提交)
3 1/3LOG_BUFFER
4 在DBWR之前(先写日志后写数据)
UPDATE
处理COMMIT:
1 服务器进程:COMMIT和SCN-->重做日志缓冲区
2 LGWR:重做日志缓冲区-->重做日志
3 提示用户进程:提交完成
4 释放锁
SQL*Plus:管理数据库(启动例程 关闭例程等)
SQL*Loader:文本文件数据-->数据库
EXP:数据库数据-->EXP文件(10G:EXPDP)
IMP:EXP文件-->数据库(10G:IMPDP)
ORAPWD:管理特权用户的口令
SYSDBA:最高权限(启动和关闭 建立数据库)--OS用户:ORA_DBA组(OSDBA)
SYSOPER:启动和关闭(不具备DBA角色的权限)--OS用户:ORA_OPER组(OSOPER)
DBA:在启动数据库之后执行各种管理操作(不能启动和关闭数据库)
特权用户登录:AS SYSDBA或者AS SYSOPER
OS验证:使用OS用户确保特权用户的安全性--不允许远程登录
sqlnet.ora:ORACLE_HOMEnetworkadmin
ORACLE_HOME:Oracle数据库软件的安装目录
1 修改参数
2 重新启动Oracle服务
配置OS验证 |
口令文件验证:指使用口令文件确保特权用户的安全性(建议)
--允许远程登录
口令文件默认位置:ORACLE_HOMEdatabase
口令文件名称:PWDORACLE_SID.ORA
ORACLE_SID:例程名(MS)
1 删除原有口令文件 2 建立口令文件 3 修改初始化参数 4 重新启动数据库 5 修改SQLNET.ORA文件 修改特权用户口令为ADMIN |
配置监听程序和网络服务名(Net Manager)
监听程序:用于监听客户端的连接请求(Oracle Server端)
1 配置监听位置
网络协议:常用TCP/IP
主机:机器名或者IP地址
端口:IP端口号(未占用IP端口)
2 配置数据库服务
全局数据库名:应该设置为初始化参数service_names的值
Oracle主目录:应该设置为环境变量ORACLE_HOME的值
SID:应该设置为环境变量ORACLE_SID的值
3 保存网络配置,重新启动监听程序
1 删除原有监听程序LISTENER 2 配置监听程序LISTENER并重新启动 |
网络服务名:连接到目标数据库的网络别名(客户端)
NET服务名:任意指定
协议:与监听程序的协议必须完全一致
主机名:监听程序所在机器名或者IP地址
端口:监听程序所使用的IP端口
服务名:监听程序所配置的全局数据库名
保存网络配置
1 配置网络服务名S1(连接到本地数据库) 2 以S1连接到本地数据库,然后检查主机名 3 配置网络服务名S2(连接到其它机器数据库) 4 以S2连接到其它机器数据库,然后检查主机名 |
OEM两层结构:日常数据库管理(独立启动)
1 Oracle Server:启动数据库 启动监听程序
2 客户端:OEM Console(配置网络服务名)
OEM三层结构:日常数据库管理 高级管理操作(监视事件 运行作业等)
1 Oracle Server:启动数据库 启动监听程序 启动Agent
2 Oracle Management Server:启动OMS服务--配置资料档案库
3 客户端:OEM Console
Instance Manager:启动例程 关闭例程 修改初始化参数--以特权用户登录
Security Manager:管理用户 角色以及PROFILE(概要文件)
--特权用户或者DBA用户
1 启动OEM Console 2 以SYS用户登录到本地数据库(MS),关闭并重新启动例程 3 以SYSTEM用户登录到数据库,建立用户USER1并授予系统权限UNLIMITED TABLESPACE 4 运行SQL*Plus以USER1用户登录 |
Storage Manager:管理表空间 数据文件和重做日志等--特权用户和DBA用户
Schema Manager:管理数据库对象()
SQL*Plus Worksheet:SQL*Plus图形化工具(独立工具)
1 以SYSTEM用户登录,建立表空间TBS1(数据文件名:TBS1.DBF,尺寸:10M) 2 以SYSTEM用户登录为SCOTT用户授予角色和权限,使该用户可以使用OEM Console 3 以SCOTT用户登录,在TBS1表空间上建立表T1 4 以SCOTT用户运行SQL*PLUS WORKSHEET |
参数文件:用于存放启动例程所需要的初始化参数
1 200多个初始化参数
2 多数参数都有默认值
3 参数文件:非默认的初始化参数
PFILE:文本格式存放参数--9I之前
SPFILE:二进制格式存放参数--9I新特征(建议)
参数文件默认位置:ORACLE_HOMEdatabase
PFILE默认名称:initSID.ora(SID:例程名)
SPFILE默认名称:spfileSID.ora
常用参数:
db_name:指定数据库名称
instance_name:指定例程名=db_name
service_names:指定数据库服务名=db_name.db_domain
control_files:指定数据库的控制文件(关联例程和数据库)
undo_tablespace:指定例程默认的UNDO表空间
PFILE:直接编辑进行修改
SPFILE:不能直接编辑
修改PFILE:
1 参数存在--直接编辑
2 参数不存在--在尾部增加一行
3 每行只能设置一个参数
修改SPFILE:SCOPE=SPFILE
db_name dispatchers:不能使用SPFILE修改
1 建立PFILE 2 手工编辑PFILE修改参数 3 重新启动例程(指定PFILE) 4 建立SPFILE |
启动和关闭:SYSDBA或者SYSOPER身份
STARTUP选项:
1 NOMOUNT:启动例程
2 MOUNT:启动例程 装载数据库
3 OPEN(默认):启动例程 装载数据库 打开数据库
4 FORCE:强制重新启动(SHUTDOWN ABORT STARTUP OPEN)
STARTUP或者SHUTDOWN:确保已经启动例程服务(OracleServicems)
1 确定当前例程正在使用的参数文件 2 修改初始化参数timed_statistics的值为FALSE(SPFILE) 3 使用SHUTDOWN IMMEDIATE命令关闭数据库 4 使用STARTUP启动例程并打开数据库 5 检查参数timed_statistics的值 6 建立PFILE文件inittemp.ora 7 依据inittemp.ora建立SPFILE文件spfileaa.ora |
SHUTDOWN:
NORMAL(默认):等待所有客户应用断开连接
TRANSACTIONAL:不会等待断开连接 等待事务结束
IMMEDIATE:不会等待事务结束(自动回退未提交事务)
--发出检查点
ABORT:快速终止例程和数据库--不会发出检查点(自动例程恢复)
--防止物理文件损坏
动态性能视图:显示例程的相关信息(特权用户和DBA用户)
静态初始化参数:指只能通过修改参数文件进行修改的参数
动态初始化参数:指在数据库运行时可以动态修改的参数
ALTER SESSION:只对当前会话生效
ALTER SYSTEM:对所有会话都生效
ALTER SYSTEM(9i默认):修改内存和SPFILE
ALTER SYSTEM ..DEFERRED:只对将来会话生效
终止会话:终止阻塞会话
1 以SYS用户建立会话一,以SCOTT用户建立会话二 2 在会话二中更新雇员7788的工资为1000 3 在会话一中使用SHUTDOWN TRANSACTIONAL关闭例程? 4 在会话二中提交事务,然后在会话一中检查例程是否已经关闭 5 启动例程并打开数据库,然后显示数据库所有物理文件 6 显示例程名及其状态 7 显示数据库名及日志操作模式 8 修改当前会话的日期格式YYYY/MM/DD,然后显示当前系统日期 |
建立数据库:
1 OS用户:ORA_DBA组
2 特权用户:SYSDBA身份
3 UNIX共享内存区>2*SGA
修改字符集:只能在同民族的字符集之间进行修改(ZHS16GBK--ZHS16..)
WE8ISO..
ORACLE_SID:设置例程标识符
ORACLE_BASE:软件基目录
ORA_NLS33(指定字符集):使用除US7ASCII之外的其它字符集
NLS_LANG=语言_地区.字符集
在Windows平台上建立数据库:
1 建立例程服务(确定例程名 特权用户口令)
2 准备SPFILE:
基于默认例程建立PFILE文件
编辑PFILE文件
db_name=instance_name
control_files db_block_size
undo_tablespace
background_dump_dest:指定ALERT文件和后台进程跟踪文件所在目录
user_dump_dest: 指定用户进程跟踪文件所在目录
建立SPFILE
3 启动例程
4 建立数据库
5 安装数据字典 PL/SQL包和PROFILE
6 配置网络
1 建立例程服务(例程名:DEMO) 2 建立SPFILE文件spfiledemo.ora,参数设置: db_name=demo instance_name=demo db_block_size=2048 control_files=c:democontrol01.ctl background_dump_dest=c:demobdump user_dump_dest=c:demoudump undo_tablespace=undotbs1 3 建立文件夹demo udump bdump |
三 启动例程(以SYSDBA身份登录)
四 建立数据库
出错处理:
1 语法错误:编辑SQL脚本
2 要建立的文件已经存在(SHUTDOWN 删除已建立的所有文件
STARTUP NOMOUNT 重新建立)
1 登录到DEMO例程,并启动该例程 set oracle_sid=demo 2 查询V$INSTANCE确定例程名及其状态 3 建立DEMO数据库 日志组一: c:demoredo1a.log SIZE 10M 日志组二: c:demoredo2a.log SIZE 10M SYSTEM表空间数据文件:c:demosystem01.dbf SIZE 150M 默认临时表空间:TEMP(临时文件:c:demotemp.dbf SIZE 20M) UNDO表空间:undotbs1(数据文件:c:demoundotbs1.dbf SIZE 30M) SYS口令:admin SYSTEM口令:manager 字符集:ZHS16GBK 4 查询V$INSTANCE确定例程状态
5 安装数据字典 PL/SQL包和PROFILE 安装以前检查: SELECT instance_name,status FROM v$instance; 安装数据字典:catalog.sql(必须以SYS用户运行) @%oracle_home%rdbmsadmincatalog 安装PL/SQL包:catproc.sql(必须以SYS用户运行) @%oracle_home%rdbmsadmincatproc 安装PROFILE:pupbld.sql(必须以SYSTEM用户运行) @%oracle_home%sqlplusadminpupbld |
6 配置网络
配置监听程序:
配置数据库服务 重新启动监听程序
配置网络服务名
1 配置监听程序(增加DEMO数据库),然后重新启动监听程序 2 配置网络服务名DEMO 3 以SYS用户使用不同网络服务名分别连接到MS和DEMO 数据库,并查询V$INSTANCE确定例程名 |
数据字典:Oracle系统的最重要组成部分
--存放着数据库的系统信息
数据字典存放位置:SYSTEM表空间
数据字典所有者:SYS用户
SELECT
SYS.AUD$:内容可以被删除(DELETE)
数据字典组成:
数据字典基表:存放着基本信息(..$)--建立数据库时自动
建立(sql.bsq)
数据字典视图:基于基表所建立的视图(catalog.sql)
--取得数据库系统信息
数据字典视图分类:
USER_XXX:当前用户所拥有的对象
ALL_XXX:当前用户可访问的所有对象
DBA_XXX:数据库的所有对象
1 USER_XXX ALL_XXX:所有用户可以直接访问
2 DBA_XXX:DBA角色或者SELECT_CATALOG_ROLE角色
DICT:显示当前用户可访问的所有数据字典和动态性能视图
DICT_COLUMNS:显示字典列的作用
DBA_SEGMENTS:显示数据库所有段的详细信息
DBA_DATA_FILES:显示所有数据文件的详细信息
DBA_TABLESPACES:显示表空间的详细信息
1 以SYSTEM用户登录到MS数据库,显示DBA_TABLES列 table_name和owner的作用 2 查询数据字典显示SCOTT用户的所有索引及惟一性 DBA_INDEXES 3 显示数据库的所有用户以及默认表空间(DBA_USERS) 4 查询DBA_SEGMENTS显示SCOTT用户EMP段所在的表空间 段类型及尺寸 5 显示当前数据库的所有表空间名 6 显示表空间SYSTEM所包含的数据文件及尺寸(dba_data_files) |
控制文件:用于维护和记录数据库的物理结构
V$XXX:SGA和控制文件(物理结构相关)
V$DATABASE V$DATAFILE等
多元化控制文件:防止控制文件损坏
--分布控制文件到不同磁盘
1 修改初始化参数control_files 2 关闭数据库 3 复制控制文件(关闭之后复制) 4 重新启动数据库 |
V$CONTROLFILE:显示数据库包含的所有控制文件
V$CONTROLFILE_RECORD_SECTION:显示控制文件所记载
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84368/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-84368/
本文详细介绍了Oracle数据库的体系结构,包括备份与恢复、性能调整、服务器进程、内存结构、后台进程等内容。此外还深入探讨了数据库启动关闭流程、参数文件、口令文件等关键概念。
182

被折叠的 条评论
为什么被折叠?



