powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка целостности БД
9 сообщений из 34, страница 2 из 2
Проверка целостности БД
    #39396576
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnetSYSTEM не привлекать - у него особый статус.Установи соответствующий DB_BLOCK_CHECKING и такой статус появится у всех
fortnetОсновываясь на доке остаюсь при своем :
VALIDATE - проверка без выполнения бэкапаНо и не более чем просто BACKUP. Можешь также указать ему CHECK LOGICAL
fortnetBACKUP - запись без чтения/проверки контрольной суммы , записанной процессом DBW c записью своей контрольной суммы, если не перебито опцией NOCHECKSUM.NOCHECKSUMIf DB_BLOCK_CHECKSUM is typical, then the database computes a checksum for each block during normal operations and stores it in the block before writing it to disk. When the database reads the block from disk later, it recomputes the checksum and compares it to the stored value . If they do not match, then the block is damaged.
...
If you specify the NOCHECKSUM option, then RMAN does not perform a checksum of the blocks when writing the backup .
fortnetBACKUP logical check - проверка всех возможных ошибок в БЭКАПЕ.CHECK LOGICAL Tests data and index blocks that pass physical corruption checks for logical corruption
...
Examples of logical corruption are corruption of a row piece or index entry. If RMAN finds logical corruption, then it logs the block in the alert log and server session trace file. The SET MAXCORRUPT command specifies the total number of physical and logical corruptions permitted in a data file .
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396578
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТы решил окончательно загрузить свою БД проверкой своей целостности?
Ей больше нечем заняться?

Периодические проверки своих бэкапов в виде восстановления тестовой БД дадут тебе вполне достаточный уровень контроля качества
Еще, конечно, если так заботишься, желателен стендбай

И, естественно, использовать сертифицированные операционки (и, что сейчас совсем не трудно) железяки
Как правило, этого вполне достаточно для работы как минимум, десятки лет без внутренних повреждений

Ежели софт постоянно развивается, используются новые фичи, то отслеживание ошибок в alert.log и соответствующее реагирование (например, правка кода) позволяет безбедно жить даже без техподдержки

Надо, кстати, сразу понимать, что система с кучей девяток доступности обязательно требует той самой техподдержки -- и не только в смысле переложения ответственности. Велосипеды здесь неуместны. Просто из-за отсутствия знаний как оно там "внутре".

А сломаться может любая програма/железяка, и массив, и память и т.п. Соответственно и насрано в блоке может быть неплохо.

Но сдается тут не тот случай. Тогда уж выполняй ежедневный/еженедельный экспорт и уж во что-нибудь ты ее восстановишь


Я и не собирался включать все параметры, просто пытаюсь понять какой необходимый минимум нужен для обеспечения обнаружения повреждений.
Стендбай у нас тоже есть.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396929
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТут еще есть такой момент -- бэкап не пишет копию блока 1:1 -- он использует знание формата ораклового блока для оптимизации его хранения, не бэкапит неиспользованное место, пишет инкрементальные бэкапы и т.д. Поэтому, КС, которую пишет RMAN при бэкапе, по идее, никак не относится к исходному блоку, а относится к блоку бэкапа. И защищает, соответственно, его
Что, собственно, уже и проверяется при VALIDATE BACKUP и RESTORE

Еще уточню - только при соблюдении нескольких ограничений.
Например, с прямым бэкапом на ленту так называемый null compression не пройдет - будет всё записано один в один.
Или с командой VALIDATE.

( RMAN Backup Performance (Doc ID 360443.1)
Which Blocks Will RMAN Check For Corruption Or Include In A Backupset? (Doc ID 561010.1)
)
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396939
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровfortnetSYSTEM не привлекать - у него особый статус.Установи соответствующий DB_BLOCK_CHECKING и такой статус появится у всех
fortnetОсновываясь на доке остаюсь при своем :
VALIDATE - проверка без выполнения бэкапаНо и не более чем просто BACKUP. Можешь также указать ему CHECK LOGICAL

Начиная с 11 версии - VALIDATE может функционировать вообще без привязки с бэкапу.
Например, можно проверить избранные блоки в datafile :

validate check logical datafile 1 BLOCK 5 TO 20;

(How to identify all the Corrupted Objects in the Database with RMAN (Doc ID 472231.1))
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396944
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnetBACKUP logical check - проверка всех возможных ошибок в БЭКАПЕ.CHECK LOGICAL Tests data and index blocks that pass physical corruption checks for logical corruption
...
Examples of logical corruption are corruption of a row piece or index entry. If RMAN finds logical corruption, then it logs the block in the alert log and server session trace file. The SET MAXCORRUPT command specifies the total number of physical and logical corruptions permitted in a data file .

The next command checks the complete database for both corruptions in a backup:

$ rman target /
RMAN> backup check logical database

(Identify the Corruption Extension for Block Corruption, Table/Index Inconsistency, Data Dictionary and Lost Writes (Doc ID 836658.1))
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396958
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты путаешь сканирование и выходной файл
А также NULL compression (никогда не использовались) и Unused block compression (уже не используется)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
$ ORACLE_SID=tst sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Feb 2 16:11:24 2017

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create tablespace ts1 datafile '/u/app/oracle/oradata/tst/ts1.dbf' size  300m ;

Tablespace created.

SQL> ! rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Thu Feb 2 16:12:53 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: TST (DBID=1662986732)

RMAN> run {
2> allocate channel c1 device type sbt;
3> send channel c1 'NSR_ENV=(NSR_GROUP=Oracle)';
4> backup tablespace ts1 channel c1 format '%d-ts1-%T-%s-%p';
5> release channel c1;
6> }

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=86 device type=SBT_TAPE
channel c1: NMO v4.5.0.0

sent command to channel: c1

Starting backup at 02-FEB-17
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00008 name=/u/app/oracle/oradata/tst/ts1.dbf
channel c1: starting piece 1 at 02-FEB-17
channel c1: finished piece 1 at 02-FEB-17
piece handle=TST-ts1-20170202-464-1 tag=TAG20170202T161450 comment=API Version 2.0,MMS Version 4.5.0.0
channel c1: backup set complete, elapsed time:  00:00:45 
Finished backup at 02-FEB-17

Starting Control File and SPFILE Autobackup at 02-FEB-17
piece handle=TST-c-1662986732-20170202-00 comment=API Version 2.0,MMS Version 4.5.0.0
Finished Control File and SPFILE Autobackup at 02-FEB-17

released channel: c1

SQL> ! su - root -c 'mminfo -s xxx -c yyy' | grep ts
Password: 
ORA_010        yyy    02.02.17  1281 KB          RMAN:TST-ts1-20170202-464-1

...
Рейтинг: 0 / 0
Проверка целостности БД
    #39397310
опс...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fortnetThe next command checks the complete database for both corruptions in a backup:

здесь по-русски будет так: при бэкапе.
бэкап как процесс, а не как результат на ленте или диске
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39397346
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТут еще есть такой момент -- бэкап не пишет копию блока 1:1 -- он использует знание формата ораклового блока для оптимизации его хранения, не бэкапит неиспользованное место,

Вячеслав ЛюбомудровТы путаешь сканирование и выходной файл
А также NULL compression (никогда не использовались) и Unused block compression (уже не используется)

Ну, пример достаточно экзотичен. Здесь показана NULL compression - которая на нормальной рабочей БД имеет не более 5%. Основная масса приходится на Unused block compression , которая и имеет ограничения в применении.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39398540
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто показывал, что это твое утверждение неверно
fortnetНапример, с прямым бэкапом на ленту так называемый null compression не пройдет - будет всё записано один в один.
Возможно, ты просто описАлся и имел ввиду Unused block compression -- достаточно просто об этом сказать

fortnetНу, пример достаточно экзотичен. Здесь показана NULL compression - которая на нормальной рабочей БД имеет не более 5%. Основная масса приходится на Unused block compression , которая и имеет ограничения в применении.Вот это еще интересней. Либо ты не понимаешь, что такое Unused block compression, либо как раз именно у тебя экзотические БД, где достаточно часто происходит TRUNCATE/MOVE постоянных таблиц и REBUILD индексов в новое место.
Может ты не в курсе, но в некоторых случаях Unused block compression не работает и при бэкапе на диск
Иметь резерв свободного места -- это, как раз, нормально. И NULL compression намного более актуальней, особенно, когда ты не хочешь по каким-то причинам использовать AUTOEXTEND, а добавляешь, например, целиком новый LUN -- тебе становится пофиг, ты знаешь, что размер бэкапа (и время, на него потраченное) при этом не увеличится.
Нет, конечно, есть специфические варианты -- типа stage-area, где все подготавливается для массовой загрузки, а потом TRUNCATE-ится. Но, как правило, там и бэкап нафиг не нужен, да и наверняка NOLOGGING на табличном пространстве стоит.

Опять же почему не реализовано Unused Block Compression (а также Undo block compression) для "3rd party media managers". Дык это просто политика, точно также как на них не работает "Encrypted Backup". Просто впаривание своего продукта OSB. Технических ограничений для этого нет (в отличии, например, от выполнении BACKUP AS COPY на ленту -- тут уже не важно "3rd party" или OSB)

И кстати, то, что не выполняется Unused Block compression позволяет отловить сбойные блоки, которые не относятся к используемым в данный момент. А мож там физическое повреждение на диске и уже пора что-то с этим решать. VALIDATE ведь их тоже пропустит. Единственный вариант -- прогонять время от времени DBVERIFY или отключить Unused block compression (выполнять бэкап на "3rd party media managers", установить гарантированную RP или скрытым параметром)
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка целостности БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]