oracle回滚讲解
Oracle 基本知识 一个表空间只能属于一个数据库 每个数据库最少有一个控制文件(建议 3 个,分别放在不同的磁盘上) 每个数据库最少有一个表空间(SYSTEM 表空间) 建立 SYSTEM 表空间的目的是尽量将目的相同的表存放在一起,以提高使 用效率,只应存放数据字典 每个数据库最少有两个联机日志组,每组最少一个联机日志文件 一个数据文件只能属于一个表空间 一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移 走,也不能再加入到其他表空间中 建立新的表空间需要建立新的数据文件 数据文件被 ORACLE 格式化为 ORACLE 块,Oracle9i 以前版本中,ORACLE 块的大小是在第一次创建数据库时设定的, 并且以后不能改变,要想改变,只能重建数据库 一个段 segment 只能属于一个表空间,但可以属于多个数据文件 一个区 extent 只能属于一个数据文件,即区间(extent)不能跨越数据 文件 PCTFREE 和 PCTUSED 总和不能大于等于 100 单独一个事务不能跨越多个回滚段 索引表不含 ROWID 值 拥有不同大小的回滚段没有任何益处 COMMIT 后,数据不一定立即写盘(数据文件) 一个事务即使不被提交,也会被写入到重做日志中。 Oracle 8.0.4 中,在初始安装时建立的缺省数据库,实例名为 ORCL 一个块的最大长度为 16KB有 2K、4K、8K、16K 每个数据库最大文件数(按块大小) 2K 块20000 个文件 4K 块40000 个文件 8K 块或以上65536 个文件 oracle server 可以同时启动多个数据库 一套操作系统上可以安装多个版本的 ORACLE 数据库系统(UNIX 可以, NT 不可以) 一套 ORACLE 数据库系统中可以有多个 ORACLE 数据库及其相对应的实例 每个 ORACLE 数据库拥有一个数据库实例(INSTANCE)(OPS 除外) 所以,一套操作系统上同时可以有多个 oracle 数据库实例启动 what is sql SQL 是 Structured Query Language(结构化查询语言)的缩写,它是目前使用最广泛的数据库语言,SQL 是由 IBM 发展起来的,后来被许多数据库软件公司接受而成为了业内的一个标准。 就象 SQL 的名字一样,我们可以通过容易理解的查询语言,来和数据库打交道,从数据库中得到我们想要 的数据。对于 SQL 语言,有两个组成部分 DML(data manipulation language)它们是 SELECT、UPDATE、INSERT、DELETE,就象它的名字一样, 这 4 条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language)DDL 比 DML 要多,主要的命令有 CREATE、ALTER、DROP 等,DDL 主要 是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建 立表时使用。 了解这两个部分的不同对于你今后使用时有很多方便,因为许多 SQL 语言中的约束也是根据这个分类来划 分的,比如你在 ORACLE 中建立数据库链,那么只有 DML 类语言能对链接的数据库进行操作。 SQL 作为一个 ANSI 标准,一直在不断改进,现在最新的标准是 SQL99。ORACLE 不但对标准的 SQL 完全兼 容,而且有自己更为方便的增强 SQL,所以这里介绍的主要是 ORACLE8 中使用的 SQL。 安装、配置后,SQL*Plus 操作初步 系统环境 1、操作系统Windows 2000 2、数据库Oracle 8i R2 8.1.6 for NT 企业版 3、安装路径C\ORACLE 说明 默认安装完 Oracle 后,初学者应该了解的一些 SQL 语句 1、连接 SQL*Plus system/manager 2、显示当前连接用户 SQL show user 3、查看系统拥有哪些用户 SQL select * from all_users; 4、新建用户并授权 SQL create user a identified by a;(默认建在 SYSTEM 表空 间下) SQL grant connect,resource to a; 5、连接到新用户 SQL conn a/a 6、查询当前用户下所有对象 SQL select * from tab; 7、建立第一个表 SQL create table aa number; 8、查询表结构 SQL desc a 9、插入新记录 SQL insert into a values1; 10、查询记录 SQL select * from a; 11、更改记录 SQL update a set a2; 12、删除记录 SQL delete from a; 13、回滚 SQL roll; SQL rollback; 14、提交 SQL commit; 安装安装 OracleOracle 后,经常使用的修改表空间的后,经常使用的修改表空间的 SQLSQL 代码代码 【点击 】 阿木伯 著 配置 Windows NT 4.0 中文版 5 块 10.2GB SCSI 硬盘 分C盘、D盘、E盘、F盘、G盘 Oracle 8.0.4 for Windows NT NT 安装在 C\WINNT,Oracle 安装在 C\ORANT 目标 因系统的回滚段太小,现打算生成新的回滚段, 建立大的、新的表空间(数据表空间、索引表空间、回滚表空间、临时 表空间、) 建两个数据表空间、两个索引表空间,这样建的目的是根据实际应用, 如现有 10 个应用用户,每个用户是一个独立子系统(如商业进销 存 MIS 系统中的财务、收款、库存、人事、总经理等) 尤其大型商场中收款机众多,同时访问进程很多,经常达到 50-100 个 进程同时访问, 这样,通过建立多个用户表空间、索引表空间,把各个用户分别建在不 同的表空间里(多个用户表空间放在不同的物理磁盘上), 减少了用户之间的 I/O 竞争、读写数据与写读索引的竞争(用户表空 间、索引表空间也分别放在不同的物理磁盘上) 规划 C盘、NT 系统,Oracle 系统 D盘、数据表空间 1(3GB、自动扩展)、回滚表空间 1(1GB、自动扩 展) E盘、数据表空间 2(3GB、自动扩展)、回滚表空间 2(1GB、自动扩 展) F盘、索引表空间 1(2GB、自动扩展)、临时表空间 1(0.5GB、不自 动扩展) G盘、索引表空间 2(2GB、自动扩展)、临时表空间 2(0.5GB、不自 动扩展) 注这只是一个简单的规划,实际规划要依系统需求来定,尽量减少 I/O 竞争 实现 1、首先查看系统有哪些回滚段及其状态。 SQL col ow