/Articles

Oracle文件 - trc和alert

trc和alert是用来分析和捕捉错误的关键日志文件。alert警告日志非常详细,包括何时启动,何时关闭数据库,何时切换日志等。同时也会记录内部错误并指出trace跟踪文件的详细路径。trace文件则记录两种类型的日志:系统内部错误信息,用户请求所产生的信息。 trc和alert的路径 11g以前 在Oracle 10g和9i版本上,跟踪文件和警告日志的路径由user_dump_dest或者background_dump_dest设定。 SYS@orcl> show parameter dump_dest NAME...

Oracle文件 - spfile参数文件

参数查找顺序 Oracle启动时,如果没有特意指定启动参数的文件路径名和文件名,会按照下面的顺序查找启动参数文件。Windows下位于ORACLE_HOME/database/目录下面,Unix位于ORACLE_DATABASE/dbs/下。 spfile$ORACLE_SID.ora spfile.ora init$ORACLE_SID.ora 查看当前db启动使用了是spfile还是pfile,最直接方式就是使用 show parameter。 SYS@orcl> show parameter spfile NAME...

Oracle文件 - datafile与extent扩展的分析

花了比较长的时间一点点做实验,总算初步搞清楚了数据文件和extent扩展的关系。下面详细地记录extent区间是如何扩展填充数据文件的。 先建立三个不同的tablespace CREATE TABLESPACE xwiz01 DATAFILE '/u01/app/oracle/oradata/orcl/xwiz01.dbf' SIZE 1M AUTOEXTEND ON NEXT 1M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE xwiz02 DATAFILE...

Oracle数据库学习-PMON后台进程

PMON主要做的事情包括连接进程异常中止后的资源清理,后台进程状态的监控与恢复,以及将实例注册到Listener上。本文通过一些调试例子来分析背后的工作原理。 连接进程的异常清理 我们使用10246事件来调试。由于10246只能用在initSID.ora中而不能动态地alter system,因此我们通过pfile方式启动数据库,启动前先在initSID.ora文件中加入这样的调试参数: event='10246 trace name context forever, level 10' 服务器上启动数据库并确认Event生效。 [oracle@localhost ~]$...

Oracle数据库学习-Sequence序列值

Sequence序列值大量应用在表中需要设置ID自动增长作为主键的地方,在当前数据库中属于全局级别。本文简单介绍Sequence的使用。 创建 根据Oracle的SQL定义,sequence的创建语法非常清晰。我们用下面的例子演示最常见的创建方法。 SQL> create sequence myseq 2 increment by 10 3 start with 100 4 nomaxvalue 5 nocycle 6 cache 5; 序列已创建。 已用时间: 00: 00: 00.00 ** increment by表示步长 **...

Oracle数据库学习-索引及常规使用

创建index十分简单,本文简单讲述组合索引、位图索引以及函数所以以及压缩索引,以及如何查看索引的空间使用情况。 数据准备 我们先创建一个employee表。 SQL> create table employee( 2 id number not null, 3 name varchar2(200) not null, 4 title varchar2(200), 5 sex varchar2(1) not null 6 ); 表已创建。 同时插入女性员工和男性员工多名...

Oracle数据库学习-视图的写操作

对于视图的操作,我们最常见的是创建并使用select操作符,但其实视图也是可写的,只是可写的条件比较苛刻。视图写操作实际上是针对视图定义中最外层from从句中基表的操作。本文详细举例说明在各种条件下视图的insert,update以及delete操作的实验。 准备工作 在开始之前,我们先准备两个表和各自的数据,两个表用主外键相互引用。 create table class( cno number(4) primary key, cname varchar2(10), loc varchar2(10) ); create table student( sno...

Oracle数据库学习-表管理

Oracle中的表有很多类型,本文章涉及Heap-Organized的Table,External Table和临时表,以及Index-Organized Table。 Heap-Organized Table 最常见的表就是Heap-Organized Table,在创建之初,可以指定ORGANIZATION HEAP,或者直接忽略此参数。Heap-Organized表中数据无序存储,由rowid物理地址唯一地标识每一行记录。 Heap-Organized表的创建可以指定表空间,存储参数,比如下面例子。 SQL> drop tablespace ZIGZAG_TBS0 2...

Oracle数据库学习-tablespace和datafile

每个数据库都由一个或者多个tablespace组成,每个tablespace又由多个datafile组成。表、索引等数据都存储在某个tablespace内。 默认的表空间 每个数据库实例创建的时候都会有以下的默认表空间 SYSTEM,存储数据字典等 SYSAUX,辅助表空间,存储AWR, Statspack等 TEMP UNDOTBS1,undo的tablespace USERS 创建tablespace 过程为 创建tablespace以及指定datafile 赋予用户使用tablespace空间的权限 创建数据库时指定table/index等存储...

Oracle数据库学习-Archive Redo Log

Archive Log保存了所有数据库执行过程中的操作,是对当前Inactive状态的Redo Log的备份,用于备份和数据恢复。 NONARCHIVE和ARCHIVE的区别 在NONARCHIVE模式下,Redo Log不会被备份,会被LGWR进程覆盖,即发生日志切换时(alter system switch logfile),LGWR后台进程可以覆盖非活动的(INACTIVE)的Redo Log。在数据库备份时,只能使用冷备份,即必须先关闭数据库,然后才能备份所有的物理文件。此模式只能保护数据库免于Instance失败,但不能保护数据库免于磁盘介质的错误。由于不会产生Archive...

Oracle数据库学习-Redo Log

日志文件记录了对数据库的所有操作记录,为恢复提供了可行的机制。一个数据库实例的Redo Log必须有两组或两组以上的Group,每组Group含一个或一个以上的Redo Log文件供写操作,同一组的成员文件大小必须一致。LGWR进程根据日志组循环地写,同一组中的Redo Log采用同步写的方式,每个文件被分配到一个LSN (Log Sequence Number)。当写完一个Group的时候,Log Switch会被出发,LSN累加1,同时触发Check Point。 日志文件与日志组的状态 查找当前Instance的Group状况和每组的Redo...

Oracle数据库学习-Control File

Control File是一个二进制文件,存放了当前数据库instance的物理结构信息。数据库open状态下,Control File必须处于可读写的状态。Control File一旦破坏,数据库将无法启动。 Control File可以有多个,但database启动的时候永远只读取第一个Control File,其他的Control作为备份文件只作写操作,因此所有的Control都包含相同的二进制信息。 Control包含的信息如数据库名,创建时间,系统平台信息,checkpoint点等。可以通过字典v$database来获取Control File包含的内容。 如...

1 2