ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle Training Notes

Oracle Training Notes

原创 Linux操作系统 作者:tolywang 时间:2006-04-20 00:00:00 0 删除 编辑

体系结构及管理: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 服务器进程:COMMITSCN-->重做日志缓冲区

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13380993