Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Microsoft SQL SERVER

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

Открыть новую тему     Написать ответ в эту тему

aidar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Microsoft SQL Server
 
В данном разделе рассматриваются вопросы по установке, настройке и администрированию MS SQL.
Вопросы по выборкам, созданию процедур, индексов и прочему программированию - лучше обращаться сюда: Microsoft SQL Server в разделе Прикладное Программирование


Полезные ресурсы:
Ссылки на официальные ресурсы:   TechNet Rus по SQL   TechNet Eng по SQL 2000    TechNet Eng по SQL 2005     MS SQL Server на форумах TechNet Rus
 
Полезные ресурсы, где можно найти дополнительную информацию:
http://www.sql.ru - один из самых больших и популярных ресурсов в ру-нете по MSSQL.
http://sqlserverbuilds.blogspot.com - информация о ВСЕХ билдах и версиях SQL Server
 
Где найти дистрибутив?



Microsoft SQL Server 2000
 
Текущий и наверное Последний Service Pack: SP4 (build 8.00.2039)
Последний кумулятивный пакет хотфиксов после SP4: build 8.00.2187
Список всех хотфиксов после SP4 на текущий момент: Cumulative list of the hotfixes that are available for SQL Server 2000 SP4
SQL Server 2000 Books Online June 2007 Update
Сравнение редакций, совместимость с ОС



Microsoft SQL Server 2005
 
Блог Александра Гладченко - MVP по MS SQL. Заглядывайте периодически, очень интересные статьи.
 
Текущая версия:
Последний Service Pack - 2
Их было два, оба с одинаковым билдом - 9.00.3042
Здесь (ENG) описано, почему так произошло и как отличить "правильный" от "не правильного".
 
Здесь можно посмотреть, какой апдейт на сегодняшний день крайний для MS SQL SP2:
The SQL Server 2005 builds that were released after SQL Server 2005 Service Pack 2 was released (ENG)

Всего записей: 255 | Зарегистр. 20-09-2001 | Отправлено: 17:21 08-01-2003 | Исправлено: SkySandy, 02:26 20-08-2014
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
...НЕ ДОЛЖНО такого быть...
всегда есть некая малая вероятность Х что бэкап окажется битым
(и не обязательно/только по причине SQL Server-а, сеть, диск/RAID, сервер и т.д.)
- т.е. риск, соответственно есть вероятность что он окажется целым (1-Х)
согласен что для большинства задач в принципе не настолько критично,
но например возможные последствия потерь трансакций
хотя-бы одного дня в банке на террабайтных базах
достаточны чтобы вводить в систему целые цепи проверок
(несколько копий, в нескольких местах, на разных инфраструктурах и т.д.)
несмотря на стоимость/затраты (до определённо разумного баланса).
и даже при системах такого многослойного дублирования
иногда результат проверки оказывается в красной зоне на 1тыс. случаев
(опять-же - по разным причинам),
но хорошо ещё что только для проверки - это вовсе не значит что такой сбой
совпадает со случаем реальной необходимости восстановления.

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 18:19 24-05-2019
polzovatel777

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня была именно такая задача от девелоперво и она была им крайне важна, так как после обновления у них решились проблемы с каким-то неработающим функционалом
 

Цитата:
Имеет ли смысл обновлять  MS SQL 2008 R2 SP1 - 10.50.2550.0 (X64), установленный на Win Server 2008 r2 standart?  
Если да, то какого билда: до последнего 2008 R2: SP3 - 10.50.2550.0 или может быть вообще до нового релиза (до какого тогда)?  


Всего записей: 72 | Зарегистр. 01-09-2017 | Отправлено: 16:02 05-06-2019
smurf78

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, в SQL (2012) есть три задачи основные по обслуживанию базы -
Реорганизация индекса, восстановление индекса и обновление статистики.
В какой последовательности их лучше выполнять и какие из них?

Всего записей: 203 | Зарегистр. 17-11-2017 | Отправлено: 23:29 09-06-2019 | Исправлено: smurf78, 23:31 09-06-2019
sqsqsq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день! Подскажите, как понять, отчего растет файл лога?
Есть MS SQL Express 2017, на нем база около 50-60 млн записей, умещается в примерно 6-8 Гб + примерно 2 Гб файл журнала транзакций. Свободного места на машине около 10 Гб.
С целью освобождения места было принято решение удалить старые записи из одной из таблиц

Код:
delete FROM [Db].[dbo].[History] where Timestamp  < DATEADD(day, -30, GETDATE())
после чего почти сразу получил сообщение Ошибка 9002 журнал транзакций полон, причина: ACTIVE_TRANSACTION.  
Проверил - кончилось место на диске. Потому что все свободное место съел файл лога транзакций. Сжал файл лога (модель восстановления Simple), запустил операцию заново: файл лога растет со скоростью 1 Гб за полминуты, и, соответственно, через 5 минут снова занимает все место.
Не очень понимаю, почему часть журнала транзакций, которая касается удаления из БД больше журнала транзакций, который содержит все записи по внесению данных в БД. Да и вообще, почему он так быстро растет?

Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 16:41 14-06-2019
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sqsqsq

Цитата:
Сжал файл лога (модель восстановления Simple), запустил операцию заново...
Сразу надо Simple ставить еще при создании базы. Есть возможность пересоздать базу? (например, 1С через dt-выгрузку-загрузку)

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 19:27 14-06-2019
bigsloth



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Чтобы поменялась модель восстановления, нужно сделать полный бэкап, но дело не в этоом. - у вас одна здоровая транзакция, неважно в какой модели восстановления бд.
SQL server всегда увеличивает лог настолько, чтобы можно было и откатить транзакцию. Удаляйте кусками и делайте бэкап жт  после удаления куска в полной модели восстановления (если она вам нужна)

Всего записей: 239 | Зарегистр. 18-09-2009 | Отправлено: 20:19 14-06-2019
sqsqsq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
M_Volkov

Цитата:
Есть возможность пересоздать базу?
Базу создавали без меня, но похоже, что сразу в симпл
 
 
Добавлено:
bigsloth

Цитата:
SQL server всегда увеличивает лог настолько, чтобы можно было и откатить транзакцию
Ага.. то есть, он, скорее всего, ни одной записи и не удалил, а уперся в то, что не хватило места для лога и прервал операцию.

Цитата:
Удаляйте кусками

Удалять кусками, наверное, лучше в цикле. С учетом нехватки места, надо ли после удаления каждого куска сжимать файл лога?
И еще, есть ли способы оценить, сколько места на диске понадобится для файла лога при удалении 1 дня/часа/минуты или 1 млн/тыс записей? Или только эмпирически?

Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 00:45 15-06-2019
bigsloth



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если бд в простой модели восстановления, сжимать не .  
 обязательно. Подберите размер куска таким образом, чтобы на диске, после его удаления, оставалось столько же места, насколько вырос жт. Оценить размер теоретически можно, практически проблематично - это зависит от структуры таблицы, индексов,  типов данных

Всего записей: 239 | Зарегистр. 18-09-2009 | Отправлено: 06:26 15-06-2019
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bigsloth

Цитата:
...но дело не в этом. - у вас одна здоровая транзакция, неважно в какой модели восстановления бд.
Да, в первую очередь sqsqsq нужно разобраться откуда берется эта здоровая транзакция.
С журналом транзакций мучился лишь в первое время освоения SQL, когда по умолчанию вставала Полная модель восстановления. А с Simple забыл о нем.

Всего записей: 5783 | Зарегистр. 23-06-2008 | Отправлено: 08:39 15-06-2019
sqsqsq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, уважаемые M_Volkov, bigsloth
А есть ли разница (относительно размера жт), если я запускаю запрос из SSMS, или через sqlcmd?
В моем понимании разница быть не должно. Я прав?

Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 10:17 15-06-2019
bigsloth



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Разницы нет

Всего записей: 239 | Зарегистр. 18-09-2009 | Отправлено: 10:20 15-06-2019
hawk2hawk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor me v2

Цитата:
НЕ ДОЛЖНО такого быть. В крайнем случае можно делать бекап сразу в два места...

Согласен и нет. С академической точки зрения правильно поднимать тестово базу из бакапа и потом её прибивать. Всё это делается T-SQL'ем на автопилоте с отправкой результатов на почту. С другой стороны - это пахнет паранойей. Всё зависит от того, как сильно дорожим местом, если что-то пойдёт не через традиционные формы секса.
ЗЫ. Бакапа в двух местах зачастую бывает недостаточно... ))

Всего записей: 479 | Зарегистр. 11-11-2010 | Отправлено: 09:33 17-06-2019
igor me v2

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Бакапа в двух местах зачастую бывает недостаточно

Ну это мы уже в общую теорию сваливаемся. Если вторая копия на оффлайн-носителе (диск, катридж стриммерный, или на худой конец отключаемый HDD) и если вы живёте в спокойном регионе (ураганы, затопления, пожары, местная мафия, местные власти каждый день не беспокоят) - то В ПРИНЦИПЕ ДОСТАТОЧНО. Если оба бекапа онлайновых и тем более на одной териитории с основной инфой - да, пожалуй недостаточно...

Всего записей: 7213 | Зарегистр. 27-03-2016 | Отправлено: 15:51 17-06-2019
sqsqsq

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Искал ответа в системной ветке, но за неделю не пришло ни одного коммента, похоже, надо сначала здесь узнать, а тему прибить.
 
Исходные данные
Есть сервер Win2008 (r2) Standard SP1 64.  
На нем сервис собирает данные с датчиков и записывает в MS SQL 2008 (10.50.1600).  
Если сервис видит что-то подозрительное, он делает запись в таблицу [TestDB].[dbo].[Commands]
 
Нужно при срабатывании датчика отправить email с отчетом в приложении, а точнее:
1. Мониторить новые записи в [TestDB].[dbo].[Commands]    
2. При появлении новой записи узнать IP адрес сработавшего датчика
3. Зайти по IP адресу по HTTP, дать команду на генерацию PDF отчета, подождать минуты 2-3, пока отчет будет готов, скачать отчет на диск
4. Отправить емейл с отчетом в аттаче  
 
Сначала в общем, как к этому подходил
1. изменение данных в таблице отслеживал триггером
2. адрес можно вытащить из БД - запросом в теле триггера  
3. самая непонятная часть. У датчика есть веб интерфейс, через который можно зайти и, нажав несколько кнопок и подождав пару минут, получить кнопку для скачки PDF отчета.
Данные для отчета собираются с самого устройства скриптом сразу в PDF, прямо в браузере, после чего есть возможность сохранить его.  
То есть, сам отчет нигде не хранится, пока его не сохранят принудительно, нажав на кнопку Download со свойством onclick="downloadReport()".
Пока что научился это делать через AutoIt (открываю браузер, точнее не браузер а IE, в нем захожу на нужную страницу, заполняю данные в форму, нажимаю кнопку генерации отчета, жду появления кнопки скачать, сохраняю PDF файл и заодно пишу полное имя файла в лог, симулирую нажатие клавиш для подтверждения сохранения файла (спасибо мелкософту), закрываю ИЕ) и запускать его через MS SQL Server Agent Job, который еще к тому же вызывает задание планировщика виндовс schtasks, который стартует исполняемый файл, сгенерированный в AutoIt.
4. рассылка уведомления средствами MS SQL Server mail, имя файла для аттача считывается из лога, полученного на предыдущем шаге
 
Что пока удалось сделать:
1. В MS SQL cоздал триггер на изменеие [TestDB].[dbo].[Commands]  
Триггер в цвете со слетевшим форматированием    Тот же триггер с отступами для копи-паста в ssms
 
2. Скрипт AutoIt
уже описал, что он делает. Но выкладывать его здесь стыдно , да и, пожалуй, бессмысленно.
 
Вопросы
Подскажите, как такие задачи решаются по-людски?  
Оставить SQL сервер выполнять только свою непосредственную задачу - хранить данные, а отслеживать изменения и рассылать емэйлы сторонними средствами? Тогда какими? И как организовать передачу данных от sql сервера внешнему приложению и обратно (ну не через файл же!)?
Или же можно на SQL вешать и задачи рассылки тоже?  
 
PS1 Прошу прощения за форматирование кода, постарался сделать его цветным, при этом слетели отступы.

Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 14:17 24-06-2019
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
1. изменение данных в таблице отслеживал триггером  


Цитата:
Подскажите, как такие задачи решаются по-людски?  

 
такие задачи решаются пропорционально выделенным ресурсам и возможностям за эти ресурсы.
т.е. часто - лишь-бы работало с минимальными затратами (в т.ч. на разработку)
если это конечно не отдельный проект с целой командой, где идёт высоконагруженный
insert из миллионов источников одновременно (т.е. конкуренция, изоляции и т.д.)
//  но там такая бизнес-логика часто выносится на сторону севиса (а не триггером на стороне DB)
//  где вставка с таблицу для логов уже последний этап.
 
Да, триггер вполне может вызвать хранимую процедуру в которой можно творить что угодно
(вызов внешних процессов/библиотек, PowerShell / cmd, Agent Job, рассылка почты через sp_send_dbmail и пр.),
есть методы запуска без необходимости ожидания окончания
(напр. просто запустить Job в котором будут необходимые шаги)
кроме всего прочего в Microsoft Data Platform Ecosystem кроме DB Mail есть такие компоненты
как SSRS с приличным форматированием и Data Driven Subscription,
 
работа с внешними системами и их API (если таковой имеется) - не тема этого топика так что
пускай эти грабли покоятся в соответствующих разделах приложений под которые они попадают.

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 21:08 24-06-2019 | Исправлено: vikkiv, 21:11 24-06-2019
hawk2hawk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
smurf78
Как написал, так и выполняй. Если лень разбираться, то иди на сайт Ола Халленгрен - там всё есть в готовом виде.

Всего записей: 479 | Зарегистр. 11-11-2010 | Отправлено: 07:57 26-06-2019
Paromshick



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сервер, 2014, член группы AlwaysON. На сабже имеется SQL login, доменная УЗ. И когда-то были две базы. Тоже в HA.
Логин был примаплен к базам, не скажу точно, ибо всё тестилось, но видимо так
Код:
USE [db_name]
EXEC dbo.sp_changedbowner @loginame = N'DOMAIN\login', @map = true
Потом базы были удалены, помню, что не корректно, выпали в restoring на одной реплике, но всё же удалены.
Теперь в логах имею систематическое (каждые пять минут, то есть, похоже, sheduler'ом время "круглое" 17:25:00 17:30:00 17:35:00 и т.д.) сообщение
Цитата:
Message
Login failed for user 'DOMAIN\login'. Reason: Failed to open the explicitly specified database 'DBName'. [CLIENT: <local machine>]
DBName - имя удалённой базы.
Что это и как подлечить?

----------
Скучно

Всего записей: 3019 | Зарегистр. 12-04-2013 | Отправлено: 17:45 09-12-2019
Paromshick



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё просто. SQL Agent стартует от этой доменной учётки. При создании же базы, софт вешает джобики, по её обслуживанию. Базы нет, а джобики остались
 
Другой вопрос.
SQL AlwaysOn.
Если подключение к базам происходит от учётки с правами sysadmin, то при переключении нод кластера - всё пучком. Если же подключение с правами на базу, полными, dbowner, то при отработке отказа - подключение теряется. Logon failure. Приходится мапить их вручную.
Можно решить, чтоб не было прав sysadmin, но всё работало?
Нигде не вижу информации по AlwaysOn и правам, необходимым правильной работы.

----------
Скучно

Всего записей: 3019 | Зарегистр. 12-04-2013 | Отправлено: 18:54 13-12-2019
NeNeko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени, есть вопрос по MS SQL Server 2005 SP4 EE - какие фикспаки надо ставить после CU фикспака SQLServer2005-KB2494123 т.е. его достаточно и он закрывающий или есть ещё?

----------
Perpetuum Mobile

Всего записей: 823 | Зарегистр. 08-02-2006 | Отправлено: 13:14 10-02-2020
vikkiv



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NeNeko
смотря для каких целей, твой выпущен в середине 11го года, а потом ещё выпускались почти до конца 12го.
разные выпуски фиксировали разные проблемы, так что если есть проблема с SP4 которую надо починить
(и решение есть в последующих CU) - то естественно нужно будет накатывать более поздние обновления.
p.s. последняя известная версия db будет показывать: 9.0.5324

Всего записей: 747 | Зарегистр. 10-11-2005 | Отправлено: 22:04 15-02-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Microsoft SQL SERVER


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru