Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Microsoft SQL SERVER

Автор: ANDY2112
Дата сообщения: 13.06.2014 11:41
Подскажите, пожалуйста, в чем может быть причина такой ошибки:
MS SQL Server 2008 R2 Std Rus Если ставлю для службы "Службы SQL Server Reporting Services" тип запуска "Авто", то при перезагрузке компьютера получаю в журнале событий:
Ошибка входа пользователя "NT AUTHORITY\SYSTEM". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: <local machine>]
Ошибка входа пользователя "NT AUTHORITY\SYSTEM". Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: <local machine>]
Report Server Windows Service не может соединиться с базой данных сервера отчетов.
Если же поставить тип запуска "Вручную" и после перезагрузки компьютера запустить эту службу вручную, то никаких ошибок в журнале событий нет.
В чем может быть причина?
Автор: vikkiv
Дата сообщения: 13.06.2014 17:17
ANDY2112 - Причина может быть в задержке запуска сервиса SQL базы данных, например SSRS пытается подключится к БД до того как собственно БД запущена (т.е. находится в процессе запуска). Т.е. само наличие таких записей в логах ещё не проблема, однако если сама служба после например 5-7 минут так и не переходит в рабочее состояние - тогда нужно уже ковырять.
Автор: ANDY2112
Дата сообщения: 13.06.2014 21:48
Да вроде потом работает, но как-то это "неаккуратненько".
Автор: ANDY2112
Дата сообщения: 18.06.2014 11:17
И еще вопросик по тому же серверу. Не понятно с чего перестает работать такая конструкция:
USE [Accounting30]
DBCC SHRINKFILE (N'Accounting30_log' , 0, TRUNCATEONLY)
Говорит:
Сообщение 8985, уровень 16, состояние 1, строка 1
Не удалось найти файл "Accounting30_log" для базы данных "Accounting30" в sys.database_files. Файл не существует или был удален.
Причем не работает как запросом, так и интерактивно.
Перезагрузка сервера решает проблему не надолго, но уже ночью задание не срабатывает с такой же ошибкой.
Если вместо имени указать идентификатор, то работает.
Автор: bigsloth
Дата сообщения: 18.06.2014 11:33
А если в момент когда не выполняется, выполнить select * from sys.database_files - там всё в порядке? Есть файл с таким именем?
Автор: ANDY2112
Дата сообщения: 18.06.2014 12:48

Цитата:
Есть файл с таким именем?

Да.
Автор: Serg0FFan
Дата сообщения: 01.07.2014 13:32
Уважаемые, помогите Столкнулся с проблемой восстановления из резервной копии.
Имеется MS SQL 2008 R2 x64 Ent RUS.

[more=Есть план резервного копирования, скриншоты далее.]
Сам план состоит из двух вложенных планов.
Первый, ежедневная полная копия базы:

Выполняется каждый день в 3 часа ночи:


Подробности:




Второй вложеный план, копия журнала транзакций,
выполняется каждый час с 7 утра до 21 вечера, расписание:

План:

Подробности:




Проблема состоит в том, что если я создаю базу, например newbase и пытаюсь восстановить в неё что то из резервной копии существующей базы kscenter из консоли management studio то вылетает ошибка.
Если делать вот так (к моменту времени: самый последний), то все нормально восстанавливается:



Но вот если я хочу восстановить на вчерашнее число, на 12:00 то тут вылетает проблема.


Причем первая копия (полная) восстанавливается корректно, а вот последующая с ошибкой.

Свойства базы:


Подскажите пожалуйста, что делаю не так? Где то видимо в плане ошибка, а где не понимаю %) Спасибо.
[/more]
Автор: Serg0FFan
Дата сообщения: 08.07.2014 18:21
Решил таки проблему. Перевел базы из модели восстановления "Полная" в модель "С неполным протоколированием" и все заработало как надо. Но до сих пор не понятно, почему в "Полной" не работает?
Автор: Serg0FFan
Дата сообщения: 10.07.2014 11:42
Работало с неполной моделью, все ок, решил добавить разностную копию и.. опять все перестало работать как надо. Какое-то шаманство
Т.е. если я делаю раз в месяц 1го числа полную копию, потом ежедневно разностную в 3 ночи, а в течении дня каждый час копию лога, то за текущие сутки все нормально восстанавливается, а вот если хочу восстановить за вчерашние то получается описанная на прошлой странице ерунда. Помогите люди добрые!
Автор: bigsloth
Дата сообщения: 10.07.2014 12:05
Serg0FFan
Попробуйте отловить профайлером какие инструкции GUI посылает SQL Server'у при попытке восстановления БД.
Никогда не пользовался GUI и вот это вот восстановление "из базы данных" сильно смущает, так же смущает, что у полного бэкапа на ваших скриншотах не заполнено имя. MSDN особой ясности вот в это "из базы данных" для меня не внёс.
Автор: Serg0FFan
Дата сообщения: 10.07.2014 13:18
bigsloth
Имена файлов:

Причем расширение *.bak имеют и полные копии и разностные, файлы копий лога имеют расширение *.trn

На представленном скрине пока только один файл полной копии (делал с утра) и остальные копии лога транзакций (каждый час). Разностное копирование пока убрал из плана т.к. непонятки с ним.
Автор: bigsloth
Дата сообщения: 11.07.2014 04:02
Serg0FFan
Я имел в виду, что вот на этом вашем скриншоте, поле с именем пустое.
Покажите, пожалуйста, скриншот с содержимым папки D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscentr, на котором видно все бэкапы за 30.06. Или на любую другую дату, меньше сегодняшней, при попытке восстановления на котороую, вы получаете ошибку.
Автор: Serg0FFan
Дата сообщения: 14.07.2014 08:54
bigsloth
http://ipic.su/img/img7/fs/kiss_116kb.1405317185.png тут скрин папки с файлами.
Пытался восстановить копию на вчерашний день (13/07) на 12:00, выдало опять такую же ошибку, если пытаться восстановить на текущее состояние базу, то все нормально.
Автор: bigsloth
Дата сообщения: 14.07.2014 09:23
Serg0FFan
\\server1c\t$\devices\kscenter - это тоже самое, что D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter?
Такое чувство, что вы перемещаете полный бэкап за прошлый день и sql server просто не видит его.
Вы пробовали отловить профайлером код, который отправляется "мастером восстановления" и приводит к ошибке?

Если попробовать вручную через RESTORE DATABASE восстановить БД - ошибок не появляется?
Автор: Serg0FFan
Дата сообщения: 14.07.2014 11:36
bigsloth

Цитата:
\\server1c\t$\devices\kscenter - это тоже самое, что D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter?

да, это одно и тоже, просто первый пост содержал скрины с самого сервера, а то что дал постом выше это с рабочего компа делал скрин.

Профилером не пользовался ни разу, потому и не знаю как это изобразить

Сейчас попробую восстановить вручную.

Добавлено:
bigsloth
вот сценарий:

Код: RESTORE DATABASE [copy_pkf] FROM DISK = N'S:\!sqlback!\1c_actual\kscenter.bak' WITH FILE = 1, MOVE N'kscenter' TO N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\copy_pkf.mdf', MOVE N'kscenter_log' TO N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\copy_pkf_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_060656_2956091.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_070508_6239334.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_080726_4007533.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_090501_7586714.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_100501_8254254.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_110501_4241802.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_120501_1635663.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
RESTORE LOG [copy_pkf] FROM DISK = N'D:\!sqldata!\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\kscenter\kscenter_backup_2014_07_13_130507_6688805.trn' WITH FILE = 1, NOUNLOAD, STATS = 10, STOPAT = N'2014-07-13T12:39:19'
GO
Автор: bigsloth
Дата сообщения: 14.07.2014 12:04
Serg0FFan
'S:\!sqlback!\1c_actual\kscenter.bak' - это вы его откуда взяли? Судя по ошибке - это последний полный бэкап, а не вчерашний. На последний бэкап вы, конечно, не сможете "накатить" старые бэкапы логов. Используйте kscenter_backup_2014_07_13_030241_1441105.bak (имя взял с вашего последнего скриншота).
Автор: Serg0FFan
Дата сообщения: 14.07.2014 12:24
bigsloth
хм, а откуда интересно система берет его в таком случае? %) Скрипт создаётся автоматом... Но за мысль спасибо! Терепь бы разобраться почему менеджмент студио имя файла не то подставляет...

Добавлено:
bigsloth
Все, разобрался в источнике ошибки! Спасибо!
Оказывается вот почему:
в системе есть два бекапа баз, 1 бекап делается средствами самого SQL сервера, с помощью заданий. В 3 ночи 1го числа полная копия, в 3:30 каждый день - разностная, в течении каждого часа копия лога транзакций. Причем все это сохраняется по пути T:\devices\kscenter (кидал ранее скриншот с содержимым). Второй бекап делается в 6 утра, каждый день с помощью виндового планировщика, выполняется скрипт, который сохраняет базы в папку на том же сервере но по адресу S:\!sqlback!\1c_actual

Код: @sqlcmd -Usa -Pпароль -i C:\Bin\1c\2\sqlscript.sql -o C:\Bin\1c\logs\dumps.log
Автор: bigsloth
Дата сообщения: 14.07.2014 12:42
Serg0FFan
Самое простое - не пользоваться мастером для восстановления. Используйте скрипт, который у вас уже есть. Просто на другие даты заменять имена файлов (ну и дописать пару строк, если на более позднее время нужно будет восстановиться).
Автор: Serg0FFan
Дата сообщения: 14.07.2014 12:49
bigsloth
я вот думаю, а если на 3 часа перенести второе задание, а потом за ним уже, в 4 скажем, пустить задание которое в плане обслуживания? Тогда по идее цепочка должна быть правильной. Пробовал сейчас заменить имя полного бекапа, опять выдало ошибку. Видимо лог "связан" с бекапом который делается в папку S:\!sqlback!\1c_actual а не с тем с чем нужно - бекапом из папки T:\devices\kscenter

Добавлено:
bigsloth
мысль сейчас родилась, а нету ли у sqlcmd параметров каких то, которые бы указывали что это просто палная копия ни с какими другими не связанная? Чтобы система (SQL) не пытался её использовать нигде как это получилось в моём случае?

Добавлено:
bigsloth
нет, наверное это все же не параметром можно регулировать, а в самом файле скрипта что то дописать надо, вот только что именно?
Автор: bigsloth
Дата сообщения: 14.07.2014 12:56
Serg0FFan
1) нет, полный бэкап в sql server 2005, 2008 и т.д. не разрывает цепочку восстановления. Я проглядел - в вашем скрипте перечисление бэкапов лога начинается с 6 утра, а должно с 3 (судя по скриншоту с бэкапами). Т.е. вам надо после восстановления полного бэкапа добавить ещё 3 инструкции restore log на 3, 4 и 5 часов последовательно.

2) есть возможность дописать WITH COPY_ONLY (актуально для бэкапов лога обычно), может быть поможет, но я не уверен.
Автор: Serg0FFan
Дата сообщения: 14.07.2014 13:16
bigsloth
Спасибо за помощь и за
Цитата:
WITH COPY_ONLY
, все поправил, через пару дней проверю
Автор: Serg0FFan
Дата сообщения: 15.07.2014 08:41
bigsloth
проверил сейчас восстановление, пытался восстановиться на вчерашний день на 15:30, все окей, все восстановилось, одно маленькое "но" не критичное осталось. Почему то ставит галку на полной копии и на копии лога транзакции сделаной в 16:05, а вот всю цепочку начиная с полной копии и до предпоследнего не выделила - по-русски если, то галки поставила на первой копии и последней в цепочке. Ессно при таких настройках при восстановлении вылетела ошибка. Указал всю цепочку последовательно и все восстановилось замечательно Завтра еще попробую, мало ли.
Автор: bigsloth
Дата сообщения: 15.07.2014 09:38
Serg0FFan
хорошо, что заработало, но я бы всё равно делал восстановление вручную (скриптом), не доверяю wizard'ам
Автор: Serg0FFan
Дата сообщения: 15.07.2014 10:58
bigsloth
ну можно в визарде сделать скрипт и уже его выполнять Я вручную не умею Больше чем установить/настроить SQL сервер моих знаний не хватает, потому все через визард.
Автор: Serg0FFan
Дата сообщения: 16.07.2014 09:03
bigsloth
все окей, все работает, спасибо за помощь!!!
Автор: elite128
Дата сообщения: 24.07.2014 16:08
Как уменьшить длину поля столбца в одной из таблиц? (См скрин)

http://joxi.ru/wwTRU4wyTJCiLjUHgPs

длину столбца SettingsKey нужно уменьшить с 256 до 44 (данных длинее 44 нет)
меняю в SQL Studio, но затем не могу сохранить
SQL 2008 R2
Автор: vikkiv
Дата сообщения: 24.07.2014 17:42
elite128
А что пишет когда отказывается сохранять изменения? Может права доступа? Или Locked? Или запрет на пересоздание таблицы при изменении (типа drop and recreated если верно помню, там в настройках SSMS можно дать разрешение)?
Можешь попробовать вот так:
alter table _SystemSettings alter column _SettingsKey nvarchar(44) not null
Только копию DB сделай прежде чем изменения вносить..
----
кстати nvarchar(xx) насколько помню и не резервирует полную (максимальную) длинну, nchar(хх) делает такое (или text)
можешь n убрать если там только латиница будет (сократит объём в 2 раза) .. оставить varchar(44)
Автор: elite128
Дата сообщения: 25.07.2014 11:48
Сорь, не силен в SQL
Пишет

http://joxi.ru/fRnSU4wyTJC6Lt1XCA0

Каким образом вообще это делать? последовательность действий? Перевести базу в автономный режим? Где поставить разрешения?

Это база 1С, которая не загружается в файловый вариант, потому что создает большое количество индексов, и судя по всему именно по этой таблице
Автор: vikkiv
Дата сообщения: 25.07.2014 16:53
elite128 это должно решить проблему запрета сохранения через настройки SSMS: http://i.stack.imgur.com/4yzcy.png
Автор: elite128
Дата сообщения: 30.07.2014 09:28

Цитата:
elite128 это должно решить проблему запрета сохранения через настройки SSMS: http://i.stack.imgur.com/4yzcy.png

UPD
нашел где это

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Измерение скорости сети LAN - все программы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.