1、 oracle的组件组成
2、 建立oracle连接的时候需要什么组件
1、 有2个部分组成,一个是实例,一个是数据库
2、 实例中的SGA(system global area)包含了一个内存结构,包含共享池shared pool,database buffer cache,redolog buffer cache。
3、 数据库中包含的必需的有3个,数据文件,控制文件,重做日志文件,可选的文件:参数文件,密钥文件,归档日志文件。
4、 用户进程比如SQLPLUS,通过某种方式的审核连接到服务器进程
5、 服务器进程在用户进程连接数据库后代替用户进程来履行用户进程发出的命令,比如select等操作,也就是说SQLplus等客户端仅连接并发送请求,执行都由服务器进程来处理。
C:/>net start oracleserviceORCL
OracleServiceORCL 服务正在启动 .......
OracleServiceORCL 服务已经启动成功。
C:/>sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 13 11:43:43 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
请输入用户名: system
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> conn system/jaminwm
已连接。
SQL>
6、 演示启动关闭实例
SQL> conn sys/jaminwm as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 92275368 bytes
Database Buffers 192937984 bytes
Redo Buffers 2945024 bytes
SQL> alter database mount
2 ;
数据库已更改。
SQL> alter database open;
通过控制文件来验证 和 是否匹配
数据库已更改。
7、 总结:
Instance——memory structure
Background process
Database——data file
Log file
Control file
8、 Oracle实例的理解
实例是oracle存取oracle数据库的一种手段,任何时候实例和数据库是1对多的关系,只有1个实例,可以有1个和多个数据库。memory structure包含了3个必需的,包括共享池,数据库缓冲池,重做日志文件缓冲池。Background process包含了8个进程,6个必需,2个可选。
SQL> show sga
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 96469672 bytes
Database Buffers 188743680 bytes
Redo Buffers 2945024 bytes
SQL> select * from v$bgprocess where paddr<>'00';通过这个我们可以看到有效的后台进程。
在列 ERROR 前截断 (按要求)
PADDR PSERIAL# NAME DESCRIPTION
-------- ---------- ----- ----------------------------------------------------------------
213471B4 1 PMON process cleanup
213477A4 1 PSP0 process spawner 0
21347D94 1 MMAN Memory Manager
21348384 1 DBW0 db writer process 0
21348974 1 LGWR Redo etc.
21348F64 1 CKPT checkpoint
21349554 1 SMON System Monitor Process
21349B44 1 RECO distributed recovery
2134A134 1 CJQ0 Job Queue Coordinator
2134C4D4 39 QMNC AQ Coordinator
2134A724 1 MMON Manageability Monitor Process
PADDR PSERIAL# NAME DESCRIPTION
-------- ---------- ----- ----------------------------------------------------------------
2134AD14 1 MMNL Manageability Monitor Process 2
已选择12行。
9、 Oracle数据库部分
3个必需的物理文件,另外蓝色是可选文件。
3类必需文件可能有多个,比如在线日志文件最少都有2个。
SQL> select * from v$controlfile;
STATUS NAME
------- ----------------------------------------------------------------------
C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL01.CTL
C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL02.CTL
C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL03.CTL
SQL> select * from v$datafile;
FILE# CREATION_CHANGE# CREATION_TIME TS# RFILE# STATUS ENABLED CHECKPOINT_TIM U
---------- ---------------- -------------- ---------- ---------- ------- ---------- -------------- -
1 9 30-8? -05 1 SYSTEM READ WRITE 13-10? -09
2 532340 30-8? -05 1 2 ONLINE READ WRITE 13-10? -09
3 6100 30-8? -05 2 3 ONLINE READ WRITE 13-10? -09
4 9769 30-8? -05 4 4 ONLINE READ WRITE 13-10? -09
5 559920 24-7? -09 6 5 ONLINE READ WRITE 13-10? -09
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------------------------
3 ONLINE C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG
2 ONLINE C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG
1 ONLINE C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
10、 SGA系统全局区域和PGA程序全局区作为内存结构,PGA包含的某个服务器进程,不能共享给其他资源,使用独占服务器模式和共享服务器模式MTS不同,PGA的信息是不一样的。SGA中还包含一些largepool和javapool。
SQL> show parameter shared
NAME TYPE VALUE
------------------------------------ ----------- ---------
hi_shared_memory_address integer
max_shared_servers integer
shared_memory_address integer
shared_pool_reserved_size big integer 4404019
shared_pool_size big integer 0
shared_server_sessions integer
shared_servers integer 1
SGA_SIZE
SQL> show parameter db_cache
NAME TYPE VALUE
------------------------------------ ----------- --------
db_cache_advice string ON
db_cache_size big integer 0
SQL> show parameter log
NAME TYPE VALUE
------------------------------------ ----------- -------------
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
log_archive_config string
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
NAME TYPE VALUE
------------------------------------ ----------- -------------
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
NAME TYPE VALUE
------------------------------------ ----------- -------------
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
log_archive_duplex_dest string
log_archive_format string ARC%S_%R.%T
log_archive_local_first boolean TRUE
log_archive_max_processes integer 2
log_archive_min_succeed_dest integer 1
log_archive_start boolean FALSE
NAME TYPE VALUE
------------------------------------ ----------- -------------
log_archive_trace integer
log_buffer integer 2899456
log_checkpoint_interval integer
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
log_file_name_convert string
logmnr_max_persistent_sessions integer 1
remote_login_passwordfile string EXCLUSIVE
SGA_MAX_SIZE可以设定一个最大的内存区域,在这个范围内可以动态的调整。便于管理。
如果遇到?????????????不能显示,是语言的问题,使用alter session set nls_language=american
11、 Shared pool
共享池,可以使用alter system set shared_pool_size=64m;内有2个部分,库cache和数据字典cache,数据字典cache也叫行cache,dictionary cache=row cache。主要作用是提高代码的共享。Lib cache的命中率达到99%。一般要求SQL在此执行,不要单独编译。它不可以直接定义,而是通过shared pool来定义
12、 数据字典cache,文件是否存在,用户权限,也可以改变内存中的响应时间。
13、 Database buffer cache 使用db-block-size,从9i开始使用指定的块大小,
SQL> show parameter db
NAME TYPE VALUE
------------------------------------ ----------- ------------
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
db_block_buffers integer
db_block_checking string FALSE
db_block_checksum string TRUE
在9i以前,需要使用db_block_buffers中指定。这个值是固定的,表示块的数量,而不是内存的大小,真正的内存的大小=内存数量×块的大小,从性能优化的角度有2个参数,一个db-keep-cache-size一个是db-recycle-cache-size,如果你不知道怎么设定,可以使用db-cache-advice来建议内存结构。
14、 Redo log buffer cache的作用是恢复,使用log-buffer来定义size,基于数据完整性原则,可以回滚掉电后的数据写入。
15、 Large pool 作为可选的部分SGA的结构之一,在什么情况下可以用到?比如used for memory(UGA),io slaves,备份恢复操作用得到
16、 Java pool,调用java程序的时候用得到。
17、 PGA针对服务器进程而保留的一个内存区域,根据配置的不同,独占还是共享,SGA也不同
共享:session information放在SGA中
独占:session information不在SGA中
18、 后台的进程中database writer (dbwn),对脏数据写到数据文件,LGWR把日志文件cache写到日志文件里面,写数据前先写日志,SMON在数据库重启的过程中实例打开,回滚,临时段的清空。PMON进程监控回滚被异常终止的情况,ckpt是checkpoint实现同步的作用,arcn归档进程,在归档日志的模式下才能完成,归档进程可以自动备份在线日志。
19、 逻辑结构