diff --git a/projects/DBETO-4397/Migration Plan.md b/projects/DBETO-4397/Migration Plan copy 3.md similarity index 100% rename from projects/DBETO-4397/Migration Plan.md rename to projects/DBETO-4397/Migration Plan copy 3.md diff --git a/projects/DBETO-4397/Migration_BISSEBLSQLCLU01_blue.md b/projects/DBETO-4397/Migration_BISSEBLSQLCLU01_blue.md new file mode 100644 index 0000000..fe08cdf --- /dev/null +++ b/projects/DBETO-4397/Migration_BISSEBLSQLCLU01_blue.md @@ -0,0 +1,720 @@ +# SQL Server Failover Cluster Instance (FCI) Migration Runbook +## SQL Server 2016/2019 → SQL Server 2022 FCI + +**Document Version:** 1.0 +**Migration Type:** Side-by-Side Cluster Migration +**Source Cluster:** BISSEBLSQLCLU01_blue +**Target Cluster:** _________________ +**Migration Date:** _________________ +**DBA Lead:** _________________ +**Windows Lead:** _________________ +**Business Owner:** _________________ + +--- + +# 1. Discovery Phase + +## 1.1 Existing Windows Cluster + +### Cluster Inventory + +- [ ] Cluster Name +- [ ] Cluster Nodes +- [ ] Cluster Networks +- [ ] Cluster Quorum Type +- [ ] Witness Configuration +- [ ] Cluster Functional Level +- [ ] Patching Level + +### Cluster Validation + +```powershell +Get-Cluster +Get-ClusterNode +Get-ClusterNetwork +Get-ClusterQuorum +``` + +- [ ] Validation report collected +- [ ] No unresolved cluster issues +- [ ] Failover history reviewed + +--- + +# 2. SQL Server Inventory + +## SQL Instance + +```sql +SELECT @@VERSION; +``` + +- [ ] SQL Version +- [ ] SQL Edition +- [ ] SQL CU/SP Level +- [ ] Instance Name +- [ ] Cluster Name +- [ ] Collation +- [ ] Authentication Mode +- [ ] Max Server Memory +- [ ] MaxDOP +- [ ] Cost Threshold +- [ ] TempDB Configuration +- [ ] Startup Parameters +- [ ] Trace Flags + +--- + +# 3. Database Inventory + +For each database: + +- [ ] Name +- [ ] Data Size +- [ ] Log Size +- [ ] Recovery Model +- [ ] Compatibility Level +- [ ] Owner +- [ ] TDE Enabled +- [ ] CDC Enabled +- [ ] Replication +- [ ] Service Broker +- [ ] FullText +- [ ] CLR +- [ ] FILESTREAM +- [ ] Query Store + +--- + +# 4. Instance Objects Inventory + +## Security + +- [ ] SQL Logins +- [ ] Windows Logins +- [ ] Server Roles +- [ ] Server Permissions +- [ ] Credentials +- [ ] Certificates +- [ ] Endpoints + +--- + +## SQL Agent + +- [ ] Jobs +- [ ] Schedules +- [ ] Operators +- [ ] Alerts +- [ ] Proxies + +--- + +## Integrations + +- [ ] Linked Servers +- [ ] Linked Server Login Mappings +- [ ] Database Mail +- [ ] SSIS Packages +- [ ] Maintenance Plans +- [ ] PowerShell Scripts +- [ ] Scheduled Tasks +- [ ] ODBC DSN + +--- + +# 5. New Cluster Build + +## Windows Server + +### Node 1 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Node 2 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Common Configuration + +- [ ] Same patch level +- [ ] Same time zone +- [ ] Antivirus exclusions +- [ ] Firewall rules +- [ ] Monitoring agent installed + +--- + +# 6. Storage Preparation + +## Shared Storage + +### Data + +- [ ] Presented to all nodes + +### Logs + +- [ ] Presented to all nodes + +### TempDB + +- [ ] Presented to all nodes + +### Backups + +- [ ] Presented to all nodes + +### Quorum + +- [ ] Configured + +--- + +## Storage Validation + +- [ ] MPIO configured +- [ ] Latency tested +- [ ] Throughput tested +- [ ] NTFS 64K Allocation Unit + +--- + +# 7. Build Windows Cluster + +## Install Features + +```powershell +Install-WindowsFeature Failover-Clustering -IncludeManagementTools +``` + +- [ ] Installed on Node1 +- [ ] Installed on Node2 + +--- + +## Cluster Validation + +```powershell +Test-Cluster +``` + +- [ ] Network validation passed +- [ ] Storage validation passed +- [ ] System validation passed + +--- + +## Create Cluster + +```powershell +New-Cluster +``` + +- [ ] Cluster created +- [ ] Cluster name online +- [ ] Cluster IP online +- [ ] Witness configured + +--- + +# 8. Install SQL Server 2022 FCI + +## Node 1 + +### Installation + +```text +New SQL Server Failover Cluster Installation +``` + +- [ ] SQL Engine installed +- [ ] SQL Agent installed +- [ ] FullText installed +- [ ] Instance name configured +- [ ] Virtual SQL Name configured +- [ ] SQL IP configured + +--- + +## Node 2 + +### Add Node + +```text +Add Node to Existing SQL Server Failover Cluster +``` + +- [ ] Node added successfully +- [ ] SQL Services online + +--- + +## Patch SQL + +- [ ] Latest approved CU installed +- [ ] Identical build on both nodes + +--- + +# 9. Cluster Validation + +## SQL Resource + +```powershell +Get-ClusterGroup +``` + +- [ ] SQL Group Online + +### Failover Test + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +Node2 → Node1 + +- [ ] Successful + +### SQL Validation + +```sql +SELECT +SERVERPROPERTY('ComputerNamePhysicalNetBIOS'); +``` + +- [ ] Correct owner node reported + +--- + +# 10. Migrate Instance Objects + +## Logins + +- [ ] SQL Logins +- [ ] SID preserved +- [ ] Roles preserved +- [ ] Permissions preserved + +--- + +## Linked Servers + +- [ ] Linked Servers migrated +- [ ] Passwords restored +- [ ] Connectivity tested + +--- + +## SQL Agent + +- [ ] Jobs imported +- [ ] Schedules imported +- [ ] Operators imported +- [ ] Alerts imported +- [ ] Proxies imported + +**Do not enable jobs yet.** + +--- + +## Database Mail + +- [ ] Accounts migrated +- [ ] Profiles migrated +- [ ] Test mail successful + +--- + +# 11. Restore Testing + +## Backup + +```sql +BACKUP DATABASE +``` + +- [ ] Completed + +--- + +## Verify + +```sql +RESTORE VERIFYONLY +``` + +- [ ] Successful + +--- + +## Restore + +```sql +RESTORE DATABASE +``` + +- [ ] Successful + +--- + +## CHECKDB + +```sql +DBCC CHECKDB +``` + +- [ ] Successful + +--- + +# 12. Cutover Readiness + +## Frozen Changes + +- [ ] No schema changes +- [ ] No new jobs +- [ ] No new logins +- [ ] No application releases + +--- + +## Stakeholders + +- [ ] Business Owner ready +- [ ] Application Owner ready +- [ ] DBA ready +- [ ] Windows Team ready + +--- + +## Rollback Prepared + +- [ ] Rollback approved +- [ ] Source cluster untouched +- [ ] Backups validated + +--- + +# 13. Production Cutover + +## Start Change + +- [ ] Open bridge call +- [ ] Notify stakeholders + +--- + +## Source System + +### Disable Jobs + +- [ ] Disable SQL Agent jobs + +### Stop Applications + +- [ ] Stop application services + +### Stop ETL + +- [ ] Stop ETL jobs + +--- + +## Final Backup + +### Full + +```sql +BACKUP DATABASE +``` + +### Log + +```sql +BACKUP LOG +``` + +### Verify + +```sql +RESTORE VERIFYONLY +``` + +--- + +# 14. Restore Production Databases + +### Full Backup + +```sql +RESTORE DATABASE +WITH NORECOVERY +``` + +### Log Backups + +```sql +RESTORE LOG +WITH NORECOVERY +``` + +### Recovery + +```sql +RESTORE DATABASE +WITH RECOVERY +``` + +--- + +# 15. Post-Restore Configuration + +## Security + +- [ ] Logins verified +- [ ] Credentials verified +- [ ] Certificates installed + +--- + +## Agent + +- [ ] Jobs enabled +- [ ] Operators enabled +- [ ] Alerts enabled + +--- + +## Integrations + +- [ ] Linked Servers tested +- [ ] Database Mail tested +- [ ] SSIS tested + +--- + +# 16. Application Cutover + +## Connection Strings + +- [ ] Updated + +OR + +## DNS Alias + +- [ ] Updated + +OR + +## SQL Alias + +- [ ] Updated + +--- + +## Validation + +- [ ] Login works +- [ ] Read operations work +- [ ] Write operations work + +--- + +# 17. Smoke Testing + +## Database Checks + +```sql +SELECT +name, +state_desc +FROM sys.databases +``` + +- [ ] All databases ONLINE + +--- + +## SQL Agent + +- [ ] Agent running + +--- + +## Backups + +- [ ] Backup path reachable + +--- + +## Database Mail + +- [ ] Test email successful + +--- + +# 18. Failover Validation + +## Manual Failover + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +## Manual Failback + +Node2 → Node1 + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +# 19. Rollback + +## Rollback Criteria + +- [ ] Critical application failure +- [ ] Data inconsistency +- [ ] Login failures +- [ ] Cluster instability +- [ ] Critical ETL failure +- [ ] Unacceptable performance + +--- + +## Rollback Actions + +### Stop Target + +- [ ] Stop Applications +- [ ] Disable Jobs + +### Revert Connections + +- [ ] Restore source connection strings +- [ ] Restore source DNS + +### Reactivate Source + +- [ ] Enable source jobs +- [ ] Enable source applications + +### Validation + +- [ ] Login works +- [ ] Read works +- [ ] Write works + +--- + +# 20. Post Migration Validation + +## First 24 Hours + +- [ ] SQL Error Logs +- [ ] Windows Event Logs +- [ ] Cluster Logs +- [ ] Backup Jobs +- [ ] Application Logs +- [ ] Monitoring Alerts + +--- + +## First 7 Days + +- [ ] Database Growth +- [ ] CPU Usage +- [ ] Memory Usage +- [ ] Wait Statistics +- [ ] Blocking Events +- [ ] Backup Success + +--- + +## Decommission Source Cluster + +Only after sign-off. + +- [ ] Business Approval +- [ ] Application Approval +- [ ] DBA Approval +- [ ] Backup Validation +- [ ] Monitoring Validation + +### Final Tasks + +- [ ] Update CMDB +- [ ] Update Documentation +- [ ] Archive Backup +- [ ] Disable Source SQL +- [ ] Remove Source Cluster + +--- + +# FCI DBA Killer Checklist + +Najczęściej zapominane elementy: + +- [ ] SQL Agent Schedules +- [ ] SQL Agent Proxies +- [ ] Linked Server Passwords +- [ ] TDE Certificates +- [ ] Service Accounts +- [ ] SPN Registration +- [ ] Kerberos Delegation +- [ ] ODBC DSN +- [ ] Shared Folders +- [ ] Scheduled Tasks +- [ ] SSIS Packages +- [ ] Database Mail +- [ ] Antivirus Exclusions +- [ ] Backup Jobs +- [ ] Monitoring Configuration +- [ ] TempDB Layout +- [ ] Trace Flags +- [ ] DNS Aliases +- [ ] Cluster Quorum +- [ ] Failover Testing + +--- + +# Migration Success Criteria + +- [ ] Databases ONLINE +- [ ] Applications functional +- [ ] SQL Agent functional +- [ ] Backups functional +- [ ] Monitoring functional +- [ ] Failover tested +- [ ] Failback tested +- [ ] Performance acceptable +- [ ] Business sign-off received \ No newline at end of file diff --git a/projects/DBETO-4397/Migration_BISSEORSQLCLU01_orange.md b/projects/DBETO-4397/Migration_BISSEORSQLCLU01_orange.md new file mode 100644 index 0000000..611b085 --- /dev/null +++ b/projects/DBETO-4397/Migration_BISSEORSQLCLU01_orange.md @@ -0,0 +1,720 @@ +# SQL Server Failover Cluster Instance (FCI) Migration Runbook +## SQL Server 2016/2019 → SQL Server 2022 FCI + +**Document Version:** 1.0 +**Migration Type:** Side-by-Side Cluster Migration +**Source Cluster:** BISSEORSQLCLU01_orange +**Target Cluster:** _________________ +**Migration Date:** _________________ +**DBA Lead:** _________________ +**Windows Lead:** _________________ +**Business Owner:** _________________ + +--- + +# 1. Discovery Phase + +## 1.1 Existing Windows Cluster + +### Cluster Inventory + +- [ ] Cluster Name +- [ ] Cluster Nodes +- [ ] Cluster Networks +- [ ] Cluster Quorum Type +- [ ] Witness Configuration +- [ ] Cluster Functional Level +- [ ] Patching Level + +### Cluster Validation + +```powershell +Get-Cluster +Get-ClusterNode +Get-ClusterNetwork +Get-ClusterQuorum +``` + +- [ ] Validation report collected +- [ ] No unresolved cluster issues +- [ ] Failover history reviewed + +--- + +# 2. SQL Server Inventory + +## SQL Instance + +```sql +SELECT @@VERSION; +``` + +- [ ] SQL Version +- [ ] SQL Edition +- [ ] SQL CU/SP Level +- [ ] Instance Name +- [ ] Cluster Name +- [ ] Collation +- [ ] Authentication Mode +- [ ] Max Server Memory +- [ ] MaxDOP +- [ ] Cost Threshold +- [ ] TempDB Configuration +- [ ] Startup Parameters +- [ ] Trace Flags + +--- + +# 3. Database Inventory + +For each database: + +- [ ] Name +- [ ] Data Size +- [ ] Log Size +- [ ] Recovery Model +- [ ] Compatibility Level +- [ ] Owner +- [ ] TDE Enabled +- [ ] CDC Enabled +- [ ] Replication +- [ ] Service Broker +- [ ] FullText +- [ ] CLR +- [ ] FILESTREAM +- [ ] Query Store + +--- + +# 4. Instance Objects Inventory + +## Security + +- [ ] SQL Logins +- [ ] Windows Logins +- [ ] Server Roles +- [ ] Server Permissions +- [ ] Credentials +- [ ] Certificates +- [ ] Endpoints + +--- + +## SQL Agent + +- [ ] Jobs +- [ ] Schedules +- [ ] Operators +- [ ] Alerts +- [ ] Proxies + +--- + +## Integrations + +- [ ] Linked Servers +- [ ] Linked Server Login Mappings +- [ ] Database Mail +- [ ] SSIS Packages +- [ ] Maintenance Plans +- [ ] PowerShell Scripts +- [ ] Scheduled Tasks +- [ ] ODBC DSN + +--- + +# 5. New Cluster Build + +## Windows Server + +### Node 1 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Node 2 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Common Configuration + +- [ ] Same patch level +- [ ] Same time zone +- [ ] Antivirus exclusions +- [ ] Firewall rules +- [ ] Monitoring agent installed + +--- + +# 6. Storage Preparation + +## Shared Storage + +### Data + +- [ ] Presented to all nodes + +### Logs + +- [ ] Presented to all nodes + +### TempDB + +- [ ] Presented to all nodes + +### Backups + +- [ ] Presented to all nodes + +### Quorum + +- [ ] Configured + +--- + +## Storage Validation + +- [ ] MPIO configured +- [ ] Latency tested +- [ ] Throughput tested +- [ ] NTFS 64K Allocation Unit + +--- + +# 7. Build Windows Cluster + +## Install Features + +```powershell +Install-WindowsFeature Failover-Clustering -IncludeManagementTools +``` + +- [ ] Installed on Node1 +- [ ] Installed on Node2 + +--- + +## Cluster Validation + +```powershell +Test-Cluster +``` + +- [ ] Network validation passed +- [ ] Storage validation passed +- [ ] System validation passed + +--- + +## Create Cluster + +```powershell +New-Cluster +``` + +- [ ] Cluster created +- [ ] Cluster name online +- [ ] Cluster IP online +- [ ] Witness configured + +--- + +# 8. Install SQL Server 2022 FCI + +## Node 1 + +### Installation + +```text +New SQL Server Failover Cluster Installation +``` + +- [ ] SQL Engine installed +- [ ] SQL Agent installed +- [ ] FullText installed +- [ ] Instance name configured +- [ ] Virtual SQL Name configured +- [ ] SQL IP configured + +--- + +## Node 2 + +### Add Node + +```text +Add Node to Existing SQL Server Failover Cluster +``` + +- [ ] Node added successfully +- [ ] SQL Services online + +--- + +## Patch SQL + +- [ ] Latest approved CU installed +- [ ] Identical build on both nodes + +--- + +# 9. Cluster Validation + +## SQL Resource + +```powershell +Get-ClusterGroup +``` + +- [ ] SQL Group Online + +### Failover Test + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +Node2 → Node1 + +- [ ] Successful + +### SQL Validation + +```sql +SELECT +SERVERPROPERTY('ComputerNamePhysicalNetBIOS'); +``` + +- [ ] Correct owner node reported + +--- + +# 10. Migrate Instance Objects + +## Logins + +- [ ] SQL Logins +- [ ] SID preserved +- [ ] Roles preserved +- [ ] Permissions preserved + +--- + +## Linked Servers + +- [ ] Linked Servers migrated +- [ ] Passwords restored +- [ ] Connectivity tested + +--- + +## SQL Agent + +- [ ] Jobs imported +- [ ] Schedules imported +- [ ] Operators imported +- [ ] Alerts imported +- [ ] Proxies imported + +**Do not enable jobs yet.** + +--- + +## Database Mail + +- [ ] Accounts migrated +- [ ] Profiles migrated +- [ ] Test mail successful + +--- + +# 11. Restore Testing + +## Backup + +```sql +BACKUP DATABASE +``` + +- [ ] Completed + +--- + +## Verify + +```sql +RESTORE VERIFYONLY +``` + +- [ ] Successful + +--- + +## Restore + +```sql +RESTORE DATABASE +``` + +- [ ] Successful + +--- + +## CHECKDB + +```sql +DBCC CHECKDB +``` + +- [ ] Successful + +--- + +# 12. Cutover Readiness + +## Frozen Changes + +- [ ] No schema changes +- [ ] No new jobs +- [ ] No new logins +- [ ] No application releases + +--- + +## Stakeholders + +- [ ] Business Owner ready +- [ ] Application Owner ready +- [ ] DBA ready +- [ ] Windows Team ready + +--- + +## Rollback Prepared + +- [ ] Rollback approved +- [ ] Source cluster untouched +- [ ] Backups validated + +--- + +# 13. Production Cutover + +## Start Change + +- [ ] Open bridge call +- [ ] Notify stakeholders + +--- + +## Source System + +### Disable Jobs + +- [ ] Disable SQL Agent jobs + +### Stop Applications + +- [ ] Stop application services + +### Stop ETL + +- [ ] Stop ETL jobs + +--- + +## Final Backup + +### Full + +```sql +BACKUP DATABASE +``` + +### Log + +```sql +BACKUP LOG +``` + +### Verify + +```sql +RESTORE VERIFYONLY +``` + +--- + +# 14. Restore Production Databases + +### Full Backup + +```sql +RESTORE DATABASE +WITH NORECOVERY +``` + +### Log Backups + +```sql +RESTORE LOG +WITH NORECOVERY +``` + +### Recovery + +```sql +RESTORE DATABASE +WITH RECOVERY +``` + +--- + +# 15. Post-Restore Configuration + +## Security + +- [ ] Logins verified +- [ ] Credentials verified +- [ ] Certificates installed + +--- + +## Agent + +- [ ] Jobs enabled +- [ ] Operators enabled +- [ ] Alerts enabled + +--- + +## Integrations + +- [ ] Linked Servers tested +- [ ] Database Mail tested +- [ ] SSIS tested + +--- + +# 16. Application Cutover + +## Connection Strings + +- [ ] Updated + +OR + +## DNS Alias + +- [ ] Updated + +OR + +## SQL Alias + +- [ ] Updated + +--- + +## Validation + +- [ ] Login works +- [ ] Read operations work +- [ ] Write operations work + +--- + +# 17. Smoke Testing + +## Database Checks + +```sql +SELECT +name, +state_desc +FROM sys.databases +``` + +- [ ] All databases ONLINE + +--- + +## SQL Agent + +- [ ] Agent running + +--- + +## Backups + +- [ ] Backup path reachable + +--- + +## Database Mail + +- [ ] Test email successful + +--- + +# 18. Failover Validation + +## Manual Failover + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +## Manual Failback + +Node2 → Node1 + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +# 19. Rollback + +## Rollback Criteria + +- [ ] Critical application failure +- [ ] Data inconsistency +- [ ] Login failures +- [ ] Cluster instability +- [ ] Critical ETL failure +- [ ] Unacceptable performance + +--- + +## Rollback Actions + +### Stop Target + +- [ ] Stop Applications +- [ ] Disable Jobs + +### Revert Connections + +- [ ] Restore source connection strings +- [ ] Restore source DNS + +### Reactivate Source + +- [ ] Enable source jobs +- [ ] Enable source applications + +### Validation + +- [ ] Login works +- [ ] Read works +- [ ] Write works + +--- + +# 20. Post Migration Validation + +## First 24 Hours + +- [ ] SQL Error Logs +- [ ] Windows Event Logs +- [ ] Cluster Logs +- [ ] Backup Jobs +- [ ] Application Logs +- [ ] Monitoring Alerts + +--- + +## First 7 Days + +- [ ] Database Growth +- [ ] CPU Usage +- [ ] Memory Usage +- [ ] Wait Statistics +- [ ] Blocking Events +- [ ] Backup Success + +--- + +## Decommission Source Cluster + +Only after sign-off. + +- [ ] Business Approval +- [ ] Application Approval +- [ ] DBA Approval +- [ ] Backup Validation +- [ ] Monitoring Validation + +### Final Tasks + +- [ ] Update CMDB +- [ ] Update Documentation +- [ ] Archive Backup +- [ ] Disable Source SQL +- [ ] Remove Source Cluster + +--- + +# FCI DBA Killer Checklist + +Najczęściej zapominane elementy: + +- [ ] SQL Agent Schedules +- [ ] SQL Agent Proxies +- [ ] Linked Server Passwords +- [ ] TDE Certificates +- [ ] Service Accounts +- [ ] SPN Registration +- [ ] Kerberos Delegation +- [ ] ODBC DSN +- [ ] Shared Folders +- [ ] Scheduled Tasks +- [ ] SSIS Packages +- [ ] Database Mail +- [ ] Antivirus Exclusions +- [ ] Backup Jobs +- [ ] Monitoring Configuration +- [ ] TempDB Layout +- [ ] Trace Flags +- [ ] DNS Aliases +- [ ] Cluster Quorum +- [ ] Failover Testing + +--- + +# Migration Success Criteria + +- [ ] Databases ONLINE +- [ ] Applications functional +- [ ] SQL Agent functional +- [ ] Backups functional +- [ ] Monitoring functional +- [ ] Failover tested +- [ ] Failback tested +- [ ] Performance acceptable +- [ ] Business sign-off received \ No newline at end of file diff --git a/projects/DBETO-4397/Migration_BISSESQLCLU10_green.md b/projects/DBETO-4397/Migration_BISSESQLCLU10_green.md new file mode 100644 index 0000000..5e55376 --- /dev/null +++ b/projects/DBETO-4397/Migration_BISSESQLCLU10_green.md @@ -0,0 +1,720 @@ +# SQL Server Failover Cluster Instance (FCI) Migration Runbook +## SQL Server 2016/2019 → SQL Server 2022 FCI + +**Document Version:** 1.0 +**Migration Type:** Side-by-Side Cluster Migration +**Source Cluster:** BISSESQLCLU10_green +**Target Cluster:** _________________ +**Migration Date:** _________________ +**DBA Lead:** _________________ +**Windows Lead:** _________________ +**Business Owner:** _________________ + +--- + +# 1. Discovery Phase + +## 1.1 Existing Windows Cluster + +### Cluster Inventory + +- [ ] Cluster Name +- [ ] Cluster Nodes +- [ ] Cluster Networks +- [ ] Cluster Quorum Type +- [ ] Witness Configuration +- [ ] Cluster Functional Level +- [ ] Patching Level + +### Cluster Validation + +```powershell +Get-Cluster +Get-ClusterNode +Get-ClusterNetwork +Get-ClusterQuorum +``` + +- [ ] Validation report collected +- [ ] No unresolved cluster issues +- [ ] Failover history reviewed + +--- + +# 2. SQL Server Inventory + +## SQL Instance + +```sql +SELECT @@VERSION; +``` + +- [ ] SQL Version +- [ ] SQL Edition +- [ ] SQL CU/SP Level +- [ ] Instance Name +- [ ] Cluster Name +- [ ] Collation +- [ ] Authentication Mode +- [ ] Max Server Memory +- [ ] MaxDOP +- [ ] Cost Threshold +- [ ] TempDB Configuration +- [ ] Startup Parameters +- [ ] Trace Flags + +--- + +# 3. Database Inventory + +For each database: + +- [ ] Name +- [ ] Data Size +- [ ] Log Size +- [ ] Recovery Model +- [ ] Compatibility Level +- [ ] Owner +- [ ] TDE Enabled +- [ ] CDC Enabled +- [ ] Replication +- [ ] Service Broker +- [ ] FullText +- [ ] CLR +- [ ] FILESTREAM +- [ ] Query Store + +--- + +# 4. Instance Objects Inventory + +## Security + +- [ ] SQL Logins +- [ ] Windows Logins +- [ ] Server Roles +- [ ] Server Permissions +- [ ] Credentials +- [ ] Certificates +- [ ] Endpoints + +--- + +## SQL Agent + +- [ ] Jobs +- [ ] Schedules +- [ ] Operators +- [ ] Alerts +- [ ] Proxies + +--- + +## Integrations + +- [ ] Linked Servers +- [ ] Linked Server Login Mappings +- [ ] Database Mail +- [ ] SSIS Packages +- [ ] Maintenance Plans +- [ ] PowerShell Scripts +- [ ] Scheduled Tasks +- [ ] ODBC DSN + +--- + +# 5. New Cluster Build + +## Windows Server + +### Node 1 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Node 2 + +- [ ] Installed +- [ ] Patched +- [ ] Added to domain + +### Common Configuration + +- [ ] Same patch level +- [ ] Same time zone +- [ ] Antivirus exclusions +- [ ] Firewall rules +- [ ] Monitoring agent installed + +--- + +# 6. Storage Preparation + +## Shared Storage + +### Data + +- [ ] Presented to all nodes + +### Logs + +- [ ] Presented to all nodes + +### TempDB + +- [ ] Presented to all nodes + +### Backups + +- [ ] Presented to all nodes + +### Quorum + +- [ ] Configured + +--- + +## Storage Validation + +- [ ] MPIO configured +- [ ] Latency tested +- [ ] Throughput tested +- [ ] NTFS 64K Allocation Unit + +--- + +# 7. Build Windows Cluster + +## Install Features + +```powershell +Install-WindowsFeature Failover-Clustering -IncludeManagementTools +``` + +- [ ] Installed on Node1 +- [ ] Installed on Node2 + +--- + +## Cluster Validation + +```powershell +Test-Cluster +``` + +- [ ] Network validation passed +- [ ] Storage validation passed +- [ ] System validation passed + +--- + +## Create Cluster + +```powershell +New-Cluster +``` + +- [ ] Cluster created +- [ ] Cluster name online +- [ ] Cluster IP online +- [ ] Witness configured + +--- + +# 8. Install SQL Server 2022 FCI + +## Node 1 + +### Installation + +```text +New SQL Server Failover Cluster Installation +``` + +- [ ] SQL Engine installed +- [ ] SQL Agent installed +- [ ] FullText installed +- [ ] Instance name configured +- [ ] Virtual SQL Name configured +- [ ] SQL IP configured + +--- + +## Node 2 + +### Add Node + +```text +Add Node to Existing SQL Server Failover Cluster +``` + +- [ ] Node added successfully +- [ ] SQL Services online + +--- + +## Patch SQL + +- [ ] Latest approved CU installed +- [ ] Identical build on both nodes + +--- + +# 9. Cluster Validation + +## SQL Resource + +```powershell +Get-ClusterGroup +``` + +- [ ] SQL Group Online + +### Failover Test + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +Node2 → Node1 + +- [ ] Successful + +### SQL Validation + +```sql +SELECT +SERVERPROPERTY('ComputerNamePhysicalNetBIOS'); +``` + +- [ ] Correct owner node reported + +--- + +# 10. Migrate Instance Objects + +## Logins + +- [ ] SQL Logins +- [ ] SID preserved +- [ ] Roles preserved +- [ ] Permissions preserved + +--- + +## Linked Servers + +- [ ] Linked Servers migrated +- [ ] Passwords restored +- [ ] Connectivity tested + +--- + +## SQL Agent + +- [ ] Jobs imported +- [ ] Schedules imported +- [ ] Operators imported +- [ ] Alerts imported +- [ ] Proxies imported + +**Do not enable jobs yet.** + +--- + +## Database Mail + +- [ ] Accounts migrated +- [ ] Profiles migrated +- [ ] Test mail successful + +--- + +# 11. Restore Testing + +## Backup + +```sql +BACKUP DATABASE +``` + +- [ ] Completed + +--- + +## Verify + +```sql +RESTORE VERIFYONLY +``` + +- [ ] Successful + +--- + +## Restore + +```sql +RESTORE DATABASE +``` + +- [ ] Successful + +--- + +## CHECKDB + +```sql +DBCC CHECKDB +``` + +- [ ] Successful + +--- + +# 12. Cutover Readiness + +## Frozen Changes + +- [ ] No schema changes +- [ ] No new jobs +- [ ] No new logins +- [ ] No application releases + +--- + +## Stakeholders + +- [ ] Business Owner ready +- [ ] Application Owner ready +- [ ] DBA ready +- [ ] Windows Team ready + +--- + +## Rollback Prepared + +- [ ] Rollback approved +- [ ] Source cluster untouched +- [ ] Backups validated + +--- + +# 13. Production Cutover + +## Start Change + +- [ ] Open bridge call +- [ ] Notify stakeholders + +--- + +## Source System + +### Disable Jobs + +- [ ] Disable SQL Agent jobs + +### Stop Applications + +- [ ] Stop application services + +### Stop ETL + +- [ ] Stop ETL jobs + +--- + +## Final Backup + +### Full + +```sql +BACKUP DATABASE +``` + +### Log + +```sql +BACKUP LOG +``` + +### Verify + +```sql +RESTORE VERIFYONLY +``` + +--- + +# 14. Restore Production Databases + +### Full Backup + +```sql +RESTORE DATABASE +WITH NORECOVERY +``` + +### Log Backups + +```sql +RESTORE LOG +WITH NORECOVERY +``` + +### Recovery + +```sql +RESTORE DATABASE +WITH RECOVERY +``` + +--- + +# 15. Post-Restore Configuration + +## Security + +- [ ] Logins verified +- [ ] Credentials verified +- [ ] Certificates installed + +--- + +## Agent + +- [ ] Jobs enabled +- [ ] Operators enabled +- [ ] Alerts enabled + +--- + +## Integrations + +- [ ] Linked Servers tested +- [ ] Database Mail tested +- [ ] SSIS tested + +--- + +# 16. Application Cutover + +## Connection Strings + +- [ ] Updated + +OR + +## DNS Alias + +- [ ] Updated + +OR + +## SQL Alias + +- [ ] Updated + +--- + +## Validation + +- [ ] Login works +- [ ] Read operations work +- [ ] Write operations work + +--- + +# 17. Smoke Testing + +## Database Checks + +```sql +SELECT +name, +state_desc +FROM sys.databases +``` + +- [ ] All databases ONLINE + +--- + +## SQL Agent + +- [ ] Agent running + +--- + +## Backups + +- [ ] Backup path reachable + +--- + +## Database Mail + +- [ ] Test email successful + +--- + +# 18. Failover Validation + +## Manual Failover + +Node1 → Node2 + +```powershell +Move-ClusterGroup +``` + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +## Manual Failback + +Node2 → Node1 + +- [ ] Successful + +### Validate + +- [ ] Applications reconnect +- [ ] SQL accessible +- [ ] Jobs operational + +--- + +# 19. Rollback + +## Rollback Criteria + +- [ ] Critical application failure +- [ ] Data inconsistency +- [ ] Login failures +- [ ] Cluster instability +- [ ] Critical ETL failure +- [ ] Unacceptable performance + +--- + +## Rollback Actions + +### Stop Target + +- [ ] Stop Applications +- [ ] Disable Jobs + +### Revert Connections + +- [ ] Restore source connection strings +- [ ] Restore source DNS + +### Reactivate Source + +- [ ] Enable source jobs +- [ ] Enable source applications + +### Validation + +- [ ] Login works +- [ ] Read works +- [ ] Write works + +--- + +# 20. Post Migration Validation + +## First 24 Hours + +- [ ] SQL Error Logs +- [ ] Windows Event Logs +- [ ] Cluster Logs +- [ ] Backup Jobs +- [ ] Application Logs +- [ ] Monitoring Alerts + +--- + +## First 7 Days + +- [ ] Database Growth +- [ ] CPU Usage +- [ ] Memory Usage +- [ ] Wait Statistics +- [ ] Blocking Events +- [ ] Backup Success + +--- + +## Decommission Source Cluster + +Only after sign-off. + +- [ ] Business Approval +- [ ] Application Approval +- [ ] DBA Approval +- [ ] Backup Validation +- [ ] Monitoring Validation + +### Final Tasks + +- [ ] Update CMDB +- [ ] Update Documentation +- [ ] Archive Backup +- [ ] Disable Source SQL +- [ ] Remove Source Cluster + +--- + +# FCI DBA Killer Checklist + +Najczęściej zapominane elementy: + +- [ ] SQL Agent Schedules +- [ ] SQL Agent Proxies +- [ ] Linked Server Passwords +- [ ] TDE Certificates +- [ ] Service Accounts +- [ ] SPN Registration +- [ ] Kerberos Delegation +- [ ] ODBC DSN +- [ ] Shared Folders +- [ ] Scheduled Tasks +- [ ] SSIS Packages +- [ ] Database Mail +- [ ] Antivirus Exclusions +- [ ] Backup Jobs +- [ ] Monitoring Configuration +- [ ] TempDB Layout +- [ ] Trace Flags +- [ ] DNS Aliases +- [ ] Cluster Quorum +- [ ] Failover Testing + +--- + +# Migration Success Criteria + +- [ ] Databases ONLINE +- [ ] Applications functional +- [ ] SQL Agent functional +- [ ] Backups functional +- [ ] Monitoring functional +- [ ] Failover tested +- [ ] Failback tested +- [ ] Performance acceptable +- [ ] Business sign-off received \ No newline at end of file