Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222932
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 790
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 14:16
文章分类

全部博文(80)

文章存档

2007年(40)

2006年(40)

我的朋友

分类: Oracle

2007-04-17 16:01:00

 一.Oracle的体系结构
   1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)
        控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件
        数据文件:存储数据的文件
        重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件
        参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数
        归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
        密码文件:认证哪些用户有权限启动和关闭Oracle例程
    2、逻辑结构(表空间、段、区、块)
        表空间Tablespace:是数据库中的基本逻辑结构,一系列数据文件的集合(CWMLITE, DRSYS, EXAMPLE, INDEX, TEMP, TOOLS, UNDOTBS, USERS, SYSTEM)。
        段Data Segment:是对象在数据库中占用的空间
        区Data Extent:是为数据一次性预留的一个较大的存储空间
        块Data Block:ORACLE最基本的存储单位,在建立数据库的时候指定

        逻辑对象 Logic Object
-----------------------------------------------------------------------------------------------------------------------------------------------
oracle的逻辑结构依次为,1表空间2段3盘区4数据块.
    表空间的大小是由表空间所在的数据文件来决定的,数据文件可以有指定的大小.
    而段的大小是由段所在的盘区的大小决定的,盘区可以有指定的大小.
    盘区是由连续的数据块组成的逻辑存储单元.

    问题1,我拿一个创建表空间的例子来说明我的问题.
create tablespace test LOGGING datafile '/u01/app/oracle/oradata/domain/test03.dbf'size 30m autoextend on next 128k maxsize

56m EXTENT MANAGEMENT LOCAL uniform size 64k SEGMENT SPACE MANAGEMENT AUTO ;
其中
//size是test03.dbf 初始的大小
//autoextend on 为test03.dbf可以自动扩展
//next 128k 为扩展的第二个盘区的大小,
设置大小看你的应用。表数据多,增长快就设置大点。
//maxsize 56m 为这个数据文件最大只能到56m
//EXTENT MANAGEMENT LOCAL 为这个表空间为本地管理
//uniform size 64k 为这个表空间统一盘区功能,也就是这个表空间里的每个盘区都是64k.
pctincrease参数,很少有人用。一般来说,都认为这是个"不好”的参数。
-----------------------------------------------------------------------------------------------------------------------------------------------
    3、内存分配(SGA和PGA)
        SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中被分配,如果实际内存不够再往虚拟内存中写。
        PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.
    4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)
        数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
        日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
        系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 进程监控:负责在一个Oracle 进程失败时清理资源 检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 归档进程:在每次日志切换时把已满的日志组进行备份或归档 服务进程:用户进程服务。 用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。

二. 优化软结构(Optimal Flexible Architecture)
    1、System表空间: 最好应该只存储数据字典表和system回滚段。只有重建数据库,才能重建system表空间。
    2、分离应用程序数据段:DATA。数据段(Data segment)是一些物理区域,用于存储与表和簇相关的数据。
          一个典型的DATA表空间包含了与应用程序相关的所有表。将应用程序表与DATA表空间分开,能够提高性能。
    3、分离应用程序索引段:INDEXES。
          表的索引不应该与其相关表存储在通用一个表空间
          例子:1)更改已建索引的存储空间和storage大小
                      alter index EMPLOYEE$DEPT_NO rebuild
                      tablespace INDEXES
                      storage (initial 2M next 2M pctincrease 0);
                   2)创建表时,指定表空间,索引空间和大小
                        create table JOB
                                                (Job_Code NUMBER,
                                               Description VARCHAR2(35)
                                               constraint JOB_PK primary key (Job_Code )
                                                using index tablespace INDEXES
                                                storage (initial 2M next 2M pctincrease 0) )
                        tablespace DATA
                        storage (initial 5M next 5M pctincrease 0);
    4、System账户的缺省表空间是System表空间,最好将其改为Tools表空间,并取消它在system表空间中的定额。 如果System用户被授予了Unlimited tablespace,则可以取消此权限,但是必须给表空间授予定额,以便于system来创建回滚段之类的对象。
       例子:取消system用户在system表空间的定额
                alter user system quota 0 on system;
               把tools表空间的定额分配给system用户
                alter user system quota 50M on tools;
    5、分离回滚段:RBS
    ......
    6、I/O权值估计的检验
       例子:生成实际I/O权值的查询:
--------------------------------------------------------
SQL语句类型划分



常用的数字字典有:user_tables; user_objects; user_catalog(CAT);
                        user_constraints;user_sequences;user_indexes;
                        user_ind_columns;


Data type
Description
VARCHAR2(size)
Variable-length character data (a maximum size must be specified:
Minimum size is 1; maximum size is 4000)
CHAR [(size)]
Fixed-length character data of length size bytes (default and minimum
size is 1; maximum size is 2000)
NUMBER [(p,s)]
Number having precision p and scale s (The precision is the total
number of decimal digits, and the scale is the number of digits to the
right of the decimal point; the precision can range from 1 to 38 and
the scale can range from -84 to 127)
DATE
Date and time values to the nearest second between January 1, 4712
B.C., and December 31, 9999 A.D.
LONG
Variable-length character data up to 2 gigabytes
CLOB
Character data up to 4 gigabytes
RAW(size)
Raw binary data of length size (a maximum size must be specified.
maximum size is 2000)
LONG RAW
Raw binary data of variable length up to 2 gigabytes
BLOB
Binary data up to 4 gigabytes
BFILE
Binary data stored in an external file; up to 4 gigabytes
ROWID
A 64 base number system representing the unique address of a row
in its table.
阅读(958) | 评论(0) | 转发(0) |
0

上一篇:Oracle - Job

下一篇:Oracle_Note

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