oracle数据库结构:逻辑结构和物理结构
数据块为2K,4K,8K,16K,32K
Oracle建议选择块为8K
oracle数据块尺寸应为磁盘尺寸的倍数
oracle数据块: Contents
Block header
Free space
Row data
[email protected]>show parameter block
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 8192
db_file_multiblock_read_count integer 89
[email protected]>desc dba_extents
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
SEGMENT_NAME VARCHAR2(81)
PARTITION_NAME VARCHAR2(30)
SEGMENT_TYPE VARCHAR2(18)
TABLESPACE_NAME VARCHAR2(30)
EXTENT_ID NUMBER
FILE_ID NUMBER
BLOCK_ID NUMBER
BYTES NUMBER
BLOCKS NUMBER
RELATIVE_FNO NUMBER
[email protected]>desc dba_segments
必备的默认表空间
1.system
2.sysaux
3.undo
4.temporary
5.默认参数表空间
同一数据库可以有不同oracle块尺寸的表空间
当对象需要扩充时,oracle将以区为单位分配新的空间,而不是以块为单位
数据文件(data file):存储表和索引的数据
当表耗尽了初始分配的空间时,必须给表空间增加一个新数据文件来扩大表空间,也可以重新定义已有的数据文件的尺寸扩充表空间
控制文件(control file):记录所有数据库结构的更改信息,如数据文件和重做日志文件的名字和位置、当前日志序号、备份集详细信息、SCN
当数据库写控制文件时,该文件的所有副本一起写入
[email protected]>desc V$controlfile
Name Null? Type
----------------------------------------- -------- ----------------------------
STATUS VARCHAR2(7)
NAME VARCHAR2(513)
IS_RECOVERY_DEST_FILE VARCHAR2(3)
BLOCK_SIZE NUMBER
FILE_SIZE_BLKS NUMBER
[email protected]>r
1* select STATUS,NAME,IS_RECOVERY_DEST_FILE from v$controlfile
STATUS NAME IS_RECOVERY_DEST_FILE
------- -------------------- -------------------------
+DATA/ora11g/control NO
file/current.256.823
205099
IS_RECOVERY_DEST_FILE显示控制文件是否在闪回恢复区
重做日志文件(redo log file):包含对表数据所做的更改信息
当前重做日志文件通常称为联机重做日志
oracle写一个重做日志文件直到该重做文件末尾,然后进行日志切换并开始写第二个日志文件(然后写第三个,如果有的话)
spfile(server parameter file)服务器参数文件
spfile是二进制文件,始终存在数据库服务器中
[email protected]>show parameter spfile
NAME TYPE
------------------------------------ --------------------
VALUE
------------------------------
spfile string
+DATA/ora11g/spfileora11g.ora
[email protected]>Select isspecified,count(*) from v$spparameter group by isspecified;
ISSPEC COUNT(*)
------ ----------
TRUE 17
FALSE 327
[[email protected] ~]$ find /u02/app -name alert_ora11g.log
/u02/app/diag/rdbms/ora11g/ora11g/trace/alert_ora11g.log
grep ORA- alert_ora11g.log
[email protected]>show parameter background_dump_dest
NAME TYPE VALUE
------------------------------------ -------------------- ------------------------------
background_dump_dest string /u02/app/diag/rdbms/ora11g/ora
11g/trace
ADR(Automatic Diagnostic Repository)自动诊断信息库
进程实质是执行操作系统任务或作业的连接或线程。
用户进程:负责运行连接用户与数据库实例的应用
服务器进程
后台进程
oracle会话:用户通过oracle用户进程与oracle实例的特定连接。
----------------------------------------------------------------------------------------
后台进程 功能
----------------------------------------------------------------------------------------
数据库写入器(DBWn) 将更改的数据从缓冲区高速缓存写入磁盘(数据文件)
日志写入器(LGWR) 将重做日志缓冲区内容写入联机重做日志文件
检查点(CKPT) 更新所有数据文件的头以记录检查点的详细信息
进程监控器(PMON) 清除完成后的进程和失败的进程
系统监控器(SMON) 执行崩溃恢复并合并区
归档器(ARCn) 归档填满的联机重做日志文件
------------------------------------------------------------------------------------------
ps -ef|grep ora_
SQL>desc v$bgprocess
Name Null? Type
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
PADDR RAW(8)
PSERIAL# NUMBER
NAME VARCHAR2(5)
DESCRIPTION VARCHAR2(64)
ERROR NUMBER
SQL>set linesize 1000
SQL>select * from v$bgprocess;
PADDR PSERIAL# NAME DESCRIPTION
---------------- ---------- ---------- ---------------------------------------
000000009107EB78 1 PMON process cleanup
0000000091080C78 1 VKTM Virtual Keeper of TiMe process
0000000091081CF8 1 GEN0 generic0
0000000091082D78 1 DIAG diagnosibility process
0000000091083DF8 1 DBRM DataBase Resource Manager
oracle内存结构:SGA PGA