培训班的第一节课,本以为学习不到什么知识,都是自己经常看的一些课本章节理论知识,但是实际经过了课堂,发现收益颇多.
以下是我培训的笔记整理:
1.SQL 一种关系数据库的语句规范,是第四代描述性语句.PL/SQL 是第三代描述性语句,主要实现分支,选择,等方式,具有过程化结构的编程语言. PL/SQL 在不同种类的数据库中,名称不一样,在SQL server中叫做 T-SQL, DB2中叫做SQL PL.
2.数据字典包括,用户数据和系统数据两部分,主要由 DICT表和DICT_COLUMNS表中存放了所有的表名称,通过这些我们可以查询到数据库中所有的表名,通过关联可以查询到表/视图的名称以及功用.同时,可以查询的到字段的备注.下面列举一下几种表和视图的开头和其代表的含义.
DD(数据字典)中以
USER_ 开头的表名,是表示当前用户所拥有的对象列表,
ALL_开头的表表示当前用户可以访问的对象的列表,
DBA_表表示只有DBA才可以访问的对象的列表,
v$开头的视图表示动态性能视图
例如 USER_TABLES,USER_INDEXES等.以上除了以v$开头的表/视图以外,均为静态参数,静态参数表/视图不会根据表的实际变化情况,更新表中的参数,例如 USER_TABLES表中行数字段,是不会根据当前的数据操作实时更新的,如果需要更新则可以通过如下命令执行:
ANALYSE TABLE {table_name} COMPUTE STATICS;
语句进行更新表当前的情况至数据字典.
3.REDOLOG的功用仅为恢复数据库和记录事务.事务,即为一个逻辑工作单元,具有以下(ACID)四个特性:
a.(A Atomic)原子性 不可再对其进行分割细化.
b.(C Consistence)一致性 事务结束后,保持缓存中的数据和库文件的数据保持一致.
c.(I Isolation)隔离性 通过对操作的对象挂上排他锁,对事务进行锁隔离
d.(D Durable)持久性 从日志记入数据库文件
误操作的时候使用UNDO LOG(flash back是可以闪回的,详细的可以百度,我自己试验过,成功了的)恢复到操作前的状态.
4.关于recover(覆盖)和restore(还原) restore仅仅针对backup后还原数据库的这样的概念.解释recover,首先说明以下 Rollback, Rollback表示事务未完成的状态,取消掉所需要进行的操作,这叫做回滚.另一种叫做前滚,表示已经完成过的操作,再执行一遍.恢复数据只需要数据文件+日志文件.
以上都是一些零散的知识,实际上培训的主要内容为oracle的体系结构,真得亏老师对着这张图讲了近3个小时.
上图为oracle结构体系图
oracle的体系结构主要分为两大块,一是Instance,二是database
1.Instance主要负责管理数据库的,主要由SGA(System Globe Area)和一些后台进程Backgroud Process组成.
2.database是一堆存放在磁盘里的文件,主要由空间文件Datafiles,控制文件Control files和联机重做日志Redo Log files组成.
另外概念方面,connect表示的是user process与server process建立的叫做链接,server process 与Instance建立的叫做会话.
3.server process 分为 专用服务进程:仅仅为一个用户提供服务 以及共享服务进程:为多个用户进程提供服务
4.后台进程主要有
PMON:回收资源
SMON:实例恢复
CKPT:同步所有的数据文件和控制文件,通知DBWR写入数据文件 控制该项的参数为fast_start_mttr_target value的单位是秒钟
DBWR:写数据文件
LGWR:写日志文件
5.图下方有两种颜色的文件,蓝色和灰色的,蓝色文件表示外部文件,灰色文件则为内部文件.内部文件指的是在数据库运行中不断变化的文件,外部文件则反之.控制文件为内部文件,不能进行复制备份,数据库在运行的过程中,内部文件一直在不断的改变,如果将9:28分的*.ctl控制文件拷贝出去,在9:30覆盖回来,将会导致数据库的崩溃.因为文件在不断的修改,9:28分的控制文件无法管理9:30分的数据文件.
再就是一些其他的散碎的知识
1.双机热备:即为单机操作,不停根据事务向备份服务器进行日志的文件传输的实现方式.