教學課程:使用 Azure 入口網站設計適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器Tutorial: Design an Azure Database for PostgreSQL - Single Server using the Azure portal

「適用於 PostgreSQL 的 Azure 資料庫」是一個受控服務,可讓您在雲端執行、管理及調整高可用性 PostgreSQL 資料庫。Azure Database for PostgreSQL is a managed service that enables you to run, manage, and scale highly available PostgreSQL databases in the cloud. 使用 Azure 入口網站,您可以輕鬆管理伺服器和設計資料庫。Using the Azure portal, you can easily manage your server and design a database.

在本教學課程中,您將使用 Azure 入口網站來學習如何:In this tutorial, you use the Azure portal to learn how to:

  • 建立適用於 PostgreSQL 的 Azure 資料庫伺服器Create an Azure Database for PostgreSQL server
  • 設定伺服器防火牆Configure the server firewall
  • 使用 psql 公用程式來建立資料庫Use psql utility to create a database
  • 載入範例資料Load sample data
  • 查詢資料Query data
  • 更新資料Update data
  • 還原資料Restore data

必要條件Prerequisites

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶If you don't have an Azure subscription, create a free account before you begin.

建立適用於 PostgreSQL 的 Azure 資料庫Create an Azure Database for PostgreSQL

「適用於 PostgreSQL 的 Azure 資料庫」伺服器是以一組已定義的計算和儲存體資源所建立。An Azure Database for PostgreSQL server is created with a defined set of compute and storage resources. 伺服器會建立在 Azure 資源群組內。The server is created within an Azure resource group.

請依照下列步驟來建立「適用於 PostgreSQL 的 Azure 資料庫」伺服器:Follow these steps to create an Azure Database for PostgreSQL server:

  1. 按一下 Azure 入口網站左上角的 [建立資源] 。Click Create a resource in the upper left-hand corner of the Azure portal.

  2. 從 [新增] 頁面中選取 [資料庫] ,然後從 [資料庫] 頁面中選取 [適用於 PostgreSQL 的 Azure 資料庫] 。Select Databases from the New page, and select Azure Database for PostgreSQL from the Databases page. 適用於 PostgreSQL 的 Azure 資料庫 - 建立資料庫Azure Database for PostgreSQL - Create the database

  3. 選取 [單一伺服器] 部署選項。Select the Single server deployment option.

    選取 [適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器] 部署選項

  4. 在 [基本資料] 表單中填寫下列資訊:Fill out the Basics form with the following information:

    建立伺服器

    設定Setting 建議的值Suggested Value 說明Description
    訂用帳戶Subscription 您的訂用帳戶名稱Your subscription name 您要用於伺服器的 Azure 訂用帳戶。The Azure subscription that you want to use for your server. 如果您有多個訂用帳戶,請選擇資源計費的訂用帳戶。If you have multiple subscriptions, choose the subscription in which you're billed for the resource.
    資源群組Resource group myresourcegroupmyresourcegroup 新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。A new resource group name or an existing one from your subscription.
    伺服器名稱Server name mydemoservermydemoserver 可識別 Azure Database for PostgreSQL 伺服器的唯一名稱。A unique name that identifies your Azure Database for PostgreSQL server. 網域名稱 postgres.database.azure.com 已附加至您提供的伺服器名稱。The domain name postgres.database.azure.com is appended to the server name you provide. 伺服器只能包含小寫字母、數字及連字號 (-) 字元。The server can contain only lowercase letters, numbers, and the hyphen (-) character. 它必須包含至少 3 到 63 個字元。It must contain at least 3 through 63 characters.
    資料來源Data source NoneNone 選取 [無] 從頭建立新的伺服器。Select None to create a new server from scratch. (如果您要從現有「適用於 PostgreSQL 的 Azure 資料庫」伺服器的異地備份建立伺服器,可以選取 [備份] )。(You would select Backup if you were creating a server from a geo-backup of an existing Azure Database for PostgreSQL server).
    系統管理員使用者名稱Admin username myadmin myadmin 連線至伺服器時所要使用之自己的登入帳戶。Your own login account to use when you connect to the server. 管理員登入名稱不能是 azure_superuserazure_pg_admin admin administrator root guestpublicThe admin login name can't be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. 它不能以 pg_ 開頭。It can't start with pg_.
    密碼Password 您的密碼Your password 伺服器管理帳戶的新密碼。A new password for the server admin account. 其必須包含 8 到 128 個字元。It must contain between 8 and 128 characters. 您的密碼必須包含下列類別中三種類別的字元:英文大寫字母、英文小寫字母、數字 (0 到 9) 及非英數字元 (!、$、#、% 等等)。Your password must contain characters from three of the following categories: English uppercase letters, English lowercase letters, numbers (0 through 9), and non-alphanumeric characters (!, $, #, %, etc.).
    位置Location 最接近使用者的區域The region closest to your users 最靠近您使用者的位置。The location that is closest to your users.
    版本Version 最新的主要版本The latest major version 最新 PostgreSQL 主要版本 (除非您有其他特定需求)。The latest PostgreSQL major version, unless you have specific requirements otherwise.
    計算 + 儲存體Compute + storage 一般用途Gen 52 個虛擬核心5 GB7 天異地備援General Purpose, Gen 5, 2 vCores, 5 GB, 7 days, Geographically Redundant 新伺服器的計算、儲存體和備份組態。The compute, storage, and backup configurations for your new server. 選取 [設定伺服器] 。Select Configure server. 接下來,選取 [一般用途] 索引標籤。Gen 5 、4 個虛擬核心 、100 GB 和 7 天 是 [計算世代] 、[虛擬核心] 、[儲存體] 和 [備份保留期限] 的預設值。Next, select the General Purpose tab. Gen 5, 4 vCores, 100 GB, and 7 days are the default values for Compute Generation, vCore, Storage, and Backup Retention Period. 您可以讓這些滑桿保持原狀或加以調整。You can leave those sliders as is or adjust them. 若要啟用異地備援儲存體中的伺服器備份,請從 [備份備援選項] 中選取 [異地備援] 。To enable your server backups in geo-redundant storage select Geographically Redundant from the Backup Redundancy Options. 若要儲存此定價層選取項目,請選取 [確定] 。To save this pricing tier selection, select OK. 下方螢幕擷取畫面會擷取這些選取項目。The next screenshot captures these selections.

    注意

    如果您的工作負載只需要輕量計算和 I/O,請考慮使用基本定價層。Consider using the Basic pricing tier if light compute and I/O are adequate for your workload. 請注意,在基本定價層中建立的伺服器後續無法調整為「一般用途」或「記憶體最佳化」。Note that servers created in the Basic pricing tier cannot later be scaled to General Purpose or Memory Optimized. 如需詳細資訊,請參閱定價頁面See the pricing page for more information.

    [定價層] 窗格

    提示

    啟用自動成長後,您的伺服器會在接近配置的限制時增加儲存體,而不會影響您的工作負載。With auto-growth enabled your server increases storage when you are approaching the allocated limit, without impacting your workload.

  5. 選取 [檢閱 + 建立] 以檢閱您的選項。Select Review + create to review your selections. 選取 [建立] 以佈建伺服器。Select Create to provision the server. 這項作業可能需要幾分鐘的時間。This operation may take a few minutes.

  6. 在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。On the toolbar, select the Notifications icon (a bell) to monitor the deployment process. 完成部署後,您可以選取 [釘選到儀表板] ,在 Azure 入口網站儀表板上建立此伺服器的圖格,以作為伺服器 [概觀] 頁面的捷徑。Once the deployment is done, you can select Pin to dashboard, which creates a tile for this server on your Azure portal dashboard as a shortcut to the server's Overview page. 選取 [移至資源] 會開啟伺服器的 [概觀] 頁面。Selecting Go to resource opens the server's Overview page.

    [通知] 窗格

    根據預設,postgres 資料庫會建立在您的伺服器底下。By default, a postgres database is created under your server. postgres 資料庫是要供使用者、公用程式及第三方應用程式使用的預設資料庫。The postgres database is a default database that's meant for use by users, utilities, and third-party applications. (其他預設資料庫是 azure_maintenance(The other default database is azure_maintenance. 其功能是分隔受控服務處理程序和使用者動作。Its function is to separate the managed service processes from user actions. 您無法存取此資料庫。)You cannot access this database.)

設定伺服器層級防火牆規則Configure a server-level firewall rule

「適用於 PostgreSQL 的 Azure 資料庫」服務會使用伺服器層級的防火牆。The Azure Database for PostgreSQL service uses a firewall at the server-level. 根據預設,除非已建立防火牆規則來針對特定 IP 位址範圍打開防火牆,否則此防火牆會防止所有外部應用程式和工具連線到伺服器及伺服器上的任何資料庫。By default, this firewall prevents all external applications and tools from connecting to the server and any databases on the server unless a firewall rule is created to open the firewall for a specific IP address range.

  1. 完成部署之後,從左側功能表中按一下 [所有資源] ,然後輸入名稱 mydemoserver 來搜尋新建立的伺服器。After the deployment completes, click All Resources from the left-hand menu and type in the name mydemoserver to search for your newly created server. 按一下搜尋結果中列出的伺服器名稱。Click the server name listed in the search result. 伺服器的 [概觀] 頁面隨即開啟,並提供可進行進一步設定的選項。The Overview page for your server opens and provides options for further configuration.

    適用於 PostgreSQL 的 Azure 資料庫 - 搜尋伺服器

  2. 在伺服器頁面中,選取 [連線安全性] 。In the server page, select Connection security.

  3. 在 [規則名稱] 底下的文字方塊中按一下,然後新增新的防火牆規則,以指定 IP 範圍來獲得連線能力。Click in the text box under Rule Name, and add a new firewall rule to specify the IP range for connectivity. 輸入您的 IP 範圍。Enter your IP range. 按一下 [檔案] 。Click Save.

    適用於 PostgreSQL 的 Azure 資料庫 - 建立防火牆規則

  4. 按一下 [儲存] ,然後按一下 [X] ,以關閉 [連線安全性] 頁面。Click Save and then click the X to close the Connections security page.

    注意

    Azure PostgreSQL 伺服器會透過連接埠 5432 進行通訊。Azure PostgreSQL server communicates over port 5432. 如果您嘗試從公司網路內進行連線,您網路的防火牆可能不允許透過連接埠 5432 的輸出流量。If you are trying to connect from within a corporate network, outbound traffic over port 5432 may not be allowed by your network's firewall. 若情況如此,除非 IT 部門開啟連接埠 5432,否則您無法連線至 Azure SQL Database 伺服器。If so, you cannot connect to your Azure SQL Database server unless your IT department opens port 5432.

取得連線資訊Get the connection information

您建立「適用於 PostgreSQL 的 Azure 資料庫」伺服器時,會一併建立預設的 postgres 資料庫。When you created the Azure Database for PostgreSQL server, the default postgres database was also created. 若要連線到您的資料庫伺服器,您必須提供主機資訊和存取認證。To connect to your database server, you need to provide host information and access credentials.

  1. 從 Azure 入口網站的左側功能表中,按一下 [所有資源] ,然後搜尋您剛建立的伺服器。From the left-hand menu in the Azure portal, click All resources and search for the server you just created.

    適用於 PostgreSQL 的 Azure 資料庫 - 搜尋伺服器

  2. 按一下伺服器名稱 mydemoserverClick the server name mydemoserver.

  3. 選取伺服器的 [概觀] 頁面。Select the server's Overview page. 記下 [伺服器名稱] 和 [伺服器管理員登入名稱] 。Make a note of the Server name and Server admin login name.

    適用於 PostgreSQL 的 Azure 資料庫 - 伺服器管理員登入

使用 psql 連線到 PostgreSQL 資料庫Connect to PostgreSQL database using psql

如果您的用戶端電腦已安裝 PostgreSQL,您可以使用 psql 的本機執行個體,或 Azure 雲端主控台來連線到 Azure PostgreSQL 伺服器。If your client computer has PostgreSQL installed, you can use a local instance of psql, or the Azure Cloud Console to connect to an Azure PostgreSQL server. 現在我們將使用 psql 命令列公用程式來連線到「適用於 PostgreSQL 的 Azure 資料庫」伺服器。Let's now use the psql command-line utility to connect to the Azure Database for PostgreSQL server.

  1. 執行下列 psql 命令以連線到「適用於 PostgreSQL 的 Azure 資料庫」資料庫:Run the following psql command to connect to an Azure Database for PostgreSQL database:

    psql --host=<servername> --port=<port> --username=<user@servername> --dbname=<dbname>
    

    例如,下列命令會使用存取認證,連線到 PostgreSQL 伺服器 mydemoserver.postgres.database.azure.com 上名為 postgres 的預設資料庫。For example, the following command connects to the default database called postgres on your PostgreSQL server mydemoserver.postgres.database.azure.com using access credentials. 系統提示輸入密碼時,請輸入您選擇的 <server_admin_password>Enter the <server_admin_password> you chose when prompted for password.

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres
    

    提示

    如果您想要使用 URL 路徑來連線到 Postgres,URL 在使用者名稱中以 %40 編碼 @ 符號。If you prefer to use a URL path to connect to Postgres, URL encode the @ sign in the username with %40. 例如,psql 的連接字串會是For example the connection string for psql would be,

    psql postgresql://myadmin%40mydemoserver@mydemoserver.postgres.database.azure.com:5432/postgres
    
  2. 連線到伺服器之後,在提示字元中建立空白資料庫:Once you are connected to the server, create a blank database at the prompt:

    CREATE DATABASE mypgsqldb;
    
  3. 在提示字元,執行下列命令以將連線切換到新建立的資料庫 mypgsqldbAt the prompt, execute the following command to switch connection to the newly created database mypgsqldb:

    \c mypgsqldb
    

在資料庫中建立資料表Create tables in the database

既然您已知道如何連線到「適用於 PostgreSQL 的 Azure 資料庫」,您可以了解如何完成一些基本工作:Now that you know how to connect to the Azure Database for PostgreSQL, you can complete some basic tasks:

首先,建立資料表並在其中載入一些資料。First, create a table and load it with some data. 我們將使用下列的 SQL 程式碼建立一個追蹤清查資訊的資料表:Let's create a table that tracks inventory information using this SQL code:

CREATE TABLE inventory (
    id serial PRIMARY KEY, 
    name VARCHAR(50), 
    quantity INTEGER
);

您現在可以輸入下列命令來查看資料表清單中新建立的資料表:You can see the newly created table in the list of tables now by typing:

\dt

將資料載入到資料表Load data into the tables

既然您已經有資料表,請在其中插入一些資料。Now that you have a table, insert some data into it. 在開啟的命令提示字元視窗,執行下列查詢以插入幾列資料。At the open command prompt window, run the following query to insert some rows of data.

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

您現在已將兩列範例資料插入到先前建立的清查資料表中。You have now two rows of sample data into the inventory table you created earlier.

查詢並更新資料表中的資料Query and update the data in the tables

執行下列查詢,以從清查資料庫資料表中擷取資訊。Execute the following query to retrieve information from the inventory database table.

SELECT * FROM inventory;

您也可以更新資料表中的資料。You can also update the data in the table.

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

當您擷取資料時,可以看到更新的值。You can see the updated values when you retrieve the data.

SELECT * FROM inventory;

將資料還原到先前的時間點Restore data to a previous point in time

想像一下您不小心刪除了這個資料表。Imagine you have accidentally deleted this table. 這是您無法輕易復原的情況。This situation is something you cannot easily recover from. 適用於 PostgreSQL 的 Azure 資料庫可讓您返回至伺服器上任何有備份的時間點 (取決於您設定的備份保留期限),並將此時間點還原至新的伺服器。Azure Database for PostgreSQL allows you to go back to any point-in-time for which your server has backups (determined by the backup retention period you configured) and restore this point-in-time to a new server. 您可以使用這個新的伺服器來復原已刪除的資料。You can use this new server to recover your deleted data. 下列步驟會將 mydemoserver 伺服器還原到新增清查資料表之前的時間點。The following steps restore the mydemoserver server to a point before the inventory table was added.

  1. 在您伺服器之「適用於 PostgreSQL 的 Azure 資料庫」的 [概觀] 頁面上,按一下工具列上的 [還原] 。On the Azure Database for PostgreSQL Overview page for your server, click Restore on the toolbar. [還原] 頁面隨即開啟。The Restore page opens.

    Azure 入口網站 - 還原表單選項

  2. 在 [還原] 表單中填入必要資訊︰Fill out the Restore form with the required information:

    Azure 入口網站 - 還原表單選項

    • 還原點:選取在伺服器發生變更前的時間點Restore point: Select a point-in-time that occurs before the server was changed
    • 目標伺服器:提供要作為還原目的地的新伺服器名稱Target server: Provide a new server name you want to restore to
    • 位置:您無法選取區域,預設是與來源伺服器相同的區域Location: You cannot select the region, by default it is same as the source server
    • 定價層:還原伺服器時,您無法變更此值。Pricing tier: You cannot change this value when restoring a server. 它與來源伺服器相同。It is same as the source server.
  3. 按一下 [確定] 以將伺服器還原到刪除資料表之前的時間點Click OK to restore the server to a point-in-time before the table was deleted. 如果將伺服器還原到不同的時間點,將會從您指定的時間點 (前提是此時間點在您定價層的保留期限內) 開始,建立重複的新伺服器作為原始伺服器。Restoring a server to a different point in time creates a duplicate new server as the original server as of the point in time you specify, provided that it is within the retention period for your pricing tier.

後續步驟Next steps

在本教學課程中,您已了解如何使用 Azure 入口網站和其他公用程式來:In this tutorial, you learned how to use the Azure portal and other utilities to:

  • 建立適用於 PostgreSQL 的 Azure 資料庫伺服器Create an Azure Database for PostgreSQL server
  • 設定伺服器防火牆Configure the server firewall
  • 使用 psql 公用程式來建立資料庫Use psql utility to create a database
  • 載入範例資料Load sample data
  • 查詢資料Query data
  • 更新資料Update data
  • 還原資料Restore data

接著,若要了解如何使用 Azure CLI 來執行類似的工作,請檢閱此教學課程:使用 Azure CLI 來設計您第一個適用於 PostgreSQL 的 Azure 資料庫Next, to learn how to use the Azure CLI to do similar tasks, review this tutorial: Design your first Azure Database for PostgreSQL using Azure CLI