|
|
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky А давайте отвянем от всех прочих задач (включая накатывания сервис пака на сервер)- и сосредоточимся на той, что я озвучил, ага? Т.е. накатывание патча на прикладную задачу - и восстановление в случае сбоя. не проблема, сосредоточимся, но сначала вы с pkarklin должны доказать, что можете определить сбой. то что mssql способен проверить синтаксис конечно радует, но то что @@errors=0 совершенно не означает, что в результате в базе не появилось туча кривых хп. lockyОбычные юзера. Сегодня накатывал патч на рабочую базу. Никого выгонять не пришлось, знаете-ли. Поелику патч был для прикладной системы, а не для СКЛ Сервера. прикольно там у вас, выходит у вас клиент может начать транзакцию, запустить хп1 старой версии, нарватся на блокировки батча с патчиком, а потом прожолжить работу и запустить хп2 уже новой версии в той же транзакции я не уверен, что у меня бы такой фокус прошел бы без последствий. на живых клиентах имхо можно гонять разве, что патчик который правит глючки хп, но это в оракле опять же гораздо удобней. у mssql нет аналога create or replace procedure :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 20:59 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! прикольно там у вас, выходит у вас клиент может начать транзакцию, запустить хп1 старой версии, нарватся на блокировки батча с патчиком, а потом прожолжить работу и запустить хп2 уже новой версии в той же транзакции я не уверен, что у меня бы такой фокус прошел бы без последствий. Если создание обоих хп идет в одной транзакции, то как клиент запустит разные версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 22:26 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
SergSuper Если создание обоих хп идет в одной транзакции, то как клиент запустит разные версии? ну например так же как он получает не консистентный набор на дефолтном уровне изолированости транзакций ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 22:48 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!я не получаю. что я делаю не так ? как я подозреваю я получил бы это сообщение если бы дропнул всю табличку, а не переименовал лишь одно поле. Вы правы. Переименовать не удастся только schema-bound объекты. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ХП и триггера в MS SQL, не могут быть schema-bound. Yo.!а что толку, отгадать кривая ли хп или нет запросик не поможет. этот запрос показывает название поля которое сейчас в бд, в про то что в хп используется другое (теперь кривое) название - молчит. а название поля, так я его и так могу посмотреть, в чем фишка ? Фишка, на мой взгляд в том, что, есть возможность проверить, что колонка используется в хп. Использовать эту фишку как раз и стОит. Yo.!посмотрел sp_depends, вообще бредятина. походу mssql хранит какой-то ИД таблицы, поэтому sp_depends считает, что моя хп использует переименованую таблицу, а на деле в ней старое кривое название таблицы. я пока не вижу способа как отгадать кривая ли у меня хп. Естественно, что хранятся идентификаторы объектов и их колонок. Отгадать "после" - сделать алтер зависимых объектов и получить ошибку на "битых" хп. Yo.!сосредоточимся, но сначала вы с pkarklin должны доказать, что можете определить сбой. то что mssql способен проверить синтаксис конечно радует, но то что @@errors=0 совершенно не означает, что в результате в базе не появилось туча кривых хп. См. выше. Yo.!прикольно там у вас, выходит у вас клиент может начать транзакцию, запустить хп1 старой версии, нарватся на блокировки батча с патчиком, а потом прожолжить работу и запустить хп2 уже новой версии в той же транзакции я не уверен, что у меня бы такой фокус прошел бы без последствий. Ну уж ерунду то не стоит нести. Батч с патчиком наложит Sch-M блокировку на модифицируемые объекты, что не даст возможности их запустить до фиксации транзакции в батче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 08:44 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin Вы правы. Переименовать не удастся только schema-bound объекты. ХП и триггера в MS SQL, не могут быть schema-bound. ну значит про этот бесполезный механизм можно смело забыть. переходим к sp_depends pkarklin Фишка, на мой взгляд в том, что, есть возможность проверить, что колонка используется в хп. Использовать эту фишку как раз и стОит. сотни таблиц, тысячи процедур и не поддающее подсчетам кол-во колонок, как я должен использовать ? pkarklin Естественно, что хранятся идентификаторы объектов и их колонок. Отгадать "после" - сделать алтер зависимых объектов и получить ошибку на "битых" хп. наверно можно проще - приведите скрипт или что там еще, как конкретно вы решаете, что нажать после наката патча rollback или commit. а то я не понимаю, зависимые объекты это хп, как им сделать алтер... pkarklin Ну уж ерунду то не стоит нести. Батч с патчиком наложит Sch-M блокировку на модифицируемые объекты, что не даст возможности их запустить до фиксации транзакции в батче. не понял, с какой стати юзерские транзакции на read commited будут вести себя как serializable ?? юзерская транзакция выполняет хп1, это ей никто не запретит, дадее запускается батч с патчем, который раставляет блокировки на хп1 и хп2, теперь юзерская транзакция честно дожидается обновления и снятие блокировок. теперь ничто не запретит ей запустить хп2 уже новой версии, обычный read commited. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:05 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!сотни таблиц, тысячи процедур и не поддающее подсчетам кол-во колонок, как я должен использовать ? И какие проблемы перед вызовом sp_rename проверить, в каких объектах используется та или иная колонка? Yo.!наверно можно проще - приведите скрипт или что там еще, как конкретно вы решаете, что нажать после наката патча rollback или commit. а то я не понимаю, зависимые объекты это хп, как им сделать алтер... Получить перечень зависимых объектов можно - можно. Определить тип объектов можно - можно. Получить скрипт объекта можно - можно (sys.sql_modules). И какие проблемы вызвать sp_executesql с тексом модуля, в котором CREATE заменен на ALTER? Yo.!не понял, с какой стати юзерские транзакции на read commited будут вести себя как serializable ?? юзерская транзакция выполняет хп1, это ей никто не запретит, дадее запускается батч с патчем, который раставляет блокировки на хп1 и хп2, теперь юзерская транзакция честно дожидается обновления и снятие блокировок. теперь ничто не запретит ей запустить хп2 уже новой версии, обычный read commited. Наверное можно проще - приведите скриптик, или что-то там еще, чтобы воспроизвести описанное Вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:27 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > глючки хп, но это в оракле опять же гораздо удобней. у mssql нет аналога > create or replace procedure :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:55 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > прикольно там у вас, выходит у вас клиент может начать транзакцию, > запустить хп1 старой версии, нарватся на блокировки батча с патчиком, а > потом прожолжить работу и запустить хп2 уже новой версии в той же > транзакции я не уверен, что у меня бы такой фокус прошел бы без последствий. теоретически - можем нарваться. Для этого случая - как раз можно и выгнать юзеров из базы (хотя, как грится - зависит от). но даже выгнав юзеров для отката патча нам достаточно сделать rollback, а не плясать с бубном. кстати, flashback - он для всех редакций доступен? или - ставится отдельно за доп. деньги? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:03 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin И какие проблемы вызвать sp_executesql с тексом модуля, в котором CREATE заменен на ALTER? у меня то никаких проблем, у меня нормальные зависимоти и статусы хп в оракле. то что вы тут мечетесь между SCHEMABINDING и sp_depends, sys.sql_modules показывает, что нет у МС инструмента, есть набор каких-то заготовок/полуфабрикатов из которых может быть лет через 8 сиквельные ДБА получат, то что имеют ораклоиды ну очень давно. в противном случае тут меня бы завалили простенькими скриптами которые решают элементарную задачу - можно ли нажать commit. pkarklin Наверное можно проще - приведите скриптик, или что-то там еще, чтобы воспроизвести описанное Вами. попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:16 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
lockyтеоретически - можем нарваться. Для этого случая - как раз можно и выгнать юзеров из базы (хотя, как грится - зависит от). но даже выгнав юзеров для отката патча нам достаточно сделать rollback, а не плясать с бубном. кстати, flashback - он для всех редакций доступен? или - ставится отдельно за доп. деньги? а как это может быть даже теоритически? вот попробовал выполняю сразу два скрипта(сначала первый) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. пока транзакция с созданием процедур не завершится процедуры не выполняются и результат второго скрипта: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:23 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky теоретически - можем нарваться. Для этого случая - как раз можно и выгнать юзеров из базы (хотя, как грится - зависит от). я знаю locky но даже выгнав юзеров для отката патча нам достаточно сделать rollback, а не плясать с бубном. будете, еще как в 2 часа ночи будете когда выяснится, что патч зацепил пару хп, а вы прозевали. короче Локи, это бесполезный разговор, хотите что-то доказать - скрипт в студию. как вы, конкретно вы отслеживаете результат выполнения батча с патчем и принимаете решение жать commit или rollback locky кстати, flashback - он для всех редакций доступен? или - ставится отдельно за доп. деньги? flashback queries и flashback database во всех, включая бесплатную xe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:27 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > будете, еще как в 2 часа ночи будете когда выяснится, что патч зацепил > пару хп, а вы прозевали. Угу... А если вы, пардон, прощелкали клювом, не увидели, что у вас пакет стал инвалидным, сделали коммит - вы будете делать "в 2 часа ночи" ... что? А если заливая 10 пакетов, вы СРАЗУ увидели, что один из десяти пакетов стал инвалидным - вы будете делать... что? Если пакеты имеют перекрестную зависимость - и валидными они станут только после создания всех пакетов? т.е. при создании пакета невозможно определить - он невалидный "пока что" или "уже навсегда". И после заливки полного списка пакетов - один из них - всё-таки остается невалидным - мы откатываемся на час назад, похерив работу юзеров? Я так понимаю, проблема распадается на две части: 1. Диагностика проблемных пакетов/процедур. 2. откат в случае проблем. с п.1 - в оракле, вроде как, получше - с мс - вроде как - похуже. с п.2 - наоборот, в МС -получше, в оракле - куда хуже :( Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:35 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
SergSuper пока транзакция с созданием процедур не завершится процедуры не выполняются и результат второго скрипта: Код: plaintext 1. 2. 3. 4. 5. не понял что вы там меряли, надо было так: set transaction isolation level read uncommitted exec dbo.t1 waitfor delay '00:02:00' exec dbo.t2 за 2 минуты думаю вы успеете подправит 2 процедурки. все происходит имено так как я описывал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:37 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
SergSuper wrote: > а как это может быть даже теоритически? > вот попробовал выполняю сразу два скрипта(сначала первый) какой-то сомнительный способ... Пока не завершился первый батч - процедуры №1 вообще нету. Создать процы, в первую вставить задержку, запустить, а потом - попробовать сделать альтер для второй процы причем - альтер в сериализабле, а запуск первой процы - в реад коммитед. и поглядеть - кто кого будет ждать, т.е. будет ли альтер ждать завершения запуска процы. Такого не пробовал - поэтому говорю "теоретически" :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:39 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
По результату быстрого опыта: нельзя запустить процу, пока не закомичен её альтер, но можно сделать альтер, пока проца выполняется. Т.е. ситуация описанная йо - в принципе, возможна? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:48 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky Угу... А если вы, пардон, прощелкали клювом, не увидели, что у вас пакет стал инвалидным, сделали коммит - вы будете делать "в 2 часа ночи" ... что? прощелкать валидность процедуры можно только если об этом не знать ну или не попытатся задуматся, а нормально ли прошел патч ... т.е. нужно быть реальной кухаркой, такие кухарки нормальными бд под ораклом не рулят, поверьте. locky А если заливая 10 пакетов, вы СРАЗУ увидели, что один из десяти пакетов стал инвалидным - вы будете делать... что? flashback ВСЕГО без разбору. Юзеров вы ОБЯЗАНЫ выгнать на время апдейта, иначе с бд преключится попа (странно что вы с таким опытом не задумывались о таких очевидных вещах). locky Я так понимаю, проблема распадается на две части: 1. Диагностика проблемных пакетов/процедур. 2. откат в случае проблем. не совсем, если вы не можете диогностировать проблему, то какая разница удобно ли вы можете откатится ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:50 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!у меня то никаких проблем, Вы знаете, у меня тоже. ;) Yo.!у меня нормальные зависимоти и статусы хп в оракле. то что вы тут мечетесь между SCHEMABINDING и sp_depends, sys.sql_modules показывает, что нет у МС инструмента, есть набор каких-то заготовок/полуфабрикатов из которых может быть лет через 8 сиквельные ДБА получат, то что имеют ораклоиды ну очень давно. Статусы хп - не панацея. locky это прекрасно продемонтсрировал. Можно с пеной у рта доказывать, что лучше\хуже валидность в оракле или отложенное разрешение имен в сиквел сервере. Главное, есть возможность определения зависимостей - а использовать ее или нет, каждый должен определить для себя сам. Yo.!в противном случае тут меня бы завалили простенькими скриптами которые решают элементарную задачу - можно ли нажать commit. Это настолько простенькие скрипты, что такому профессионалу как Вы (здесь нет сарказма) по имеющимся справочным данным не составит большого труда их реализовать самостоятельно. Тем более направление уже задано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:50 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!прощелкать валидность процедуры можно только если об этом не знать ну или не попытатся задуматся, а нормально ли прошел патч ... т.е. нужно быть реальной кухаркой, такие кухарки нормальными бд под ораклом не рулят, поверьте. И что изменится, если вместо валидности и оракл поставить депенденсис и сиквел сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:02 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.! wrote: > flashback ВСЕГО без разбору. Юзеров вы ОБЯЗАНЫ выгнать на время апдейта, > иначе с бд преключится попа (странно что вы с таким опытом не > задумывались о таких очевидных вещах). Дык эта... не могу я выгнать ВСЕХ, дабы залить патч, затрагивающий ОДНОГО :) ВСЕ - могут обидеться :) > не совсем, если вы не можете диогностировать проблему, то какая разница > удобно ли вы можете откатится ??? Вы исходите из предположения, что мы НИКОГДА И НИКАК не можем диагностировать проблему - что, вообще говоря, неверное. Да, существуют случаи, когда диагностирование - затруднено. С другой стороны - никто не мешает добавить в патч запуск тест-кейса - смок-теста, который скажет: всё ок или не всё ок - и, соответсвенно - если "дым пошел" - сделать роллбэк. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:04 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin Это настолько простенькие скрипты, что такому профессионалу как Вы (здесь нет сарказма) по имеющимся справочным данным не составит большого труда их реализовать самостоятельно. Тем более направление уже задано. pkarklin & locky зачем морочить мне голову, если скриптик простенький, ну выложите, в чем проблема ?? я не вижу как из этих полуфабрикатов можно отследить ВСЕ зависимости, например сходу приходит в голову что поле может еще тип поменять ... короче без скриптика дальнейший разговор сведется дурак - сам дурак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:04 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin И что изменится, если вместо валидности и оракл поставить депенденсис и сиквел сервер? депендесис не способна отследить даже переименование таблички (т.к. хранит ИД таблицы), не говоря уже о более сложных вещах, мы же вроде это уже выяснили !? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:06 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!короче без скриптика дальнейший разговор сведется дурак - сам дурак. Ну я же приводил скрипт, который выявляет зависимости для переименованной колонки. Чего Вам еще надо?! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:18 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
Yo.!депендесис не способна отследить даже переименование таблички (т.к. хранит ИД таблицы), Она и не остлеживает переименование. Она отслеживает зависимость объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:20 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
locky Дык эта... не могу я выгнать ВСЕХ, дабы залить патч, затрагивающий ОДНОГО :) ВСЕ - могут обидеться :) а на то, что они запускают в одной транзакции хп из разных версий и как результат попа в бд они не обижаются ? наверно у нас сильно разные задачи ... locky Вы исходите из предположения, что мы НИКОГДА И НИКАК не можем диагностировать проблему - что, вообще говоря, неверное. Да, существуют случаи, когда диагностирование - затруднено. бывают случаи !? я пока не увидел решения элементарного случая переименования таблицы. locky С другой стороны - никто не мешает добавить в патч запуск тест-кейса - смок-теста, который скажет: всё ок или не всё ок - и, соответсвенно - если "дым пошел" - сделать роллбэк. Posted via ActualForum NNTP Server 1.4 долго, дорого, кухарка это делать уже не станет. а теперь плавно возращаемся к илюзии легкости администрирования mssql ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:24 |
|
||
|
Microsoft задавит Oracle
|
|||
|---|---|---|---|
|
#18+
pkarklin[quot Yo.!]короче без скриптика дальнейший разговор сведется дурак - сам дурак. Ну я же приводил скрипт, который выявляет зависимости для переименованной колонки. Чего Вам еще надо?! Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'sp_refreshsqlmodule'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:25 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34921568&tid=1553126]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 164ms |

| 0 / 0 |
