Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245820
  • 博文数量: 52
  • 博客积分: 2263
  • 博客等级: 大尉
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-28 12:00
文章分类

全部博文(52)

文章存档

2010年(2)

2009年(20)

2008年(30)

分类: Oracle

2008-09-09 10:26:46

 

 

Oracle 初始化参数文件管理: (pfile文件 和 spfile 文件)

Pfiel参数文件:

pfile 参数文件也叫文本参数文件,oracle9i 版本之前只有这种参数文件,可以直接编辑它.

oracle新建立一个数据库就会建立一个pfile参数文件,默认的名字是init.ora;其中是实例的名字,其存放路径在$oracle_home/dbs/目录下,命名规则必需遵循OFI标准,: init<$oracle_sid>.ora

pfile的创建有2中方法:

简单的方法: dbca工具生成一个数据库,其为图形化向导,简单易懂.其生成数据库过程中有一个选项:保存要生成的数据库的配置文件,这个就是我们想要的pfile文件.

麻烦一点的方法: 自己根据oracle联机文档一点点的找个各个pfile参数文件中的每个选项的含义.手工生成pfile参数文件.

 

Spfile参数文件:

因为修改pfile参数文件使其生效必须restart database;所以就有了spfile参数文件.

spfile 参数文件 : server parameter file, binary 文件,所以不能编辑它.其默认文件名为: spfile.ora;

spfile参数文件的内容和pfile参数文件的内容是一样的,只是文件类型不一样而以.

pfile spfile 之间是可以转化的:命令为: create spfile from pfile;反之也可以.

 

Database 启动的时候先找spfile.ora,这个文件,如果没有再找:spfile.ora这个缺省的参数文件,

如果要启动自定义的参数文件,这样:

Sql>startup pfile=/home/oracle/conf/你要用的参数文件.ora

配置/修改 参数文件:

Sql>alter system set 参数名=参数值 scope=spfile|memory|both  scope默认是both.

----------------------------------------------------------------------------------------------------------------------

密码文件orapw:

作用: 认证哪些用户有权限 开启和关闭 oracle实例

密码文件: $oracle_home / dbs / orapw

密码命令:

Sql>orapwd file=orapw password= entries=

参数含义:

Filenamee: 密码文件名

Password: 设置internal / sys 帐号的口令.

Entries:   密码文件中可以存放的最大用户数,对应允许以sysdba/

Sysoper权限登陆数据库的最大用户数.如果超过此限制,必须重建密码文件.

 

向密码文件中增加/删除用户的命令:

init.ora中的参数remote_login_passwordfile=exclusive,

系统允许除sysoper/sysdba以外的用户以管理员身份从远端或本机登陆

这些用户的用户名必须存在于密码文件orapw.

sysdba权限登陆;

Conn / as sysdba

启动实例并打开数据库

Startup

创建相应的用户帐号, 对其授权

Sql>create user 用户名 identified by 密码;   // 创建用户命令

Sql>grant connect,resource,session,dba<权限> to user;// 赋予权限给用户

权限代码:   connect     连接shujk

Resource        访问资源

Create session 系统特权:为用户提供连接数据库的能力

Dba         一个具有超过120个系统特权的角色.

改变用户的密码:

Sql>alter user 用户名 identified by 新密码;    // 要有dba的权限才行

锁定帐号 和 解锁帐号:

Sql>alter user 用户名 account unlock;           //解锁帐号,新密码=用户名

 

5.

 

 

 

 

 

密码文件orapw和初始化参数文件pfile 的联系:

Init.ora pfile中的参数: remote_login_passwordfile,这个参数控制密码文件orapw 的使用和状态. 它的选项如下:

None : 指示oracle系统不使用密码文件, 特权用户通过操作系统进行身份认证.

Exclusive : 指示只有一个实例使用密码文件, 在此设置下的密码文件可以包含除了internal / dba以外的用户,即允许将系统的sysoper / sysdba 的权限赋予sys/internal 以外的用户

Shared : 指示可以有多个数据库实例可以使用此密码文件,在此设置下只有sysoper / sysdba帐号能被密码文件识别,即使密码文件中有其他用户信息,也不允许他们以sysoper/sysdba权限登陆.

 

 

 

 

 

 

Oracle 实例(instance)详解:

 

oracle instance 是由内存区域和后台进程组成的.分为:单进程实例和多进程实例

SGA: oracle实例的共享内存区域.

后台进程: 在数据库启动后常驻内存的oracle 进程.:pmon, smon, dbwr,

最大数量不能超过参数 process 设定的值.

SQL> show parameter process

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes                      integer     0

db_writer_processes                  integer     1

gcs_server_processes                 integer     0

job_queue_processes                  integer     10

log_archive_max_processes            integer     2

processes                            integer     150

用户进程:一个用户运行一个应用程序如sqlplus,为用户的应用建立一个进程..

服务进程: 用于处理用户连接到该实例的用户进程的请求.

---------------------------------------------------------------------------------------------

DBWR进程:  

dbwr进程即: database writer进程; 将缓冲区的数据写入数据文件,负责数据缓冲区的管理.当数据缓冲区中的一个数据被修改后,被标记为’durty’(),改进程放在将脏数据磁盘. Dbwr进程采用LRU算法来替换数据缓冲区的数据.

作用:

1.管理数据缓冲区,让服务器进程总能找到空闲缓冲区.

2dirty buffer中的数据写入到datafile,目的是腾出sga内存空间和advance checkpoint.

3使用LRU 算法将最近使用过的块保留在缓冲区.

4通过延迟写数据来优化i/o性能.

5.当发生log switch,会发出checkpoint.

6.online log file需要被重用时,checkpoint还没有做完的话,alert文件里会有checkpoint note complet的警告.

7.dbwr的性能低下时,我们会发现很多free buffer waitswrite complete waits的的等待.

8. 可以配置多个dbwr进程,最多20,参数:db_writer_processer.可以利用多个并行cpu

9.如果操作系统支持AIO,dbwr可以不用的等待操作系统写完,而继续下一个dbwr请求.

10.如果操作系统不支持AIO,可以用dbwr slaves来模拟.参数为:dbwr_io_slaves

 

运行机制:

数据缓冲区中的表到一定程度(DB_BLOCK_WRITE_BATCH参数

决定)写入数据文件.

当一个服务器进程在LUR表中查找DB_BLOCK_MAX_SCAN_CNT缓冲区时.

没找到空闲的缓冲区时

出现超时

检查点发生时.

可以启动多个dbwr进程在一个实例中,该进程数由 DB_WRITE_PROCESSS

指定,上限=20,命名依次为:DBW0,DBW1,DBW2,DBW3

 

LGWR进程:

Lgwr进程(log writer) 将日志数据从日志缓冲区写入到磁盘日志文件中

        (Redo log buffer  ----à redo log file)

        Lgwr进程采用sequenctial(连续的,有顺序的)写入file.dbwr进程是scatter(

        分散的),所以lgwr的性能要高很多.

运行机制:

当发生提交,commit.

日志缓冲区达到1/3; 3S , commit,  redolog buffer > 1/3 .都会触发lgwr

超时

dbwr进程需要为checkpoint清除缓冲区时

一个instance 只有一个lgwr进程

lgwr进程将日子信息同步写到日子文件组的多个日志文件中,如果一个日志文件不可用,将继续写入下一个日志文件中.不影响系统

 

SMON进程:

Smon 进程(system monitor) 系统监控进程,在实例启动时执行实例恢复

并清理不在使用的临时段.

1. 清理连市空间,真正的临时段不需要清理,由系统自动清理.但是:某些操作如create index 产生的临时段的昂create indexsession不正常中止时,此时需要smon来清理

2. 如果使用字典管理表空间,smon负责降连续的空闲extent(范围)合并.

3. recovers trancaction active against unavailable files,

    这个过程和实例启动时进行的instance crash recovery(自动前滚和回滚)相似.但是:

    由于实例启动时某些文件无法访问,而实例启动后的某个时间点可以访问这些文件,smon就会对其执行recover.

4. performs instance recovery of a failed node in Rac:

    rac的某个节点失败时,某个剩余的节点就会打开失败节点对应的redo log,进行recovery.

5. cleans up OBJ$:

    Obj$是个底层的数据字典,include all 数据库对象信息.某些对象被删除时,smon进程来clean up该视图.

6. shrinks roolback segment :

    如果设置了optimal size参数,smon进程负责执行回滚段的自动收缩.

7. offlins rollback segment:

    当用户offline某个回滚段时,单此时该回滚段有active trancsation,这是回滚段的状态其实是pengding offline,smon进程会定期的检查该回滚段的事务是否完成,完成即将其变成offline.

 

 

 

PMON 进程:

Process monitor: 进程监控,在服务进程出现故障时执行进程恢复,负责清理

内存和释放该进程使用的资源.

1. 连接在不正常中止时,pmon负责释放资源,rollback事务.

监控后台进程,如果backgroud process不正常中止时,负责restart 进程.:dispatchers

或者中止实例.

2. instance 启动时,pmon负责注册实例到监听上,在实例启动时检查监听进程是否启动.

相关参数:local_listener

 

ARCH进程:

Archive process: 归档进程,在日志存满时将日志信息写入到磁盘,用于介质

失败时的恢复.

日志信息首先产生于log buffer,再由lgwr进程写入到log group,

Log switch时由arch进程将log data write to archive file from log group.

一个实例中最多有10arch进程,相关参数:

 

CKPT: checkpoint pracess

    1. ckpt 进程不是作checkpoint,(a checkpoint is the writing if dirty(modified) blocks from the buffer cache to disk)而是在发生checkpoint,修改数据文件头的

    2. oracle8 以前,ckpt的任务可以由lgwr进程执行.oracle8以后.ckpt进程必选.

 

 

ASMB: automatic storage management background

    1. 当使用asm存储database file,启用该进程

    2. 该进程负责和asm实例进行通讯

 

Rbal: rebalance

    1. 当使用asm存储database file,启用该进程

    2. 改进程负责当从asm diskgroup中增加/减少 disk.reblance数据

 

Lmon: lock monitor

    1. rac下的进程

    2.负责监控rac集群中的实例是否fail

    3. rac中实例增加/减少时,负责重新分配lock和其他资源

 

Lmd: lock management daemon

    1.rac下的进程

    2.global cache service(keep he block buffer consistent between instance)的锁请求发送给lmsn控制的队列中.

 

LCK0:Lock

1)RAC
下的进程
2)
作用和LMD类似,但它不仅处理data block buffer的请求,也处理其它的global resource

DIAG:Diagnosability daemon

1)RAC
下的进程
2)
监控各个实例是否health,并且在发生fail时,进行capture

阅读(1534) | 评论(0) | 转发(0) |
0

上一篇:oracle学习笔记1

下一篇:oracle学习笔记3

给主人留下些什么吧!~~