Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Итак, хочу рассказать о таком случае... в котором не вижу никакого смысла . Работаю я значит в одном отделе с SQL serverom на котором лежит вебсайт... а я его программирую. С Sql server'om здесь никто не знаком поэтому работали на ощупь, ни BackUp, ни чего другого не создавали, просто потому что не знали. И вот в один прекрасный день я одним небольшим запросом уничтожил практически всю базу. Ну в отделе конечно паника, я в ауте. Единственное что пришло в голову : А нельзя ли вернуть один шаг назад ? Оказалось, что можно, но только сразу после выполнения запроса, который нужно отменить. А я конечно же этого не сделал. Ну что ж, подумал я, но должны же вестись логи изменений и по-этим логам можно и восстановить ... Фиг там, да действительно логи ведуться причём мегабайтного размера, но чтобы восстановить нужно иметь архив базы до внесённых изменений, то есть восстановить можно только вперёд !, но не в коем случае не назад. Вот такая вот бурда ! Полез я тогда уже в физическую среду,т.е. к файлам. Просмотрел логи, саму базу и также некоторые другие базы, типа Tempbd И понял, что восстановить можно! ...вручную : тупо копируя из файлов в базу ... короче е@#%ться пришлось по полной... но восстановить удалось всё ... только с косяками типа: замена некоторых символов на другие, а также замена английских букв на Эквивалентные русские (English p на русскую р). Из всего этого я сделал неутешительный вывод : Базы Всё ещё неустойчивы и в этом направлении надо ещё работать и работать. Пример: Если каким либо способом случайно уничтожить лог, то восстановить базу после краша невозможно ... А также файлы баз на основе SQL server являются большим хранилищем мусора, в них храняться давно уничтоженные данные, хотя в основном благодаря им мне и удалось восстановить БД. Может я в чём неправ ... подскажите . P.S. Расскажите кто-нить о базе TempBd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 00:51 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Коли делать бекап вовремы, тогда и с восстановлением проблем не будет. Конечно если винт отформатировать, то с него уже прочитать нельзя ничего. SQL может не ленту бекап делать, да и вообще куда угодно если это устройство с Windows совместимо. Так что коли с бакепом разобраться, то в tempbd лазить не надо будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 01:28 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Так я не о том... если ведутся логи, то почему бы не разрешать делать шаг назад ??? отменить одну или несколько транзакций ? и если есть BackUp но нет лога то восстанавливать бесполезно, особенно если изменения внесённые существенны . Так вы расскажите мне о TempBd, plz ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 02:18 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Вот о чем поведали BOL: tempdb holds all temporary tables and temporary stored procedures. It also fills any other temporary storage needs such as work tables generated by SQL Server. tempdb is a global resource; the temporary tables and stored procedures for all users connected to the system are stored there. tempdb is re-created every time SQL Server is started so the system starts with a clean copy of the database. Because temporary tables and stored procedures are dropped automatically on disconnect, and no connections are active when the system is shut down, there is never anything in tempdb to be saved from one session of SQL Server to another. By default, tempdb autogrows as needed while SQL Server is running. Unlike other databases, however, it is reset to its initial size each time the database engine is started. If the size defined for tempdb is small, part of your system processing load may be taken up with autogrowing tempdb to the size needed to support your workload each time to restart SQL Server. You can avoid this overhead by using ALTER DATABASE to increase the size of tempdb. Что касается лога транзакций, поищи по конфекренции, продукт такой обсуждали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 03:27 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Так вы предполагаете что и без BackUp'a Можно было восстановить ?? По-моему это нереально, по крайней мере я почти всё что можно по SQL server'у перерыл но ничего не нашёл ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 03:58 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
2 Andir Единственное что пришло в голову : А нельзя ли вернуть один шаг назад ? Оказалось, что можно, но только сразу после выполнения запроса, который нужно отменить. Вернуться на один шаг нельзя. Во всяком случае я не представляю как. И ничего странного в этом нет. Вы же не один можете работать с сервером. Пока Вы решите возращаться, другие пользователи сделают некие действия с базой, которые затронут и те изменения, которые вызвали Ваши действия. И у этих пользователей нет намерений возвращаться на шаг. Что бы Вы делали на месте сервера? Правильно - запретили бы это. Можно было бы прокоментировать и другие Ваши высказывания, но не буду, скажу лишь что в основном это бред. С Sql server'om здесь никто не знаком поэтому работали на ощупь, ни BackUp, ни чего другого не создавали, просто потому что не знали. ... Из всего этого я сделал неутешительный вывод : Базы Всё ещё неустойчивы и в этом направлении надо ещё работать и работать. ... А также файлы баз на основе SQL server являются большим хранилищем мусора... Вам не кажется что несколько странно делать выводы о вещах, в которых не понимаете? "Я Солженицина не читал, но осуждаю". А я из всего этого сделал другой неутешительный вывод: "Вам, Шариков, надо молчать и слушать, молчать и слушать". Это вся-таки довольно серьёзная вещь и с наскока у Вас не получиться. Почитайте сначала книжки какие-нибудь. Кстати: обратите внимания какой они толщины. С приветом Сергей PS. Или Вы писали программы которые продаются за тысячи долларов миллионными тиражами? Тогда извиняюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 06:09 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Сергей ! Да пожалуй ты прав насчёт таких штук как с наскока и т.д. Кстати, шаг назад сервер не запрещает администратору, а вот несколько уже нельзя ... Но всё таки если, в случае краша, нужно вернуть один или несколько шагов назад, а не тысячу или две транзакций вперёд от последнего BackUp'a. Что прикажешь делать ??? Или если случайно испорчен этот самый BackUp ??? Почему по логу нельзя восстановить ход событий ???... Перечислять можно ещё долго... Насчёт недоработки: Это относится почти ко всем современным реляционным базам данных, а не только к майкрософтовским продуктам ... ) А насчёт на ощупь я говорил, что было тогда, а не сейчас. Может я в чём-то и неправ, тогда поясните мне Сюда или на e-mail: mailto:rab20@euro.ru. Поговорим подробнее . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 06:24 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Объясни сначала как можно сделать администратору шаг назад. Очень хочется узнать. И наверное не только мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 07:21 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
ROLLBACK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 07:29 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Может ты просто чего-то не понял, но я говорил именно об откате транзакции ... Правда я не пробовал откатить транзакции типа : удаление данных и таблиц ... но с остальными видами вроде работает . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 07:39 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
2 Andir Ну правда, ну возьмите книженцию да почитайте. В том числе и о транзакциях, которые можно откатывать через Rollback, и можно ли закомиченную транзакцию откатить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 07:40 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Критиковать всякий может ... а вот объяснить в чём промах слабо ??? Почему все советуют почитать книги, неужели никто не учился на ошибках ??? И книга мало чем поможет если не знаешь, что конкретно в ней нужно ... P.S. Уважаю профи. но только если они уважают знания ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 07:46 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Да брат, повеселил "Подошел я тут первый раз к роялю и решил "1-й концерт Чайковского сыграть". Нажал пару клавишь - никакой мелодии. Из всего этого я сделал неутешительный вывод : рояли Всё ещё недоработаны и в этом направлении надо ещё работать и работать. Пример: одним пальцем можно случайно две клавиши нажать. Критиковать всякий может ... а вот объяснить в чём промах слабо ??? Почему все советуют учиться играть гаммы, неужели никто не учился на ошибках ??? И ноты мало чем помогут если не знаешь, что конкретно в них нужно играть ... Вот Вы мне просто обясните какие клавиши нажимать" Блин, ну почему я читал книжки и на английском, русских тогда еще и в помине небыло, а тебе до магазина не дойти. Хочу всё и сразу. Кому-то подсказать - это пожалуйста, а учить - не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 08:21 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
На практике я действую так: Раз в неделю- полный BCP Раз в день ночью- дифференциальный Непосредственно перед дифференциальным- бэкап log. Причем бэкап log хранится на каждый день прошедшего месяца. Как результат- могу откатится к любому моменту в течение месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 09:08 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Мдя... А меня есть база с которой я каждые 15 минут снимаю бакап транзакшн лог... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 13:50 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Уважаемый Andir. Очень проблематично подсказать что-либо в Вашей ситуации, поскольку (это мое субъективное мнение) Вы и сами не вполне отчетливо сознаете, что же в действительности произошло, и суть действий, Вами предпринятых. Короче, полный bcp (Alexanders, наверно, хотел сказать backup). >"Одним запросом уничтожил базу" Это что DROP DATABASE? Это значит всю, а не "практически всю". Нельзя немного умереть. >"Но должны же вестись логи изменений и по-этим логам можно и восстановить" Резервная копия журнала транзакций не поможет, если нет полного backup'a. Транзакции - это изменения, их надо к чему-то применять. >"Да, действительно, логи ведутся, причём мегабайтного размера" Во-первых, мегабайтный размер - это совсем немного, по-видимому, они были почищены незадолго до того, как это случилось. Во-вторых, лог у каждой базы один. Или Вы имеете в виду файлы. А в-третьих, извините, как же они могут у Вас вестись, если база, по Вашим словам, уничтожена. Если Вы подразумеваете master, то с его backup'a Вы в лучшем случае поднимете метаданные, а не контент погибшей базули. >"То есть восстановить можно только вперёд" Это чушь. Если Вы имеете в виду процесс recovery, то зафиксированные транзакции действительно накатываются (roll forward), незафиксированные - откатываются (roll back). >"Полез я тогда уже в физическую среду, т.е. к файлам. Просмотрел логи, саму базу..." Значит, файлы БД все-таки уцелели? А почему в этом случае не сделать sp_attach? >"И понял, что восстановить можно! ...вручную : тупо копируя из файлов в базу" Если это символьные данные, то почему нет? Они лежат там в открытом виде и доступны всем, кто имеет доступ к файлу, если, конечно, Вы его не храните на EFSовской партиции. >"Базы Всё ещё неустойчивы и в этом направлении надо ещё работать и работать" Т.е. сделать так, чтобы она неоднократно переспрашивала после команды DROP DATABASE, уверены ли Вы, что хотите это сделать. А сколько бы раз Вас устроило? >"Расскажите кто-нить о базе TempBd" Мне кажется, что в сложившихся условиях Вам следует в первую очередь пополнить свои знания по устройству журнала транзакций - http://www.sqlmag.com/Articles/Index.cfm?ArticleID=9792. Я бы также порекомендовал ознакомиться с crash recovery scenarios, вот очень хорошая статья - http://www.sqlmag.com/Articles/Index.cfm?ArticleID=9808. Кроме того, при правильном планировании политики пезервного копирования в Вашей ситуации лучшим выходом стало бы восстановление на момент времени, либо на поименованную транзакцию. После того, как прочтете эти две статьи, гляньте еще вот эту - http://www.osp.ru/win2000/2000/05/062.htm, там есть пара-тройка примеров на этот счет в самом конце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 15:54 |
|
||
|
Немного о SQL server ! (Backup & Restore)
|
|||
|---|---|---|---|
|
#18+
Уж коль статьи стали предлагать, я тут тоже накропал малость: http://www.sql.ru/subscribe/70028/index.shtml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2001, 20:20 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32011989&tid=1825842]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 342ms |

| 0 / 0 |
