Oracle 11g基础简介(《Oracle从入门到精通》读书笔记1)

来源:互联网 发布:转化率最高的淘客cms 编辑:程序博客网 时间:2024/04/30 22:10

第一范式:

数据组的每个属性只可以包含一个值;

关系中的每个数组必须包含相同数量的值;

关系中的每个数一定不能完全相同。

第二范式:(每行记录要唯一可辨别)

满足第一范式;

数据库表中的每行记录必须能被唯一的区分。

第三范式:(防止冗余)

满足第二范式;

不同表中通过同一个主键关联起来的记录行不能存在除主键外相同的冗余信息。


1. 安装:http://jingyan.baidu.com/article/22a299b57870f29e19376adf.html


2. 卸载:停服务,然后执行app\administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat,linux下则执行对应的sh脚本,按提示进行。


3. 管理工具:

(1)sqlplus username/password@IP:port/sid [as sysdba]

(2)Oracle Enterprise Manager(OEM): 运行Oracle程序组中的Database Control-sidname来启动

(3)数据库配置助手Database Configuration Assistance(DCA)


注:下面的命令绝大多数都是在SLQ/PLUS中执行

4. 启动数据库:启动顺序-启动实例、加载数据库、打开数据库(连接)

startup nomount|mount|open|force|resetrict [pfile=filename]

nomount:只启动实例、不加载数据库

mount:启动实例、数据库,但保持数据库为关闭状态(不可连接)

open:默认启动选项,启动实例、数据库并打开数据库连接;

force:强制关闭当前正在运行的实例再启动,也就是重启;

resetrict:指定以受限制的会话方式启动数据库;

pfile:指定实例启动时所使用的文本参数文件。


5. 关闭数据库:关闭顺序和启动顺序恰好相反

shutdown normal | transactional | immediate | abort

normal: 阻止建立新连接、等待已连接用户主动断开连接后、关闭数据库;

transactional:阻止建立新连接/新事务等待已连接用户提交的事务执行完毕主动断开连接后、关闭数据库;

immediate:阻止建立新连接/新事务将未提交的事务回退后关闭数据库;

abort:阻止建立新连接/新事务取消未提交的事务、终止正在执行的任何SQL后关闭数据库。


6. Oracle 11g逻辑存储结构:


(1) 数据块(Data Block)由块头、表目录、行目录、空余空间、行数据组成(知道就行,没必要记,可以理解oracle是一个”独立“的操作系统,这种结构和OS的文件系统是类似的构想)

col name format a30

col value format a20

select name,value from v$parameter where name = 'db_block_size';

(2) 若干个数据块组成数据区,再由若干个数据区组成下面所说的”段“,毕竟数据块的单位太小,操作起来不太方便;

(3) 段(Segment)又可分为数据段、索引段、回滚段、临时段(具体的描述请百度),平时执行的排序查询操作就是在临时段中开辟一块空间来临时存储排序出来的记录,因此,如果需要频繁的执行排序查询等操作,最好调整sort_area_size的大小:

===========================================================
  1. 可以使用“alter session set sort_area_size=3000000”使得新值只对当前连接生效
  2. 可以使用“alter sysetm set sort_area_size=3000000 deferred”使得新值对随后登录的账号生效,而对当前连接不生效
  3. 可以使用“alter system set sort_area_size=3000000 scope=spfile”使得新值在数据库重新启动后生效
  4. 这里的数值不能包含K、M、G作单位,多数错误基本都是在数值中包含了这些单位引起的

用户数据库出现04030问题,oracle.exe占用内存越来越多,后来做statspack发现pga不断增长,调整方案,alter system set workarea_size_policy=manual;调整sort_area_size和hash_area_size,目前还不知道调整后的情况,有待观察.

(该段引自http://blog.sina.com.cn/s/blog_4bab74840100wad9.html)


(4) 表空间(TableSpace),数据库的最大逻辑划分区域,同一个表空间可以包含一个或多个数据文件(.dbf文件,后面会写);创建一个数据库时,oracle会自动创建几个默认的表空间用来管理用户数据和系统内部数据(数据字典等),默认表空间有:

·SYSTEM:存放dict、v$fixed_view_definition等系统数据;

col table_name for a30

col comments for a30

select * from dict;

·SYSAUX:SYSTEM的辅助表空间,有oracle自动维护;

·UNDO:撤销表空间,oracle创建时会命名为UNDOTBS1,DUIYING 的DBF文件为UNDOTBS1.dbf

·USERS:为用户存储用户数据而创建的默认表空间;


7. oracle物理存储结构:懒得画图了,直接上照片;总的来说oracle相关的数据分四大部分:


(1)数据文件(.DBF):上述的“表空间”,最终可以理解是以DBF文件的形式存放在硬盘中的,可以通过以下命令查找每个表空间对应的DBF文件所在位置:

col file_name for a50;

set linesize 100;

select file_name,tablespace_name from dba_data_files;


数据文件可以分为系统数据文件(SYSAUX01.DBF、SYSTEM01.DBF)、回滚数据文件(UNDOTBS01.DBF)和用户数据文件(USERS01.DBF);此外,还有一个隐藏的“临时数据文件”,可以通过以下命令查看:

col file_name format a50;

col tablespace_name format a20;

select file_name, tablespace_name from dba_temp_files;


(2)控制文件(.CTL):之前说到的,数据库实例在启动的时候会从参数文件中读取参数(就是那个pfile),它就属于控制文件;使用如下命令查看每个数据库对应的控制文件:

col name format a60;

select name from v$controlfile;

Oracle会为每个数据库配两个控制文件,是oracle为了保证数据库在某个控制文件损坏时仍能读取到备份的控制文件从而继续正常运行;由此可见控制文件对数据库的重要性。


(3)日志文件:

重做(回滚)日志文件:用户执行commit 时,oracle会先把就数据保存到重做日志中,然后才会把新操作应用到系统中去,位置如下:

col member for a50;

select member from v$logfile;

归档日志文件:用来将重做日志进行归档保存,避免损失较早的重做日志;如果数据库开启了归档模式,数据库操作要等归档进程(ARCH)结束才能开始覆写日志文件,从而延迟了响应时间。

查看当前oracle是否采用了归档模式:

col name format a30;

select dbid,name,log_mode from v$database;

查看归档日志路径:

set pagesize 30;

show parameter log_archive_dest;


(4)服务器参数文件(SPFILE):其中包含的参数用show parameter查看,如果要修改的话,用:

alter system set db_block_size=xxxx;

或者直接登陆OEM更改;


(5)密码文件、告警文件、跟踪文件:个人感觉这几个东西用到的不多

密码文件:可以直接执行app\Administrator\product\11.2.0\dbhome_1\BIN下的orapwd.exe/orapwd.sh执行(windows平台需要在dos窗口执行orapwd创建对应的密码文件);


告警文件:位于

show parameter background_dump_dest;


跟踪文件:用于记录oracle和用户后台进程中的警告和错误信息;

show parameter user_dump_dest;



8. Oracle 11g服务器结构:直接上照片


各个词的中英文对照:

User process:用户进程

PGA:程序全局区

Instance:实例

SGA:系统全局区

Shared pool:共享池,分为库告诉缓冲区和字典高速缓冲区

Database buffer cache:高速数据缓冲区

Redo log buffer cache:重做日志缓冲区

Server process:服务进程

PMON:进程监控进程

SMON:系统监控进程

DBWR:数据写入进程

LGWR:日志写入进程

CHPT:检查点进程

Others:其他进程,包括SNPN(快照进程)、DNNN(调度进程)、RECO(恢复进程)、LCKN(锁定进程)、ARCH(归档进程)

Data files:数据文件,也就是上面说的.dbf文件

Control files:控制文件,也就是上面说的.ctl文件

Redo log files、Parameter file、Password file、Archived log files:上面说过了

各个名词的含义百度百科上有详细描述和举例;再上一张图把服务体系结构和物理、逻辑体系结构联系起来看下:



9. Oracle常用数据字典:





以上列出来的是一些常用的,还可以通过百度补充,有很多相关的文章,如:

http://www.cnblogs.com/linjiqin/p/3148746.html


【第一、二章完】





0 0
原创粉丝点击