{"id":665,"date":"2024-07-19T08:00:00","date_gmt":"2024-07-19T13:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=665"},"modified":"2024-07-18T20:57:01","modified_gmt":"2024-07-19T01:57:01","slug":"creating-sql-server-ag-on-linux-part-2-enabling-hadr","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=665","title":{"rendered":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Welcome to the second part of our series on setting up SQL Server availability groups on Linux. In the previous post, we covered installing and configuring Pacemaker on all nodes. This post will focus on enabling High Availability Disaster Recovery (HADR) on SQL Server, an essential step in creating our availability group.<\/p>\n<h3>Prerequisites<\/h3>\n<p>Before we begin, ensure that you have completed the steps from <a href=\"https:\/\/www.sqltabletalk.com\/?p=654\">Part 1<\/a>. You should have three Ubuntu 20.04 hosts with SQL Server for Linux installed, and Pacemaker configured and running on all nodes.<\/p>\n<h3>Step 1: Enable HADR on SQL Server<\/h3>\n<p>To enable HADR on SQL Server, follow these steps on each node:<\/p>\n<h4>1. Set HADR Enabled<\/h4>\n<pre><code>sudo \/opt\/mssql\/bin\/mssql-conf set hadr.hadrenabled 1<\/code><\/pre>\n<h4>2. Restart SQL Server<\/h4>\n<pre><code>sudo systemctl restart mssql-server<\/code><\/pre>\n<h4>3. Enable AlwaysOn Health Event Session<\/h4>\n<pre><code>sqlcmd -S localhost -U sa -Q \"ALTER EVENT SESSION AlwaysOn_Health ON SERVER WITH (STARTUP_STATE=ON)\"<\/code><\/pre>\n<p>Repeat these steps on all three nodes.<\/p>\n<h3>Step 2: Create Master Key and Certificates<\/h3>\n<p>On the primary node (vm0), create a master key, a login, a user, and a certificate for database mirroring. These are necessary for secure communication between the nodes in the availability group.<\/p>\n<h4>1. Create Master Key<\/h4>\n<pre><code>USE master;\nGO\nCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password123';\nGO<\/code><\/pre>\n<h4>2. Create Login and User<\/h4>\n<pre><code>CREATE LOGIN dbm_login WITH PASSWORD = 'Password123';\nCREATE USER dbm_user FOR LOGIN dbm_login;\nGO<\/code><\/pre>\n<h4>3. Create Certificate<\/h4>\n<pre><code>CREATE CERTIFICATE dbm_certificate AUTHORIZATION dbm_user WITH SUBJECT = 'Certificate for database mirroring';\nBACKUP CERTIFICATE dbm_certificate TO FILE = '\/var\/opt\/mssql\/data\/dbm_certificate.cer'\nWITH PRIVATE KEY ( FILE = '\/var\/opt\/mssql\/data\/dbm_certificate.pvk', ENCRYPTION BY PASSWORD = 'Password123');\nGO<\/code><\/pre>\n<h4>4. Create Endpoint<\/h4>\n<pre><code>CREATE ENDPOINT [Hadr_endpoint] \nAS TCP (LISTENER_IP = ALL, LISTENER_PORT = 5022) \nFOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = CERTIFICATE dbm_certificate, \nENCRYPTION = REQUIRED ALGORITHM AES); \nALTER ENDPOINT [Hadr_endpoint] STATE = STARTED; \nGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [dbm_login];\nGO<\/code><\/pre>\n<h4>5. Copy Certificates to Other Nodes<\/h4>\n<pre><code>sudo su\ncd \/home\/username\ncp \/var\/opt\/mssql\/data\/dbm_certificate.* .\nchown username dbm_certificate.*\nexit<\/code><\/pre>\n<p>On vm1 and vm2:<\/p>\n<pre><code>sudo su\ncd \/var\/opt\/mssql\/data\nscp username@vm0:\/home\/username\/dbm_certificate.* .\nchown mssql:mssql dbm_certificate.*\nexit<\/code><\/pre>\n<h4>6. Create Master Key, Login, User, and Certificate on Other Nodes<\/h4>\n<p>Run the following SQL commands on vm1 and vm2:<\/p>\n<pre><code>USE master;\nGO\nCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password123';\nGO\nCREATE LOGIN dbm_login WITH PASSWORD = 'Password123';\nCREATE USER dbm_user FOR LOGIN dbm_login;\nGO\nCREATE CERTIFICATE dbm_certificate AUTHORIZATION dbm_user \nFROM FILE = '\/var\/opt\/mssql\/data\/dbm_certificate.cer' \nWITH PRIVATE KEY ( FILE = '\/var\/opt\/mssql\/data\/dbm_certificate.pvk', DECRYPTION BY PASSWORD = 'Password123');\nGO\nCREATE ENDPOINT [Hadr_endpoint] \nAS TCP (LISTENER_IP = ALL, LISTENER_PORT = 5022) \nFOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = CERTIFICATE dbm_certificate, \nENCRYPTION = REQUIRED ALGORITHM AES); \nALTER ENDPOINT [Hadr_endpoint] STATE = STARTED; \nGRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [dbm_login];\nGO<\/code><\/pre>\n<h3>Step 3: Create the Availability Group<\/h3>\n<h4>1. Create Availability Group on Primary Node (vm0)<\/h4>\n<pre><code>CREATE AVAILABILITY GROUP [ag1] \nWITH (CLUSTER_TYPE = EXTERNAL) \nFOR REPLICA ON \n    N'vm0' WITH ( \n        ENDPOINT_URL = N'tcp:\/\/vm0:5022', \n        AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, \n        FAILOVER_MODE = EXTERNAL, \n        SEEDING_MODE = AUTOMATIC\n    ), \n    N'vm1' WITH ( \n        ENDPOINT_URL = N'tcp:\/\/vm1:5022', \n        AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, \n        FAILOVER_MODE = EXTERNAL, \n        SEEDING_MODE = AUTOMATIC\n    ), \n    N'vm2' WITH ( \n        ENDPOINT_URL = N'tcp:\/\/vm2:5022', \n        AVAILABILITY_MODE = SYNCHRONOUS COMMIT, \n        FAILOVER MODE = EXTERNAL, \n        SEEDING MODE = AUTOMATIC\n    );\nGO\nALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;\nGO<\/code><\/pre>\n<h4>2. Join Availability Group on Secondary Nodes (vm1 and vm2)<\/h4>\n<pre><code>ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL);\nGO\nALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;\nGO<\/code><\/pre>\n<h3>Step 4: Add a Database to the Availability Group<\/h3>\n<h4>1. Create Database on Primary Node (vm0)<\/h4>\n<pre><code>CREATE DATABASE [db1];\nGO\nALTER DATABASE [db1] SET RECOVERY FULL;\nGO\nBACKUP DATABASE [db1] TO DISK = N'\/var\/opt\/mssql\/data\/db1.bak';\nGO\nALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];\nGO<\/code><\/pre>\n<h3>Step 5: Configure Logins and Permissions<\/h3>\n<h4>1. Create Pacemaker Login on All Nodes<\/h4>\n<pre><code>CREATE LOGIN [pacemakerLogin] WITH PASSWORD= N'Password123';\nGO\nGRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::[ag1] TO [pacemakerLogin];\nGO\nGRANT VIEW SERVER STATE TO [pacemakerLogin];\nGO<\/code><\/pre>\n<h3>Conclusion<\/h3>\n<p>In this post, we&#8217;ve successfully enabled HADR on SQL Server, created the necessary certificates, and set up an availability group. These steps are essential for ensuring your SQL Server instances remain highly available. In the next post, we&#8217;ll focus on configuring Pacemaker resources and constraints to manage the availability group effectively. Stay tuned for more detailed guidance as we continue our journey toward robust SQL Server high availability on Linux.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[36,40,20,21],"tags":[203,202,19,187,131,204,28,188],"class_list":["post-665","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-sql-server-2022","category-sql-server-on-linux","category-tutorial","tag-availability-group","tag-hadr","tag-linux","tag-pacemaker","tag-sql-server","tag-sql-server-high-availability","tag-sql-server-on-linux","tag-ubuntu"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk<\/title>\n<meta name=\"description\" content=\"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqltabletalk.com\/?p=665\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk\" \/>\n<meta property=\"og:description\" content=\"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=665\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-19T13:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Stephen Planck\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stephen Planck\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665\"},\"author\":{\"name\":\"Stephen Planck\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"headline\":\"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server\",\"datePublished\":\"2024-07-19T13:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665\"},\"wordCount\":328,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"Availability Group\",\"HADR\",\"Linux\",\"Pacemaker\",\"SQL Server\",\"SQL Server High Availability\",\"SQL Server on Linux\",\"Ubuntu\"],\"articleSection\":[\"Availability Groups\",\"SQL Server 2022\",\"SQL Server on Linux\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=665#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=665\",\"name\":\"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-07-19T13:00:00+00:00\",\"description\":\"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=665\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=665#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"],\"url\":\"https:\/\/www.sqltabletalk.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk","description":"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqltabletalk.com\/?p=665","og_locale":"en_US","og_type":"article","og_title":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk","og_description":"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.","og_url":"https:\/\/www.sqltabletalk.com\/?p=665","og_site_name":"SQL Table Talk","article_published_time":"2024-07-19T13:00:00+00:00","author":"Stephen Planck","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stephen Planck","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=665#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=665"},"author":{"name":"Stephen Planck","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"headline":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server","datePublished":"2024-07-19T13:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=665"},"wordCount":328,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["Availability Group","HADR","Linux","Pacemaker","SQL Server","SQL Server High Availability","SQL Server on Linux","Ubuntu"],"articleSection":["Availability Groups","SQL Server 2022","SQL Server on Linux","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=665#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=665","url":"https:\/\/www.sqltabletalk.com\/?p=665","name":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server - SQL Table Talk","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-07-19T13:00:00+00:00","description":"This post is part of a series on setting up SQL Server availability groups on Linux. It details how to enable High Availability Disaster Recovery (HADR) on SQL Server, including creating master keys, certificates, and availability groups. Clear instructions are provided for configuring SQL Server and Pacemaker to ensure data redundancy and high availability. Follow these steps to enhance the reliability of your SQL Server instances on Ubuntu 20.04.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=665#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=665"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=665#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Creating SQL Server AGs on Linux: Part 2 \u2013 Enabling HADR on SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"],"url":"https:\/\/www.sqltabletalk.com\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=665"}],"version-history":[{"count":1,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":666,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/665\/revisions\/666"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}