![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Агрегирующая функция для строк и дат. (Oracle)
ANB © (2005-05-17 15:20:00)Кто может подсказать, какими агрегирующими функциями можно получить контрольные суммы для строк и дат ?
Даты я сделал так :
sum (Emt.data + Emt.Vremya / 86400
- to_date ('01.01.2000', 'DD.MM.YYYY')
)
Строки пока через ASCII(), но так проверяется только первый символ. Нашел хэш MD5, но он только из функции работает, а ее добавлять в рабочую базу как то не очень.
ANB (2005-05-23 10:50:00) [1]
> Страшная эта вещь - исторически
- да уж. Как приятно писать новый проект, и как неприятно потом с ним же бороться, когда опыта наберешься :)))
Anatoly Podgoretsky (2005-05-23 10:42:00) [2]Страшная эта вещь - исторически.
ANB (2005-05-23 10:36:00) [3]Для интерисующихся - ответ :
dbms_utility.Get_Hash_Value ()
ANB (2005-05-18 09:46:00) [4]
> Sergey13 © (18.05.05 09:42) [17]
- а я сравниваю. Порешали - решили маловато. Возникла идея контрольных сумм. В принципе, для чисел - работает прекрасно. Чуть хуже с датой, особливо когда переезжали на нормальный формат хранения (в старых версиях дата лежала отдельно, а время - отдельно, а потом их объединили).
> Anatoly Podgoretsky © (18.05.05 09:40) [16]
- как всегда. Исторически сложилось. :)))
Sergey13 (2005-05-18 09:42:00) [5]2[14] ANB © (18.05.05 09:31)
>- а дальше берем и дрючим программиста
Это побочное действие. Дальше восстанавливаем из бэкапа и продолжаем думать. 8-)
Почему недостаточно сравнить просто количество записей например?
Anatoly Podgoretsky (2005-05-18 09:40:00) [6]Чтой то у вас там не у нас.
ANB (2005-05-18 09:39:00) [7]
> из бэкапа схема разворачивается на тестовом сервере
- нерационально. У нас есть дампы по 30-50 Гб. Когда развернется - отъест почти вдвое больше места. Иметь две копии - просто негде.
ANB (2005-05-18 09:31:00) [8]
> Дальше что?
- а дальше берем и дрючим программиста, за то, что плохо апргрейд написал или сломал его :)))
> Делается бэкап перед патчами
- и сравнивать придется - запись - запись. 200 миллионов.
Reindeer Moss Eater (2005-05-17 21:52:00) [9]СТОИТ ЗАДАЧА - ПОСТАВИТЬ ПРОВЕРКУ НА АВТОМАТ.
И что дальше?
Добустим проверка показала, что изменились 16 миллионов записей из общего количества 17 миллионов записей.
Дальше что?
Val (2005-05-17 18:03:00) [10]Я вам и говорю вроде по теме - не надо этого делать - не слушаете. Деньги на на что уйдут.
Делается бэкап перед патчами, из бэкапа схема разворачивается на тестовом сервере, на который из рабочей схемы делается дблинк - вот вам нормальне данные до ваших премудростей с реструктуризацией.
ANB (2005-05-17 17:46:00) [11]
> Val © (17.05.05 17:43) [10]
во млин. Ты по сабжу можешь чего нибудь сказать ?
НУ НАДО. МНЕ ЗА ЭТО ДЕНЬГИ ПЛАТЯТ. СТОИТ ЗАДАЧА - ПОСТАВИТЬ ПРОВЕРКУ НА АВТОМАТ.
Val (2005-05-17 17:43:00) [12]так тестируйте на здоровье. зачем заниматься делом сервера и дба, объясните?
ANB (2005-05-17 17:24:00) [13]
> Val © (17.05.05 17:13) [8]
если таблица называлась ECF001 с русскими полями, а потом ее переделали в стандартный вид, то что с ней еще делать, кроме как удалить.
Все нормально работает. Стоит задача тестирования этой работы. На всякий случай.
Val (2005-05-17 17:13:00) [14][7], в котором перенесли данные, не вяжется с [5], в котором их не с чем сравнивать, по-моему.
Если вы меняете структуры таблиц то нет особой необходимости их удалять, если же вы меняете структуру БД и данные из некоего монолита разбрасываете по другим таблицам, то разбрасывайте себе спокойно. Оракл(надеюсь и дба тоже) знает, как все восстановить после подобных патчей.
ANB (2005-05-17 17:03:00) [15]
> Одно мне непонятно - зачем таблицы удалять у людей?
- не нужна больше. Данные в другую перенесли.
Val (2005-05-17 17:01:00) [16]Круто как все...хеш, контрольные суммы..
Одно мне непонятно - зачем таблицы удалять у людей?
ANB (2005-05-17 16:33:00) [17]Патч - изменение версии. При этом частенько меняется структура таблиц. Я должен проверить, что при этом не потерялась информация. В таблице может быть до 100 миллионов записей. Сравнивать не с чем, так как таблица после апргрейда уже дропнута. То есть, нужно где то сохранить исходные данные. Все таблицу сохранять долго и некуда. Поэтому придумана система контрольных сумм.
Sergey13 (2005-05-17 16:27:00) [18]Я так вообще не понял чего тебе надо. 8-)
Что за патч БД? В чем выражается (не)корректность поля? Почему просто значение поля не сравнить?
ANB (2005-05-17 16:16:00) [19]И все ??? Никто не знает ???
ANB (2005-05-17 15:33:00) [20]Надо из каждого поля получить некую контрольную сумму, чтобы потом можно было ее сравнить после патча БД, для проверки его корректности.