oracle学习笔记(二)之文件篇

构成数据库和实例的文件类型有8种,其中与实例相关的文件有:参数文件、跟踪文件、警告文件;

构成数据库的文件包括:数据文件、临时文件、控制文件、重做日志文件、密码文件;

 

重做日志文件-------------归档重做日志------------------

 

ORACLE数据库可以采用两种模式运行:ARCHIVELOG模式和NOARCHIVELOG模式。

这两种模式的区别只有一点,即ORACLE重用重做日志文件时会发生什么情况。“会保留redo的一个副本吗?还是ORACLE会将其重写,而永远失去原来的日志?”这是一个很重要的问题,除非你保留了这个文件,否则无法从备份数据恢复到当前的时间点。

 

我认为,如果系统不以ARCHIVELOG模式运行,那它根本就不能算是生产系统。未以ARCHIVELOG模式运行的数据库总有一天会丢失数据。这是在所难免的;如果你的数据库不以ARCHIVELOG模式运行,你肯定会丢失数据的。

 

但归档不同,利用归档可以保住你的数据,确保数据不会丢失,这不是开销,而且正是DBA的主要任务!

 

那么。怎样查看、修改数据库的运行模式呢????

 

客户端:
select log_mode from v$database;

服务器端:
archive log list;

 

改变数据库运行模式
1、关闭数据库(正常)shutdown
2、装载数据库但不启动数据库 startup mount
3、修改数据库运行模式alter database archivelog  /  noarchivelog
4、打开数据库 alter database open

 

 

跟踪文件------------------------------

要想知道跟踪文件放在哪里,可以从SQL*PLUS中执行 SOHW PARAMETER DUMP_DEST   命令来查看,也可以直接查询V$PARAMETER视图:

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE "%DUMP_DEST%"

使用跟踪文件主要是为了调整和改善应用的性能,每次遇到错误时都会创建一个跟踪文件,由此可以帮助你准确地跟踪到为什么会产生错误。

 

以下代码创建一个外部表,以便查询警告日志(注意:要把/background/dump/dest换成你自己的后台转储目标目录,并在CREATE TABLE语句中使用你自己的警告日志名)。

 

create or replace directory data_dir as 'D:/oracle/product/10.2.0/admin/orcl/bdump';

 

 CREATE TABLE alert_log (text_line varchar2(255))
 ORGANIZATION EXTERNAL(TYPE ORACLE_LOADER
 DEFAULT DIRECTORY data_dir
 ACCESS PARAMETERS(records delimited by mewline fields REJECT ROWS WITH ALL NULL FIELDS)
 LOCATION('alert_AskUs.log'))
 REJECT LIMIT unlimited

 

 

select to_char(last_time, 'dd-mon-yyyy hh24:mi') shutdown,
       to_char(start_time, 'dd-mon-yyyy hh24:mi') startup,
       round((start_time - last_time) * 24 * 60, 2) mins_down,
       round((last_time - lag(start_time) over(order by r)), 2) days_up,
       case
         when (lead(r) over(order by r) is null) then
          round((sysdate - start_time), 2)
       end days_still_up
  from (select r,
               to_date(last_time, 'Dy Mon DD HH24:MI:SS YYYY') last_time,
               to_date(start_time, 'Dy Mon DD HH24:MI:SS YYYY') start_time
          from (select rownum r, text_line
                  from alert_log
                 where text_line like '____ ____ __ __:__:__20__'
                    or text_line like 'Starting ORACLE instance %'))
 where text_line like 'Starting ORACLE instance %';

 

红色字体语句有错误,哪位高人能帮忙调试一下..................

你可能感兴趣的:(oracle,数据库,table,database,Parameters,archive)