Oracle学习笔记(基础部分)

来源:互联网 发布:数值最优化方法 pdf 编辑:程序博客网 时间:2024/05/19 16:03

ORACLE体系结构:
1.物理结构
datafile(数据文件) .dbf
redo log file(日志文件) .log
control files (控制文件) .ctl
parameter files (参数文件) InitSID.ora

重做日志组
日志缓冲区←→日志缓冲管理←→重做日志组

控制文件记录的信息
DATABASE 数据库信息
CKPT PROGRESS 每一个数据库例程的检查点进行跟踪记录
REDO LOG 当前分配重做日志数和数据库最大数量
REDO THREAD 分配给数据库重做日志线程数
DATAFILE 创建的数据文件数和允许最大数量
FILENAME 存储在控制文件名数量 数据文件 重做日志文件 控制文件
TABLESPACE 数据库中创建的表空间数
LOG HISTORY 最大重做日志条目 当前分配的重做日志数目

SMON 系统监控进程
PMON 进程监控进程
DBWR 数据写入进程
LGWR 日志写入进程
CKPT 检查点进程 减少数据库恢复时间
RECO 恢复进程 分布式数据库失败处理
LCKN 锁进程
ARCH 归档进程 归档方式调用该进程完成日志归档

2.内存结构
SGA (system Global Area)
SGA占物理内存的1/3-1/2

shared pool (共享池) database buffer cache(数据缓冲区) Redo Log Buffer(重做日志缓冲区) Java pool Fixed SGA Large pool

数据库缓冲区:
查表→数据缓冲区→物理内存 先进先出 这里写图片描述

数据库实例
Instance=SGA+background porocess
实例=内存分配+一组后台进程
启动Oracle之前启动Instance

一个数据库可以被多个实例访问
oracle 并行服务器选项
oracle9i之前叫RAC

ORACAL 多用户 多任务 可分布式管理 同时可有许多用户同时对数据库操作

交易事务 (一组修改动作的集合)
1.insert DDL数据定义语句
delete create alter drop commit
commit 每两个DDL语句间是一个transaction
2.update DML数据控制语句
rollback Insert Delete Update

ORACLE进程:用户进程 服务进程 

SQL语句在Oracle工作
用户SQL请求 打开游标→SQL语句语法分析 执行计划 数据字典 存入共享池→数据文件把相关数据块读入数据缓冲区
→增、删、改 经确认重做日志缓冲区→返回结果
注意:SQL大小写敏感 “;”结尾

Oracle工作模式  c/s 客户端-服务器  B/S 客户端-web应用服务器-服务器

数据块大小在设定后则不可修改

启动数据库
Oracle9之后  sqlplus “/as sysdba”

关闭:
正常关闭:shutdown
立即关闭:shutdown immediate(常用)
中止关闭:shutdown abort 回滚由下次启动时启动
事物处理关闭:shutdown transactional 指定一个时间长度,关闭数据库前该时间内事务处理,直到最后一个数据库事务处理完毕

启动instances→nomout读参数文件initorid.ora→mount读控制文件(数据库未打开文件)→open读所有文件

误删控制文件 无法正常使用
例:
abd.dbf

SQL>connect internal
SQL>startap mount
SQL>alter database datafile”/directory/abd.dbf” offlie;
SQL>alter database open;
SQL>drop tablespace abc;

Oracle存储单位
a.block 数据块 2K最小I-O单位通常设置16K 随database产生不可改变
b.extend 一组连续数据块:用户能分配存储量最小单位
c.segment 有共同结构的一个或几个区域(extent)
d.tablespace 表空间:一组数据物理的逻辑组合
e.file文件 属于某个表空间的物理文件
f.database 数据库 一组表空间所构成的逻辑的可共享数据

行链
当存储的数据无法在一个数据块中存放需分配两个或多个数据块,标志这几个data block连接欢喜的存储信息

行迁移
当一个datablock某部分数据修改增长太快无法继续放在本数据块中,把它搬到另一个datablock优化存储结构,
这个迁移存储信息为行迁移

控制block空间使用的几个参数:
pctfree 10% 意味着每个块都保留10%空间拓展
pctused 40% 只在块的使用低于40%才会回到free list中 他们是消涨关系
inittans 在单一块中最初活动的交易事物数
maxtrans 单一块中最大交易事务

这里写图片描述

pctfree:
低:1.块填较满
2.如果重做数据代价较高
3.易引起迁移

高:1.剩下多的空间给以后修改用
2.需更多块存数据
3.减少链和重组数据的代价

pctused:
低:1.使重组数据时代价较低
2.增加了未用空间数

高:1.增加空间利用率
2.但使重组数据代价较高

extent:
initial 最初分配的空间数
next 下一步分配的空间数
maxextens 最大分配的extent数
minextens 最小分配的extent重做日志 回滚的存储结构必须成对分配extent
pctincrease 增长率 指数增长
optinal 尽量设小或为0
free list

!!参数改变只对未分配的有效

segment:
data 数据段
index 索引
temporary 临时段
rollback 回滚段 记录修改前后信息
bootstrap 启动段 存储数据字典系统信息

table存储 按行存储
1.rowoverhead 行头
2.row piece 列数
3.cluster key (不一定有)
4.rowid 行的唯一标记 有行链时记录其他block和rowid
5.length
6.value
字段为null length为0 无value某字段经常为空应放在table最后一列 如:备注

rowid:
XXXXXX(数据对象 DBA_OBJECT).XXX(数据文件号 DBA_DATA_FILES).XXXXXX(第几块).XXX(块中第几条记录)

临时表:回话级临时表(会话结束自动删除) 事务级临时表(事务结束自动删除)

表空间:
system 单独放在一个硬盘上
No system :users
tools
RBS
temp
applicationdata
application index 注:applicationdata和application index分开存放避免争用

备份:逻辑备份 Exp/Imp
物理备份:
操作系统下的备份:归档方式 不关闭database 联机备份(热备份)
非归档方式 关闭database cptar/copy (冷备份)
SQL>archive log list 查看当前归档方式

归档:(非归档:1.初始化参数文件 2.控制文件 3.联机重做日志文件 4.数据文件)5.归档日志文件

逻辑备份工具 Exp/Imp
Table 表级 Table=(a,b:p1)
user 用户级 owner=username
patabase 数据库级 Full=y

IncType:Complete 完全备份
Incremental 备份上一次备份后改变的数据
Cumulative 累计改过数据 (上次cum或complete后改过的数据)
帮助 exp help=y imp help=y
逻辑备份,非归档恢复到上次备份点
归档方式,备份到failure前一刻
exp导出文件imp读取

数据类型:
字符型:CHAR 2000 VARCHAR2 4000 CLOB NCHAR NVRCHAR2 BCLOB
日期型:DATE 1S TIMESTAMP(3) -1ms

常见对象
1.TABLE 表 2.VIEW 视图 3.SEQVENCES 序列 4.TRIGGER 触发器 5.SYNONYM 同义词
6.DATABASE LINK 数据链路 7.索引 函数 存储过程 包等

数据字典:存储在数据库中所有对象信息的知识库,能查询到当前所有信息 只读不能修改

USER_TABLES(=TABS)用户所有信息
USER_VIEWS 用户的所有视图
USER_SYNONYMS(=SYN)用户同义词
USER_SEQUENCES(=SEQ) 用户序列
USER_TRIGGERS 用户触发器信息
USER_SOURCE 用户存储信息

SQLloader
1.能装入不同数据表型文件及多个数据文件
2.可装入固定格式自由定界以及可度长格式的数据
3.可以装入二进制 压缩十进制
4.一次可对多个表装入数据
5.连接多个物理记录装到一个记录
6.对一单记录分解再装入到表中
7.提供装入错误报告

SQL loader对象
1.数据文件
被导入的文件
2.控制文件
如何导入
3.日志文件
导入过程日志
4.错误文件
导入出错

设计规范
表空间
定义自己的表空间
至少一个表空间
表和索引分开存储 存放在不同的表空间
表空间数据块指定大小等于16K

原创粉丝点击