转自:http://www.51testing.com/html/59/n-218459.html
一.Oracle数据库的基本结构
Oralcle包括两个部分
(1)实例(Instance):是一个非固定的,基于内存的基本进程与内存结构。当服务器关闭后,实例也就不存在了。
(2)数据库(Database):是固定的,基于磁盘的数据文件和控制文件及日志文件、参数文件、归档日志文件等。通常,安装的Oracle数据库都是一个数据库中包含一个实例。
二.表空间与数据文件及存储结构
1.表空间(Tablespace)
用于存放数据库表、索引、回滚段等对象的磁盘逻辑空间叫做表空间(Tablespace)。
(1)SYSTEM表空间
用于存放Oracle系统内部表和数据字典的数据,如表名、列名、用户名等。包含system01.dbf和system02.dbf两个数据文件。
(2)SYSAUX表空间
用于存放Oracle系统内部的常用样例用户的对象,如存放CRM用户的表和索引等。包含sysaux01.dbf数据文件,是Oracle 10g新增加的空间。
(3)USERS表空间
Oracle系统建议用户使用的表空间。包含users01.dbf数据文件。
此外不同应用的数据应将不同表空间的文件放在不同的盘上,减少IO冲突。
2.数据文件(Datafile)
用于保存用户应用数据和Oracle系统内部数据的文件。Oracle数据库由表空间组成,每个表空间可以包含多个数据文件。
(1)系统数据
管理用户数据和Oracle系统本身的数据,如用户建立的表的名字、列的名字及类型属于用户数据,这些数据自动被存放在系统表空间对应的system01.dbf文件中;而Oracle系统内部数据字典、表,如DBA_USERS、DBA_DATA_FILES等表所存放的数据属于Oracle系统的内部数据,这些数据也存放在系统表空间对应的system01.dbf文件中。
(2)用户数据
是拥护应用系统的数据,包括与应用系统有关的所有相关信息。
查询语句可查询当前数据库的所有表空间及其对应的数据文件
SQL> select file_name,tablespace_name,bytes from dba_data_files; FILE_NAME TABLESPACE_NAME BYTES -------------------------------------------------------------------------------- ------------------------------ ---- D:\ORACLE\ORADATA\MYORACLE\SYSTEM01.DBF SYSTEM 419430400 D:\ORACLE\ORADATA\MYORACLE\UNDOTBS01.DBF UNDOTBS1 209715200 D:\ORACLE\ORADATA\MYORACLE\CWMLITE01.DBF CWMLITE 20971520 D:\ORACLE\ORADATA\MYORACLE\DRSYS01.DBF DRSYS 20971520 D:\ORACLE\ORADATA\MYORACLE\EXAMPLE01.DBF EXAMPLE 156631040 D:\ORACLE\ORADATA\MYORACLE\INDX01.DBF INDX 26214400 D:\ORACLE\ORADATA\MYORACLE\ODM01.DBF ODM 20971520 D:\ORACLE\ORADATA\MYORACLE\TOOLS01.DBF TOOLS 10485760 D:\ORACLE\ORADATA\MYORACLE\USERS01.DBF USERS 26214400 D:\ORACLE\ORADATA\MYORACLE\XDB01.DBF XDB 39976960 D:\ORACLE\ORADATA\MYORACLE\TABLE\TABLE_01.DBF TABLE_01 52428800 11 rows selected |
三.临时表空间与临时文件
Oracle 9i将临时表空间所对应的临时数据文件与一般数据文件分开,要了解数据库实例当前的临时表空间与临时数据文件的信息,可以从DBA_TEMP_FILES数据字典中查询。
从DBA_TEMP_FILES数据字典中查询临时表空间信息
SQL> select file_name,tablespace_name,bytes from dba_temp_files; FILE_NAME TABLESPACE_NAME BYTES -------------------------------------------------------------------------------- ------------------------------ ---- D:\ORACLE\ORADATA\MYORACLE\TEMP01.DBF TEMP 41943040 |
四.控制文件
一个存储有Oracle实例信息、数据文件和日志文件等信息的内部二进制文件。控制文件一般在Oracle系统安装时自动创建,控制文件所存放的路径由服务器参数文件spfilesid.ora的control_files参数值来确定。
Oracle实例在启动时必须访问控制文件。当Oracle实例在正常启动时,系统首先访问的是初始化参数文件SPFILE;然后Oracle为系统全局区(SGA)分配内存,这时Oracle实例处于安装状态,控制文件处于打开状态,接下来Oracle自动读出控制文件中的所有数据文件和日志文件信息;并打开所有数据文件及所有日志文件信息以便用户都可以访问。
从V$CONTROLFILE数据字典查询控制文件信息
SQL> select * from v$controlfile; STATUS NAME ------- -------------------------------------------------------------------------------- D:\ORACLE\ORADATA\MYORACLE\CONTROL01.CTL D:\ORACLE\ORADATA\MYORACLE\CONTROL02.CTL D:\ORACLE\ORADATA\MYORACLE\CONTROL03.CTL |
五.重做日志文件与归档日志文件
1.日志文件
重做日志文件也叫联机重做日志文件(Online Redo Log File),是用来记录数据库所有发生过的交易(Transaction)的信息以及由Oracle内部行为引起的数据库变化的信息。在数据恢复时可从该日志文件读出原来交易的数据。数据库运行时,用户发出COMMIT命令时,数据库会将每笔交易信息记录到日志文件中,在写入日志文件成功后才把完成信息传给用户程序,所以在日志文件上可随时读出信息以恢复某些交易数据。
对表或整个表空间设定NOLOGGING属性时,基于表或表空间中所有表的DML操作都将不会生成日志信息。
从V$LOGFILE数据字典查询日志文件信息
SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------- -------------------------------------------------------------------------------- 3 ONLINE D:\ORACLE\ORADATA\MYORACLE\REDO03.LOG 2 ONLINE D:\ORACLE\ORADATA\MYORACLE\REDO02.LOG 1 ONLINE D:\ORACLE\ORADATA\MYORACLE\REDO01.LOG |
2.归档日志文件(非归档模式和归档模式)
非归档模式:在系统运行期间,所产生的日志信息不断记录到各日志文件组中,当所有重做日志组被记录满后又重新从第一个日志组开始覆盖写日志信息内容。Oracle系统默认为非归档模式
归档模式:在各日志文件都记录满而即将要被覆盖前,先由归档进程(ARCH)将即将被覆盖的日志文件中的日志信息读出并写到归档日志文件中,以便于以后恢复操作时查找。
从V$DATABASE数据字典查询数据库是否是归档模式
SQL> select dbid,name,log_mode from v$database; DBID NAME LOG_MODE ---------- --------- ------------ 1720067795 MYORACLE ARCHIVELOG |
显示归档文件所在路径
SQL> show parameter log_archive_dest; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string d:\back_oracle log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_2 string log_archive_dest_3 string log_archive_dest_4 string |
六. 服务器参数文件
服务器参数文件SPFILE(Server Parameter File) 是二进制文件,它记录Oracle实例的基本参数信息。文件名为:SPFILEsid.ora。
七. 其他文件
1.密码文件
用于验证sysdba权限的二进制文件。
创建密码文件一般在操作系统下用orapwd命令来完成。
创建一个密码文件,其SYS口令是change_on_install_new
$orapwd file=$oracle_home/oracle/intra.passwd password=change_on_install_new entries=30 |
2.警告日志文件
一个存储在Oracle系统目录下的文本文件,它存储数据库系统运行期间记录例行的信息与错误信息。
一般警告日志文件的路径可由Oracle系统的BACKGROUND_DEST参数查到。
查询当前数据库实例的警告日志文件的路径
SQL> select value from v$parameter where name='background_dump_dest'; VALUE -------------------------------------------------------------------------------- d:\oracle\admin\myoracle\bdump |
3.后台跟踪文件和用户跟踪文件
是Oracle实例在系统出现异常时由Oracle系统自动创建的文本文件,它与警告文件一起构成完整的故障信息描述体系。
查询当前数据库实例用户跟踪文件的路径
SQL> select value from v$parameter where name='user_dump_dest'; VALUE -------------------------------------------------------------------------------- d:\oracle\admin\myoracle\udump |