{"id":106853,"date":"2025-06-18T14:45:26","date_gmt":"2025-06-18T14:45:26","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=106853"},"modified":"2025-05-22T15:17:58","modified_gmt":"2025-05-22T15:17:58","slug":"getting-started-with-azure-database-for-postgresql-flexible-server","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/postgresql\/getting-started-with-azure-database-for-postgresql-flexible-server\/","title":{"rendered":"Getting started with Azure Database for PostgreSQL Flexible Server"},"content":{"rendered":"\n<p>Along with its many other cloud services, Microsoft now offers <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">Azure Database for PostgreSQL Flexible Server<\/a>, a database-as-a-service platform based on the PostgreSQL open-source database system. DBAs, developers, analysts, and other users who are familiar with relational database management systems&#8212;whether on-premises or in the cloud\u2014should have little trouble getting started with ADP flexible server. That said, both the ADP service and the PostgreSQL RDBMS come with their own unique characteristics, and those who are new to ADP might benefit from a little guidance.<\/p>\n\n\n\n<p>This article and those to follow will introduce you to the ADP service and the various features it offers. The series will delve into different aspects of ADP, starting with an introduction to the service and how to create your first ADP server instance, which you\u2019ll need to do before you can deploy any PostgreSQL databases. To follow along with this article and the rest of the articles in this series, you should have an Azure subscription in place and be able to sign up for the ADP service. If you already have access to the service, you should be good to go.<\/p>\n\n\n\n<p style=\"padding-right:0;padding-left:var(--wp--preset--spacing--md)\"><strong>Note.<\/strong> If you\u2019re new to Azure and ADP flexible server, you might be able to take advantage of an Azure free account and a 12-month free trial of the ADP service. To learn more about this offer, refer to the Microsoft article <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/how-to-deploy-on-azure-free-account\">Use an Azure free account to try Azure Database for PostgreSQL flexible server for free<\/a>.<\/p>\n\n\n\n<p>Before we get started, be aware that Microsoft also offers a service called Azure Database for PostgreSQL single server, which preceded ADP flexible server and is not as robust. Microsoft is planning to retire ADP single server, although it\u2019s not clear when that will happen. According to some Microsoft documentation, retirement should have already occurred. Microsoft recommends that customers using ADP single server should upgrade to ADP flexible server and not implement any new single server instances. For this article, and those in the series to follow, any references I make to ADP are specifically to Azure Database for PostgreSQL flexible server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-azure-database-for-postgresql-flexible-server\">What is Azure Database for PostgreSQL flexible server?<\/h2>\n\n\n\n<p>ADP flexible server is a relational database cloud service that enables you to create one or more PostgreSQL server instances, each of which can host multiple user databases. The ADP service offers high availability features that can be applied within an availability zone, as well as across zones. You can also configure compute and storage resources separately to support your specific workloads. In addition, you can stop and start each server instance as needed to better control costs.<\/p>\n\n\n\n<p>ADP flexible server runs the PostgreSQL community edition, with support for versions 11 through 17. The version 17 release on ADP is still in preview. According to ADP documentation, Microsoft plans to support each major PostgreSQL version from the time it is implemented on ADP until it is retired by the PostgreSQL community. The ADP service automatically performs minor version upgrades as part of its periodic maintenance. For example, an instance that\u2019s been configured with PostgreSQL 16 will currently be running version 16.8.<\/p>\n\n\n\n<p>Although ADP flexible server is a fully managed service, it still provides a fair amount of control and flexibility over the database environment. You can configure the service to meet your organization\u2019s specific compute, storage and availability requirements, while taking into account issues such as performance and costs. For example, you can increase the compute or storage size, set backup and restore policies, configure network connection settings, and define custom maintenance windows. You can also set many of the instance\u2019s server parameters, such as whether to log buffers usage or enable temporary connection throttling.<\/p>\n\n\n\n<p>In addition, ADP flexible server includes a number of tools for controlling and optimizing the environment. For instance, you can set up monitoring and alerting, choosing from a wide assortment of metrics. You can also define automation tasks, build reports in Power BI Desktop, mirror data to Microsoft Fabric, assign tags to ADP resources, and do much more. Plus, you can configure authentication settings\u2014using Microsoft Entra, PostgreSQL authentication, or both\u2014and you can enable Microsoft Defender for Cloud. The ADP service also comes with tools and information for diagnosing and resolving problems.<\/p>\n\n\n\n<p>The ADP environment comprises a number of components that work together to deliver database services. The PostgreSQL database engine runs in a container within a Linux virtual machine (VM), and the data resides in Azure storage, effectively separating the compute and storage resources. Azure-based clients can connect to PostgreSQL from within the same availability zone as the compute and storage resources, helping to optimize application performance. Clients can also connect to PostgreSQL over the internet, making it possible to support a variety of applications and workflows. The following figure provides a conceptual overview of how the ADP components fit together.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1477\" height=\"1532\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-1.png\" alt=\"\" class=\"wp-image-106854\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-1.png 1477w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-1-289x300.png 289w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-1-987x1024.png 987w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-1-768x797.png 768w\" sizes=\"auto, (max-width: 1477px) 100vw, 1477px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>The ADP service automatically backs up the data to the region\u2019s zone redundant storage (ZRS), where it maintains three synchronous copies, which are protected with AES 256-bit encryption. You can use the backups to restore a database to any point within the backup retention period. By default, this is seven days, but you can extend this period up to 35 days. If zone-redundant high availability is enabled, the ADP service also maintains a warm standby environment in a separate availability zone within the same region.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-an-adp-flexible-server-instance\">Creating an ADP flexible server instance<\/h2>\n\n\n\n<p>To get started with ADP, you\u2019ll need to create an ADP flexible server resource and then create an ADP server instance. The easiest way to do both of these is to use the Azure portal. Although you don\u2019t have to use the portal, it\u2019s a good place to start when you\u2019re first learning about ADP because you get a complete picture of the available options.<\/p>\n\n\n\n<p>Before I explain how to create them, I want to point out two useful Microsoft articles:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/how-to-deploy-on-azure-free-account\">Use an Azure free account to try Azure Database for PostgreSQL flexible server for free<\/a>. This is the article I referenced above, which explains how to get started with the free ADP service. The article describes how to use the Azure portal to create the ADP resource and server instance. It\u2019s a useful article even if you\u2019re not using the free service.<\/li>\n<\/ul>\n<\/div>\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/quickstart-create-server?tabs=portal-create-flexible%2Cportal-get-connection%2Cportal-delete-resources\">Quickstart: Create an Azure Database for PostgreSQL flexible server<\/a>. This article also describes how to use the Azure portal to create the ADP resource and server instance,. However, it provides more details about the options you\u2019ll encounter when setting up an instance, and it\u2019s not limited to the free ADP service. <\/li>\n<\/ul>\n<\/div>\n\n\n<p>You might want to keep these two articles at hand as you work through this section. One thing to note, however, is that Microsoft documentation and the Azure portal sometimes use the term <em>Azure Database for PostgreSQL flexible server<\/em> as a product name, while at other times it uses it to refer to an ADP flexible server instance. You might also see <em>Azure Database for PostgreSQL flexible servers<\/em> (plural), which confuses things even more. For this series, I try to always use the term <em>instance<\/em> or <em>server instance<\/em> when referring to the actual deployment, unless I\u2019m referencing a UI feature.<\/p>\n\n\n\n<p style=\"padding-right:0;padding-left:var(--wp--preset--spacing--md)\"><strong>Note<\/strong>: Cloud tools are apt to change some of their details in the future. Please leave a message or comment if there are changes that make this article no longer valid, other than basic look and feel changes.<\/p>\n\n\n\n<p>Before we get started, you\u2019ll need to sign into your Azure account. If you don\u2019t have one, refer to the Azure topic <a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/purchase-options\/azure-account\">Build in the cloud with an Azure account<\/a>, which provides information about both the free account and pay-as-you-go account. Once you\u2019re signed into your account, you should start with the following steps to create your ADP resource:<\/p>\n\n\n<div class=\"block-core-list\">\n<ol class=\"wp-block-list\">\n<li> On the <a href=\"portal.azure.com\/#home\">Azure portal home page<\/a>, click <strong>Create a resource<\/strong>. <\/li>\n\n\n\n<li> On the <strong>Create a resource<\/strong> page, search for <strong>Azure Database for PostgreSQL flexible server<\/strong>. <\/li>\n\n\n\n<li> In the search results, select the listing for <strong>Azure Database for PostgreSQL Flexible Server<\/strong>. <\/li>\n\n\n\n<li> On the <strong>Azure Database for PostgreSQL flexible server<\/strong> page, click <strong>Create<\/strong>. <\/li>\n<\/ol>\n<\/div>\n\n\n<p>When you create the ADP resource, Azure automatically launches the <strong>New<\/strong> <strong>Azure Database for PostgreSQL flexible server<\/strong> form, which you\u2019ll use to set up your first ADP flexible server instance. The form is divided into multiple tabs: <strong>Basics<\/strong>, <strong>Networking<\/strong>, <strong>Security<\/strong>, <strong>Tags<\/strong>, and <strong>Review +<\/strong> <strong>create<\/strong>. The form opens on the <strong>Basics<\/strong> tab, which is where you\u2019ll do most of your work. The following figure shows the top half of the <strong>Basics<\/strong> tab, with the options already configured.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1598\" height=\"1120\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2.png\" alt=\"\" class=\"wp-image-106855\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2.png 1598w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2-300x210.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2-1024x718.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2-768x538.png 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-2-1536x1077.png 1536w\" sizes=\"auto, (max-width: 1598px) 100vw, 1598px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>Notice that the form includes a warning at the top that reads: \u201cServer names, networking connectivity method and backup redundancy cannot be changed after server is created. Review these options carefully before provisioning.\u201d Keep this message in mind whenever you create an ADP server instance.<\/p>\n\n\n\n<p>The form also includes a price breakdown of the estimated costs. The estimates will change as you pick different options. If you qualify the free plan, the information will also include the free trial limitations (in green), as it does in the previous figure. Information about the free plan will appear only if you\u2019ve selected the correct options, as described below.<\/p>\n\n\n\n<p>Now let\u2019s take a look at the first six options and how I\u2019ve set them up in my environment:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><strong>Subscription.<\/strong> I created an Azure free account specifically for this series, with the intent of using the ADP free trial. The subscription was automatically named <strong>Azure subscription 1<\/strong>, and it was the only one I could choose from when completing this form. You might have other options available to you when setting up your server instance. <\/li>\n\n\n\n<li><strong>Resource group.<\/strong> You can choose from an existing resource group or create a new one. I created a new one named <strong>ADPResourceGroup<\/strong>. <\/li>\n\n\n\n<li><strong>Server name.<\/strong> I named my server <strong>adpserver<\/strong>, but you can choose any name you like, as long as the server name is unique. <\/li>\n\n\n\n<li><strong>Region.<\/strong> I selected <strong>Central US<\/strong> because that one happened to work. Some regions don\u2019t support the ADP service, so you might need to try a couple different ones till you land on one that works for you. You can find details about supported regions in the ADP topic <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/flexible-server\/overview\">What is Azure Database for PostgreSQL<\/a>? <\/li>\n\n\n\n<li><strong>PostgreSQL version.<\/strong> When I set up my server instance, I chose PostgreSQL 16. I did not select PostgreSQL 17 because it is still in preview, and I didn\u2019t want to run into any surprises. <\/li>\n\n\n\n<li><strong>Workload type.<\/strong> I choose <strong>Development<\/strong> because it uses the fewest resources. You must select this option if you want to use the ADP free trial. <\/li>\n<\/ul>\n<\/div>\n\n\n<p>The next section in the form is <strong>Compute + Storage<\/strong>. To configure these settings, click the <strong>Configure server<\/strong> link. On the <strong>Compute + storage<\/strong> page, I configured the first three options as follows:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><strong>Cluster options.<\/strong> I verified that the <strong>Server<\/strong> option was selected. It should have been selected by default. <\/li>\n\n\n\n<li><strong>Compute tier.<\/strong> I verified that <strong>Burstable<\/strong> was selected. It should already be selected if you chose <strong>Development<\/strong> as your workload type. <\/li>\n\n\n\n<li><strong>Compute size.<\/strong> From the drop-down list, I selected <strong>Standard_B1ms<\/strong>, which you must select if you\u2019re using the ADP free trial. If you are not using the free license, you can not how different compute and storage settings may affect your costs. <\/li>\n<\/ul>\n<\/div>\n\n\n<p>The following figure shows how I set up the <strong>Compute<\/strong> section of the <strong>Compute + storage<\/strong> page.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1530\" height=\"634\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-3.png\" alt=\"\" class=\"wp-image-106857\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-3.png 1530w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-3-300x124.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-3-1024x424.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-3-768x318.png 768w\" sizes=\"auto, (max-width: 1530px) 100vw, 1530px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>I left the remaining options with their default values and clicked <strong>Save<\/strong>, which returned me to the <strong>Basics<\/strong> tab of the new server instance form. There I left <strong>High availability<\/strong> option disabled and moved onto the <strong>Authentication<\/strong> section, which is shown in the following figure.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1532\" height=\"1022\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-4.png\" alt=\"\" class=\"wp-image-106858\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-4.png 1532w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-4-300x200.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-4-1024x683.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-4-768x512.png 768w\" sizes=\"auto, (max-width: 1532px) 100vw, 1532px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>For the Authentication method section, I selected the third option, <strong>PostgreSQL and Microsoft Entra authentication<\/strong>. I thought this would give me the most flexibility to experiment with different features in ADP. If you want to keep things simple, you can select <strong>PostgreSQL authentication only<\/strong>. In either case, you\u2019ll need to provide a PostgreSQL administrator login name and password. If you opt for both authentication methods, you\u2019ll also need to set the Entra administrator by clicking the <strong>Set admin<\/strong> link.<\/p>\n\n\n\n<p>At the bottom of the <strong>Basics<\/strong> tab, click <strong>Next: Networking<\/strong>, which takes you to the <strong>Networking<\/strong> tab. The following image shows the top of the page. I left these settings with their default values.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1134\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5.png\" alt=\"\" class=\"wp-image-106859\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5.png 1600w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5-300x213.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5-1024x726.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5-768x544.png 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-5-1536x1089.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>The only item I changed on the <strong>Networking<\/strong> tab was to add a firewall rule that allowed me to connect to the service from my local IP address. You can do this now or do it later when you\u2019re ready to connect to the ADP service from a local client. (You may have to change this setting occasionally, if your IP address changes, like working from a different location.) I did not change any of the settings on the <strong>Security<\/strong> or <strong>Tags<\/strong> tab, although you might want to have a look at those for future reference.<\/p>\n\n\n\n<p>At this point, you should be ready to create your ADP instance. Click <strong>Review + create<\/strong> at the bottom of the form. The portal will display a summary of your instance settings. Review all the information, and then click <strong>Create<\/strong>. If everything is working as expected, Azure will display a page that shows your deployment\u2019s progress. When the process has finished, the page should indicate that the deployment has completed. The following figure shows the information I received for my deployment.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1597\" height=\"1286\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6.png\" alt=\"\" class=\"wp-image-106860\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6.png 1597w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6-300x242.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6-1024x825.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6-768x618.png 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-6-1536x1237.png 1536w\" sizes=\"auto, (max-width: 1597px) 100vw, 1597px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>After the deployment is complete, you can click <strong>Go to resource<\/strong> to go to the page created for the new server instance\u2014where you can view information, configure settings, or use other features\u2014or you can go to other areas of the Azure portal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-adp-flexible-server-features\">ADP flexible server features<\/h2>\n\n\n\n<p>When you add a server instance to your ADP resource, the <strong>Azure Database for PostgreSQL flexible servers<\/strong> page in the Azure portal will display the new instance, along with any other instances you created. On my system, the only server instance I created was <strong>adpserver<\/strong>, so that is what appears on my ADP resource page, as shown in the following figure.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1601\" height=\"730\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7.png\" alt=\"\" class=\"wp-image-106861\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7.png 1601w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7-300x137.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7-1024x467.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7-768x350.png 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-7-1536x700.png 1536w\" sizes=\"auto, (max-width: 1601px) 100vw, 1601px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>From the instance listing, you can access your instance\u2019s management page, resource group, and subscription by clicking the appropriate item. This will take you to the detail page for that component. For now, let\u2019s focus on the server instance. If you click the link, the portal takes you to that page, where you can view information about the instance and carry out a variety of tasks.<\/p>\n\n\n\n<p>The following figure shows the <strong>adpserver<\/strong> page as it appears in my browser. The page opens on the <strong>Overview<\/strong> section, which is selected in the left panel. The main window displays details about the deployment, such as subscription, resource group, location, status, PostgreSQL version, and more.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1597\" height=\"1033\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8.png\" alt=\"\" class=\"wp-image-106862\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8.png 1597w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8-300x194.png 300w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8-1024x662.png 1024w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8-768x497.png 768w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2025\/05\/word-image-106853-8-1536x994.png 1536w\" sizes=\"auto, (max-width: 1597px) 100vw, 1597px\" \/><\/figure>\n\n\n\n<p>\n  \n<\/p>\n\n\n\n<p>The left panel on the server instance page lets you navigate to a wide range of features and tools, which you can view by going to the individual sections. I encourage you to go through these sections to get a better sense of what\u2019s available. In the meantime, here\u2019s a summary of the individual sections:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><strong>Activity log.<\/strong> An event log that records events such as stopping or starting the server instance, deleting the instance, or updating firewall rules. For each event, you can drill into details that are specific to the type of event, which can be useful when troubleshooting issues or optimizing operations. <\/li>\n\n\n\n<li><strong>Access control (IAM).<\/strong> Provides identity and access management tools for viewing roles and role assignments specific to the server instance. You can also manage role assignments in this section. <\/li>\n\n\n\n<li><strong>Tags.<\/strong> Name\/value pairs that can be used to categorize resources. The tag names are case-insensitive, while the tag values are case-sensitive. <\/li>\n\n\n\n<li><strong>Diagnose and solve problems.<\/strong> Tools for troubleshooting common problems that might occur with the ADP instance. Each tool helps address a specific problem area, such as security, extensions, server connectivity, or high availability. When using one of the tools, you\u2019ll need to answer specific questions to help narrow down the focus. <\/li>\n\n\n\n<li><strong>Resource visualizer.<\/strong> A tool that provides a graphical overview of the relationships between your ADP instance and other Azure resources and the dependencies between them. <\/li>\n\n\n\n<li><strong>Migration.<\/strong> A tool for migrating data in a PostgreSQL database to an ADP flexible server instance. The source database can come from either on-premises or cloud-based deployments such as Amazon Aurora PostgreSQL or Google Cloud SQL for PostgreSQL. <\/li>\n\n\n\n<li><strong>Fabric mirroring (preview).<\/strong> A tool for mirroring your ADP data to Microsoft Fabric, a platform for managing and analyzing data. ADP makes it possible to continuously replicate your PostgreSQL data into Fabric OneLake. <\/li>\n\n\n\n<li><strong>Settings.<\/strong> An extensive set of server configuration settings for managing the server environment. The settings include those related to storage, networking, connectivity, replication, maintenance, high availability, and other aspects of the ADP environment. The settings also include a listing for databases, where you can view system and user databases, as well as create and delete user databases. <\/li>\n\n\n\n<li><strong>Power Platform.<\/strong> A tool for integrating with Power BI Desktop, where you can use ADP data to create and share visualizations and reports. <\/li>\n\n\n\n<li><strong>Security.<\/strong> A set of tools for managing security on the ADP instance. You can configure security settings related to features and services such as the administrator login, Microsoft Entra authentication, system assigned managed identity, and Microsoft Defender for Cloud. <\/li>\n\n\n\n<li><strong>Intelligent Performance.<\/strong> Tools for tracking ADP query performance and for tuning ADP indexes. The query performance information includes details about long running queries, wait statistics, and the top queries. The index tuning feature analyzes read queries and recommends index changes. <\/li>\n\n\n\n<li><strong>Monitoring.<\/strong> A set of tools for monitoring database activity and configuring alerts based on individually defined rules. The ADP service exposes a wide range of metrics for tracking activity across the server instance and its databases. <\/li>\n\n\n\n<li><strong>Automation.<\/strong> Information and tools for automating tasks such as starting or stopping the server, scaling the service at a specific time of day, or tracking the monthly costs of a resource. <\/li>\n\n\n\n<li><strong>Help.<\/strong> A set of resources for getting help and resolving issues. You can find information about recent health events as well as a collection of troubleshooting guides related to topics such as CPU, memory, and IOPS. <\/li>\n<\/ul>\n<\/div>\n\n\n<p>As we work though the articles in this series, we\u2019ll dig into these features and tools in more detail. You\u2019ll also find plenty of information in the ADP documentation. A good place to start is with the top-level topic, <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/postgresql\/\">Azure Database for PostgreSQL documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-your-first-user-database\">Create your first user database<\/h2>\n\n\n\n<p>After you create a ADP flexible server instance, you can use the Azure portal to add or delete user databases from that instance. The steps for adding a user database are fairly straightforward:<\/p>\n\n\n<div class=\"block-core-list\">\n<ol class=\"wp-block-list\">\n<li> Go to the ADP server instance page if you\u2019re not already there. In my case, it is the <strong>adpserver<\/strong> page (If you named your server a different name, it will be that page instead). <\/li>\n\n\n\n<li>In the left panel, expand the <strong>Settings<\/strong> node and click the <strong>Databases<\/strong> node to go to that section. On the <strong>Database<\/strong> page, you should find three databases already listed:<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><strong>azure_maintenance.<\/strong> A system database used for administrative data. Users are granted minimal access to this database and can do little with it. <\/li>\n\n\n\n<li><strong>azure_sys.<\/strong> A system database used by ADP tools such as query store and index tuning. <\/li>\n\n\n\n<li><strong>postgres.<\/strong> A user database that provides an initial database environment for new deployments. You can use this database however you like. <\/li>\n<\/ul>\n<\/div><\/li>\n\n\n\n<li> To add a new database, click the <strong>Add<\/strong> button near the top of the page. <\/li>\n\n\n\n<li> In the <strong>Create database<\/strong> window, type a name for the new database in the <strong>Name<\/strong> textbox and click <strong>Save<\/strong>. <\/li>\n<\/ol>\n<\/div>\n\n\n<p>Azure will create the database and add it to your list of databases on the <strong>Databases<\/strong> page. To delete the database, select the checkbox to the left of the database name, click the <strong>Delete<\/strong> button near the top of the page, and then click <strong>Delete<\/strong> again to confirm the deletion. The database will be removed from the list of databases.<\/p>\n\n\n\n<p style=\"padding-right:0;padding-left:var(--wp--preset--spacing--md)\"><strong>Note.<\/strong> As you\u2019ll see later in this series, you can also add or delete user database from your client interfaces, as well as define the individual tables that go into those databases.<\/p>\n\n\n\n<p>In some cases, you might want to stop running a server instance to minimize resource usage. For example, if you create an instance for development and testing purposes, you can stop it when you\u2019re not using it and then restart it when you\u2019re ready to use it again:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li> To stop the instance, go to the <strong>Overview<\/strong> section on the instance\u2019s page and click the <strong>Stop<\/strong> button near the top of the page. When prompted to confirm your choice, click <strong>Stop<\/strong> again. The server will remain stopped for seven days, unless you restart it sooner. <\/li>\n\n\n\n<li> To start the instance, go to the <strong>Overview<\/strong> section on the instance\u2019s page and click the <strong>Start<\/strong> button near the top of the page. <\/li>\n<\/ul>\n<\/div>\n\n\n<p>Stopping an instance when you\u2019re not using it is a good habit to get into to help reduce costs, assuming that it doesn\u2019t disrupt operations. Unfortunately, it doesn\u2019t help reduce your storage usage, although you can delete any data or databases you don\u2019t need to retain. Cloud services don\u2019t come cheap, so anywhere you can reduce your footprint, the better, especially when you\u2019re just learning about the service.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-making-the-most-of-adp-flexible-server\">Making the most of ADP flexible server<\/h2>\n\n\n\n<p>Azure Database for PostgreSQL flexible server makes database deployment fast and easy, minimizing the administrative overhead that comes with on-premises deployments. At the same time, the ADP service offers a number of tools and configurable settings that enable organizations to deploy a relational database environment that best supports their application workloads. However, these features and settings come with their own learning curve, and users such as DBAs should invest the time necessary to make the most of the service.<\/p>\n\n\n\n<p>In this article, I\u2019ve introduced you to the ADP service and explained how to set up your first server instance. Throughout the rest of the series, I\u2019ll dig more deeply into the different ways you can work with the ADP environment and its data. For many of the tasks you\u2019ll be carrying out, you\u2019ll likely rely on a client interface to connect remotely to the server instance. For example, you might use the psql command-line interface (CLI) or the pgAdmin graphical user interface (GUI), both of which you\u2019ll learn about in subsequent articles. Even with these tools, there\u2019s still a lot you can do in the Azure portal, so it pays to learn about multiple approaches to managing the ADP environment and working with its data, which is what we\u2019ll be covering in this series.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Along with its many other cloud services, Microsoft now offers Azure Database for PostgreSQL Flexible Server, a database-as-a-service platform based on the PostgreSQL open-source database system. DBAs, developers, analysts, and other users who are familiar with relational database management systems&#8212;whether on-premises or in the cloud\u2014should have little trouble getting started with ADP flexible server. That&#8230;&hellip;<\/p>\n","protected":false},"author":221841,"featured_media":106856,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[53,143534],"tags":[158978,159320,159321],"coauthors":[6779],"class_list":["post-106853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-postgresql","tag-postgresql","tag-postgresql-on-azure","tag-robertsheldonpostgresqlflexibleserver"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/106853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/221841"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=106853"}],"version-history":[{"count":3,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/106853\/revisions"}],"predecessor-version":[{"id":106866,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/106853\/revisions\/106866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/106856"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=106853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=106853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=106853"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=106853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}