|
|
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Добрый день. Достаточно ли для проверки БД на повреждаения делать фулл бекап, или же периодически нужно запускать VALIDATE DATABASE? Насколько я правильно понял, что если db_block_checksum = TYPICAL, то при чтении каждый раз проверяется контрольная сумма, а т.к. полный бекап читает всю БД целиком, то одновременно проверяются все блоки данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 09:15 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Провел экспермент. 1. На включенной БД через редактор поправил файл данных. 2. Запустил фулл бекап - выполнился без ошибок. select * from v$database_block_corruption ничего не выдал. 3. Запустил VALIDATE DATABASE - нашелся один битый блок. Похоже я заблуждался, думая что обычный бекап выполняет проверку блоков на целостность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 11:42 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
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)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 11:43 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
То есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 12:27 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Хотелось бы от коллег услышать кто как защищается от повреждений, так сказать best practice. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 12:41 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Виталий Перевозчиков1. На включенной БД через редактор поправил файл данных. Что именно поправил? Мож этот блок и не бэкапится Или бОльшая часть этого блока не читается в принципе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 12:59 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, нашел ошибку в своих действиях при проведении тестов. Изменил пустой блок через редактор, а RMAN пропускает пустые блоки. После изменения не пустого блока, при выполнении полного бекапа ошибка проявилась. ORA-19566: exceeded limit of 0 corrupt blocks for file ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:02 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Имеется ввиду unused блок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:05 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Виталий ПеревозчиковТо есть на этапе создания бекапа никак не проверить базу данных на целостность, если перед бекапом запускать validate database, то будет выполняться двойная работа, что скажется на большом кол-ве операции ввода\вывода. Можно разнести операции : backup validate backup; --или validate backupset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:15 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Достаточно при бэкапе сказать CHECK LOGICAL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:19 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Правда, это не поможет при [слегка] битых архивлогах Но если уж совсем нарушен формат блока, что в датафайле, что в архивлоге, обычный бэкап это сразу поймает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:21 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:39 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровДостаточно при бэкапе сказать CHECK LOGICAL То есть я правильно понял, что для обнаружения физических и логических повреждений достаточно делать бекап с опцией CHECK LOGICAL, к примеру готовая команда: backup check logical incremental level 0 database include current controlfile plus archivelog; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 14:05 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Большую часть физических повреждений определятся и без этого. Ну а CHECK LOGICAL по идее именно и пытается не только блок прочитать (соответствие физического формата, соответствие заголовка и подписи, контрольная сумма) но и читабельность каждой строки, что в табличках, что в индексах Ну, по крайней мере, я так понял Есть еще нота "Top 10 Backup and Recovery Best Practices (Doc ID 388422.1)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 14:29 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Виталий ПеревозчиковДобрый день. Достаточно ли для проверки БД на повреждаения делать фулл бекап, или же периодически нужно запускать VALIDATE DATABASE? Насколько я правильно понял, что если db_block_checksum = TYPICAL, то при чтении каждый раз проверяется контрольная сумма, а т.к. полный бекап читает всю БД целиком, то одновременно проверяются все блоки данных. Необязательно при бэкапе. Посмотрите DB_BLOCK_CHECKING ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 15:00 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Насколько я понял то DB_BLOCK_CHECKING отличается тем от DB_BLOCK_CHECKSUM тем, что DB_BLOCK_CHECKING отвечает за целостность блока после записи на диск (используя контрольную сумму), а DB_BLOCK_CHECKING отвечает за целостность блока, когда он находится в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 15:41 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Еще есть смысл включить параметр DB_LOST_WRITE_PROTECT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 15:42 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Ты решил окончательно загрузить свою БД проверкой своей целостности? Ей больше нечем заняться? Периодические проверки своих бэкапов в виде восстановления тестовой БД дадут тебе вполне достаточный уровень контроля качества Еще, конечно, если так заботишься, желателен стендбай И, естественно, использовать сертифицированные операционки (и, что сейчас совсем не трудно) железяки Как правило, этого вполне достаточно для работы как минимум, десятки лет без внутренних повреждений Ежели софт постоянно развивается, используются новые фичи, то отслеживание ошибок в alert.log и соответствующее реагирование (например, правка кода) позволяет безбедно жить даже без техподдержки Надо, кстати, сразу понимать, что система с кучей девяток доступности обязательно требует той самой техподдержки -- и не только в смысле переложения ответственности. Велосипеды здесь неуместны. Просто из-за отсутствия знаний как оно там "внутре". А сломаться может любая програма/железяка, и массив, и память и т.п. Соответственно и насрано в блоке может быть неплохо. Но сдается тут не тот случай. Тогда уж выполняй ежедневный/еженедельный экспорт и уж во что-нибудь ты ее восстановишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 16:41 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров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 <Как раз проверяет, как и любой читатель> А где это можно прочитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 16:47 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Не за этим ли добавлен VALIDATE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 16:50 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
fortnet<Как раз проверяет, как и любой читатель> А где это можно прочитать?Это где-то нужно читать? RMAN CHANNEL читает блок как обычный серверный процесс (и если не может получить консистентную, NON-FRACTURED копию блока, перечитывает его, вроде до 5 раз), т.е. и поведение как у обычного серверного процесса Вроде и ноту я приводил, не помню, но вроде там сказано такое Ну и попробуй через BBED (а то и шестнадцатиричным редактором) установить кривую КС для блока в SYSTEM или при установленном DB_BLOCK_CHECKING -- нарвешься на block corruption ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 17:05 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
fortnetНе за этим ли добавлен VALIDATE?Насколько я понимаю -- то же самое, что и просто BACKUP (можно даже с CHECK LOGICAL), только без выходного файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 17:07 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
SYSTEM не привлекать - у него особый статус. Основываясь на доке остаюсь при своем : VALIDATE - проверка без выполнения бэкапа BACKUP - запись без чтения/проверки контрольной суммы , записанной процессом DBW c записью своей контрольной суммы, если не перебито опцией NOCHECKSUM. BACKUP logical check - проверка всех возможных ошибок в БЭКАПЕ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 17:14 |
|
||
|
Проверка целостности БД
|
|||
|---|---|---|---|
|
#18+
Так VALIDATE и BACKUP хоть сколько-нибудь идентичны по функционалу? А то судя по последнему сообщению вообще ни разу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 17:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39396282&tid=1886502]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 467ms |

| 0 / 0 |
