Skip to content

Commit b2b81cb

Browse files
authored
Merge 2417b4b into e938b26
2 parents e938b26 + 2417b4b commit b2b81cb

File tree

1 file changed

+258
-0
lines changed

1 file changed

+258
-0
lines changed
Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
# Migrating On-Premises SQL Server to Azure - Overview
2+
3+
Costa Rica
4+
5+
[![GitHub](https://img.shields.io/badge/--181717?logo=github&logoColor=ffffff)](https://github.com/)
6+
[brown9804](https://github.com/brown9804)
7+
8+
Last updated: 2024-11-19
9+
10+
----------
11+
12+
<details>
13+
<summary><b>List of References</b> (Click to expand)</summary>
14+
15+
- [Migration overview: From SQL Server](https://learn.microsoft.com/en-us/data-migration/sql-server/overview)
16+
- [Migrate from SQL Server: Pre-migration](https://learn.microsoft.com/en-us/data-migration/sql-server/pre-migration?tabs=sqlmi)
17+
- [Migrate on-premises SQL Server or SQL Server on Azure VMs to Azure SQL Database using the Data Migration Assistant](https://learn.microsoft.com/en-us/sql/dma/dma-migrateonpremsqltosqldb?view=sql-server-ver16)
18+
- [Deploy SharePoint Server with Azure SQL Managed Instance](https://learn.microsoft.com/en-us/SharePoint/administration/deploy-azure-sql-managed-instance-with-sharepoint-servers)
19+
20+
</details>
21+
22+
<details>
23+
<summary><b>Table of Contents</b> (Click to expand)</summary>
24+
25+
- [Step 1: Assess the Current Environment](#step-1-assess-the-current-environment)
26+
- [Determine the version of the on-premises SQL Server](#determine-the-version-of-the-on-premises-sql-server)
27+
- [Migration Methods Based on SQL Server Version](#migration-methods-based-on-sql-server-version)
28+
- [Step 2: Options Based on Linked Servers](#step-2-options-based-on-linked-servers)
29+
- [If Linked Servers Exist](#if-linked-servers-exist)
30+
- [If No Linked Servers](#if-no-linked-servers)
31+
- [Integration with SharePoint Online](#integration-with-sharepoint-online)
32+
33+
</details>
34+
35+
> [!IMPORTANT]
36+
> 1. **Determine the version of the on-premises SQL Server**: This will guide the migration path. For example, SQL Server 2016 or newer has more migration options compared to older versions. <br/>
37+
> 2. **Linked Servers**: Check if there are any linked servers <br/>
38+
> - **Azure SQL Database** does not support linked servers. <br/>
39+
> - **Azure SQL Managed Instance** supports linked servers. <br/>
40+
> - **SQL Server on Azure Virtual Machines (IaaS)** supports linked servers.
41+
> 3. **Plan Integration**: Use Azure Logic Apps, Power Automate, or custom APIs for integration with SharePoint Online.
42+
43+
## Step 1: Assess the Current Environment
44+
45+
> - **Determine the SQL Server Version**: This will guide the migration path and options available.
46+
> - **Evaluate Migration Methods**: Based on the SQL Server version, choose the appropriate migration method.
47+
> - **Consider High Availability**: If using AlwaysOn Availability Groups, ensure compatibility with SQL Server and Windows Server versions.
48+
49+
### Determine the version of the on-premises SQL Server
50+
51+
| SQL Server Version | Support Status | Migration Options | Considerations | High Availability Options |
52+
|--------------------------|------------------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------|---------------------------------------------------|
53+
| **SQL Server 2008 and 2008 R2** | End of Support: These versions are no longer supported by Microsoft, which means no security updates or patches. | - Azure SQL Managed Instance: Provides a fully managed instance with high compatibility.<br>- SQL Server on Azure Virtual Machines: Allows you to run older SQL Server versions in a VM. | Upgrading to a newer version before migration is recommended for better support and features. | N/A |
54+
| **SQL Server 2012** | Extended Support: Limited support with security updates. | - Azure SQL Managed Instance: High compatibility with on-premises SQL Server.<br>- SQL Server on Azure Virtual Machines: Suitable for maintaining the same SQL Server version. | Evaluate the benefits of upgrading to a newer version for enhanced features and support. | N/A |
55+
| **SQL Server 2014** | Mainstream Support: Still within mainstream support but nearing end of life. | - Azure SQL Managed Instance: High compatibility and managed service.<br>- SQL Server on Azure Virtual Machines: Full control over the SQL Server instance. | Consider upgrading to SQL Server 2016 or newer for better migration options. | N/A |
56+
| **SQL Server 2016 and Newer** | Full Support: These versions are fully supported with regular updates and patches. | - Azure SQL Database: Suitable if no linked servers are required.<br>- Azure SQL Managed Instance: Supports linked servers and high compatibility.<br>- SQL Server on Azure Virtual Machines: Full control and flexibility. | These versions offer the most flexibility and features for migration. | - AlwaysOn Availability Groups: Supported for seamless migration.<br>- Failover Cluster Instances: Supported for high availability. |
57+
58+
### Migration Methods Based on SQL Server Version
59+
60+
1. **Backup and Restore**
61+
- **Supported Versions**: All versions.
62+
- **Description**: Take a backup of the on-premises database and restore it in Azure SQL Managed Instance or SQL Server on Azure VM.
63+
- **Considerations**: Simple method but may involve downtime.
64+
65+
2. **Database Migration Service (DMS)**
66+
- **Supported Versions**: SQL Server 2005 and newer.
67+
- **Description**: Use Azure Database Migration Service to migrate databases with minimal downtime.
68+
- **Considerations**: Recommended for larger databases and mission-critical applications.
69+
70+
3. **Transactional Replication**
71+
- **Supported Versions**: SQL Server 2008 and newer.
72+
- **Description**: Set up transactional replication to synchronize data between on-premises SQL Server and Azure SQL Database or Managed Instance.
73+
- **Considerations**: Suitable for continuous data synchronization with minimal downtime.
74+
75+
4. **AlwaysOn Availability Groups**
76+
- **Supported Versions**: SQL Server 2012 and newer.
77+
- **Description**: Add an Azure VM to the availability group and perform a failover.
78+
- **Considerations**: Requires SQL Server 2016 or newer and Windows Server 2016 or later for multi-subnet configurations.
79+
80+
5. **BACPAC Files**
81+
- **Supported Versions**: SQL Server 2008 and newer.
82+
- **Description**: Export the database schema and data to a BACPAC file and import it into Azure SQL Database.
83+
- **Considerations**: Suitable for smaller databases but may not be reliable for large or complex databases.
84+
85+
86+
## Step 2: Options Based on Linked Servers
87+
88+
| Scenario | Options | Description, Benefits, Considerations, and Integration |
89+
| --- | --- | --- |
90+
| **If Linked Servers Exist** | - **Azure SQL Managed Instance (PaaS)**<br/>- **SQL Server on Azure Virtual Machines (IaaS)** | - **Azure SQL Managed Instance**: Near 100% compatibility with on-premises SQL Server, minimal changes required, higher cost, use Azure Logic Apps or Power Automate for integration.<br/>- **SQL Server on Azure Virtual Machines**: Full control over the SQL Server instance, requires VM management, use custom APIs or Azure Logic Apps for integration. |
91+
| **If No Linked Servers** | - **Azure SQL Database (PaaS)**<br/>- **Azure SQL Managed Instance (PaaS)**<br/>- **SQL Server on Azure Virtual Machines (IaaS)** | - **Azure SQL Database**: Fully managed, reduces management overhead, may require schema changes, use Azure Logic Apps or Power Automate for integration.<br/>- **Azure SQL Managed Instance**: Near 100% compatibility, minimal changes required, higher cost, use Azure Logic Apps or Power Automate for integration.<br/>- **SQL Server on Azure Virtual Machines**: Full control over the SQL Server instance, requires VM management, use custom APIs or Azure Logic Apps for integration. |
92+
93+
94+
### If Linked Servers Exist
95+
96+
<details>
97+
<summary><strong>Azure SQL Managed Instance (PaaS)</strong></summary>
98+
99+
> A fully managed instance of SQL Server that provides near 100% compatibility with the latest SQL Server on-premises.
100+
101+
- **Benefits**:
102+
- Minimal changes required to migrate.
103+
- Supports SQL Server Agent and other SQL Server features.
104+
- Reduces administrative overhead as Microsoft handles patching, backups, and monitoring.
105+
- Built-in high availability and disaster recovery options.
106+
- Easily scalable to meet growing data and performance needs.
107+
- **Considerations**:
108+
- Higher cost compared to Azure SQL Database.
109+
- The migration process can be complex and may require careful planning and execution.
110+
- **Integration with SharePoint Online**:
111+
- Use Azure Logic Apps to create workflows that automate data exchange.
112+
- Use Power Automate to create flows that connect Azure SQL Managed Instance with SharePoint Online.
113+
- Develop custom APIs to facilitate data exchange between the two services.
114+
</details>
115+
116+
<details>
117+
<summary><strong>SQL Server on Azure Virtual Machines (IaaS)</strong></summary>
118+
119+
> Running SQL Server on a virtual machine in Azure, providing full control over the SQL Server instance.
120+
121+
- **Benefits**:
122+
- Full control over the database and OS.
123+
- Suitable for applications requiring specific SQL Server features.
124+
- Supports linked servers, SQL Server Agent, and other advanced SQL Server features.
125+
- Ability to customize the environment to meet specific requirements.
126+
- **Considerations**:
127+
- Requires management of the VM, including patching, backups, and high availability.
128+
- More complex to manage compared to fully managed services like Azure SQL Database or Managed Instance.
129+
- Potentially higher operational costs due to the need for VM management and maintenance.
130+
- **Integration with SharePoint Online**:
131+
- Develop custom APIs to facilitate data exchange between SQL Server on Azure VM and SharePoint Online.
132+
- Use Azure Logic Apps to create workflows that automate data exchange.
133+
- Use Power Automate to create flows that connect SQL Server on Azure VM with SharePoint Online.
134+
</details>
135+
136+
### If No Linked Servers
137+
138+
<details>
139+
<summary><strong>Azure SQL Database (PaaS)</strong></summary>
140+
141+
> `A fully managed relational database` service that handles most database management functions such as upgrading, patching, backups, and monitoring without user involvement.
142+
143+
- **Benefits**:
144+
- Reduces management overhead.
145+
- Built-in high availability and scalability.
146+
- Simplifies database management with automatic updates and scaling.
147+
- **Considerations**:
148+
- May require some changes to your database schema or application code.
149+
- **Integration with SharePoint Online**:
150+
- Use Azure Logic Apps to create workflows that automate data exchange.
151+
- Use Power Automate to create flows that connect Azure SQL Database with SharePoint Online.
152+
</details>
153+
154+
<details>
155+
<summary><strong>Azure SQL Managed Instance (PaaS)</strong></summary>
156+
157+
> `A fully managed instance of SQL Server` that provides near 100% compatibility with the latest SQL Server on-premises.
158+
159+
- **Benefits**:
160+
- Minimal changes required to migrate.
161+
- Supports SQL Server Agent and other SQL Server features.
162+
- Reduces administrative overhead as Microsoft handles patching, backups, and monitoring.
163+
- Built-in high availability and disaster recovery options.
164+
- Easily scalable to meet growing data and performance needs.
165+
- **Considerations**:
166+
- Higher cost compared to Azure SQL Database.
167+
- The migration process can be complex and may require careful planning and execution.
168+
- **Integration with SharePoint Online**:
169+
- Use Azure Logic Apps to create workflows that automate data exchange.
170+
- Use Power Automate to create flows that connect Azure SQL Managed Instance with SharePoint Online.
171+
- Develop custom APIs to facilitate data exchange between the two services.
172+
</details>
173+
174+
<details>
175+
<summary><strong>SQL Server on Azure Virtual Machines (IaaS)</strong></summary>
176+
177+
> Running SQL Server on a virtual machine in Azure, providing full control over the SQL Server instance.
178+
179+
- **Benefits**:
180+
- Full control over the database and OS.
181+
- Suitable for applications requiring specific SQL Server features.
182+
- Supports linked servers, SQL Server Agent, and other advanced SQL Server features.
183+
- Ability to customize the environment to meet specific requirements.
184+
- **Considerations**:
185+
- Requires management of the VM, including patching, backups, and high availability.
186+
- More complex to manage compared to fully managed services like Azure SQL Database or Managed Instance.
187+
- Potentially higher operational costs due to the need for VM management and maintenance.
188+
- **Integration with SharePoint Online**:
189+
- Develop custom APIs to facilitate data exchange between SQL Server on Azure VM and SharePoint Online.
190+
- Use Azure Logic Apps to create workflows that automate data exchange.
191+
- Use Power Automate to create flows that connect SQL Server on Azure VM with SharePoint Online.
192+
</details>
193+
194+
## Integration with SharePoint Online
195+
196+
> - Azure Logic Apps: Automate workflows to facilitate data exchange between Azure SQL Database and SharePoint Online using built-in connectors and triggers. <br/>
197+
> - Power Automate: Create flows to connect Azure SQL Database with SharePoint Online using pre-built templates and connectors. <br/>
198+
> - Custom APIs: Develop custom APIs for tailored data exchange solutions, providing flexibility and control over the integration process.
199+
200+
<details>
201+
<summary><strong>Azure Logic Apps</strong></summary>
202+
203+
> Azure Logic Apps is a cloud-based service that allows you to automate workflows and integrate apps, data, services, and systems.
204+
205+
- **Use Case**: Automate data exchange between Azure SQL Database and SharePoint Online.
206+
- **How It Works**:
207+
1. **Create a Logic App**: Start by creating a new Logic App in the Azure portal.
208+
2. **Define Triggers**: Set up triggers that initiate the workflow. For example, a trigger could be a new item added to a SharePoint list or a new row inserted into an Azure SQL Database table.
209+
3. **Add Actions**: Define actions that the Logic App should perform. Actions can include reading data from Azure SQL Database, transforming the data, and then writing it to SharePoint Online.
210+
4. **Connectors**: Use built-in connectors for Azure SQL Database and SharePoint Online to facilitate the data exchange.
211+
5. **Error Handling**: Implement error handling and retries to ensure the workflow runs smoothly even if there are temporary issues.
212+
- **Example**: A Logic App that triggers when a new row is added to an Azure SQL Database table, retrieves the data, and creates a new item in a SharePoint Online list.
213+
</details>
214+
215+
<details>
216+
<summary><strong>Power Automate</strong></summary>
217+
218+
> Power Automate (formerly Microsoft Flow) is a service that helps you create automated workflows between your favorite apps and services to synchronize files, get notifications, collect data, and more.
219+
220+
- **Use Case**: Create flows to connect Azure SQL Database with SharePoint Online.
221+
- **How It Works**:
222+
1. **Create a Flow**: Start by creating a new flow in Power Automate.
223+
2. **Define Triggers**: Set up triggers that initiate the flow. For example, a trigger could be a new item added to a SharePoint list or a new row inserted into an Azure SQL Database table.
224+
3. **Add Actions**: Define actions that the flow should perform. Actions can include reading data from Azure SQL Database, transforming the data, and then writing it to SharePoint Online.
225+
4. **Connectors**: Use built-in connectors for Azure SQL Database and SharePoint Online to facilitate the data exchange.
226+
5. **Templates**: Utilize pre-built templates to quickly set up common workflows.
227+
- **Example**: A flow that triggers when a new item is added to a SharePoint Online list, retrieves the data, and inserts it into an Azure SQL Database table.
228+
</details>
229+
230+
<details>
231+
<summary><strong>Custom APIs</strong></summary>
232+
233+
> Custom APIs allow you to develop tailored solutions for specific integration needs, providing flexibility and control over the data exchange process.
234+
235+
- **Use Case**: Develop custom APIs for data exchange between Azure SQL Database and SharePoint Online.
236+
- **How It Works**:
237+
1. **Develop API**: Create a custom API using a programming language such as C# or Python. The API should handle data retrieval, transformation, and insertion.
238+
2. **Host API**: Host the API in a suitable environment, such as Azure App Service or Azure Functions.
239+
3. **Authentication**: Implement secure authentication mechanisms, such as OAuth, to ensure that only authorized users and applications can access the API.
240+
4. **Endpoints**: Define endpoints for the API that allow for CRUD (Create, Read, Update, Delete) operations on the data.
241+
5. **Integration**: Use the API to facilitate data exchange between Azure SQL Database and SharePoint Online. The API can be called from Logic Apps, Power Automate, or directly from client applications.
242+
- **Example**: A custom API that retrieves data from an Azure SQL Database table, processes the data, and updates a SharePoint Online list.
243+
</details>
244+
245+
> [!TIP]
246+
> Summary of Options:
247+
248+
| Option | Description | Key Features | Integration with SharePoint Online |
249+
| --- | --- | --- | --- |
250+
| **Azure SQL Database (PaaS)** | Suitable if no linked servers are required. | - Supports transactional replication.<br/>- Reduces management overhead.<br/>- Built-in high availability and scalability. | Use Azure Logic Apps or Power Automate for integration with SharePoint Online. |
251+
| **Azure SQL Managed Instance (PaaS)** | Supports linked servers. | - Supports both availability group and transactional replication methods.<br/>- Near 100% compatibility with on-premises SQL Server.<br/>- Built-in high availability and disaster recovery options. | Use Azure Logic Apps or Power Automate for integration with SharePoint Online. |
252+
| **SQL Server on Azure Virtual Machines (IaaS)** | Provides full control over the SQL Server instance. | - Supports linked servers and all SQL Server features.<br/>- Suitable for applications requiring OS-level access.<br/>- Full control over the database and OS. | Use custom APIs or Azure Logic Apps for integration with SharePoint Online. |
253+
254+
255+
<div align="center">
256+
<h3 style="color: #4CAF50;">Total Visitors</h3>
257+
<img src="https://profile-counter.glitch.me/brown9804/count.svg" alt="Visitor Count" style="border: 2px solid #4CAF50; border-radius: 5px; padding: 5px;"/>
258+
</div>

0 commit comments

Comments
 (0)