融会贯通Oracle数据库的25条基本知识: 1。
一个表空间只能属于一个数据库。 2。
每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)。 3。
每个数据库最少有一个表空间(SYSTEM表空间)。 4。
建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。 5。
每个数据库最少有两个联机日志组,每组最少一个联机日志文件。 6。
一个数据文件只能属于一个表空间。 7。
一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中。 8。
建立新的表空间需要建立新的数据文件。 9。
数据文件被ORACLE格式化为ORACLE块,Oracle9i以前版本中,ORACLE块的大小是在第一次创建数据库时设定的。 10。
并且以后不能改变,要想改变,只能重建数据库。 11。
一个段segment只能属于一个表空间,但可以属于多个数据文件。 12。
一个区extent只能属于一个数据文件,即区间(extent)不能跨越数据文件。 13。
PCTFREE和PCTUSED总和不能大于等于100。 14。
单独一个事务不能跨越多个回滚段。 15。
索引表不含ROWID值。 16。
拥有不同大小的回滚段没有任何益处。 17。
COMMIT后,数据不一定立即写盘(数据文件)。 18。
一个事务即使不被提交,也会被写入到重做日志中。 19。
Oracle 8。0。
4中,在初始安装时建立的缺省数据库,实例名为ORCL 。 20。
一个块的最大长度为16KB(有2K、4K、8K、16K)。 每个数据库最大文件数(按块大小) 2K块 20000个文件 4K块 40000个文件 8K块或以上 65536个文件 21。
oracle server可以同时启动多个数据库 。 22。
一套操作系统上可以安装多个版本的ORACLE数据库系统(UNIX可以,NT不可以)。 23。
一套ORACLE数据库系统中可以有多个ORACLE数据库及其相对应的实例 。 24。
每个Oracle数据库拥有一个数据库实例(INSTANCE)(OPS除外)。 25。
所以,一套操作系统上同时可以有多个Oracle数据库实例启动。
1。
Oracle所包含的组件: 在 Oracle,数据库是指整个 Oracle RDBMS 环境,它包括以下组件: ·Oracle 数据库进程和缓冲(实例)。 ·SYSTEM 表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。
·其它由数据库管理员 (DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。 ·两个以上的联机恢复日志。
·归档恢复日志(可选)。 ·其它文件(控制文件、Init。
ora、Config。ora 等)。
每个 Oracle 数据库都在一个中央系统类目和数据字典上运行,它位于SYSTEM 表空间。 2。
关于“日志” Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。下面我们将大体上了解一下作为主要结构之一的“日志”: 每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。
每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。 归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。
归档的在线日志文件被唯一标识并合并成归档日志。
基本知识 1、表空间对于数据库是唯一性的,且要求每个数据库最少有一个表空间。
表空间可以分为系统表空间和非系统表空间、回滚段表空间;也可以分为用户表空间和非用户表空间,他们只是分类方式不同,其实实质差不多; 临时表空间:临时表空间并不包含真正的数据,恢复的方法是删除临时表空间并重建即可。 。
系统表空间:如果备份不可用,则只能采用重建数据库的方法 。 表空间的大小可以根据需要和设备的情况进行设置 表空间可以简单的理解为存放信息的空间,我们一般按如下顺序进行数据库系统的创建:创建表空间---》修改表空间---》创建回滚段---》创建用户和授权---》创建用户表---》创建表索引,用户只要按这个顺序就可以建立自己的数据库系统了,至于创建的数据库是否有最佳的性能,我会在以后的文章中做专门的讨论。
表空间的建立可以用图形用户界面的方式很方便的建立,相信大家都会,在这里我不进行详细的介绍。 2、控制文件在每个数据库中必不可少,为了使数据库的性能提高建议多建几个控制文件,求要求放在不同的磁盘上。
ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。 由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,数据库管理员可能会考虑移动数据库文件。
下面以UNIX平台为例,分别讨论三种数据库文件的移动方法 不能被忽视的数据库日志文件 请注意日志文件在恢复数据库时非常重要 日志可分为在线日志和离线日志,在线日志能记录每一个Oracle数据库中所作的全部修改。 一个在线日志由多个在线日志文件组成,每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。
离线日志是可选择的·当ORACLE填满了在线日志文件后,就要进行归档了。
我刚走过来,说一些. 首先,Oracle 不像一般的数据库系统那么好学的,我认为如果要学好 SQL的话只需要一本书做学习资料就可以了.而Oracle 需要三本,为什么那,东西太多.Oracle 最开始不能学习什么编程,首先要学会如何应用工具,也就是所提供各种支持和服务.很多人就连安装Oracle 都不会. 我说三本书不是说你一天看这么一本,一天看那么一本.那样我估计你很厂时间什么也都学习不到的.三本书:一本是学习基本使用工具的.一本可以学习Oracle如何部署目录的配属数据并懂得编程思想.最后需要一本PL/SQL的指导书籍来完成各种SQL编程. 个人认为不需要太过分的去学习那些东西,学习是一个重复的过程,理论和时间交替来完成,不要看书看不明白非要看明白,到机器上试一下就明白了;不要机器上反复弄不通的东西还弄,懂得像书上和旁边的人求救.。
第一步:学习数据库基础知识,数据库模型以及SQL语言基础知识。
第二步:学习oracle安装、启动、关闭等基础知识。
第三步:学习oracle数据库体系结构。
第四步:实际操作基础语法指令。
第五步:学习存储过程、function、sequence(序列)等高级知识。
第六步:学习oracle表空间、用户管理、角色管理等。
第七步:学习Oracle的RMAN备份与恢复等。
参考书籍:《Oracle11gR2 DBA 操作指南》,非常全面讲解Oracle数据库系统管理的图书。
一、数据库备份所使用的结构 Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。
1.数据库后备是由构成Oracle数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。
2.每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。
归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。 归档的在线日志文件被唯一标识并合并成归档日志。
3.回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。 4.控制文件,一般用于存储数据库的物理结构的状态。
控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。 二、在线日志 一个Oracle数据库的每一实例有一个相关联的在线日志。
一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。
三、归档日志 Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处: 1.数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
2.在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。 数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。
数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。 如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。
四、Oracle的备份特性 Oracle备份包括逻辑备份和物理备份。 1.逻辑备份 数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件。
(1)输出(Export)输出可以是整个数据库、指定用户或指定表。 (2)输入(Import)输入将输出建立的二进制转储文件读入并执行其命令。
2.物理备份 物理备份包含拷贝构成数据库的文件而不管其逻辑内容。 Oracle支持两种不同类型的物理文件备份:脱机备份(offline backup)和联机备份(online backup)。
(1) 脱机备份 脱机备份用在当数据库已正常关闭,数据库处于"offline"时,要备份下列文件: 所有数据文件 所有控制文件 所有联机日志 init。ora(可选的) (2) 联机备份联机备份可用来备份任何运作在ARCHIVELOG方式下的数据库。
在这种方式下,联机日志被归档,在数据库内部建立一个所有作业的完整记录。 联机备份过程具备强有力的功能。
第一,提供了完全的时间点(point-in-time)恢复。第二,在文件系统备份时允许数据库保持打开状态。
备份方式特性比较 方式 类型 恢复特性 Export 逻辑 可以将任何数据库对象恢复到输出时的状态 Offline Backups 物理 可把数据库恢复到关闭的状态:若数据库运行在ARCHIVELOG方式,就可恢复到任何时间点的状态。 Online Backups 物理 可把数据库恢复到任何时间点 五、Oracle数据库的角色管理 Oracle数据库系统在利用角色管理数据库安全性方面采取的基本措施有:通过验证用户名称和口令,防止非Oracle用户注册到Oracle数据库,对数据库进行非法存取操作。
一 事务处理介绍 事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。
事务具有以下的作用: * 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 * 可恢复性:一旦系统故障,数据库会自动地完全恢复未完 成的事务。
二 事务与一致性 事务是完整性的单位,一个事务的执行是把数据库从一个一 致的状态转换成另一个一致的状态。因此,如果事务孤立执行时 是正确的,但如果多个事务并发交错地执行,就可能相互干扰, 造成数据库状态的不一致。
在多用户环境中,数据库必须避免同 时进行的查询和更新发生冲突。这一点是很重要的,如果正在被 处理的数据能够在该处理正在运行时被另一用户的修改所改变, 那么该处理结果是不明确的。
不加控制的并发存取会产生以下几种错误: 1 丢失修改(lost updates) 当多个事务并发修改一个数据时,不加控制会得出错误的结 果,一个修改会覆盖掉另一个修改。 2 读的不可重复性 当多个事务按某种时间顺序存取若干数据时,如果对并发存 取不加控制,也会产生错误。
3 脏读(DIRDY DATA),读的不一致性 4 光标带来的当前值的混乱 事务在执行过程中它在某个表上的当前查找位置是由光标表 示的。光标指向当前正处理的记录。
当处理完该条记录后,则指 向下一条记录。在多个事务并发执行时,某一事务的修改可能产 生负作用,使与这些光标有关的事务出错。
5 未释放修改造成连锁退出 一个事务在进行修改操作的过程中可能会发生故障,这时需 要将已做的修改回退(Rollback)。如果在已进行过或已发现错 误尚未复原之前允许其它事务读已做过修改(脏读),则会导致 连锁退出。
6 一事务在对一表更新时,另外的事务却修改或删除此表的 定义。 数据库会为每个事务自动地设置适当级别的锁定。
对于前面 讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一 表更新时另外的事务却修改或删除此表的定义,数据库都会自动 解决。而另外的三个问题则需要在编程过程中人为地定义事务或 加锁来解决。
三 事务和恢复 数据库本身肩负着管理事务的责任。事务是最小的逻辑工作 单元,在这个工作单元中,对数据库的所有更新工作,要么必须 全部成功,要么必须全部失败(回退)。
只要应用程序指定了某 段程序为一个事务并做了相应的处理(提交或回退),数据库系 统会自动维护事务本身的特性。 四 ORACLE数据库的事务定义 ORACLE事务从COMMIT、ROLLBACK、连接到数据库或开始第一 条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出 数据库时结束。
如果在一个事务中包含DDL语句,则在DDL语句的 前后都会隐含地执行COMMIT语句,从而开始或结束一个事务。 如果一个事务由于某些故障或者由于用户改变主意而必须在 提交前取消它,则数据库被恢复到这些语句和过程执行之前的状 态。
利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个 事务。可以回退整个事务,也可以会退部分事务,但是不能回退 一个已经被提交的事务。
回退部分事务的ROLLBACK命令为: ROLLBACK to savepoint 存储点名 存储点是用户放入事务中的标记,用来表示一个可被回退的 位置。存储点通过在事务中放入一个SAVEPOINT命令而被插入。
该 命令的语法是: SAVEPOINT 存储点名 如果在ROLLBACK语句中没有给出存储点名,则整个事务被回 退。 五 SYBASE数据库的事务定义 SYBASE通过使用BEGIN TRANsaction和COMMIT TRANsaction命令指 示SQL将任意数目的语句作为一个单元来处理。
ROLLBACK TRANsaction 命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE TRANsaction命令定义的存储点上。 BEGIN TRANsaction和COMMIT TRANsaction能够包含任意数目的SQL 语句和存储过程,方法很简单: BEGIN TRANsaction [事务名称] COMMIT TRANsaction 如果一个事务由于某些故障或者由于用户改变主意而必须在提交 前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令 前随时回退一个事务。可以回退整个事务,也可以回退部分事务,但 是不能回退一个已经被提交的事务。
ROLLBACK TRANsaction命令为: ROLLBACK TRANsaction [事务名|存储点名] 存储点名是用户放入事务中的标记,用来表示一个可以被回退的 位置。存储点名通过在事务中放入一个SAVE TRANsaction命令而被插 入。
该命令的句法是: SAVE TRANsaction 存储点名 如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则 事务被回退到批处理中的第一个BEGIN TRANsaction语句处。
如何学习Oracle?
经常有一些Oracle的初学者问到这个问题,这里算是一个统一答复。
1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。
2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:
instance & database,
memory structure , process & those files ,such as data file, control file, init parameter file etc
以及database , tablespace , data file和tablespace, segmnet, extent & block它们之间的关系。
当然还要分清undo tablespace & redo log file等,
对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。
3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。
4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。
5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。
6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。
在此也希望你能早日好学好你的oracle!
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.096秒