powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка целостности БД
25 сообщений из 34, страница 1 из 2
Проверка целостности БД
    #39396006
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Достаточно ли для проверки БД на повреждаения делать фулл бекап, или же периодически нужно запускать VALIDATE DATABASE?
Насколько я правильно понял, что если db_block_checksum = TYPICAL, то при чтении каждый раз проверяется контрольная сумма, а т.к. полный бекап читает всю БД целиком, то одновременно проверяются все блоки данных.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396167
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провел экспермент.
1. На включенной БД через редактор поправил файл данных.
2. Запустил фулл бекап - выполнился без ошибок.
select * from v$database_block_corruption ничего не выдал.
3. Запустил VALIDATE DATABASE - нашелся один битый блок.

Похоже я заблуждался, думая что обычный бекап выполняет проверку блоков на целостность
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396168
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
By default, the BACKUP command computes a checksum for each block and stores it in the backup.
The BACKUP command ignores the values of DB_BLOCK_CHECKSUM because this initialization parameter applies to datafiles in the database, not backups

т.е. считает и сохраняет в бэкапе, но не проверяет.

Поэтому validate (database | backup | datafile)...
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396226
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396248
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы от коллег услышать кто как защищается от повреждений, так сказать best practice.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396268
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виталий Перевозчиков1. На включенной БД через редактор поправил файл данных.
Что именно поправил?
Мож этот блок и не бэкапится
Или бОльшая часть этого блока не читается в принципе
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396271
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, нашел ошибку в своих действиях при проведении тестов.
Изменил пустой блок через редактор, а RMAN пропускает пустые блоки.
После изменения не пустого блока, при выполнении полного бекапа ошибка проявилась.
ORA-19566: exceeded limit of 0 corrupt blocks for file ...
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396282
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется ввиду unused блок
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396296
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виталий ПеревозчиковТо есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода.

Можно разнести операции :

backup

validate backup; --или validate backupset
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396303
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно при бэкапе сказать CHECK LOGICAL
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396307
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, это не поможет при [слегка] битых архивлогах

Но если уж совсем нарушен формат блока, что в датафайле, что в архивлоге, обычный бэкап это сразу поймает
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396324
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnetBy default, the BACKUP command computes a checksum for each block and stores it in the backup.
The BACKUP command ignores the values of DB_BLOCK_CHECKSUM because this initialization parameter applies to datafiles in the database, not backups

т.е. считает и сохраняет в бэкапе, но не проверяет.

Поэтому validate (database | backup | datafile)...Как раз проверяет, как и любой читатель

Но может не сохранять.

Тут еще есть такой момент -- бэкап не пишет копию блока 1:1 -- он использует знание формата ораклового блока для оптимизации его хранения, не бэкапит неиспользованное место, пишет инкрементальные бэкапы и т.д. Поэтому, КС, которую пишет RMAN при бэкапе, по идее, никак не относится к исходному блоку, а относится к блоку бэкапа. И защищает, соответственно, его
Что, собственно, уже и проверяется при VALIDATE BACKUP и RESTORE
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396342
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровДостаточно при бэкапе сказать CHECK LOGICAL
То есть я правильно понял, что для обнаружения физических и логических повреждений достаточно делать бекап с опцией CHECK LOGICAL, к примеру готовая команда:
backup check logical incremental level 0 database include current controlfile plus archivelog;
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396372
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большую часть физических повреждений определятся и без этого.
Ну а CHECK LOGICAL по идее именно и пытается не только блок прочитать (соответствие физического формата, соответствие заголовка и подписи, контрольная сумма) но и читабельность каждой строки, что в табличках, что в индексах
Ну, по крайней мере, я так понял

Есть еще нота "Top 10 Backup and Recovery Best Practices (Doc ID 388422.1)"
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396409
oracloud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виталий ПеревозчиковДобрый день.
Достаточно ли для проверки БД на повреждаения делать фулл бекап, или же периодически нужно запускать VALIDATE DATABASE?
Насколько я правильно понял, что если db_block_checksum = TYPICAL, то при чтении каждый раз проверяется контрольная сумма, а т.к. полный бекап читает всю БД целиком, то одновременно проверяются все блоки данных.
Необязательно при бэкапе. Посмотрите DB_BLOCK_CHECKING
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396441
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял то DB_BLOCK_CHECKING отличается тем от DB_BLOCK_CHECKSUM тем, что DB_BLOCK_CHECKING отвечает за целостность блока после записи на диск (используя контрольную сумму), а DB_BLOCK_CHECKING отвечает за целостность блока, когда он находится в памяти.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396443
Виталий Перевозчиков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще есть смысл включить параметр DB_LOST_WRITE_PROTECT
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396517
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты решил окончательно загрузить свою БД проверкой своей целостности?
Ей больше нечем заняться?

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

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

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

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

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

Но сдается тут не тот случай. Тогда уж выполняй ежедневный/еженедельный экспорт и уж во что-нибудь ты ее восстановишь
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396524
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровfortnetBy default, the BACKUP command computes a checksum for each block and stores it in the backup.
The BACKUP command ignores the values of DB_BLOCK_CHECKSUM because this initialization parameter applies to datafiles in the database, not backups

т.е. считает и сохраняет в бэкапе, но не проверяет.

Поэтому validate (database | backup | datafile)...Как раз проверяет, как и любой читатель

Но может не сохранять.

Тут еще есть такой момент -- бэкап не пишет копию блока 1:1 -- он использует знание формата ораклового блока для оптимизации его хранения, не бэкапит неиспользованное место, пишет инкрементальные бэкапы и т.д. Поэтому, КС, которую пишет RMAN при бэкапе, по идее, никак не относится к исходному блоку, а относится к блоку бэкапа. И защищает, соответственно, его
Что, собственно, уже и проверяется при VALIDATE BACKUP и RESTORE

<Как раз проверяет, как и любой читатель>

А где это можно прочитать?
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396529
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не за этим ли добавлен VALIDATE?
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396556
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnet<Как раз проверяет, как и любой читатель>

А где это можно прочитать?Это где-то нужно читать?
RMAN CHANNEL читает блок как обычный серверный процесс (и если не может получить консистентную, NON-FRACTURED копию блока, перечитывает его, вроде до 5 раз), т.е. и поведение как у обычного серверного процесса
Вроде и ноту я приводил, не помню, но вроде там сказано такое
Ну и попробуй через BBED (а то и шестнадцатиричным редактором) установить кривую КС для блока в SYSTEM или при установленном DB_BLOCK_CHECKING -- нарвешься на block corruption
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396557
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortnetНе за этим ли добавлен VALIDATE?Насколько я понимаю -- то же самое, что и просто BACKUP (можно даже с CHECK LOGICAL), только без выходного файла
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396566
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYSTEM не привлекать - у него особый статус.
Основываясь на доке остаюсь при своем :
VALIDATE - проверка без выполнения бэкапа
BACKUP - запись без чтения/проверки контрольной суммы , записанной процессом DBW c записью своей контрольной суммы, если не перебито опцией NOCHECKSUM.
BACKUP logical check - проверка всех возможных ошибок в БЭКАПЕ.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396569
Так VALIDATE и BACKUP хоть сколько-нибудь идентичны по функционалу? А то судя по последнему сообщению вообще ни разу.
...
Рейтинг: 0 / 0
Проверка целостности БД
    #39396573
fortnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - вообще ни разу. Они выполняют разные задачи.
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка целостности БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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