Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с запросом в джобе
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть база на проде, есть тестовый сервер на котором каждую ночь база должна перезаписываться свежей версией прода. Данные по последний бекапом собираются отдельным заданием в таблицу, линкед сервер есть. Проблема возникает на этапе восстановления. Запуск процедуры просто из окна нового запроса работает, полученный с помощью print текст из джоба работает, а вот такой же запуск процедуры с параметрами из джоба падает с ошибкой. User does not have permission to alter database 'Test_DB', the database does not exist, or the database is not in a state that allows access checks. [SQLSTATE 42000] (Error 5011) ALTER DATABASE statement failed. [SQLSTATE 42000] (Error 5069) Database 'Test_DB' does not exist. Make sure that the name is entered correctly. [SQLSTATE 08004] (Error 911). The step failed. Права у у\з и в SQL Server и на папку есть, база в состояние ресторинг не переходит. Пока больше похоже, что в скрипте плохо задал разбивку на этапы и сам шаг рестора почему-то из джоба пропускает. Просьба подсказать, что задал в скрипте неверно. Код: sql 1. 2. Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2019, 11:56 |
|
||
|
Проблема с запросом в джобе
|
|||
|---|---|---|---|
|
#18+
Поставьте якоря в виде принтов или seleсt чтобы определить где затык. Судя по коду в переводите в Single режим а дальше пытаетесь восстанавливать и вам не дается это. Попробуйте сделать в одной команде этот код, либо дропайте бд и восстаналивайте с указанием путей а не перезаписывая. IF Exists (select name from sys.databases where name = @newdbname) Begin SET @sql = 'USE [master]; ALTER DATABASE ' + @newdbname + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE;' exec sp_executesql @sql END BEGIN SET @sql = 'USE [master]; RESTORE DATABASE ' + @newdbname + ' FROM DISK = N''' + @full_bkp_path + ''' WITH FILE = 1, MOVE N''' + @LnameData + ''' TO N''C:\SQL\' + @newdbname + '.mdf'', MOVE N''' + @LnameLog + ''' TO N''C:\SQL\' + @newdbname + '_log.ldf'', NOUNLOAD, NORECOVERY, REPLACE, STATS = 5; ' + @diff_sql + ' RESTORE DATABASE ' + @newdbname + ' WITH RECOVERY;' exec sp_executesql @sql END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2019, 14:31 |
|
||
|
Проблема с запросом в джобе
|
|||
|---|---|---|---|
|
#18+
Slava_Nik, Не, проблема вроде не в сингл юзере. Для варианта, где нет базы посмотрел код - там части про перевод нет, что правильно. А дальше пропускается часть с восстановлением и идут ошибки по переводу несуществующей базы в симпл, добавление пользователя. Вот код, при отсутствии БД. И сейчас выдало ошибку сразу. Нужно как-то принудительно разделить части USE [master]; ALTER DATABASE test_res и SET MULTI_USER; USE test_res; Помогает добавление GO, но он для других целей в процедуре вроде не работает. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2019, 16:02 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1688113]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 330ms |

| 0 / 0 |
