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

Похоже я заблуждался, думая что обычный бекап выполняет проверку блоков на целостность
...
Рейтинг: 0 / 0
01.02.2017, 11:43
    #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
01.02.2017, 12:27
    #39396226
Виталий Перевозчиков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
То есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода.
...
Рейтинг: 0 / 0
01.02.2017, 12:41
    #39396248
Виталий Перевозчиков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Хотелось бы от коллег услышать кто как защищается от повреждений, так сказать best practice.
...
Рейтинг: 0 / 0
01.02.2017, 12:59
    #39396268
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Виталий Перевозчиков1. На включенной БД через редактор поправил файл данных.
Что именно поправил?
Мож этот блок и не бэкапится
Или бОльшая часть этого блока не читается в принципе
...
Рейтинг: 0 / 0
01.02.2017, 13:02
    #39396271
Виталий Перевозчиков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Прошу прощения, нашел ошибку в своих действиях при проведении тестов.
Изменил пустой блок через редактор, а RMAN пропускает пустые блоки.
После изменения не пустого блока, при выполнении полного бекапа ошибка проявилась.
ORA-19566: exceeded limit of 0 corrupt blocks for file ...
...
Рейтинг: 0 / 0
01.02.2017, 13:05
    #39396282
Виталий Перевозчиков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Имеется ввиду unused блок
...
Рейтинг: 0 / 0
01.02.2017, 13:15
    #39396296
fortnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Виталий ПеревозчиковТо есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода.

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

backup

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

Но если уж совсем нарушен формат блока, что в датафайле, что в архивлоге, обычный бэкап это сразу поймает
...
Рейтинг: 0 / 0
01.02.2017, 13:39
    #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
01.02.2017, 14:05
    #39396342
Виталий Перевозчиков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Вячеслав ЛюбомудровДостаточно при бэкапе сказать CHECK LOGICAL
То есть я правильно понял, что для обнаружения физических и логических повреждений достаточно делать бекап с опцией CHECK LOGICAL, к примеру готовая команда:
backup check logical incremental level 0 database include current controlfile plus archivelog;
...
Рейтинг: 0 / 0
01.02.2017, 14:29
    #39396372
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Большую часть физических повреждений определятся и без этого.
Ну а CHECK LOGICAL по идее именно и пытается не только блок прочитать (соответствие физического формата, соответствие заголовка и подписи, контрольная сумма) но и читабельность каждой строки, что в табличках, что в индексах
Ну, по крайней мере, я так понял

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

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

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

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

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

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

Но сдается тут не тот случай. Тогда уж выполняй ежедневный/еженедельный экспорт и уж во что-нибудь ты ее восстановишь
...
Рейтинг: 0 / 0
01.02.2017, 16:47
    #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
01.02.2017, 16:50
    #39396529
fortnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
Не за этим ли добавлен VALIDATE?
...
Рейтинг: 0 / 0
01.02.2017, 17:05
    #39396556
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка целостности БД
fortnet<Как раз проверяет, как и любой читатель>

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


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