Sitecore Migration은 사이트코어의 새로운 버전이 나올때마다, 개발자 또는 설계자들은 "어떻게 하면 가장 쉽고 안정적인 방식으로 데이타의 손실없이 Migration을 할수가 있을까?"가 첫번째의 과제이다. 그 다음으로는 기존에 사용하였던 방식 또는 설정들이 얼마나 새로운 버전에서 잘 호환되고 작동되는지를 눈여겨 봐야한다.
이번 포스트는 필자가 생각하는 데이터의 손실없이 가장 손 쉬운 방법으로 Migration하는것에 대하여 알아보도록 하겠다.
먼저, 이전에 사용해보았던, Sitecore Azure ToolKit은 Sitecore Azure Deployment의 목정으로써, Sitecore On-Prem Instance를 Azure Cloud로 Deploy를 할수가 있다. 패키지를 Powershell Script을 통하여 만드는데, 작업 시스템의 환경에 땨라 제한이 있을수 있다. (필자의 경우, 시스템에서 2GB의 패키지 제한이 있어, 기존 데이타를 포함 약 6GB에 해당되는 Sitecore Instance를 패키지하기에는 한계가 있었다.) 이로, 새로운 방법으로 Sitecore에서 추천한 SSMS (SQL Server Management Studio)을 사용하는것이다. SSMS에서 Azure SQL를 컨넥하고, 백업된 DB를 Import하는 방식인데, 이 역시 기존 Master DB의 테이블들을 백업하는데 무리가 있었다.
그래서 결론은 Data Migration Assistant (DMA).
DMA는 Microsoft에서 오피셜로 제공하며, 이는 기존 DB (Source)를 다른 DB (Target)으로 분석 및 검증과 함께 데이타베이스를 Migration할수가 있다. 아래는 필자가 DMA를 사용하여 Sitecore Migration을 한 진행과정을 나열하였다.
- 로컬머신에 Azure에 존재하는 같은 버전의 Sitecore Instance를 설치한다.
- SSMS에서 Azure SQL의 Master DB를 컨넥하고, 아래의 Statement를 적용하여 해당 테이블의 데이터를 모두 삭제한다. (반드시, 기존의 데이터는 백업을 미리해둔다.)
truncate table AccessControl; truncate table Archive; truncate table ArchivedFields; truncate table ArchivedVersions; truncate table ArchivedItems; truncate table Blobs; truncate table ClientData; truncate table Descendants; truncate table EventQueue; truncate table History; truncate table IDTable; truncate table Links; truncate table Notifications; truncate table Properties; truncate table PublishQueue; truncate table SharedFields; truncate table Tasks; truncate table UnversionedFields; truncate table VersionedFields; truncate table WorkflowHistory; truncate table Items;
- DBA에서 소스/타켓 데이타베이스를 정하고, Migration을 시작한다.
- FTP를 통하여 Azure App Service에 연결하고, Custom 어플리케이션 또는 Config 파일들을 매뉴얼로 복사한다. (CMS / CDS if needs)
- Azure에서 App Service를 Restart한다.
- Sitecore CMS에 로그인하여 잘 작동(?)되는지 확인한다.
- Master DB만 Migration을 한 관계로, 혹 Core DB에서 Custom 업데이트가 있다면 사이트코어 CMS에서 패키지를 만들어 인스톨한다.
- 사이트코어 컨트롤 패널에서 "Clean up Databases"를 실행한다.
- 사이트코어 컨트롤 패널에서 "Rebuild Link DB"를 실행한다.
- 사이트코어 컨트롤 패널에서 "Rebuild Indexes"를 실행한다.
- 사이트코어 컨트롤 패널에서 "Deploy Marketing Definitions"을 실행한다.
- 사이트코어 컨트롤 패널에서 "Rebuild Link DB"를 실행한다.
- "Publish the site"를 통하여 Web DB로 컨텐츠를 Publish 한다.
DBA를 통하여 사이트코어 Migration을 하는데 아무런 문제없이 잘 진행될수있었다.