Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Работа > Архитектура > Файловая подсистема

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 05.03.2010, 15:02
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Файлы журнала

Файлы журнала


Всякий раз, когда в таблицах добавляются, удаляются или изменяются данные, производится соответствующая запись в текущий файл журнала базы данных. Каждая база данных Oracle должна иметь не менее двух таких файлов, так как Oracle использует файлы журнала циклически.

После заполнения журнальными записями (redo log entries) первого файла текущий журнальный файл помечается как ACTIVE, если он продолжает оставаться необходимым для восстановления экземпляра, или как INACTIVE, если он более не требуется для восстановления экземпляра; следующий журнальный файл используется повторно с самого начала файла и помечается как CURRENT.

В идеале, информация из файла журнала базы данных не должна быть использована никогда. Однако, если происходит отключение электроэнергии или какие-либо другие отказы сервера, которые приводят к прекращению работы экземпляра Oracle, может оказаться, что новые или недавно обновленные блоки данных из кэша буферов базы данных еще не записаны в соответствующие файлы данных. При повторном запуске экземпляра Oracle, записи из файлов журналов базы данных применяются к файлам базы данных в рамках операции так называемой прокрутки вперед (roll forward), целью которой является восстановление состояния базы данных на момент, предшествующий отказу экземпляра.

Код:
select * from v$logfile;

Мультиплексирование файлов журналов базы данных

После того как будет заполнен первый журнал, автоматически начинается заполнение следующего. После того как будет заполнен третий журнал, система перейдет к повторному заполнению первого. Чтобы превратить набор из трех файлов журналов базы данных в группу, можно добавить один или несколько идентичных файлов "в напарники" существующим файлам. После создания группы файлов журналов базы данных записи журнала будут параллельно записываться во все файлы группы журналов. После заполнения первой группы журналов начинается заполнение следующей группы.

Добавление журнала в группу:

Код:
alter database add logfie member filename to group grpnum
filename - имя файла с абсолютным путем, который будет теперь иметь группа;
grpnum - номер группы, к которой добавляется член.


Код:
alter database add logfile group grpnum filename.

Добавление группы журналов:

Код:
alter database
add logfile group 5
(  'u02/oracle/dc2/log_3a.dbf',
   'u03/oracle/dc2/log_3b.dbf',
   'u04/oracle/dc2/log_3c.dbf') size 10m;

Все члены журнальной группы должны иметь один и тог же размер. Однако файлы журналов базы данных из разных групп могут иметь разные размеры. Кроме того, в журнальных группах может быть разное количество членов. В предыдущем примере мы начали с четырех журнальных групп, добавили дополнительный член в журнальную группу номер 3 (чтобы в ней стало 4 члена), а затем добавили пятую журнальную группу, состоящую из трех членов.

Начиная с Oracle 10g, для помощи при определении оптимальных размеров файлов журналов базы данных можно использовать утилиту Redo Logfile Sizing Advisor, позволяющую избежать избыточной деятельности ввода/вывода или заторов.
__________________
Телеграм чат
Ответить с цитированием
  #2  
Старый 21.10.2010, 13:13
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Статус журналов изменений

PHP код:

select 
  l
.GROUP#, 
  
l.SEQUENCE#, 
  
l.BYTES/1024/1024 as MBytes
  
l.ARCHIVED,  
  
l.STATUS,
  
l.FIRST_CHANGE#,
  
to_char(l.FIRST_TIME'DD-MON-YYYY HH24:MI:SS') as FIRST_TIME       
from v$log l 

График переключения архивных журналов

PHP код:
select to_char(first_time,'YYYY-MM-DD'day,
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'00',1,0)),'99'"00",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'01',1,0)),'99'"01",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'02',1,0)),'99'"02",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'03',1,0)),'99'"03",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'04',1,0)),'99'"04",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'05',1,0)),'99'"05",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'06',1,0)),'99'"06",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'07',1,0)),'99'"07",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'08',1,0)),'99'"08",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'09',1,0)),'99'"09",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'10',1,0)),'99'"10",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'11',1,0)),'99'"11",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'12',1,0)),'99'"12",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'13',1,0)),'99'"13",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'14',1,0)),'99'"14",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'15',1,0)),'99'"15",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'16',1,0)),'99'"16",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'17',1,0)),'99'"17",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'18',1,0)),'99'"18",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'19',1,0)),'99'"19",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'20',1,0)),'99'"20",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'21',1,0)),'99'"21",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'22',1,0)),'99'"22",
to_char(sum(decode(substr(to_char(first_time,'HH24'),1,2),'23',1,0)),'99'"23"
from v$log_history
group by to_char
(first_time,'YYYY-MM-DD'order by day desc 
Переключение оперативных журналов и частота их переключения.

PHP код:

select to_char
(trunc(completion_time), 'dd-mm-yy'"дата",
  
count(*) "количество переключений",
  
to_char(min(completion_time-prev_time)*24*60'99999,990.99'"Min время переключения",
  
to_char(avg(completion_time-prev_time)*24*60'99,990.99'"среднее время переключения",
  
to_char(max(completion_time-prev_time)*24*60'99,990.99'"Max время переключения"
from (select completion_time,
  
lag(completion_timeover (order by completion_timeprev_time
  from v$archived_log
  where dest_id
=10 and completion_time>trunc(sysdate)-31 -- 14 за последние 2 недели
  
--and extract(hour from cast(completion_time as timestamp)) -- between 8 and 22
group by trunc(completion_time)
order by trunc(completion_time


Процент заполнения текущего online журнала (redo log), текущая последовательность, текущий номер блока (требуютяс права sysdba)

PHP код:

select
    le
.leseq                       as "SEQUENCE Номер.Тек.Журнала",
    
cp.cpodr_bno                    "Текущий номер блока",
    
le.lesiz                        "Размер журнала в блоках",
    
ROUND((cp.cpodr_bno/le.lesiz 100), 1"Процент использования"
from
    x$kcccp cp
,
    
x$kccle le
where
    LE
.leseq =CP.cpodr_seq
    
and bitand(le.leflg,24)=8

Дополнительная информация по журналам

PHP код:

select 
  LF
.GROUP#,
  
l.STATUS
  
l.SEQUENCE#,
  
l.ARCHIVED,  
  
l.FIRST_CHANGE# as "SCN FIRST CHANGE",
  
to_char(l.FIRST_TIME'DD-MON-YYYY HH24:MI:SS') as FIRST_TIME,
  
LF.MEMBER,
  
l.BYTES/1024/1024 as MBytes        
from v$log l
V$LOGFILE LF
WHERE LF
.GROUP# = L.GROUP# 
order by group

Дополнительная информация по журналам

PHP код:

select 
  a
.STAMP
  
a.NAME
  
a.SEQUENCE#,
  
to_char(a.FIRST_TIME,'DD-MON-YYYY HH24:MI:SS') as FIRST_TIME
  
to_char(a.NEXT_TIME'DD-MON-YYYY HH24:MI:SS') as NEXT_TIME
  
a.ARCHIVED
  
a.DELETED
  
a.STATUS
  
to_char(a.COMPLETION_TIME'DD-MON-YYYY HH24:MI:SS') as COMPLETION_TIME 
from v$archived_log a order by a
.COMPLETION_TIME desc 
__________________
Телеграм чат

Последний раз редактировалось Marley; 26.11.2010 в 09:28.
Ответить с цитированием
  #3  
Старый 22.10.2010, 10:14
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Очистка незаархивированного логфайла


SQL> alter database clear unarchived logfile 'C:\oraclexe\app\oracle\flash_recovery_area\XE\ONL INELOG\O1_MF_1_45HCGJL2_.LOG'
__________________
Телеграм чат
Ответить с цитированием
  #4  
Старый 22.10.2010, 10:18
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Optimal Online Redo Log File Size!!

http://www.articles.freemegazone.com...ze-advisor.php
__________________
Телеграм чат
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:29. Часовой пояс GMT +3.


Powered by vBulletin®