Hướng dẫn thêm Azure SQL Database elastic pool vào nhóm chuyển đổi dự phòng
20 July, 2023

Hướng dẫn thêm Azure SQL Database elastic pool vào nhóm chuyển đổi dự phòng

Azure SQL Database cho phép doanh nghiệp tập trung các tài nguyên cơ sở dữ liệu vào một nhóm chung để sử dụng, giúp tiết kiệm chi phí và tăng khả năng mở rộng cho các ứng dụng trong tổ chức. Ngoài ra, elastic pool cũng cung cấp chức năng giám sát, quản lý tài nguyên để đảm bảo sự ổn định và hiệu suất của các cơ sở dữ liệu.

Azure SQL Database elastic pool là một tính năng của dịch vụ cơ sở dữ liệu quản lý của Microsoft Azure, cho phép người dùng tổ chức, chia sẻ tài nguyên bộ nhớ và CPU giữa nhiều cơ sở dữ liệu trong cùng một nhóm. Doanh nghiệp ứng dụng Azure SQL Database elastic pool để quản lý số lượng lớn các cơ sở dữ liệu một cách hiệu quả và tối ưu hóa sử dụng tài nguyên. 

Bài viết này nhằm cung cấp cách định cấu hình nhóm chuyển đổi tự động cho cơ sở dữ liệu SQL Azure và kiểm tra chuyển đổi dự phòng bằng cổng Azure. 

Mục lục

Điều kiện tiên quyết

Người dùng phải có một tài khoản Azure chính chủ. Nếu chưa có, hãy tạo ngay cho mình một tài khoản miễn phí

Phần 1: Hướng dẫn tạo một cơ sở dữ liệu duy nhất

Trong bước này, người dùng sẽ được hướng dẫn cách tạo một nhóm tài nguyên, máy chủ SQL, cơ sở dữ liệu đơn và quy tắc tường lửa IP. 

Người dùng có thể tạo cơ sở dữ liệu bằng cách sử dụng cổng thông tin Azura, Azure CLI hoặc PowerShell trong Azure Cloud Shell. 

Hướng dẫn tạo cơ sở dữ liệu người dùng
Hướng dẫn tạo cơ sở dữ liệu người dùng

Cổng thông tin Azura

Để tạo một nhóm tài nguyên, máy chủ và cơ sở dữ liệu duy nhất trong cổng Azure:

  • Đăng nhập vào cổng thông tin.
  • Tìm kiếm và kích chọn Azure SQL.
  • Trên trang hiển thị Azure SQL, chọn Add.
Giao diện của trang tìm kiếm cổng Azure, hiển thị Azure SQL

    Giao diện của trang tìm kiếm cổng Azure, hiển thị Azure SQL

 

  • Trên trang Select SQL deployment option, hãy chọn SQL databases, với Single database trong Resource type. Người dùng có thể xem thêm thông tin về các cơ sở dữ liệu khác nhau bằng cách kích chọn Show details.
  • Chọn Create.
Giao diện của trang tùy chọn triển khai Select SQL của cổng thông tin Azure
Giao diện của trang tùy chọn triển khai Select SQL của cổng thông tin Azure
  • Trên tab Basics của biểu mẫu Create SQL database, bên dưới Project details, chọn Subscription Azure nếu như mục này chưa được chọn.
  • Trong Resource group, chọn Create new, nhập myResourceGroup và chọn OK.
  • Trong phần Database details, hãy nhập mySampleDatabase trong phần Database name. 
  • Trong phần Server, chọn Create new và điền vào biểu mẫu New server với các thông tin dưới đây:
    • Server name: Nhập mysqlserver.
    • Server admin login: Nhập AzureAdmin
    • Password: Nhập mật khẩu đáp ứng các yêu cầu và nhập lại mật khẩu đó vào mục Confirm password. 
    • Location: Chọn một vị trí, chẳng hạn như (US) West US.
    • Chọn OK.
Giao diện của trang Tạo máy chủ cơ sở dữ liệu SQL của cổng thông tin Azure
Giao diện của trang Tạo máy chủ cơ sở dữ liệu SQL của cổng thông tin Azure

Hãy ghi lại thông tin, mật khẩu của quản trị viên để đăng nhập vào máy chủ và cơ sở dữ liệu của máy chủ. Nếu quên thông tin đăng nhập hoặc mật khẩu, người dùng có thể lấy tên đăng nhập hoặc đặt lại mật khẩu trên trang SQL server sau khi tạo cơ sở dữ liệu. Để mở trang chủ SQL, hãy chọn tên máy chủ trên trang Overview.

  • Trong mục Compute + storage, nếu muốn tạo cấu hình mặc định thì chọn Configure database. Trên trang Configure, người dùng có thể tùy chọn:
    • Thay đổi bậc Compute tier từ Provisioned thành Serverless.
    • Xem lại và thay đổi cài đặt cho vCoresData max size.
    • Chọn Change configuration để thay đổi cấu hình cho phần cứng.
    • Sau khi thực hiện bất kỳ thay đổi nào, hãy chọn Apply.
  • Chọn Next: Networking ở cuối trang.
Cửa sổ trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab cơ bản
Cửa sổ trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab cơ bản

 

  • Trên tab Networking, bên dưới mục Connectivity method, hãy chọn Public endpoint.
Giao diện của trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab mạng
Giao diện của trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab mạng
  • Trong Firewall rules, hãy cài đặt Add current client IP address thành trạng thái Yes.
  • Chọn Next: Security ở cuối trang.
  • Bật Microsoft Defender for SQL.
  • Chọn Next: Additional settings ở cuối trang.
  • Trên tab Additional settings, trong phần Data source, đối với mục Use existing data, hãy chọn Sample.
  • Cài đặt khoảng thời gian bảo trì vào thời điểm tốt nhất cho cơ sở dữ liệu của tổ chức (không bắt buộc).
  • Chọn Review + create ở cuối trang.
Giao diện của trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab cài đặt bổ sung
Giao diện của trang Tạo cơ sở dữ liệu SQL của cổng Azure, hiển thị tab cài đặt bổ sung
  • Sau khi xem xét cài đặt, hãy chọn Create.

>>> Xem thêm: Khung kiến trúc Microsoft Azure: Tối ưu hóa chi phí và khối lượng công việc

PowerShell

Ở nội dung này, người dùng sẽ biết cách tạo ra các cơ sở dữ liệu. 

Hướng dẫn cách sử dụng PowerShell để tạo cơ sở dữ liệu

Để có thể tạo một nhóm tài nguyên, máy chủ và cơ sở dữ liệu duy nhất bằng Windows PowerShell, người dùng cần phải cài đặt mô-đun Azure PowerShell

Để chạy mẫu mã sau trong Azure Cloud Shell, hãy chọn Try it (dùng thử) trong thanh tiêu đề mã. Tiếp đó, hãy chọn Copy và dán mẫu mã vào cửa sổ Cloud Shell. Theo đó, hãy thay thế <Subscription ID> bằng ID đăng ký Azure. Còn đối với $startIp$endIp, hãy thay thế 0.0.0.0 bằng địa chỉ IP công cộng của máy tính mà người dùng đang sử dụng.

Ngoài ra, người dùng cũng có thể sử dụng Azure Cloud Shell từ cổng Azure bằng cách chọn biểu tượng Cloud Shell trên thanh trên cùng.

Nếu là lần đầu tiên sử dụng Cloud Shell từ cổng thông tin, hãy chọn PowerShell trên hộp thoại Welcome

Đoạn mã code để tạo cơ sở dữ liệu 

Mã PowerShell sau đây được dùng để tạo một nhóm tài nguyên Azure, máy chủ, cơ sở dữ liệu đơn và quy tắc tường lửa để truy cập vào máy chủ.

# Set variables for your server and database

$subscriptionId = '<SubscriptionID>'

$resourceGroupName = "myResourceGroup-$(Get-Random)"

$location = "West US"

$adminLogin = "azureuser"

$password = "Azure1234567"

$serverName = "mysqlserver-$(Get-Random)"

$databaseName = "mySampleDatabase"

 

# The ip address range that you want to allow to access your server

$startIp = "0.0.0.0"

$endIp = "0.0.0.0"

 

# Show randomized variables

Write-host "Resource group name is" $resourceGroupName

Write-host "Server name is" $serverName

 

# Connect to Azure

Connect-AzAccount

 

# Set subscription ID

Set-AzContext -SubscriptionId $subscriptionId

 

# Create a resource group

Write-host "Creating resource group..."

$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location -Tag @{Owner="SQLDB-Samples"}

$resourceGroup

 

# Create a server with a system wide unique server name

Write-host "Creating primary server..."

$server = New-AzSqlServer -ResourceGroupName $resourceGroupName `

   -ServerName $serverName `

   -Location $location `

   -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential `

   -ArgumentList $adminLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

$server

 

# Create a server firewall rule that allows access from the specified IP range

Write-host "Configuring firewall for primary server..."

$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `

   -ServerName $serverName `

   -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

$serverFirewallRule

 

# Create General Purpose standard-series (Gen5) database with 2 vCores

Write-host "Creating a gen5 2 vCore database..."

$database = New-AzSqlDatabase  -ResourceGroupName $resourceGroupName `

   -ServerName $serverName `

   -DatabaseName $databaseName `

   -Edition GeneralPurpose `

   -VCore 2 `

   -ComputeGeneration Gen5 `

   -MinimumCapacity 2 `

   -SampleName "AdventureWorksLT"

$database

 

Azure CLI

Để sử dụng Azure CLI tạo một nhóm tài nguyên, máy chủ, cơ sở dữ liệu đơn và quy tắc tường lửa IP, trước tiên người dùng cần tạo cho mình một tài khoản Azura

Chuẩn bị môi trường để sử dụng Azure CLI

Người dùng có thể sử dụng môi trường Bash trong Azure Cloud Shell để quản lý tài nguyên Azure. Để biết thêm thông tin, hãy xem Quickstart for Bash in Azure Cloud Shell.

Nếu muốn chạy các lệnh tham khảo CLI trên máy tính cục bộ, hãy cài đặt Azure CLI. Nếu người dùng đang làm việc trên hệ điều hành Windows hoặc macOS, hãy xác định xem Azure CLI có thể chạy trong một container Docker hay không. Để biết thêm thông tin, hãy xem How to run the Azure CLI in a Docker container.

  • Nếu đang sử dụng cài đặt cục bộ, hãy đăng nhập vào Azure CLI bằng cách sử dụng lệnh “az login“. Để hoàn tất quá trình xác thực, người dùng chỉ cần làm theo các bước được hiển thị trên ứng dụng của mình. Để biết các tùy chọn đăng nhập khác, hãy xem Sign in with the Azure CLI.
  • Khi được thông báo, hãy cài đặt tiện ích mở rộng Azure CLI trong lần sử dụng đầu tiên. Để biết thêm thông tin về các tiện ích mở rộng, hãy xem Use extensions with the Azure CLI.
  • Chạy lệnh “az version” để tìm phiên bản và các thư viện phụ thuộc đã được cài đặt. Để nâng cấp lên phiên bản mới nhất, hãy chạy lệnh “az upgrade“.

Mở Azure Cloud Shell

Azure Cloud Shell là một chương trình tương tác miễn phí mà người dùng có thể sử dụng để chạy các bước trong bài viết này. Nó có các công cụ Azure thông dụng đã được cài đặt sẵn và cấu hình để sử dụng với tài khoản của người dùng.

Để mở Cloud Shell, hãy chọn Try it ở góc phải phía trên của khối mã. Người dùng cũng có thể khởi động Cloud Shell trên một tab trình duyệt riêng bằng cách truy cập vào https://shell.azure.com.

Khi Cloud Shell được mở, hãy xác nhận rằng Bash được chọn cho môi trường của máy chủ. Các phiên sau sẽ sử dụng Azure CLI trong môi trường Bash. Chọn Copy để sao chép các khối mã, dán chúng vào Cloud Shell và nhấn Enter để chạy.

Đăng nhập vào tài khoản Azura

Cloud Shell được xác thực tự động bằng tài khoản được đăng nhập ban đầu. Nếu người dùng muốn đăng nhập bằng một đăng ký khác, hãy sử dụng đoạn mã sau và thay thế <Subscription ID> bằng ID đăng ký Azure của mình.

Còn nếu người dùng hiện tại chưa có tài khoản Azure, hãy tạo tài khoản Azure miễn phí trước khi bắt đầu. 

subscription="<subscriptionId>" # add subscription here

 

az account set -s $subscription # ...or use 'az login'

Đặt giá trị tham số để tạo tài nguyên

Người dùng cần phải đặt các giá trị tham số để sử dụng trong quá trình tạo cơ sở dữ liệu và các tài nguyên cần thiết. Tên máy chủ phải là duy nhất trên tất cả các tài nguyên trong Azure, do đó hàm $RANDOM được sử dụng để tạo tên máy chủ.

Thay thế <0.0.0.0> bằng phạm vi địa chỉ IP để phù hợp với môi trường cụ thể từng người dùng riêng biệt. Sử dụng địa chỉ IP công cộng của máy tính người dùng đang hoạt động để giới hạn quyền truy cập vào máy chủ chỉ cho địa chỉ IP.

# Variable block

let "randomIdentifier=$RANDOM*$RANDOM"

location="East US"

resourceGroup="msdocs-azuresql-rg-$randomIdentifier"

tag="create-and-configure-database"

server="msdocs-azuresql-server-$randomIdentifier"

database="msdocsazuresqldb$randomIdentifier"

login="azureuser"

password="Pa$$w0rD-$randomIdentifier"

# Specify appropriate IP address values for your environment

# to limit access to the SQL Database server

startIp=0.0.0.0

endIp=0.0.0.0

 

echo "Using resource group $resourceGroup with login: $login, password: $password..."

Tạo một nhóm tài nguyên

Sử dụng đoạn mã dưới đây để tạo một nhóm tài nguyên với lệnh “az group create”. Một nhóm tài nguyên Azure là một thùng chứa logic, trong đó các tài nguyên Azure được triển khai và quản lý. 

echo "Creating $resourceGroup in $location..."

az group create --name $resourceGroup --location "$location" --tags $tag

Tạo một máy chủ

Sử dụng đoạn mã dưới đây để tạo một máy chủ với lệnh “az sql server create”:

echo "Creating $server in $location..."

az sql server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password

Cấu hình một quy tắc tường lửa dựa trên máy chủ

Sử dụng đoạn mã dưới đây để tạo một quy tắc tường lửa với lệnh “az sql server firewall-rule create”: 

echo "Configuring firewall..."

az sql server firewall-rule create --resource-group $resourceGroup --server $server -n AllowYourIp --start-ip-address $startIp --end-ip-address $endIp

Tạo một cơ sở dữ liệu đơn lẻ bằng Azure CLI

Sử dụng đoạn mã dưới đây để tạo một cơ sở dữ liệu với lệnh “az sql db create”: 

echo "Creating $database on $server..."

az sql db create --resource-group $resourceGroup --server $server --name $database --sample-name AdventureWorksLT --edition GeneralPurpose --family Gen5 --capacity 2 --zone-redundant true # zone redundancy is only supported on premium and business critical service tiers

Phần 2: Thêm cơ sở dữ liệu vào một elastic pool

Trong bước này, người dùng sẽ được hướng dẫn tạo một elastic pool và thêm cơ sở dữ liệu của mình vào nó.

Cổng thông tin Azura

Hãy làm theo các bước hướng dẫn dưới đây để tạo elastic pool bằng cổng thông tin Azure.

  • Chọn Azure SQL trong menu bên trái của cổng thông tin  Azure. Nếu Azure SQL không có trong danh sách, chọn All services, sau đó nhập Azure SQL vào ô tìm kiếm. Chọn ngôi sao bên cạnh Azure SQL để đánh dấu yêu thích và thêm nó vào điều hướng bên trái.
  • Chọn + Add để mở trang lựa chọn Select SQL deployment option. Người dùng có thể xem thông tin bổ sung về các cơ sở dữ liệu khác nhau bằng cách chọn Hiển thị chi tiết trên khối Databases.
  • Chọn Elastic pool từ menu Resource type trên khối SQL Databases. Chọn Create để tạo elastic pool.
Trang tạo elastic pool trong Azure portal, với cấu hình elastic pool được chọn
Trang tạo elastic pool trong Azure portal, với cấu hình elastic pool được chọn
  • Cấu hình elastic pool được tạo xong sẽ có các giá trị sau:
    • Name: Cung cấp một tên duy nhất cho elastic pool của bạn, chẳng hạn như <myElasticPool>.
    • Subscription: Chọn đăng ký của người dùng từ menu thả xuống.
    • ResourceGroup: Chọn <myResourceGroup> từ menu thả xuống, nhóm tài nguyên mà người dùng đã tạo ở phần 1.
    • Server: Chọn máy chủ người dùng đã tạo ở phần 1 từ menu thả xuống.
Trang tạo elastic pool trong Azure portal, với cấu hình elastic pool được chọn
Trang tạo elastic pool trong Azure portal, với cấu hình elastic pool được chọn
    • Compute + storage: Chọn Configure elastic pool để cấu hình tính toán, lưu trữ và thêm cơ sở dữ liệu đơn của người dùng vào elastic pool mới tạo. Trên tab Pool Settings, để giá trị mặc định là chuỗi tiêu chuẩn (Gen5), với 2 vCore và 32GB dung lượng lưu trữ tối đa.
  • Trên trang Configure, chọn tab Databases, sau đó chọn Add database. Chọn cơ sở dữ liệu người dùng đã tạo ở phần 1, sau đó chọn Apply để thêm nó vào elastic pool. Chọn Apply lại lần 2 để áp dụng các thiết lập elastic pool và đóng trang Configure.
Hướng dẫn thêm cơ sở dữ liệu vào elastic pool bằng cổng thông tin Azura
Hướng dẫn thêm cơ sở dữ liệu vào elastic pool bằng cổng thông tin Azura
    • Chọn Review + create để xem lại cài đặt elastic pool của mình, sau đó chọn Create để tạo elastic pool.

PowerShell

Sử dụng đoạn mã dưới đây để tạo elastic pools và máy chủ phụ bằng PowerShell:

# Set variables for your server and database

# $subscriptionId = '<SubscriptionID>'

# $resourceGroupName = "myResourceGroup-$(Get-Random)"

# $location = "East US"

# $adminLogin = "azureuser"

# $password = "PWD27!"+(New-Guid).Guid

# $serverName = "mysqlserver-$(Get-Random)"

$poolName = "myElasticPool"

$databaseName = "mySampleDatabase"

$drLocation = "West US"

$drServerName = "mysqlsecondary-$(Get-Random)"

$failoverGroupName = "failovergrouptutorial-$(Get-Random)"

 

# The ip address range that you want to allow to access your server

# Leaving at 0.0.0.0 will prevent outside-of-azure connections

# $startIp = "0.0.0.0"

# $endIp = "0.0.0.0"

 

# Show randomized variables

Write-host "DR Server name is" $drServerName

Write-host "Failover group name is" $failoverGroupName

 

# Create primary standard-series (Gen5) elastic 2 vCore pool

Write-host "Creating elastic pool..."

$elasticPool = New-AzSqlElasticPool -ResourceGroupName $resourceGroupName `

    -ServerName $serverName `

    -ElasticPoolName $poolName `

    -Edition "GeneralPurpose" `

    -vCore 2 `

    -ComputeGeneration Gen5

$elasticPool

 

# Add single db into elastic pool

Write-host "Creating elastic pool..."

$addDatabase = Set-AzSqlDatabase -ResourceGroupName $resourceGroupName `

    -ServerName $serverName `

    -DatabaseName $databaseName `

    -ElasticPoolName $poolName

$addDatabase

>>> Xem thêm: 11 lợi ích của điện toán đám mây dành cho doanh nghiệp

Azure CLI

Dưới đây là hướng dẫn chi tiết cách thêm cơ sở dữ liệu vào elastic pool bằng cách sử dụng Azure CLI. 

Thêm cơ sở dữ liệu vào elastic pool

Để tạo elastic pool, người dùng cần thiết lập các giá trị tham số bổ sung sau đây.

pool="msdocs-azuresql-pool-$randomIdentifier"

Tạo elastic pool trên máy chủ chính

Hãy sử dụng lệnh “az sql elastic-pool create” để tạo elastic pool.

echo "Creating $pool on $server..."

az sql elastic-pool create --name $pool --resource-group $resourceGroup --server $server

Thêm cơ sở dữ liệu vào elastic pool

Hãy sử dụng lệnh “az sql db update” để thêm một cơ sở dữ liệu vào elastic pool.

echo "Adding $database to $pool..."

az sql db update --elastic-pool $pool --name $database --resource-group $resourceGroup --server $server

Phần 3: Tạo nhóm chuyển đổi dự phòng (Failover Group)

Trong bước này, người dùng sẽ được hướng dẫn tạo một nhóm chuyển đổi dự phòng giữa một máy chủ hiện có và một máy chủ mới ở một khu vực khác. Sau đó, thêm elastic pool vào nhóm chuyển đổi dự phòng.

Cổng thông tin Azura

  • Chọn Azure SQL trong menu bên trái của Azure portal. Nếu Azure SQL không có trong danh sách, chọn All services, sau đó nhập Azure SQL vào hộp tìm kiếm. 
  • Chọn elastic pool đã tạo ở phần trước, chẳng hạn như <myElasticPool>.
  • Trên bảng Overview, chọn tên trong mục Server name để mở cài đặt cho máy chủ.
Hướng dẫn tạo nhóm chuyển đổi dự phòng đơn giản
Hướng dẫn tạo nhóm chuyển đổi dự phòng đơn giản
  • Chọn Failover groups trong mục Settings, sau đó chọn Add group để tạo một nhóm chuyển đổi dự phòng mới.
Giao diện trang chủ Failover groups
Giao diện trang chủ Failover groups
  • Trên trang Failover Group, nhập hoặc chọn các giá trị sau đây và sau đó chọn Create:
    • Failover group name: Nhập tên nhóm chuyển đổi dự phòng duy nhất, chẳng hạn <failovergrouptutorial>.
    • Secondary server: Chọn tùy chọn cấu hình các thiết lập cần thiết, sau đó chọn Create a new server. Sau khi nhập các giá trị sau đây cho máy chủ phụ mới của mình, hãy chọn Select.
    • Server name: Nhập tên duy nhất cho máy chủ phụ, chẳng hạn <mysqlsecondary>.
    • Server admin login: Nhập AzureUser.
    • Password: Hãy nhập mật khẩu có mức độ phức tạp cao. 
    • Location: Chọn một vị trí từ danh sách thả xuống, chẳng hạn <East US>. Vị trí này không thể giống với vị trí của máy chủ chính.
Giao diện trang Failover Group
Giao diện trang Failover GGroup
  • Chọn Databases within the group, sau đó chọn elastic pool người dùng đã tạo ở phần 2. Một cảnh báo sẽ xuất hiện, yêu cầu người dùng phải tạo một elastic pool trên máy chủ phụ. Chọn cảnh báo > OK để tạo elastic pool trên máy chủ phụ.
Giao diện trang Databases
Giao diện trang Databases
  • Chọn Select để áp dụng các thiết lập elastic pool. Sau đó, hãy chọn Create để tạo nhóm chuyển đổi dự phòng của người dùng. 

PowerShell

Sử dụng đoạn mã dưới đây để tạo nhóm chuyển đổi dự phòng bằng PowerShell.

# Set variables for your server and database

# $subscriptionId = '<SubscriptionID>'

# $resourceGroupName = "myResourceGroup-$(Get-Random)"

# $location = "East US"

# $adminLogin = "azureuser"

# $password = "PWD27!"+(New-Guid).Guid

# $serverName = "mysqlserver-$(Get-Random)"

# $poolName = "myElasticPool"

# $databaseName = "mySampleDatabase"

# $drLocation = "West US"

# $drServerName = "mysqlsecondary-$(Get-Random)"

$failoverGroupName = "failovergrouptutorial-$(Get-Random)"

 

# Create a secondary server in the failover region

Write-host "Creating a secondary server in the failover region..."

New-AzSqlServer -ResourceGroupName $resourceGroupName `

   -ServerName $drServerName `

   -Location $drLocation `

   -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential `

      -ArgumentList $adminlogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

Write-host "Secondary server =" $drServerName

 

# Create a server firewall rule that allows access from the specified IP range

Write-host "Configuring firewall for secondary server..."

New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `

   -ServerName $drServerName `

   -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

Write-host "Firewall configured"

 

# Create secondary standard-series (Gen5) elastic 2 vCore pool

Write-host "Creating secondary elastic pool..."

$elasticPool = New-AzSqlElasticPool -ResourceGroupName $resourceGroupName `

    -ServerName $drServerName `

    -ElasticPoolName $poolName `

    -Edition "GeneralPurpose" `

    -vCore 2 `

    -ComputeGeneration Gen5

$elasticPool

 

# Create a failover group between the servers

Write-host "Creating failover group..."

New-AzSqlDatabaseFailoverGroup `

  ResourceGroupName $resourceGroupName `

   -ServerName $serverName `

   -PartnerServerName $drServerName  `

   FailoverGroupName $failoverGroupName `

   FailoverPolicy Automatic `

   -GracePeriodWithDataLossHours 2

Write-host "Failover group created successfully."

 

# Add elastic pool to the failover group

Write-host "Enumerating databases in elastic pool...."

$FailoverGroup = Get-AzSqlDatabaseFailoverGroup `

                 -ResourceGroupName $resourceGroupName `

                 -ServerName $serverName `

                 -FailoverGroupName $failoverGroupName

$databases = Get-AzSqlElasticPoolDatabase `

               -ResourceGroupName $resourceGroupName `

               -ServerName $serverName `

               -ElasticPoolName $poolName

Write-host "Adding databases to failover group..."

$failoverGroup = $failoverGroup | Add-AzSqlDatabaseToFailoverGroup `

                                  -Database $databases

$failoverGroup

Azure CLI

Trong bước này, người dùng sẽ được hướng dẫn cách sử dụng Azure CLI để tạo máy chủ phụ, nhóm chuyển đổi dự phòng, elastic pool và thêm cơ sở dữ liệu vào nhóm chuyển đổi dự phòng.

Đặt các giá trị tham số bổ sung để tạo nhóm chuyển đổi dự phòng

Sử dụng đoạn mã dưới đây để thiết lập các giá trị tham số bổ sung trong nhóm chuyển đổi dự phòng:

failoverGroup="msdocs-azuresql-failover-group-$randomIdentifier"

failoverLocation="Central US"

secondaryServer="msdocs-azuresql-secondary-server-$randomIdentifier"

Tạo máy chủ phụ

Để tạo máy chủ phụ, người dùng hãy sử dụng lệnh “az sql server create” như sau:

echo "Creating $secondaryServer in $failoverLocation..."

az sql server create --name $secondaryServer --resource-group $resourceGroup --location "$failoverLocation"  --admin-user $login --admin-password $password

Tạo elastic pool trên máy chủ phụ

Để tạo elastic pool trên máy chủ phụ, người dùng hãy sử dụng lệnh “az sql elastic-pool create” như sau:

echo "Creating $pool on $secondaryServer..."

az sql elastic-pool create --name $pool --resource-group $resourceGroup --server $secondaryServer

Tạo nhóm dự phòng

Để tạo nhóm chuyển đổi dự phòng, người dùng hãy sử dụng lệnh “az sql failover-group create” như sau:

echo "Creating $failoverGroup between $server and $secondaryServer..."

az sql failover-group create --name $failoverGroup --partner-server $secondaryServer --resource-group $resourceGroup --server $server --failover-policy Automatic --grace-period 2

databaseId=$(az sql elastic-pool list-dbs --name $pool --resource-group $resourceGroup --server $server --query [0].name -o json | tr -d '"')

Thêm cơ sở dữ liệu vào nhóm chuyển đổi dự phòng

Lệnh “az sql failover-group update” dưới đây sẽ giúp người dùng có thể thêm cơ sở dữ liệu vào các nhóm chuyển đổi dự phòng như sau:

echo "Adding $database to $failoverGroup..."

az sql failover-group update --name $failoverGroup --add-db $databaseId --resource-group $resourceGroup --server $server

Phần 4: Thử nghiệm chuyển đổi dự phòng

Trong bước này, người dùng sẽ được hướng dẫn thực hiện việc chuyển đổi dự phòng từ máy chủ chính sang máy chủ phụ, sau đó chuyển đổi trở lại máy chủ chính.

Cổng thông tin Azura

Để thử nghiệm chuyển đổi dự phòng bằng giao diện Azure Portal, người dùng hãy lần lượt làm theo các bước sau:

  • Chọn Azure SQL trong menu bên trái của giao diện Azure portal. Nếu Azure SQL không có trong danh sách, hãy chọn All services, sau đó nhập Azure SQL vào ô tìm kiếm. 
  • Chọn elastic pool được tạo trong phần trước, chẳng hạn như <myElasticPool>.
  • Chọn tên máy chủ trong phần Server name để mở cài đặt cho máy chủ.
Quá trình thử nghiệm tính khả dụng của nhóm chuyển đổi dự phòng
Quá trình thử nghiệm tính khả dụng của nhóm chuyển đổi dự phòng
  • Chọn Failover groups trong phần Settings, sau đó chọn nhóm chuyển đổi dự phòng người dùng đã tạo trong phần 2.
Giao diện trang chủ Mysqlserver, tab Failover groups
Giao diện trang chủ Mysqlserver, tab Failover groups
  1. Kiểm tra xem máy chủ nào là chính và máy chủ nào là phụ.
  2. Chọn Failover từ task pane để bắt đầu quá trình chuyển đổi dự phòng.
  3. Chọn Yes trên tab thông báo rằng các phiên TDS sẽ bị ngắt kết nối.
Hoàn tất quá trình kiểm thử
Hoàn tất quá trình kiểm thử
  1. Kiểm tra xem máy chủ nào là chính và máy chủ nào là phụ. Nếu chuyển đổi dự phòng thành công, hai máy chủ sẽ đảo vị trí.
  2. Chọn Failover một lần nữa để chuyển đổi dự phòng trở lại cài đặt ban đầu.

PowerShell

Để thử nghiệm chuyển đổi dự phòng bằng PowerShell, hãy sử dụng đoạn mã sau:

# Set variables for your server and database

# $subscriptionId = '<SubscriptionID>'

# $resourceGroupName = "myResourceGroup-$(Get-Random)"

# $location = "East US"

# $adminLogin = "azureuser"

# $password = "PWD27!"+(New-Guid).Guid

# $serverName = "mysqlserver-$(Get-Random)"

# $poolName = "myElasticPool"

# $databaseName = "mySampleDatabase"

# $drLocation = "West US"

# $drServerName = "mysqlsecondary-$(Get-Random)"

# $failoverGroupName = "failovergrouptutorial-$(Get-Random)"

 

# Check role of secondary replica

Write-host "Confirming the secondary server is secondary...."

(Get-AzSqlDatabaseFailoverGroup `

   -FailoverGroupName $failoverGroupName `

   -ResourceGroupName $resourceGroupName `

   -ServerName $drServerName).ReplicationRole

 

# Failover to secondary server

Write-host "Failing over failover group to the secondary..."

Switch-AzSqlDatabaseFailoverGroup `

   -ResourceGroupName $resourceGroupName `

   -ServerName $drServerName `

   -FailoverGroupName $failoverGroupName

Write-host "Failover group failed over to" $drServerName

Để chuyển đổi dự phòng sang máy chủ phụ, hãy sử dụng đoạn mã dưới đây:

# Set variables for your server and database

# $subscriptionId = '<SubscriptionID>'

# $resourceGroupName = "myResourceGroup-$(Get-Random)"

# $location = "East US"

# $adminLogin = "azureuser"

# $password = "PWD27!"+(New-Guid).Guid

# $serverName = "mysqlserver-$(Get-Random)"

# $poolName = "myElasticPool"

# $databaseName = "mySampleDatabase"

# $drLocation = "West US"

# $drServerName = "mysqlsecondary-$(Get-Random)"

# $failoverGroupName = "failovergrouptutorial-$(Get-Random)"

 

# Check role of secondary replica

Write-host "Confirming the secondary server is now primary"

(Get-AzSqlDatabaseFailoverGroup `

   -FailoverGroupName $failoverGroupName `

   -ResourceGroupName $resourceGroupName `

   -ServerName $drServerName).ReplicationRole

 

# Revert failover to primary server

Write-host "Failing over failover group to the primary...."

Switch-AzSqlDatabaseFailoverGroup `

   -ResourceGroupName $resourceGroupName `

   -ServerName $serverName `

   -FailoverGroupName $failoverGroupName

Write-host "Failover group failed over to" $serverName

Azure CLI

Trong bước này, người dùng sẽ được hướng dẫn cách sử dụng Azure CLI để thử nghiệm chuyển đổi dự phòng. 

Xác nhận vai trò của máy chủ

Hãy sử dụng lệnh “az sql failover-group show” để kiểm tra các vai trò sẵn có trong máy chủ:

echo "Confirming the role of each server in the failover group..." # note ReplicationRole property

az sql failover-group show --name $failoverGroup --resource-group $resourceGroup --server $server

Chuyển đổi dự phòng sang máy chủ phụ

Hãy sử dụng lệnh “az sql failover-group set-primary” để chuyển đổi dự phòng sang máy phụ:

echo "Failing over to $secondaryServer..."

az sql failover-group set-primary --name $failoverGroup --resource-group $resourceGroup --server $secondaryServer 

 

echo "Confirming role of $secondaryServer is now primary..." # note ReplicationRole property

az sql failover-group show --name $failoverGroup --resource-group $resourceGroup --server $server

Chuyển đổi dự phòng trở lại máy chủ chính

Lệnh “az sql failover-group set-primary” sẽ giúp người dùng có thể chuyển đổi dự phòng trở lại máy chủ chính:

echo "Failing back to $server...."

az sql failover-group set-primary --name $failoverGroup --resource-group $resourceGroup --server $server

Xóa các tài nguyên đã tạo trong Azure

Lưu ý, thao tác xóa nhóm tài nguyên là vĩnh viễn và không thể hoàn tác. Người dùng hãy đảm bảo rằng quản trị viên đã sao lưu và lưu trữ toàn bộ dữ liệu quan trọng trước khi thực hiện xóa.

Cổng thông tin Azura

Nếu muốn xóa một nhóm tài nguyên trong Azure Portal, người dùng có thể làm theo các bước sau:

  • Đăng nhập vào Azure Portal (https://portal.azure.com/).
  • Chọn nút Delete resource group ở phía trên cùng bên phải của trang.
  • Gõ tên nhóm tài nguyên cần xóa vào hộp văn bản, ví dụ như <myResourceGroup>.
  • Chọn nút Delete để xóa nhóm tài nguyên và tất cả các tài nguyên liên quan đến nó.

PowerShell

Dọn dẹp tài nguyên trong máy chủ bằng cách sử dụng PowerShell như sau:

# Set variables for your server and database

# $resourceGroupName = "myResourceGroup-$(Get-Random)"

 

# Clean up resources by removing the resource group

Write-host "Removing resource group..."

Remove-AzResourceGroup -ResourceGroupName $resourceGroupName

Write-host "Resource group removed =" $resourceGroupName

Azure CLI

Sử dụng lệnh sau để xóa nhóm tài nguyên bằng cách sử dụng lệnh az group delete:

echo "Cleaning up resources by removing the resource group..."

az group delete --name $resourceGroup -y

Những bài viết liên quan: 

Lời kết

Qua những thông tin trên, mong rằng tất cả cá nhân trong tổ chức đều có thể biết cách thêm Azure SQL Database elastic pool vào nhóm chuyển đổi dự phòng.

Nếu doanh nghiệp cần tư vấn về các dịch vụ của Microsoft Cloud, hãy liên hệ với FPT Smart Cloud để được hỗ trợ sớm nhất. 

0/5 (0 Reviews)

Liên hệ FPT Smart Cloud

Liên hệ ngay với chúng tôi để nhận sự tư vấn và hỗ trợ từ những chuyên gia hàng đầu.
Trang web này được bảo vệ bởi reCAPTCHA Chính sách quyền riêng tư và Điều khoản dịch vụ của Google sẽ được áp dụng
DMCA compliant image