首页 > 数据库技术 > 详细

6数据库物理文件管理

时间:2015-02-08 23:26:14      阅读:540      评论:0      收藏:0      [点我收藏+]

ORACLE文件组成:控制文件,数据文件,日志文件

控制文件
    相关视图:
    V$DATABASE
    V$CONTROLFILE
    V$CONTROLFILE_RECORD_SECTION
    V$PARAMETER
查看控制文件信息:
SELECT TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED FROM V$CONTROLFILE_RECORD_SECTION;

TYPE                 RECORD_SIZE RECORDS_TOTAL RECORDS_USED
---------------------------- ----------- ------------- ------------
DATABASE                 316         1          1
CKPT PROGRESS                8180        11          0

重做日志(redo log),保存数据库的数据块的所有变化的信息
多元重做日志(Multiplexed redo log)系统在不同的位置上自动维护重做日志的两个或更多个副本

禁止归档操作:
ALTER DATABASE CLEAR UNARCHIVED LOG

指定每个数据库中重做日志文件组的最大数据,在CREATE DATABASE中指定MAXLOGFILES
指定每个日志文件组中包含的日志文件的最大数据:在CREATE DATABASE中指定MAXLOGMEMBERS

归档日志:

归档日志文件是重做日志文件组成员的备份,一旦重做日志组被写满,则由ARC0进程进行归档操作,LGWR不能对未归档的重做日志组进行重用和改写操作
归档日志文件的作用:
1.恢复数据库
2.更新备用数据库
3.使用LOGMINER获取数据库的历史信息

SCN
SCN(SYSTEM CHANGE NUMBER)用来记录和标识执行数据库操作的先后顺序,它是一个只能增加的大整数
当触发CHECKPOINT事件时,ORACLE数据库会将SCN写入以下4个地方:
1.系统检查点(SYSTEM CHECKPOINT SCN):
    将SCN保存到控制文件中
SELECT CHECKPOINT_CHANGE# FROM V$DATABASE;

CHECKPOINT_CHANGE#
------------------
       1517933
2.数据文件检查点(DATAFILE CHECKPOINT SCN)
SELECT NAME,CHECKPOINT_CHANGE# FROM V$DATAFILE;
/u01/app/oracle/oradata/ORCL/sysaux01.dbf    1517933
3.启动 SCN(START SCN):
将每个数据文件的检查点SCN存储在每个数据文件的文件头中,称为启动SCN,在系统启动时,ORACLE会检查数据文件的SCN与控制文件中的SCN是否一致,如果不一致,则从重做日志文件中找到丢失的数据并写入数据文件中
SELECT NAME,CHECKPOINT_CHANGE# FROM V$DATAFILE_HEADER;
/u01/app/oracle/oradata/ORCL/system01.dbf   1517933

4.结束SCN(STOP SCN)
每个数据文件的结束SCN都保存在控制文件中,正常情况下,值都是NULL
SELECT NAME,LAST_CHANGE# FROM V$DATAFILE;
/u01/app/oracle/oradata/ORCL/system01.dbf    

查看当前系统生成的最新的SCN
SYS AS SYSDBA@ORCL>SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;

GET_SYSTEM_CHANGE_NUMBER
------------------------
         1522030

1 row selected.

查看数据文件信息:
查看日志文件列表:
SELECT MEMBER FROM V$LOGFILE;
查看数据文件列表:
SELECT NAME FROM V$DATAFILE;

创建数据文件
数据文件是和表空间一起创建的
CREATE TABLESPACE GMY DATAFILE ‘/u01/app/oracle/oradata/ORCL/GMY01.DBF‘ SIZE 50M;
创建临时表空间
CREATE TEMPORARY TABLESPACE TEMPTBS TEMPFILE ‘/u01/app/oracle/oradata/ORCL/TEMPTBS01.DBF‘ SIZE 50M EXTENT MANAGEMENT LOCAL;
向表空间添加数据文件
ALTER TABLESPACE GMY ADD DATAFILE ‘/u01/app/oracle/oradata/ORCL/GMY02.DBF‘ SIZE 50M;
修改数据文件的大小
ALTER DATABASE DATAFILE ‘/u01/app/oracle/oradata/ORCL/GMY02.DBF‘ RESIZE 100M;
查看现有的数据文件
SELECT NAME,BYTES FROM V$DATAFILE;

修改数据文件的在线状态
ALTER DATABASE DATAFILE ‘/u01/app/oracle/oradata/ORCL/GMY02.DBF‘ OFFLINE|ONLINE;
SELECT NAME,BYTES,STATUS FROM V$DATAFILE;
指定表空间中所有数据文件的在线状态
ALTER TABLESPACE GMY DATAFILE ONLINE|OFFLINE;

删除数据文件:
ALTER DATABASE DATAFILE ‘/u01/app/oracle/oradata/ORCL/GMY02.DBF‘ OFFLINE DROP;
删除表空间时,同时删除数据文件:
DROP TABLESPACE GMY INCLUDING CONTENTS CASCADE CONSTRAINTS;


查看重做日志信息
SELECT GROUP#,ARCHIVED,STATUS FROM V$LOG;
    GROUP# ARC STATUS
---------- --- ----------------
     1 YES INACTIVE
     2 NO  CURRENT
     3 YES INACTIVE
查看重做日志组文件信息
SELECT GROUP#,STATUS,MEMBER FROM V$LOGFILE;
     3
/u01/app/oracle/oradata/ORCL/redo03.log

     2
/u01/app/oracle/oradata/ORCL/redo02.log

     1
/u01/app/oracle/oradata/ORCL/redo01.log

查看重做日志的历史信息
SELECT RECID,FIRST_CHANGE#,NEXT_CHANGE#,RESETLOGS_CHANGE# FROM V$LOG_HISTORY;
     RECID FIRST_CHANGE# NEXT_CHANGE# RESETLOGS_CHANGE#
---------- ------------- ------------ -----------------
     1      754488       789203         754488
     2      789203       793593         754488
     3      793593       804307         754488
     4      804307       821898         754488


创建重做日志组和成员
ALTER DATABASE ADD LOGFILE GROUP 5(‘redo0501.log‘,‘redo0502.log‘) SIZE 5000K;
在重做日志组中追加成员
ALTER DATABASE ADD LOGFILE MEMBER ‘/u01/app/oracle/oradata/ORCL/redo0503.log‘ TO GROUP 5;
重命名重做日志成员(需要在数据库未打开的情况下修改)
ALTER DATABASE RENAME FILE ‘redo0501.log‘ TO ‘redo0505.log‘;
删除重做日志组和成员
ALTER DATABASE DROP LOGFILE GROUP 5;
ALTER DATABASE DROP LOGFILE MEMBER ‘/u01/app/oracle/oradata/ORCL/redo004.log‘;
清空(初始化)编号为4的重做日志组
ALTER DATABASE CLEAR LOGFILE GROUP 4;
ALTER DATABASE CLEAR  UNARCHIVED LOGFILE GROUP 4;

管理归档模式
1.SHUTDOWN IMMEDIATE
2.STARTUP MOUNT
3.ALTER DATABASE NOARCHIVELOG|ARCHIVELOG    //切换到(非)归档模式

设置执行手动归档
ALTER SYSTEM ARCHIVE LOG ALL;
查看当前数据库实例的归档模式
SELECT LOG_MODE FROM V$DATABASE;
LOG_MODE
------------
ARCHIVELOG
显示归档日志信息
SYS AS SYSDBA@ORCL>ARCHIVE LOG LIST;
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     51
Next log sequence to archive   53
Current log sequence           53
切换归档日志:
ALTER SYSTEM SWITCH LOGFILE;
使用V$ARCHIVED_LOG查看历史归档日志信息
SELECT NAME,SEQUENCE#,STATUS FROM V$ARCHIVED_LOG;
STATUS:    A:Availabel D:Deleted U:Unavailable  X:Expired

使用V$ARCHIVE_DEST查看归档目的地信息
SELECT DEST_NAME,STATUS,DESTINATION FROM V$ARCHIVE_DEST;
STATUS:
VALID  表示已被初始化 并且有效
INACTIVE  表示没有目的地信息
DEFERRED  被用户手动禁用
ERROR    在打开或复制过程中出现错误

使用V$ARCHIVE_PROCESSES查看归档进程信息
SELECT * FROM V$ARCHIVE_PROCESSES;
STATUS:STOPPED,SCHEDULED,STARTING,ACTIVE,STOPPING,TERMINATED
STATE:IDLE BUSY

使用V$BACKUP_REDOLOG查看归档日志和备份集信息
SELECT RECID,STAMP,THREAD#,SEQUENCE# FROM V$BACKUP_REDOLOG;

使用V$TEMPFILE查看临时文件信息
SELECT NAME,STATUS,BYTES FROM V$TEMPFILE;

查看警告日志文件
SELECT VALUE FROM V$PARAMETER WHERE NAME=‘BACKGROUND_DUMP_DEST‘;



6数据库物理文件管理

原文:http://rscpass.blog.51cto.com/771159/1612742

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!