当前位置:首页 > oracle六种物理文件
由于在NOARCHIVELOG模式下,数据文件脱机后会造成数据的遗失,所以只能使用ALTER DATABASE语句下带有DATAFILE和OFFLINE DROP子句的选项将该DataFile直接取消,例如该DataFile只包含临时段数据,并没有备份时
alter database datafile '/export/home/oracle/oradata/april/users3.dbf' offline drop;
3、修改TableSpace中所有DataFile或TempFile的可用性
ALTER TABLESPACE ... DATAFILE {ONLINE|OFFLINE} ALTER TABLESPACE ... TEMPFILE {ONLINE|OFFLINE}
注:修改某TableSpace中的所有数据文件,但是TableSpace本身的状态不改变。
总结:
① ALTER TABLESPACE可以在数据库装载状态时发布,无需打开 ② 涉及到系统表空间、撤销表空间、默认临时表空间时,必须是未打开的数据库 ③ ALTER DATABASE DATAFILE 语句中必须填入文件全名 =================================DataFile 第二部分=================================
一、DataFile的重命名和重定位
1、单个TableSpace的DataFile重命名及重定位
重命名步骤:
① 使包含该DataFile的非SYSTEM TableSpace脱机 ALTER TABLESPACE users OFFLINE NOEMAL; ② 利用操作系统重命名DataFile ③ 使用ALTER TABLESPACE RENAME DATAFILE语句改文件名 ALTER TABLESPACE users RENAME DATAFILE
'/export/home/oracle/oradata/april/user1.dbf','/export/home/oracle/oradata/april/user2.dbf' TO
'/export/home/oracle/oradata/april/users01.dbf','/export/home/oracle/oradata/april/users02.dbf'; ④ 备份数据库
注:重定位的操作基本上与重命名相同,即在改变名称的基础上也通过操作系统改变了位置。
2、多个TableSpace中的DataFile重命名和重定位
① 确保数据库被装载,但是关闭(必须关闭,与单TableSpace不同) ② 利用操作系统重命名及重定位DataFile ③ 使用ALTER DATABASE命令 ALTER DATABASE RENAME FILE
'/export/home/oracle/oradata/april/sort01.dbf','/export/home/oracle/oradata/april/user3.dbf' TO
'/export/home/oracle/oradata/april/temp01.dbf','/export/home/oracle/oradata/april/users03.dbf'; ④ 备份数据库
二、验证DataFile中的数据块
如果需要配置Oracle来校验数据块,则需要将DB_BLOCK_CHECHSUM参数项设置为TRUE
注:DB_BLOCK_CHECHSUM的默认值是FALSE,但可以动态改变。
工作过程: 当启用块校验时,Oracle为每个写到磁盘的块计算校验和,包括临时块。DBWn为每个块计算校验和后,将其存储在块的头部,下一次Oracle读一个数据块时,使用它来校验和检测块中的讹误,若有错误则返回ORA-01578,并将错误信息写入跟踪文件
三、查看数据文件信息
DBA_DATA_FILES:每个数据文件的说明信息,包括所属表空间和文件标识 DBA_EXTENTS:组成数据库中所有段的盘区,包括盘区的数据文件标识 DBA_FREE_SPACE:表空间中的空闲盘区,包含该盘区的数据文件标识 V$DATAFILE:来自控制文件的数据文件信息
V$DATAFILE_HEADER:包括来自数据文件头部的信息
SELECT NAME, FILE#, STATUS, CHECKPOINT_CHANGE# \ FROM V$DATAFILE;
NAME:数据文件全名 FILE#:文件号
STATUS:SYSTEM表空间的DataFile直接标SYSTEM,其他则标ONLINE|OFFLINE(RECOVER)
CHECKPOINT_CHANGE#:最近的检测点写入的最终SCN
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。
物理结构,即Oracle数据库使用的操作系统文件结构。对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构。 数据库的物理结构文件按其作用可以分为三类:
数据文件 日志文件 控制文件 一、数据文件
数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。这是为了减少I/O,如果读取数据时,缓冲区中已经有要读取的数据,就不需要再从磁盘中读取了。存储数据时也是一样,事务提交时改变的数据先存储到内存缓冲区中,再由oracle后台进程DBWR决定如何将其写入到数据文件中。
1.查询数据文件的信息
一个数据文件只与一个数据库相联系。数据文件的大小是可以改变的。可以通过以下语句查询表空间的空间空闲量
sql>select * from dba_free_space 2.修改数据文件的大小
sql>alter database datafile \ 3.数据库文件的自动扩展特性。
二、重做日志文件
重做日志文件记录对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是保证数据库安全与数据库备份与恢复有直接关系的文件。
1.日志文件组与日志成员
在每一个Oracle数据库中,至少有两个重做日志文件组。每组有一个个或多个重做日志文件,即日志成员。同一组中的成员是镜像关系,它们存储的内容是一模一样的。Oracle在写日志时,以一个日志组为逻辑单位写入,只在将日志都写入日志组中的每个成员文件中后,写日志才完成。
2.日志工作原理
Oracle有多个日志文件组,当一个日志文件组中所有的成员所有的成员同时被写满数据时,系统自动转换到下一个日志文件组,这个转换过程称为日志切换。 当日志切换后,会给前一个日志组编一个号,用于归档日志的编号,这个编号称为日志序列号。此编号由1开始,每切换一次,序列号自动加1,最大值受参数MAXLOGHISTORY限制,该参数的最大值为65534。
当oracle把最后一个日志组写满了以后,自动转向第一个日志组,这时,再向第一个日志组写日志的时候,如果数据库运行在非归档模式下,这个日志组中的原有日志信息就会被覆盖。
使用以下语句查询日志文件信息: sql>select * from v$log 相关字段说明如下: GROUP#:日志文件组号
THREAD#:日志文件线程号,一般为1,双机容时为2 SEQUENCE#:日志序列号 BYTES:日志文件大小
MEMBERS:该组的日志成员个数 ARC:该组日志信息是否已经完成归档
STATUS:该组状态(CURRENT:表示当前正在使用的组;NACTIVE:表示非活动组;ACTIVE:表示归档未完成)
FIRST_CHANGE#:系统改变号SCN,也叫检查点号 FIRST_TIME:系统改变时间
DBA可以使用下列命令进行强制日志切换 sql>alter system switch logfile 3.NOARCHIVELOG/ARCHIVELOG
NOARCHIVELOG是非归档模式,如果数据库运行在这种模式下,当日志切换时,新切换到的日志组中的日志信息会被覆盖。ARCHIVELOG:归档模式,如果数据库运行在这种模式下,日志会被归档存储,产生归档日志,且在未归档之前,日志不允许被覆盖写入。
要确认数据库的归档方式,可以查询数据字典v$database: sql>select log_mode from v$database
要了解归档日志的信息,可以查询数据字典v$archived_log。 要将数据库改为归档模式: a.alter database archivelog
b.设置初始化参数LOG_ARCHIVE_START=TRUE
c.设置归档文件目标存储路径 LOG_ARCHIVE_DEST=C:\\ORA\\ARCHIVE
d.设置归档文件命名格式参数 LOG_ARCHIVE_FORMAT=\。这个格式中的%S表示日志序列号,自动左边补零;%s表示日志序列号,自动左边不补零;%T表示
共分享92篇相关文档