AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.12.2021, 23:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,644 / 848 (80) +++++++
Регистрация: 28.10.2006
PowerShell and SQL scripts for Database Refreshing in a Devbox
Источник: http://alexvoy.blogspot.com/2021/12/...-database.html
==============

Say you created a new database AxDB_TEST2 and restored a test environment backup there.

Now you need to change the databases names so that D365FO would target a restored data.

First, you need to stop D365FO services, for example, with a similar PowerShell script.



function StopD365RelevantService()
{
$services = "DynamicsAxBatch","Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe","MR2012ProcessService","LCSDiagnosticClientService"
foreach ($item in $services)
{
Set-Service -Name $item -StartupType Disabled
}
Stop-Service -Name Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe -ErrorAction SilentlyContinue
Stop-Service -Name DynamicsAxBatch -ErrorAction SilentlyContinue
Stop-Service -Name W3SVC -ErrorAction SilentlyContinue
Stop-Service -Name MR2012ProcessService -ErrorAction SilentlyContinue
Stop-Service -Name LCSDiagnosticClientService -ErrorAction SilentlyContinue

Set-Service -Name W3SVC -StartupType Automatic
}









Then you can use the following SQL script to 'exchange' two databases.



use master
ALTER DATABASE AxDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE AxDB MODIFY NAME = AxDB_ORIG
ALTER DATABASE AxDB_ORIG SET MULTI_USER

ALTER DATABASE AxDB_TEST2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE AxDB_TEST2 MODIFY NAME = AxDB
ALTER DATABASE AxDB SET MULTI_USER



Once it is done, get the services back to life



function StartD365RelevantService()
{
#Set-Service -Name "DynamicsAxBatch","Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe","W3SVC","MR2012ProcessService" -StartupType Automatic
$services = "DynamicsAxBatch","Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe","W3SVC","MR2012ProcessService","LCSDiagnosticClientService"
foreach ($item in $services)
{
Set-Service -Name $item -StartupType Automatic
}
#Set-Service -Name 'DynamicsAxBatch' -StartupType Automatic
Start-Service -Name Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.exe -ErrorAction SilentlyContinue
Start-Service -Name DynamicsAxBatch -ErrorAction SilentlyContinue
Start-Service -Name W3SVC -ErrorAction SilentlyContinue
Start-Service -Name MR2012ProcessService -ErrorAction SilentlyContinue
Stop-Service -Name LCSDiagnosticClientService -ErrorAction SilentlyContinue
}





Источник: http://alexvoy.blogspot.com/2021/12/...-database.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 17.12.2021, 12:38   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Спасибо, отличный скрипт, чтобы избежать некоторого ручного труда Правда, вспоминается при этом фраза из м/ф "Простоквашино" в эпизоде про фотоохоту на зайца:
Цитата:
Ты теперь еще за ним полдня бегать будешь - чтобы фотографию отдать...
Собственно, а почему бы тут не развить тему автоматизации переноса транзакционной базы D365FO между средами? Кто что еще вспомнит?
  • SID вашего пользователя и вообще наличие пользователя в базе. Допустим на минуточку, что тестовая среда и DevBox относятся к разным tenant-ам. Тогда даже при наличии "своей" учетки в принесенной базе, в таблице UserInfo, и наличии админской роли зайти в D365FO, скорее всего, не получится, потому что в другом тенанте у этой учетки будет другой SID. Тогда понадобится обновить провайдера и SID (если не хотим каждый раз гонять AdminUserProvisioning).
  • Зашифрованные строки подключения к ПБД из Data Management (Workspaces / Data Management / Configure entity export to database) надо заводить заново, потому что сертификат для шифрования данных вы вместе с базой, скорее всего, в свой DevBox не перенесли.
  • Зашифрованные пароли пользователя для некоторых типов источников DMF (Workspaces / Data Management / Configure datasource) слетели по той же причине.
  • Зашифрованный пароль для аутентификации на SMTP-сервере (System administration / Setup / Email / Email parameters / SMTP settings) слетел по той же причине.
  • Зашифрованные строки подключения для провайдеров валютных курсов (General ledger / Currencies / Configure exchange rate providers) слетели по той же причине.
  • Регистрации приложений AAD (System administration / Setup / Azure Active Directory applications), используемые при вызове извне сервисов D365FO, вероятно, потребуют изменений, если только в регистрациях для тестовой среды не был прописан URL вашей DevBox
  • Еще бы я лично выполнил truncate table для DatabaseLog, EventCUD, EventCUDLines, EventInbox, EventInboxData, SecurityObjectHistory, SysLastValue, SysClientSessions, SysServerSessions, SysSkipDatabaseLog, SysUserLog, а также для всяких там ParmLine/ParmTable/ParmUpdate-таблиц
Это вот из того, что вспомнилось и не имеет какой-то проектной специфики.

PS. а службу MR я в DevBox обычно отключаю - она только зазря ресурсы жрет и базу грузит
За это сообщение автора поблагодарили: sukhanchik (20), Logger (15).
Старый 17.12.2021, 15:43   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
А чем кстати не устроили d365fo.tools?

Т.е. многое из описанного в нем есть
https://github.com/d365collaborative...pac-Into-Tier1
За это сообщение автора поблагодарили: sukhanchik (10), gl00mie (3).
Старый 20.12.2021, 18:28   #4  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Цитата:
Сообщение от trud Посмотреть сообщение
А чем кстати не устроили d365fo.tools?
Вот мои скрипты которые построены на базе d365fo.tools

https://github.com/valerymoskalenko/...rShell-scripts
Старый 20.12.2021, 18:32   #5  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Цитата:
Сообщение от gl00mie Посмотреть сообщение
PS. а службу MR я в DevBox обычно отключаю - она только зазря ресурсы жрет и базу грузит
Это в две стандартных команды

Код:
#region Stop and Disable Management Reporter Service <--
Write-Host "Stop and Disable Management Reporter Service (Optional)" -ForegroundColor Yellow
Write-Host "..Stopping and Disabling Management Reporter Service" -ForegroundColor Yellow
Stop-Service -Name MR2012ProcessService -Force
Set-Service -Name MR2012ProcessService -StartupType Disabled
#endregion Stop and Disable Management Reporter Service -->
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
msdynamicsworld: Azure Insights: ExpressRoute architecture; Arc-enabled SQL servers; Service Principal and PowerShell querying Blog bot DAX Blogs 0 19.10.2020 00:17
D365FO - Как обновить изображение баннера в юридическом лице используя SQL и PowerShell MarinaAX DAX: Администрирование 8 22.10.2018 22:06
jaestevan: PowerShell para la administración automática de Dynamics AX 2012 (PS-II) Blog bot DAX Blogs 0 28.06.2016 17:11
waldo: Invoke-NAVSQL: Execute SQL queries on NAV databases with PowerShell Blog bot NAV: Blogs 0 08.06.2016 03:17
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM and SQL Server 2012 - Better Together Blog bot Dynamics CRM: Blogs 0 08.03.2012 04:32

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:55.