文章目录
1. 版本相关概念
11g “g” :stands for Grid 命名概念
Oracle 8i 9i | (Internet) |
Oracle 10g 11g | (grid) |
Oracle 12c 13c 18c | (cloud) |
- i - 就是Internet了
- grid - 格⼦,⽽放在计算机专业词汇⾥⾯就是⽹格计算
⽹格计算就是统⼀的把⽹络上各计算机的各种资源整合起来,虚拟成⼀个⼤的资源池,跟据各种的请求动态的分配计算机资源,消除资源的冗余以及资源利⽤程度不够的现象,达到申请与分配的均衡点。 - c - 就是cloud的云计算;
2. 什么是Oracle数据库
-
Oracle DataBase是⼀款关系型数据库管理系统,同类的产品还有MySQL,SQLServer等。
-
我们会把那个承载我们核⼼数据的系统笼统地成为数据库服务器。
严格意义上来讲Oracle DataBase是由两个部分组成;
实例+数据库=数据库服务(oracle server)
实例:Oracle instance:⼀组后台进程和内存结构
数据库:Oracle database:存放在操作系统上的物理文件
3. Data File 数据文件
- Oracle数据库中的表空间由⼀个或多个物理数据⽂件组成。数据⽂件只能与⼀个表空间和⼀个数据库相关联。
- Oracle数据库通过分配指定数量的磁盘空间和⽂件头所需的开销,为表空间创建⼀个数据⽂件。如果⽂件很⼤,这个过程可能会花费⼤量的时间。任何数据库中的第⼀个表空间总是SYSTEM表空间,因此Oracle数据库在创建数据库时⾃动为SYSTEM表空间分配,数据库的第⼀个数据文件。
4. Control File 控制文件
- 数据库控制⽂件是数据库启动和成功操作所必需的⼀个⼩型⼆进制⽂件。在数据库使⽤过程中,Oracle数据库会不断更新控制⽂件,因此⽆论何时打开数据库,它都必须能够⽤于编写。如果由于某种原因控制⽂件不可访问,那么数据库就不能正常运⾏。
- 每个控制⽂件只与⼀个Oracle数据库相关联。
- 控制⽂件包含有关实例访问所需的关联数据库的信息,这些信息在启动时和正常操作时都需要。控制⽂件信息只能通过Oracle数据库修改
alter database backup controlfile to trace as ‘/u01/ctl01.bak‘;
5. Redo Log File 重做日志文件
- REDO条⽬(redo entries) 记录SQL语句本身,
- 以及执⾏后对数据库中某个⽂件某个块做的修改。包括DML、DD操作。
查看数据⽂件、控制⽂件、⽇志⽂件
col name for a50
SELECT name FROM v$datafile
union all
SELECT name FROM v$controlfile
union all
SELECT member FROM v$lofile;
6. Memory Structures 内存结构
- oracle memory= SGA + PGA
- SGA:system global area 系统全局区
- 共享的:所有 server process 和 background process 共享。
- PGA:program global area 程序全局区,
- 私有的:每⼀个 server process 和 background process 拥有⾃⼰的 pga.
查看分配给数据库的内存大小
SQL> show parameter memory
查看数据库中分配给SGA的大小
SQL> show parameter sga
查看当前系统物理内存大小
SQL> !free -m
6.1 设置具体值
10g
sga_target | 设置具体值,开启共享内存⾃动管理 ASMM(SGA) |
sga_target | SGA 可动态调整的尺⼨ |
sga_max_size | SGA 最⼤值 |
pga_aggregate_target | PGA 累计的最⼤值 |
11g
memory_target | 设置具体值,开启内存⾃动管理 AMM(SGA 和 PGA ⾃动管理)。 |
memory_target | 内存可动态调整的尺⼨ sga_target + pga_aggregate_target |
memory_max_target | oracle 服务器可使⽤最⼤内存⼤⼩(SGA+PGA) |
6.2 SGA Global Area 系统全局区
SGA是⼀组共享内存结构,称为SGA组件,它包含⼀个Oracle数据库实例的数据和控制信息。SGA由所有服务器和后台进程共享。存储在SGA中的数据示例包括缓存的数据块和共享的SQL区域。
SGA 6 个基本组件:
- shared pool
- database buffer cache
- redo log buffer
- large pool
- java pool
- streams pool
6.3 Database Buffer Cache 系统高速缓存区
1.缓存数据
⽤于缓存从磁盘数据⽂件中读⼊的数据块,为所有⽤户共享。
服务器进程(server process)负责将数据⽂件的数据从磁盘读⼊到数据缓冲区中,当后续的请求需要这些数据时,如果在内存中找到,则不需要再从磁盘读取。
2.延迟写数据⽂件
对数据的修改在内存缓冲区中进⾏,减少写磁盘的次数,提⾼ I/O 能⼒。 数据缓冲区中被修改的数据块(脏块 dirty block)由后台进程 DBWR 将其写⼊磁盘。
数据缓冲区的⼤⼩对数据库的读取速度有直接的影响。
L