当前位置:文档之家› Oracle数据库基础

Oracle数据库基础

Oracle数据库基础
Oracle数据库基础

Oracle 数据库基础

数据库是我们安装完产品后建立的,可以在同一台主机上存在8i,9i,10g,11g等多个数据库产品,一套产品可以建立多个数据库,每个数据库是独立的。每个数据库都有自己的全套相关文件,有各自的控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件等等。

其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件;

参数文件(parameter file)口令文件(password file)是非数据库文件

我们的表存储在数据库中

数据库不能直接读取

我们通过实例(instance)来访问数据库

数据库实例

实例由内存和后台进程组成

实例是访问数据库的方法

初始化参数控制实例的行为

一个实例只能连接一个数据库

启动实例不需要数据库

产品安装好

有初始化参数文件

就可以启动实例

与是否存在数据库无关

实例内存分为SGA 和PGA

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA 是只被一个进程使用的区域,PGA 在创建进程时分配,在终止进程时回收.

后台进程是实例和数据库的联系纽带

分为核心进程和非核心进程

当前后台进程的查看

SQL> select name,description from v$bgprocess where paddr<>'00';

NAME DESCRIPTION

-----

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

PMON process cleanup

DIAG diagnosibility process

PSP0 process spawner 0

LMON global enqueue service monitor

LMD0 global enqueue service daemon 0

LMS0 global cache service process 0

LMS1 global cache service process 1

MMAN Memory Manager

DBW0 db writer process 0

ARC0 Archival Process 0

ARC1 Archival Process 1

NAME DESCRIPTION

-----

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

LGWR Redo etc.

LCK0 Lock Process 0

CKPT checkpoint

SMON System Monitor Process

RECO distributed recovery

CJQ0 Job Queue Coordinator

QMNC AQ Coordinator

MMON Manageability Monitor Process

MMNL Manageability Monitor Process 2

20 rows selected.

也可以在操作系统下查看

[oracle@db-rac1 db01]$ ps -ef|grep ora_

oracle 8588 1 0 07:53 ? 00:00:00 ora_j001_gfdb1

oracle 10816 1 0 04:58 ? 00:00:08 ora_j000_gfdb1

oracle 16998 1 0 Apr18 ? 00:00:00 ora_pmon_gfdb1

oracle 17017 1 0 Apr18 ? 00:00:00 ora_diag_gfdb1

oracle 17030 1 0 Apr18 ? 00:00:00 ora_psp0_gfdb1

oracle 17042 1 0 Apr18 ? 00:00:00 ora_lmon_gfdb1

ora_lmd0_gfdb1

oracle 17067 1 0 Apr18 ? 00:00:00 ora_lms0_gfdb1

oracle 17077 1 0 Apr18 ? 00:00:00 ora_lms1_gfdb1

oracle 17081 1 0 Apr18 ? 00:00:00 ora_mman_gfdb1

oracle 17083 1 0 Apr18 ? 00:00:00 ora_dbw0_gfdb1

oracle 17085 1 0 Apr18 ? 00:00:00 ora_lgwr_gfdb1

oracle 17087 1 0 Apr18 ? 00:00:00 ora_ckpt_gfdb1

oracle 17089 1 0 Apr18 ? 00:00:03 ora_smon_gfdb1

oracle 17091 1 0 Apr18 ? 00:00:00 ora_reco_gfdb1

oracle 17093 1 0 Apr18 ? 00:00:06 ora_cjq0_gfdb1

oracle 17095 1 0 Apr18 ? 00:00:02 ora_mmon_gfdb1

ora_mmnl_gfdb1

oracle 17099 1 0 Apr18 ? 00:00:00 ora_d000_gfdb1

oracle 17101 1 0 Apr18 ? 00:00:00 ora_s000_gfdb1

oracle 17142 1 0 Apr18 ? 00:00:01 ora_lck0_gfdb1

oracle 17517 7593 0 07:55 pts/2 00:00:00 grep ora_

oracle 26182 1 0 Apr18 ? 00:00:00 ora_arc0_gfdb1

oracle 26184 1 0 Apr18 ? 00:00:00 ora_arc1_gfdb1

oracle 26523 1 0 Apr18 ? 00:00:00 ora_qmnc_gfdb1

oracle 27156 1 0 Apr18 ? 00:00:00 ora_q000_gfdb1

oracle 27172 1 0 Apr18 ? 00:00:00 ora_q001_gfdb1

oracle 29308 1 0 05:53 ? 00:00:00 ora_q002_gfdb1

ora_q004_gfdb1

oracle 31882 1 0 07:26 ? 00:00:00 ora_q003_gfdb1

核心进程,必须存在,有一个终止,所有数据库进程全部终止

非核心进程

完成数据库的额外功能

归档

调度作业

Database writer (DBWn)数据库写进程

将数据库的变化写入到文件

最多20个

DBW0-DBW9 DBWa-DBWj

应该和cpu的个数对应

由参数DB_WRITER_PROCESSES描述

因为dbwr是哪里来的数据写回到哪里,所以可以多个进程一起工作。

Log writer (LGWR)日志写进程

将日志缓冲写入到磁盘的日志文件

只有一个,因为日志写是顺序写,所以一个就可以了,因为是顺序写所以也不能为多个。

Checkpoint (CKPT)检查点进程

存盘点

触发dbwn,写脏数据块

更新数据文件头,更新控制文件

System monitor (SMON)系统监测进程

实例崩溃时进行自动恢复

清除作废的排序临时段

Process monitor (PMON)进程监测进程

清除死进程

重新启动部分进程

监听的自动注册

我们连接到数据库其实是连接到实例

这个过程叫建立一个会话

实验1:数据库的最高帐号sys的操作系统认证模式

该实验的目的是进入数据库的最高帐号sys.掌握操作系统认证的两个条件.

操作系统认证,因为数据库是在OS上的软件能进入ORACLE 帐号,就可以进入到数据库的最高帐号。

Conn / as sysdba

Show user

无论数据库处于何种状态,sys用户总可以进入到数据库

因为sys是外部操作系统认证的

操作系统认证的两条件。一、操作系统的用户要属于dba组;

二、和数据库间的连接是安全的。

实验2:数据库的最高帐号sys的密码文件认证模式

该实验的目的是使用密码文件的认证方式进入到最高sys 帐号,如何建立和维护密码文件.在远程,或者操作系统认证不可以使用的情况下,请使用密码文件来认证sys用户

在unix下

密码文件路径/oracle_home/dbs

密码文件名称orapw+sid

sid为实例名称,查看实例名称

select instance_name from v$instance;

select 'orapw'||instance_name from v$instance;

密码文件必须存在,即使你以操作系统认证,因为参数remote_login_passwordfile默认的值是要使用密码文件的,除非你将remote_login_passwordfile的值改为none,这样就禁止

了密码文件的使用,你想进入到sys用户必须使用操作系统认证模式。密码文件丢失必须重新建立

Orapwd为oracle的命令,用于建立密码文件,命令的格式如下

Orapwd file=….. Password=….

密码文件中含有sys用户的密码

建立密码文件的步骤

1.确定实例的名称

2.确定密码文件的路径和名称

3.停止数据库,删除老的密码文件

4.在操作系统下运行

orapwd file=/dbocfs/gfdb/orapwgfdb1 password=manager1其中gfdb1为实例的名称,manager1为密码,是sys用户的密码

5.连接的sys

Conn sys/maanger1 as sysdba

显示为连接的空闲实例,因为数据库还没有启动。

但这并没有证明你使用了密码文件.

SQL> conn sys/addas as sysdba

Connected.

SQL> conn asfdsf/adaf as sysdba

Connected.

SQL> conn / as sysdba

Connected.

SQL> conn sys/manager1 as sysoper

Connected.

SQL> conn sys/adsssd as sysoper

ERROR:

ORA-01031: 权限不足

原因很简单,因为操作系统认证的优先级高于密码文件.所以你只要写as sysdba就可以进入,但sysoper不能使用操作系统来认证,它只能使用密码文件认证,上面的实验证明manager1是正确的密码.

6.启动数据库startup

建立密码文件要重新启动数据库,因为内存中保留有原来的密码.

初始化参数remote_login_passwordfile =none则数据库设置为禁止使用密码文件,只能使用操作系统认证登录到最高的老大用户.即使你以密码认证连接到数据库,也不能启动和停止数据库,报权限不足.

实验3:数据库的两种初始化参数文件

该实验的目的是认识参数文件,两类参数文件的相互转换.如何修改参数.

初始化参数文件是描述实例的行为的文件,文件大小很小.

初始化参数文件在unix操作系统中存在于oracle_home/dbs目录下.

纯文本参数文件,修改参数的时候直接编辑文件,再保存就可以了.

Initsid.ora

二进制参数文件,必须存在于服务器端.使用命令来修改.

spfilesid.ora

server parameter file

纯文本参数文件和二进制参数文件的差别

1。修改参数的方式不同

2。优先级不同

3。是否动态存储修改的参数

4。存在的位置不同

纯文本可以存在于客户端

二进制文件一定存在于server端

5.rman可以备份二进制参数文件,不能备份纯文本参数文件.

验证现在数据库使用的参数文件类型,我们一定要知道我们使用的是什么类型的参数文件,涉及到我们如何修改参数的手

相关主题
文本预览
相关文档 最新文档