Ошибка: выполнение внешнего сценария завершилось неудачно, так как среда расширения еще не готова в Sql 2016 с установленной службой R.

Я устанавливаю R-service в SQL 2016 Developer Edition, проверяю установку и получаю следующий отчет от инструмента установки:

Установленные компоненты SQL 2016, включая службу R

Чтобы протестировать службу R, я запускаю следующий скрипт:

    sp_configure 'external scripts enabled', 1;  
    RECONFIGURE; 
    go

    exec sp_execute_external_script  @language =N'R',    
    @script=N'OutputDataSet<-InputDataSet',      
    @input_data_1 =N'select 1 as hello'    
    with result sets (([hello] int not null));    
    go  

И получите следующую ошибку:

 Msg 39025, Level 16, State 1, Server WIN10, Line 1
 External script execution failed as extensibility environment is not ready yet. Retry the operation when the server is fully started.

 Msg 11536, Level 16, State 1, Server WIN10, Line 14
 EXECUTE statement failed because its WITH RESULT SETS clause specified 1    result set(s), but the statement only sent 0 result set(s) at run time.

Я установил обновление SQL Server 2016
Обновление SQLServer2016-KB3164674-x64

Я выполнил шаги, описанные в сообщении: SQL 2016 RC3 R Services Error и r-in-sql-server-2016, но ошибка все еще существует

Как вы видите на рисунке, служба R отображается как Не настроена, несмотря на то, что я выполнил скрипт:

  sp_configure 'external scripts enabled', 1;  
  • Как настроить R-Service, чтобы отчеты отображались корректно.
  • Как решить вышеуказанную ошибку.

Обновление:

На основании ответа "Умачандар - Microsoft":

SQL Server 2016 работает на Windows 10.

Я проверил журнал ошибок SQL и нашел следующие ошибки:

 Unknown,SQL failed to boot extensibility for error code 0xa.
 Unknown,Error: 39002<c/> Severity: 16<c/> State: 1.

Кроме того, я обнаружил ту же ошибку расширения в событии приложения Windows 10:

 Log        Windows NT (Application)
 Source     MSSQLSERVER
 Category       (2)
 Event      39002
 Computer       xxxx
 Message
 SQL failed to boot extensibility for error code 0xa.

Обновление 2:

Теперь это работает после применения процедур в ответе и комментариях Умачандара - Microsoft.

  • Модифицированный rlauncher.config в папке E:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn

    WORKING_DIRECTORY=c:\ExtensibilityData
    
  • Используя инструмент Junction, запустите скрипт:

    junction64.exe c:\ExtensibilityData "E:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\ExtensibilityData"
    
  • Перезапустите службу: MSSQLLaunchpad.

  • Выполнение скрипта sql в моем посте возвращает 1

Большое спасибо Umachandar - Microsoft за советы и поддержку.


person M.Hassan    schedule 19.09.2016    source источник
comment
У меня возникла аналогичная проблема, которую я смог решить, установив последнее накопительное обновление CU3 на SQL Server 2017.   -  person Eralper    schedule 08.02.2018


Ответы (1)


Сообщение об ошибке указывает на то, что SQL Server не удалось загрузить среду расширения во время запуска службы.

Вы используете Windows 10? Можете ли вы проверить журнал ошибок SQL на наличие ошибок? Например, проверьте следующую ошибку:

SQL не удалось загрузить расширяемость из-за кода ошибки 0x%lx

И любая ошибка, в которой упоминается Launchpad или расширяемость. Вы также можете отправить мне по электронной почте журнал ошибок SQL, и я посмотрю.

--

Сообщение об ошибке указывает на то, что службы R Services не были успешно установлены при установке RTM. Вы можете использовать следующий обходной путь, чтобы перевести систему в рабочее состояние:

  1. Сначала объедините ключи реестра из этого поста на компьютере с SQL Server (если вы установили SQL Server как именованный экземпляр, вам необходимо обновить MSSQL13.MSSQLSERVER, чтобы он соответствовал вашей установке)
  2. Удалите CU2 (это можно сделать из панели управления в разделе «Просмотр установленных обновлений»).
  3. Запустите программу установки SQL Server из панели управления и удалите функцию «Службы R (в базе данных)».
  4. Запустите установку SQL Server из-под контроля и снова добавьте функцию «R Services (In-Database)» в свой экземпляр.
  5. При необходимости примените CU2

--

Ключ реестра №1

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\SRO]
"SRO_1"="3.2.2.803"
"SRO_2"="3.2.2.12000"

Ключ реестра № 2

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\SRS]
"SRS_1"="8.0.3"
"SRS_2"="8.0.3.12000"
person Umachandar - Microsoft    schedule 26.09.2016
comment
Спасибо за ответ. Я использую Windows 10 и обнаружил ошибку расширения. Я обновил свой вопрос с этой информацией. - person M.Hassan; 27.09.2016
comment
См. обходной путь, который я опубликовал, для шагов по устранению проблемы. - person Umachandar - Microsoft; 27.09.2016
comment
Я применил все шаги, и проблема частично решена. Служба R (в базе данных) настроена правильно, и MSSQLLaunchpad запущен. При попытке выполнить сценарий sql в моем сообщении я получаю следующую ошибку: Невозможно связаться со средой выполнения для сценария «R». Пожалуйста, проверьте требования среды выполнения «R». Сообщения STDERR из внешнего скрипта: Неустранимая ошибка: невозможно создать «R_TempDir». Я открыл страницу: support.microsoft.com/en-us/kb/3103286, но не могу помочь. Как решить новую проблему? - person M.Hassan; 28.09.2016
comment
Кстати, я применил обновление: SQLServer2016-KB3164674-x64. Я загружу новое обновление CU2. Может ли это обновление решить проблему создания «R_TempDir»? - person M.Hassan; 28.09.2016
comment
Проблема с R_TempDir возникает из-за того, что на томе не включена генерация имени 8dot3. См. ссылку msdn.microsoft.com/en-us/library/mt653951.aspx. и служба панели запуска раздела не может быть запущена. Одним из возможных обходных путей без переустановки является использование инструмента sysinternals JUNCTION.EXE для создания каталога (D:\RTemp), сопоставленного с каталогом ExtensiblityData. Затем вы можете изменить файл RLauncher.config, чтобы он указывал на каталог D:\RTemp. Я бы рекомендовал установить свойство 8dot3name для тома, удалить R-Services и установить. - person Umachandar - Microsoft; 28.09.2016
comment
Большое спасибо, теперь это работает после применения вашего последнего комментария. Я обновляю свой пост с подробностями. - person M.Hassan; 28.09.2016