现在的位置: 首页 > 综合 > 正文

【顶点实习】oracle的学习 一

2013年10月14日 ⁄ 综合 ⁄ 共 4876字 ⁄ 字号 评论关闭

2012/12/17 20:31   by 灵月
(ps:高手请路过,新手可一笑而过大笑)

授课老师:林嵩

教授内容:

1.window下的oracle安装与删除

2.window下oracle实例的新增与删除

3.Plsqldev开发工具使用说明

4.oracle工作原理、体系结构、存储结构

5.SQL基础:简单的sql语句编写

个人学习情况:

1.个人笔记本没有安装,现场安装oracle 10g,装完 又遇到了原先遇到的那个问题,scott用户默认被锁住,无法登陆,百度,解决方法如下:
通过系统用户登进sql*plus,
alter user scott account unlock;
再conn scott/tiger;
连接上。

--------------------------------------------------------------------------
2.什么叫oracle的实例(oracle instance)?一直不理解,果断自己百度搞清楚概念!

Oracle中Instance实例和数据库的区别 (来源于CSDN)

在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类的话。 其实问他们什么是数据库,什么是Instance,很可能他们给的

答案就是数据库就是Instance,Instance就是数据库啊,没有什么区别。在这里,只能说虽然他们Oracle用了可能有了一定的经验,不过基础的概念还是不太清楚。

什么是数据库,其实很简单,数据库就是存储数据的一种媒介。比如常用的文件就是一种,在Oracle10G中,数据的存储有好几种。第一种是文件形式,也就是在你的磁盘中创建一批文件,然

后在这些文件中存储信息。第二种就是磁盘阵列形式,这个是什么意思呢,这个就是说明数据库不是存放为某个文件,而是把一个或者多个磁盘格式化成Oracle的一种格式了,等于整个磁盘

就是存放Oracle数据库的,不能作为别的用途。这样的优点是存储性能高,因为不再借助别的文件格式了,而是把整个磁盘都成为Oracle最适应的文件系统格式。当然还可能有别的形式,比

如网络什么的。不过我们最常用的还是文件格式的,在文件格式中,数据库指的就是那些数据文件,控制文件以及REDO文件等等一系列文件。

而什么是Instance呢,Instance其实就是指的操作系统中一系列的进程以及为这些进程所分配的内存块。在Oracle中,我们可以新建一个Oracle的Instance,这个时候虽然有了进程还有SGA等

一系列的内存快,但是这个时候并没有把数据库文件读取进来。所以只是一个实例,在后来,你可以通过命令手动或者自动地把数据库文件加载进我们的数据库Instance中,这个时候的数据

库才可以让我们真正的开始访问操作。

所以说,数据库的应用如果想实现,数据库和数据库Instance是缺一不可的,如果只有数据库的那些文件,那么,只能代表数据在这个文件中,但是我们无法直接进行操作。而如果只有数据

库Instance,那么我们虽然可以急性操作,但是也不知道操作哪些数据,操作生成的数据也无法保存等等。所以,当一个Oracle Instance真正Load了一个Oracle Database了以后,数据库才

可以被我们使用。

在这里要注意一点的是,Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程

结束,然后重新建立这个instance的一个进程,再load另外一个数据库。否则肯定要抛除ORA-16169错误,说数据库已经被打开。因为一个数据库Instance在其生存期中最多只能load和打开一

个instance。

-----------------------------------------------------------------------
3.主要着重介绍几个工具的使用,分别是:PL/SQL美化器、SQL跟踪、窗口列表、查找数据库对象、编译无效对象、导出表、导入表、报告中的所有子菜单以及帮助中的支持信息,特别提到了用UE收藏2个重要的配置文件 tnsnames.ora 以便自己以后工作能方便修改。

----------------------------------------------------------------------------------
4.oracle的工作原理、体系结构、存储结构;这几个内容,原先学习sqlserver和oracle时老师没提到,自己也不关心,今天林嵩老师着重讲解了这一部分内容,第一次接触,勉强接受了。

下面是一些主要内容:
PGA(program global area):即进程全局区,每位客户端用户连接到Oracle服务器,均会由服务器分配一定内存来保持连接,并将在该内存中实现用户私有操作。所有用户连接的内存集合便

形成了Oracle数据库的PGA。(查看 PGA的的大小:select * from v$pgastat;)
1.固定PGA:它的大小时固定的,包含了大量原子变量、小的数据结构和指向可变PGA的指针
2.可变PGA:包括私有SQL区,游标和SQL区,会话内存 SGA(System Global Area):由一组内存结构组成,它是由所有用户进程共享的一块内存区域。启动例程时,Oracle自动分配SGA,关闭

例程时,oracle自动释放SGA所占用的内存空间。(查看 是SGA的的大小:select name,value ,ISSYS_MODIFIABLE from v$parameter where name like 'sga%';)
1.数据缓冲(Buffer Cache):存放从数据文件中读取的数据块拷贝区域.包括链表与最近最少使用链表(LRU).脏数据写入文件调用DBW0进程。
2.重做日志缓冲(Redo Log Buffer):保存数据库修改信息的缓存。LGWR负责将redo log buffer中数据写入到redo log file中。
(select * from v$sgastat where name = 'log_buffer';)
3.共享池(Shared Pool):libaray cache(SQL共享区与pl/sql存储过程区),字典缓存(行缓存,用于存储数据库结构信息,用户对象信息)。
4.Java池(Java Pool):Java池也是SGA中的一块可选内存区,它也属于SGA中的可变区。
5.大池(Large Pool):大池是SGA中的一块可选内存池,根据需要时配置。
6.流池(Streams Pool --- 10g以后才有):流池也是可选内存区,属于SGA中的可变区。 
后台进程:为所有数据库用户异步完成各种任务。主要的后台进程有:
1.DBWR(DBWR The Database Writer)数据库写进程 :负责将脏数据块从数据缓存(database block buffer)写回磁盘。
2.LGWR(the log writer process)日志写进程:负责将日志缓冲区中的数据写入重做日志。commit时写入。
3.CKPT(the Checkpoint Process)检查点写进程(可选):进程负责向DBWR进程发送信号,要求执行一次检查点,并更新数据库的所有数据和控制文件。
4.SMON(the System Monitor Process)系统监控进程:进程负责在实例启动时恢复实例,包括清除临时段以及恢复因系统崩溃而中断的事物。
5.PMON(the Process Monitor Process)进程监控进程:进程负责监视数据库的处理情况,并负责清除死掉的进程。
6.ARCH(the Archiver Process )归档进程:负责将再现重做日志复制到归档存储器。
7.RECO (the Recovery Process)恢复进程:进程用于清除分布式数据库中的未决(pending)事务,它负责分布式事务中本地部分的提交与回滚。
ORACLE文件系统:主要由数据文件,日志文件,控制文件,其它文件.
1.数据文件:真正存储数据库中的数据,包括表,索引,试图等.通常情况下数据文件的后缀名都是.DBF.(select  *  from v$datafile)
2.日志文件:警报日志,跟踪日志,重做日志.
重做日志(用于数据的增量备份和恢复):在数据更新操作commit前,将更改的SQL脚本写入重做日志.
 a.在线重做日志:指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
 [重做日志满时,当数据库处理归档模式时,写入归档日志,后续覆盖写入重做日志。对于非归档模式,则先写入日志缓冲区,待归档后覆盖写入]
 b.归档重做日志:简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
 //查看控制文件:select * from v$logfile;
3.控制文件:控制文件是定义当前数据库物理状态的二进制文件,每个oracle数据库至少有一个控制文件。控制文件由DBA管理维护.
 a.数据库名及数据库唯一标识
  b.数据文件和日志文件标识
  c.数据库恢复所需的同步信息,即检查点号
  d.数据库创建时间
  e.表空间名
  f.当前重做日志文件SCN
  g.回滚段的开始和结束
  h.重做日志归档信息
  i.备份信息
  //查看控制文件位置:select * from v$controlfile;
4.参数文件:用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库。
  如内存池的分配,允许打开的进程数和会话数等。
 spfle:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
 pfile:$ORACLE_HOME/dbs/init.ora //默认 
 //查看参数文件位置:show parameter spfile;

5.密码文件:主要进行DBA权限的身份认证:
  存放PATH:Linux:$ORACLE_HOME/dbs/orapw<sid>; Windows::$ORACLE_HOME/database/PW<sid>.ora
Oracle体系结构由内存结构、进程结构、存储结构组成。其中,内存结构由SGA、PGA组成;进程结构由用户进程和Oracle进程组成;存储结构由逻辑存储、物理存储组成。

参数文件,密码文件路径:D:\oracle\product\10.2.0\db_1\database\
逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据。因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和

管理的。
物理存储结构主要描述Oracle数据库的外部存储结构,即在操作系统种如何组织、管理数据。因此,物理存储结构是和操作系统平台有关的

从物理上看,数据库由控制文件、数据文件、重做日志文件等操作系统文件组成;
从逻辑上来看,数据库是由系统表空间、用户表空间等组成。
表空间是最大的逻辑单位,块是最小的逻辑单位。
逻辑存储结构中的块最后对应到操作系统中的块

----------------------------------------------------------------------------

5.简单的SQL语句。我就记得 我遇到2个不会的 a.NVL(s1,s2)这个函数不知道,如果s1为NULL,则return s2否则return s1 。b.另一个是关于时间的格式 to_date('20121217','YYYYMMDD')

,其他就是几个关键字的使用 NOT IN /IN  GROUP BY ORDER BY NULL NOT NULL ...

暂时就复习到这里了大笑一天一记。

 

 

 

抱歉!评论已关闭.