SQL Server on Linux and AG (HA) in Azure Tejas Shah Principal Program Manager @mr_tejs | https://www.linkedin.com/in/tejas-shah-72a62027/ Agenda • SQL Server on Linux • SQL Server 2019 Improvement Themes • SQL Server 2019 on Linux Improvements • SQL Server on Linux Images on Azure • Enabling HA on SQL Server on Linux on Azure SQL Server on Linux Choice with Compatibility
Support for RedHat Enterprise Linux (RHEL), Ubuntu, and SUSE Enterprise Linux (SLES)
Linux OCI compliant containers, supported standalone or Orchestration platforms
Package-based installation: Yum Install, Apt- Get, and Zypper
Windows Server / Windows 10
Database Compatibility on all Platforms What’s in SQL Server on Linux
Windows Linux
Editions Developer, Express, Web, Standard, Enterprise Database Engine, Integration Services, SQL Server Agent Services Analysis Services, Reporting Services, MDS, DQS Maximum number of cores Unlimited Unlimited Maximum memory utilized per instance 24 TB 12 TB Maximum database size 524 PB 524 PB Mission critical performance Basic OLTP (Basic In-Memory OLTP, Basic operational analytics) and HADR Advanced OLTP (Advanced In-Memory OLTP, Advanced operational analytics, adaptive query processing) SQL Server Replication and CDC NEW Basic high availability (2-node single database failover, non-readable secondary)
Advanced HA (Always On - multi-node, multi-db failover, readable secondaries)
Basic security (Basic auditing, Row-level security, Data masking, Always Encrypted, Active Directory Authentication) Security Advanced security (Transparent Data Encryption) PolyBase NEW Basic data warehousing/data marts (Basic In-Memory ColumnStore, Partitioning, Compression) Data warehousing Advanced data warehousing (Advanced In-Memory ColumnStore)
Advanced data integration (Fuzzy grouping and look ups)
Windows ecosystem: Full-fidelity Management & Dev Tool (SSMS & SSDT), command line tools Tools Linux/OSX/Windows ecosystem: Dev tools (VS Code), DB Admin GUI tool, command line tools
Programmability (T-SQL, CLR, Data Types, JSON, Graph) Developer Distributed Transactions NEW Machine Learning Services NEW SQL Server 2019 Solving Modern Data Challenges ciphertext
SQL 1010 0101 0110
plaintext
Enclave
R
Arm64 SQL Server 2019 on Linux New Capabilities
T-SQL PHP Java Node.js Database Database C/C++ Python C#/VB.NET Ruby
Machine Learning Services with R/Python Replication Persisted Memory Enlightened I/O Polybase CDC Memory Pressure Notifications Distributed Transactions DMV
SQL
Microsoft Container Registry Non-root container images Support for RHEL 8/Ubuntu * OpenLDAP support for 3rd RHEL Container Image 18.04/SLES 15 * Including container images party AD providers OpenShift support SQL Server on Linux images in Azure HADR with SQL Server on Linux
Failover Cluster Instance High Availability Availability Group Read-Scale Availability Group Pacemaker and Corosync CLUSTER_TYPE = EXTERNAL CLUSTER_TYPE=NONE Single SQL Server instance Auto failover No clustering required SQL resource agent (mssql-server-ha) Pacemaker Manual or forced failover SQL resource agent (mssql-server-ha) Sync or async replicas Open-source resource agent is Read scale routing available on GitHub Repository1 3 replicas required Cross-platform Configuration only replica for Shared Storage metadata ISCI, NFS, SMB Full AG capabilities
Industry-leading solutions available from HA/DR partners2 SQL Server Always On Availability Group on top of Linux native pacemaker clustering technology SQL Server Availability Groups Support in Azure VM Improved failover time • Azure fencing agent (fence_azure_arm) can immediately force the shutdown of a VM • Overall failover time reduced to seconds from minutes
Increased safety Avoids exposure to reliability issues with softdog fencing See: http://blog.clusterlabs.org/blog/2019/savaged-by-softdog
SQL Server certification • mssql-server is certified with Red Hat HA and fence_azure_arm • Full Availability Groups (AG) support • Same capabilities on Azure as available with on-prem
SQL on RHEL Azure Operations Guide: https://azure.microsoft.com/en-us/resources/sql-server-on-rhel-azure-vms-operations-guide/ SQL Server Always On Availability Group (HA) on Linux VM on Azure DEMO How to configure SQL HA on RHEL VM in Azure
*Coming soon to SLES
Create a new Configure Optionally: resource group, Configure a Install SQL Configure SQL availability Configure AG availability set, Create a fencing agent Test a failover Enable high Server and Server Always group (AG) listener on SQL and Linux Pacemaker by creating a and the fencing availability (HA) mssql-tools on On availability resources in Server and load virtual cluster STONITH agent RHEL group the Pacemaker balancer in machines device cluster Azure (VMs)
https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/linux/rhel-high-availability-stonith-tutorial https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/linux/rhel-high-availability-listener-tutorial Thank you