Ngân hàng đề — Microsoft Azure Database Administrator
Tìm thấy 217 câu.
What should you include in the plan?
- A Configure the Deleted databases settings for ResearchSrv01.
- B Deploy and configure an Azure Backup server.
- C Configure the Advanced Data Security settings for ResearchDB1.
- D Configure the Manage Backups settings for ResearchSrv01.
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
📘 Nội dung câu hỏi:
Câu hỏi yêu cầu lập kế hoạch triển khai để cấu hình data retention (giữ trữ dữ liệu) cho cơ sở dữ liệu ResearchDB1. Giải pháp phải đáp ứng các yêu cầu bảo mật và tuân thủ (security and compliance requirements).
- ResearchDB1 là một cơ sở dữ liệu (database) nằm trên ResearchSrv01 (có thể là Azure SQL Managed Instance hoặc SQL Server trên Azure).
- Data retention ở đây ám chỉ việc quản lý thời gian lưu trữ các bản sao lưu (backups), bao gồm full backups, differential backups và log backups, để đảm bảo dữ liệu có thể khôi phục trong thời gian quy định, đồng thời tuân thủ các quy định pháp lý như GDPR hoặc HIPAA.
- Trong Azure, việc cấu hình retention cho backups được thực hiện ở mức instance/server (ResearchSrv01), không phải database riêng lẻ, để đảm bảo tính nhất quán và tự động hóa.
✅ Mục tiêu chính: Tìm hành động cụ thể trong Azure Portal để thiết lập retention policy cho backups, giúp đáp ứng compliance bằng cách kiểm soát thời gian lưu trữ dữ liệu.
✅ Đáp án đúng:
Configure the Manage Backups settings for ResearchSrv01.
Lý do chọn:
🛠️ Trong Azure SQL Managed Instance (hoặc SQL Server trên Azure VM với Managed Backup), tính năng Manage Backups cho phép cấu hình retention period (thời gian giữ trữ) cho tất cả các bản sao lưu tự động tại mức instance (ResearchSrv01). Điều này bao gồm:
- Set số ngày giữ full backups (mặc định 7-30 ngày, tối đa 35 ngày).
- Tự động purge (xóa) backups cũ để tiết kiệm chi phí lưu trữ.
- Đáp ứng security/compliance bằng cách đảm bảo dữ liệu chỉ được giữ đúng thời gian cần thiết, tránh rủi ro lộ dữ liệu lâu dài.
📈 Đây là cách chính thức và cập nhật nhất (Azure SQL Managed Instance v2 preview 2024-2026 vẫn giữ nguyên tính năng này). Không cần công cụ bên ngoài, hoàn toàn native Azure.
🔍 Giải thích tất cả các phương án (đúng/sai):
-
❌ Configure the Deleted databases settings for ResearchSrv01.
Phương án này sai vì Deleted databases settings chỉ dùng để cấu hình soft-delete (xóa mềm tạm thời) cho các database đã bị xóa, cho phép khôi phục trong 7 ngày (mặc định). Nó không liên quan đến data retention cho backups đang hoạt động của ResearchDB1, mà chỉ xử lý database đã xóa. Không đáp ứng compliance cho retention policy dài hạn. -
❌ Deploy and configure an Azure Backup server.
Phương án này sai vì Azure Backup server (nay là Azure Backup với MARS agent hoặc Recovery Services vault) dùng cho backup VM-level hoặc file-based, không phải native backup cho Azure SQL databases/Managed Instances. Nó yêu cầu triển khai thêm server phức tạp, tốn kém, và không tự động quản lý retention cho SQL backups – vi phạm yêu cầu "implementation plan" đơn giản, native. -
❌ Configure the Advanced Data Security settings for ResearchDB1.
Phương án này sai vì Advanced Data Security (ADS) tập trung vào threat detection, vulnerability assessment và data masking, không phải retention backups. ADS giúp bảo mật dữ liệu thời gian thực (như phát hiện SQL injection), nhưng không kiểm soát thời gian lưu trữ backups, nên không đáp ứng yêu cầu chính. -
✅ Configure the Manage Backups settings for ResearchSrv01.
(Như đã giải thích ở trên) – Đúng vì trực tiếp cấu hình retention tại instance level, tự động, an toàn và tuân thủ.
📚 Tài liệu tham khảo (cập nhật đến 2026):
- Azure SQL Managed Instance - Automated backups (Retention config qua Manage Backups).
- Configure Managed Backup in SQL Server (Áp dụng cho Azure).
- Azure Docs 2024-2026: Không thay đổi lớn, hỗ trợ long-term retention (LTR) backup lên đến 10 năm qua PowerShell/Portal.
🛡️ Lưu ý từ Azure DBA: Luôn kiểm tra RBAC (role-based access) cho tài khoản admin trước khi config để đảm bảo security!
- A Availability Zones
- B failover groups
- C Always On availability groups
- D geo-replication
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm
📖 Nội dung câu hỏi:
Câu hỏi yêu cầu xác định giải pháp phù hợp để đáp ứng yêu cầu khôi phục thảm họa (disaster recovery - DR) cho một giải pháp PaaS (Platform as a Service). Trong ngữ cảnh Azure SQL Database (một dịch vụ PaaS của Microsoft Azure), DR thường liên quan đến việc đảm bảo tính sẵn sàng cao qua các vùng địa lý khác nhau (regions), tự động chuyển đổi (failover) khi xảy ra sự cố lớn như mất toàn bộ một trung tâm dữ liệu. Câu hỏi ngầm định một kịch bản PaaS thuần túy, không phải IaaS hoặc on-premises, nên cần giải pháp được thiết kế sẵn cho Azure SQL Managed Instance hoặc Azure SQL Database để hỗ trợ failover tự động giữa các vùng (geo-redundant failover) mà không yêu cầu can thiệp thủ công nhiều. ✅
✅ Đáp án đúng: failover groups
Lý do lựa chọn: Failover groups là tính năng chuyên biệt của Azure SQL Database dành cho PaaS, cho phép tạo nhóm cơ sở dữ liệu với secondary replica có thể đọc được (readable secondary) ở vùng khác, hỗ trợ tự động failover và failover thủ công qua các subscription hoặc region khác nhau. Điều này đáp ứng hoàn hảo yêu cầu DR cho PaaS vì nó tích hợp sẵn business continuity với RPO (Recovery Point Objective) thấp và RTO (Recovery Time Objective) nhanh (thường dưới 30 giây). Tính năng này được cập nhật mới nhất đến năm 2026 vẫn là lựa chọn tiêu chuẩn cho Azure SQL PaaS DR, hỗ trợ zone-redundant và geo-redundant. 🛡️
🛠️ Giải thích tất cả các phương án (đúng và sai):
-
Availability Zones ❌
Phân tích sai: Availability Zones chỉ cung cấp high availability (HA) trong cùng một vùng (region) bằng cách phân tán tài nguyên qua các data center riêng biệt trong region đó. Nó không hỗ trợ disaster recovery qua các vùng khác (cross-region), vì vậy không đáp ứng yêu cầu DR cho PaaS khi cần bảo vệ chống lại sự cố toàn vùng. Trong Azure SQL PaaS, AZ dùng cho HA nội bộ, không phải geo-DR. -
failover groups ✅
Phân tích đúng: Như đã giải thích ở trên, đây là giải pháp lý tưởng cho Azure SQL Database PaaS với auto-failover groups, hỗ trợ readable secondaries, cross-region/subscription, và tích hợp Azure Policy. Đáp ứng đầy đủ DR với SLA 99.99% uptime. -
Always On availability groups ❌
Phân tích sai: Always On Availability Groups là tính năng của SQL Server on-premises hoặc Azure VMs (IaaS), yêu cầu quản lý thủ công cluster, Windows Server Failover Cluster (WSFC), và không phải PaaS thuần. Nó không được thiết kế sẵn cho Azure SQL PaaS managed service, nên không phù hợp với yêu cầu "PaaS solution". -
geo-replication ❌
Phân tích sai: Geo-replication (active geo-replication) trong Azure SQL hỗ trợ replication thủ công đến 4 secondaries cross-region, nhưng không có failover tự động như failover groups. Người dùng phải initiate failover thủ công, dẫn đến RTO cao hơn và phức tạp hơn cho DR PaaS. Failover groups vượt trội hơn vì tự động hóa và readable secondaries.
📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026):
- Azure SQL Database Auto-Failover Groups (Microsoft Docs, phiên bản 2024-2026).
- Business Continuity for Azure SQL – So sánh failover groups vs. geo-replication.
- AWS tương đương (nếu liên quan): Amazon RDS Multi-AZ cho HA, Cross-Region Read Replicas cho DR, nhưng câu hỏi khớp Azure. 🔗
What should you run as part of the implementation?
- A CREATE LOGIN and the FROM WINDOWS clause
- B CREATE USER and the FROM CERTIFICATE clause
- C CREATE USER and the FROM LOGIN clause
- D CREATE USER and the ASYMMETRIC KEY clause
- E CREATE USER and the FROM EXTERNAL PROVIDER clause
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi yêu cầu triển khai xác thực (authentication) cho cơ sở dữ liệu ResearchDB1, đồng thời phải đáp ứng các yêu cầu bảo mật và tuân thủ (security and compliance requirements).
✅ Bối cảnh chính: Đây là tình huống liên quan đến Azure SQL Database (không phải SQL Server on-premises), vì ResearchDB1 thường ám chỉ một database trong Azure SQL. Trong Azure SQL, để hỗ trợ xác thực hiện đại, an toàn cao như Azure Active Directory (Azure AD) authentication (nay là Microsoft Entra ID), chúng ta cần tạo user database-level mà không yêu cầu server-level login truyền thống. Điều này giúp tăng cường bảo mật bằng cách tích hợp với Azure AD, hỗ trợ MFA (Multi-Factor Authentication), điều khiển truy cập dựa trên nhóm/ứng dụng, và tuân thủ các tiêu chuẩn như GDPR, HIPAA.
🛠️ Yêu cầu triển khai: Phải chạy lệnh SQL cụ thể để tạo user phù hợp, đảm bảo không sử dụng các phương pháp cũ/technical debt như Windows auth hoặc certificate-based (dễ bị lộ khóa).
📈 Kiến thức cập nhật: Theo tài liệu Azure SQL mới nhất (2024-2026), Azure AD authentication là phương pháp khuyến nghị chính cho PaaS, với hỗ trợ Entra ID External Identities và workload identities (Azure AD Workload Identity Federation).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: CREATE USER and the FROM EXTERNAL PROVIDER clause
Lý do:
- Lệnh này tạo database user trực tiếp từ Azure AD principal (user, group, hoặc app) mà không cần server login.
- ✅ Đáp ứng security/compliance: Tích hợp MFA, Conditional Access, audit logs tự động qua Azure Monitor; tránh lưu trữ mật khẩu SQL truyền thống (rủi ro cao).
- 🛠️ Ví dụ lệnh:
CREATE USER [user@domain.com] FROM EXTERNAL PROVIDER;. Đây là chuẩn mới nhất cho Azure SQL Database từ version v12+ (hỗ trợ full Entra ID từ 2021, cập nhật 2026 với Entra ID B2C/PIM). - Lý tưởng cho môi trường cloud-native, giảm attack surface so với các phương pháp khác.
❌ Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh:
-
❌ CREATE LOGIN and the FROM WINDOWS clause
Sai vì: Đây là lệnh tạo server-level login sử dụng Windows Authentication (Integrated Security), chỉ áp dụng cho SQL Server on-premises hoặc Azure VMs (không phải Azure SQL PaaS thuần). Không hỗ trợ Azure AD native, vi phạm compliance vì phụ thuộc domain controller, dễ bị Kerberos attacks, và không khuyến nghị cho cloud (deprecated dần từ SQL 2022). -
❌ CREATE USER and the FROM CERTIFICATE clause
Sai vì: Tạo database user từ certificate (public key), dùng cho encryption/signing (như signing modules), không phải authentication chính. Rủi ro cao nếu certificate bị lộ, không tích hợp Azure AD/MFA, không đáp ứng compliance hiện đại (không audit được qua Entra ID), chỉ dùng cho legacy scenarios. -
❌ CREATE USER and the FROM LOGIN clause
Sai vì: Tạo database user map từ server-level login (SQL auth truyền thống), yêu cầu mật khẩu SQL lưu plaintext/hashed (rủi ro brute-force). Không hỗ trợ Azure AD, vi phạm security best practices (Microsoft khuyến cáo migrate sang AAD từ 2022), không có MFA/compliance tự động. -
❌ CREATE USER and the ASYMMETRIC KEY clause
Sai vì: Tạo user từ khóa bất đối xứng (asymmetric key) cho mục đích encryption/code signing, không dùng cho authentication người dùng. Phức tạp, không scalable cho Azure AD, dễ mismanage keys (vi phạm key rotation compliance), chỉ phù hợp internal modules chứ không phải external auth. -
✅ CREATE USER and the FROM EXTERNAL PROVIDER clause
Đúng vì: Như giải thích trên, đây là lệnh chuẩn cho Azure AD authentication trong Azure SQL Database. Hỗ trợ user/group/service principal từ Entra ID, đảm bảo zero-trust security với JIT access.
📘 Tài liệu tham khảo
- Chính thức Microsoft Docs (cập nhật 2026): Create users from external providers - Azure SQL Database ✅
- Azure SQL Security Best Practices: Authentication in Azure SQL 🛡️ (Khuyến nghị Entra ID từ 2024).
- SQL Server 2022+ Changes: Deprecated features (Windows login deprecated dần).
- Compliance: Azure Policy cho Entra ID auth enforcement.
🧠 Lời khuyên DBA: Luôn enable Azure AD-only auth cho database mới để tuân thủ zero-trust! Nếu cần hỗ trợ triển khai, cung cấp script chi tiết hơn nhé! 🚀
Which Azure Storage functionality should you include in the solution?
- A time-based retention
- B change feed
- C lifecycle management
- D soft delete
Xem giải thích
🧩 Phân tích chi tiết câu hỏi
📖 Nội dung câu hỏi:
Câu hỏi yêu cầu thiết kế một giải pháp lưu trữ dữ liệu (data retention solution) cho dữ liệu từ Twitter feed (dữ liệu dòng thời gian từ Twitter), nhằm đáp ứng yêu cầu phân tích cảm xúc khách hàng (customer sentiment analytics). Cụ thể, bạn cần chọn tính năng nào của Azure Storage để tích hợp vào giải pháp này.
✅ Yêu cầu chính: Data retention nghĩa là quản lý việc giữ dữ liệu trong bao lâu, tự động chuyển tier lưu trữ (như từ Hot sang Cool/Archive để tiết kiệm chi phí) hoặc xóa dữ liệu cũ khi không còn cần thiết. Với dữ liệu Twitter feed (dữ liệu lớn, tăng nhanh theo thời gian), giải pháp phải hỗ trợ phân tích sentiment (cần truy cập dữ liệu cũ nhưng tối ưu chi phí và tự động hóa).
✅ Đáp án đúng: lifecycle management
Lý do lựa chọn:
Lifecycle management là tính năng mạnh mẽ nhất của Azure Blob Storage (cập nhật mới nhất đến 2026), cho phép định nghĩa quy tắc tự động dựa trên tuổi dữ liệu (age), loại blob, prefix/tag để:
- Chuyển dữ liệu từ Hot/Cool sang Archive (tiết kiệm chi phí cho dữ liệu ít truy cập như Twitter feed cũ).
- Xóa dữ liệu vĩnh viễn sau thời gian retention cụ thể (ví dụ: giữ 30 ngày cho phân tích realtime, xóa sau 1 năm).
🛠️ Điều này hoàn hảo cho sentiment analytics vì dữ liệu Twitter cần giữ lâu dài nhưng tự động "quản lý vòng đời" để tránh chi phí cao và dễ tích hợp với Azure Synapse/Analytics cho phân tích. Không tính năng nào khác hỗ trợ retention linh hoạt như vậy!
🔍 Giải thích tất cả các phương án (đúng/sai)
-
time-based retention ❌ SAI
Đây là tính năng của Azure Blob Storage Immutable Storage (legal hold), khóa dữ liệu không cho xóa/sửa trong khoảng thời gian cố định (time-based policy).
🧩 Tại sao sai? Nó chỉ dùng cho tuân thủ pháp lý (compliance), không hỗ trợ chuyển tier hoặc xóa tự động linh hoạt cho analytics. Dữ liệu Twitter feed cần quản lý chi phí động, không phải "khóa cứng" – sẽ làm tăng chi phí không cần thiết và khó phân tích. -
change feed ❌ SAI
Tính năng này ghi lại toàn bộ lịch sử thay đổi (create/update/delete) trên blob/container theo thứ tự thời gian.
🛠️ Tại sao sai? Nó dành cho auditing/tracking thay đổi (như ETL pipeline), không liên quan đến retention (giữ/xóa dữ liệu). Với Twitter feed, change feed chỉ theo dõi chỉnh sửa, không tự động quản lý tuổi dữ liệu cho analytics. -
lifecycle management ✅ ĐÚNG (Như đã giải thích ở trên)
🛠️ Tính năng cốt lõi cho data retention động, hỗ trợ quy tắc JSON-based để chuyển/xóa dữ liệu dựa trên tuổi (days since creation/modification). Cập nhật 2026: Hỗ trợ tag-based rules và tích hợp tốt với Azure Purview cho governance. -
soft delete ❌ SAI
Cho phép khôi phục dữ liệu đã xóa trong thời gian retention (7-365 ngày), tránh mất dữ liệu do xóa nhầm.
📘 Tại sao sai? Nó chỉ bảo vệ chống xóa ngẫu nhiên, không phải giải pháp retention chính (không tự động xóa/chuyển tier). Với Twitter feed lớn, soft delete chỉ là "bảo hiểm" phụ, không giải quyết quản lý vòng đời dài hạn cho sentiment analytics.
📘 Tài liệu tham khảo (cập nhật mới nhất AWS/Azure đến 2026)
- Azure Storage Lifecycle management (Official docs, hỗ trợ rules mới với AI tags từ 2024+).
- Azure Blob Storage features overview (So sánh retention vs. immutability).
- Best practices for analytics workloads (Ví dụ Twitter-like data với lifecycle).
🛠️ Lưu ý: Dù chủ đề đề cập AWS, câu hỏi tập trung Azure Storage – lifecycle là lựa chọn chuẩn cho data lake analytics!
- A Business Critical 4-vCore
- B Hyperscale
- C General Purpose v-vCore
- D Serverless
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi này tập trung vào việc lựa chọn mức tính toán (compute tier) phù hợp cho Azure SQL Database dựa trên một nguyên mẫu PaaS (PaaS prototype).
- PaaS prototype thường ám chỉ một môi trường phát triển hoặc thử nghiệm ban đầu (prototype) sử dụng mô hình PaaS, nơi cần tính linh hoạt cao, chi phí thấp, tự động mở rộng (auto-scale) và tạm dừng (pause) khi không sử dụng để tiết kiệm tài nguyên.
- Azure SQL Database là dịch vụ PaaS của Microsoft Azure, cung cấp các mức compute tier khác nhau để phù hợp với workload: từ provisioned (cố định) đến serverless (tự động).
- Câu hỏi yêu cầu chọn tier tối ưu cho prototype PaaS, ưu tiên tính serverless để giảm chi phí và quản lý dễ dàng trong giai đoạn thử nghiệm.
📘 Dẫn nguồn: Tài liệu chính thức Microsoft Learn - Azure SQL Database compute tiers (cập nhật mới nhất 2025-2026, Serverless vẫn là lựa chọn hàng đầu cho dev/test workloads).
✅ Đáp án đúng và lý do lựa chọn
Đáp án đúng: Serverless
🛠️ Lý do: Serverless (thuộc General Purpose serverless) là tier lý tưởng cho PaaS prototype vì:
- Tự động scale compute từ 0.5 đến 4 vCore dựa trên nhu cầu workload, không cần cấu hình thủ công.
- Tự động tạm dừng (auto-pause) khi idle (sau 1 giờ không hoạt động), chỉ tính phí storage – tiết kiệm chi phí lên đến 100% cho prototype không liên tục.
- Phù hợp hoàn hảo với môi trường phát triển/thử nghiệm PaaS, nơi workload bursty (bùng nổ đột ngột) và không dự đoán được.
- Theo cập nhật 2026, Serverless hỗ trợ Intelligent Query Processing và Zone Redundant HA, đảm bảo hiệu suất cao mà không phức tạp.
📋 Giải thích tất cả các phương án
Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Mỗi phương án được đánh dấu ✅ hoặc ❌ kèm lý do cụ thể:
-
❌ Business Critical 4-vCore
Sai vì đây là tier provisioned cao cấp với 4 vCore cố định, tập trung vào high availability (HA) và low latency (local SSD, Always On Availability Groups). Không phù hợp cho PaaS prototype vì: chi phí cao liên tục (không auto-pause), overkill cho workload thử nghiệm, và thiếu tính linh hoạt scale tự động. -
❌ Hyperscale
Sai vì Hyperscale dành cho database lớn (>100TB) với scale-out storage/read replicas. Lý tưởng cho production OLTP/OLAP lớn, nhưng với PaaS prototype (thường nhỏ, dev-focused), nó phức tạp, chi phí cao và không cần thiết – không hỗ trợ auto-pause hay serverless scaling. -
❌ General Purpose v-vCore
Sai vì đây là General Purpose provisioned vCore (cố định vCore như 2/4/8...), sử dụng remote storage để cân bằng chi phí/hiệu suất. Phù hợp production ổn định, nhưng thiếu auto-scale và auto-pause cần thiết cho prototype PaaS – dẫn đến lãng phí nếu idle. -
✅ Serverless
Đúng như đã giải thích ở trên: Linh hoạt, tiết kiệm, tự động quản lý cho prototype PaaS.
🧠 Lưu ý bổ sung: Trong các phiên bản Azure SQL mới nhất (2026), Serverless đã cải tiến với hỗ trợ Gen2 hardware và ledger tables, củng cố vị thế cho dev/test. Nếu prototype chuyển sang production, có thể migrate dễ dàng sang provisioned tiers!
📘 Tài liệu tham khảo thêm: Azure SQL Serverless docs và Pricing calculator.
You plan to create an Azure SQL Database elastic pool and add the 20 databases.
Which three metrics should you use to size the elastic pool to meet the demands of your workload? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
- A total size of all the databases
- B geo-replication support
- C number of concurrently peaking databases * peak CPU utilization per database
- D maximum number of concurrent sessions for all the databases
- E total number of databases * average CPU utilization per database
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi này tập trung vào việc xác định các chỉ số (metrics) cần thiết để định cỡ (size) một Azure SQL Database elastic pool khi di chuyển 20 cơ sở dữ liệu (databases) đang sử dụng mô hình mua theo vCore vào elastic pool. Elastic pool giúp chia sẻ tài nguyên (như vCore, storage) giữa nhiều databases để tối ưu chi phí và hiệu suất, đặc biệt với workload có nhu cầu biến động.
Chi tiết ngữ cảnh:
- Các databases hiện dùng vCore purchasing model (mua theo số lõi CPU, linh hoạt hơn DTU).
- Mục tiêu: Size elastic pool sao cho đáp ứng workload (hiệu suất CPU, storage mà không lãng phí).
- Đây là câu hỏi multi-select (chọn 3 đáp án đúng), mỗi đáp án đúng trị giá 1 điểm.
- Theo tài liệu Microsoft cập nhật đến 2024-2026 (Azure SQL docs), sizing elastic pool vCore dựa trên CPU (vCore), storage, và các limits như IOPS, sessions – nhưng ưu tiên metrics từ monitoring (Azure portal/Metrics) để dự báo peak/average usage. ✅
✅ Đáp án đúng (3 metrics chính)
Các metrics đúng để size elastic pool là:
- total size of all the databases
- number of concurrently peaking databases * peak CPU utilization per database
- total number of databases * average CPU utilization per database
Lý do lựa chọn (dựa trên hướng dẫn sizing chính thức của Microsoft):
🛠️ Khi size elastic pool vCore, cần tính tổng storage để tránh hết dung lượng; CPU trung bình (total DBs * avg CPU/DB) để ước lượng baseline; và CPU peak đồng thời (số DB peak cùng lúc * peak CPU/DB) để đảm bảo không bottleneck trong giờ cao điểm. Những metrics này lấy từ Azure Monitor, giúp set vCore và storage phù hợp workload thực tế. Nếu không dùng, pool dễ bị throttle hoặc over-provision. 📈
📋 Giải thích chi tiết tất cả các phương án
Dưới đây là phân tích từng lựa chọn giữ nguyên nội dung gốc tiếng Anh, với lý do đúng/sai bằng tiếng Việt. Tôi đánh dấu ✅ (đúng) hoặc ❌ (sai) để dễ theo dõi:
-
✅ total size of all the databases
🧩 Đây là metric đúng và bắt buộc. Tổng kích thước storage của tất cả 20 databases quyết định storage limit cho elastic pool (vCore model hỗ trợ đến 4TB/pool hoặc hơn tùy service tier). Nếu tổng size vượt, pool sẽ fail khi add DB. Sizing storage = tổng size + buffer 20-30% cho growth. (Nguồn: Azure SQL elastic pool limits). -
❌ geo-replication support
🚫 Sai hoàn toàn. Geo-replication (active geo-redundancy) là tính năng backup/DR (disaster recovery), không liên quan đến sizing tài nguyên elastic pool. Nó ảnh hưởng đến cost/redundancy tier (Business Critical), nhưng không dùng để tính vCore/storage. Elastic pool hỗ trợ geo-replication riêng, không phải metric workload. -
✅ number of concurrently peaking databases * peak CPU utilization per database
🛠️ Đúng, metric quan trọng cho worst-case scenario. Số DB peak cùng lúc (concurrently peaking, ví dụ 5/20 DB) nhân với peak CPU/DB (ví dụ 100% = 1 vCore) cho tổng vCore cần thiết để tránh CPU throttle. Monitoring qua Azure Metrics (CPU % per DB) để xác định concurrency pattern. (Nguồn: Size elastic pools using the vCore model). -
❌ maximum number of concurrent sessions for all the databases
📉 Sai. Concurrent sessions là limit riêng (worker limits trong vCore), nhưng không phải metric chính để size pool ban đầu. Nó được auto-scale theo vCore (ví dụ 200 sessions/vCore), và monitor sau khi deploy. Sizing chủ yếu dựa CPU/storage trước, sessions chỉ adjust nếu hit limit thực tế. -
✅ total number of databases * average CPU utilization per database
📊 Đúng, metric cho baseline CPU. Tổng 20 DB nhân avg CPU/DB (ví dụ 20% = 0.2 vCore/DB → 4 vCore total) ước lượng vCore trung bình cho pool. Giúp tránh under-provision, kết hợp với peak để set min/max vCore. (Nguồn: Elastic pool sizing guidance).
📘 Tài liệu tham khảo (cập nhật mới nhất 2024-2026)
- Azure SQL Database elastic pools - vCore model 🆕 (bao gồm calculator tool).
- Resource management docs – Limits vCore/storage.
- Monitoring & sizing best practices – Sử dụng Query Performance Insights.
- Azure Pricing Calculator: Tính elastic pool dựa metrics trên (azure.microsoft.com/pricing/calculator).
Hy vọng phân tích này giúp bạn nắm vững! Nếu cần demo sizing thực tế trên Azure Portal, hãy hỏi nhé. 🚀
- A Sliding
- B Hopping
- C Session
- D Tumbling
Xem giải thích
🧩 Phân tích nội dung câu hỏi
Câu hỏi tập trung vào windowing functions trong xử lý dữ liệu streaming trên AWS, cụ thể là để thực hiện streaming aggregation (tổng hợp dữ liệu thời gian thực) cho dữ liệu bán hàng (sales data).
📘 Ngữ cảnh chính: Trong các dịch vụ AWS như Amazon Managed Service for Apache Flink (trước đây là Kinesis Data Analytics), Amazon MSK với Kafka Streams, hoặc Amazon Kinesis Data Streams, windowing functions được sử dụng để nhóm dữ liệu theo thời gian và tính toán aggregation (như SUM, COUNT, AVG) trên các "cửa sổ thời gian" (windows). Câu hỏi ngụ ý cần chọn loại window phù hợp nhất cho aggregation liên tục, không chồng lấp, thường dùng cho báo cáo sales theo giờ/ngày cố định mà không có độ trễ chồng chéo phức tạp. Kiến thức dựa trên phiên bản mới nhất AWS năm 2026: Apache Flink 1.18+ và Kafka Streams 3.7+, nơi Tumbling window vẫn là lựa chọn chuẩn cho aggregation đơn giản, không overlap.
✅ Đáp án đúng: Tumbling
Lý do chọn Tumbling 🛠️:
Tumbling window là loại cửa sổ không chồng lấp (non-overlapping), có kích thước cố định (ví dụ: 1 giờ), và các cửa sổ liền kề nhau mà không overlap. Điều này lý tưởng cho streaming aggregation của sales data, vì nó cho phép tính toán tổng hợp (như tổng doanh thu mỗi giờ) một cách chính xác, không bị trùng lặp dữ liệu, và dễ dàng xử lý batch liên tục trong streaming. Trong AWS Flink hoặc Kafka Streams, Tumbling được khuyến nghị cho các use case báo cáo định kỳ như sales aggregation, giúp giảm độ phức tạp và tối ưu hiệu suất.
📘 Tài liệu tham khảo:
- AWS Docs: Amazon Managed Service for Apache Flink - Windowing (cập nhật 2026).
- Apache Flink Docs: Tumbling Windows (Flink 1.18+).
- Kafka Streams: TumblingWindow (Kafka 3.7+).
📋 Giải thích chi tiết tất cả các phương án
Dưới đây là phân tích từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Phần giải thích sử dụng tiếng Việt hoàn toàn:
-
Sliding ❌ Sai:
Sliding window là cửa sổ trượt với overlap (kích thước cửa sổ lớn hơn bước trượt), ví dụ: cửa sổ 1 giờ trượt mỗi 30 phút. Nó phù hợp cho phát hiện xu hướng gần thời gian thực nhưng không lý tưởng cho streaming aggregation sales data vì gây trùng lặp dữ liệu (một sự kiện sales có thể nằm trong nhiều cửa sổ), dẫn đến tổng hợp sai lệch và tốn tài nguyên compute. Trong AWS Flink, Sliding chỉ dùng khi cần overlap cao, không phải aggregation chuẩn. -
Hopping ❌ Sai:
Hopping window (tương tự Sliding nhưng bước nhảy cố định) cũng có overlap, ví dụ: cửa sổ 1 giờ nhảy 30 phút. Nó dùng cho các kịch bản cần dữ liệu chồng chéo định kỳ, nhưng với sales aggregation, sẽ gây double-counting (đếm kép sự kiện), làm kết quả không chính xác và phức tạp hóa xử lý streaming. AWS docs phân biệt Hopping với Tumbling ở tính overlap, không khuyến nghị cho aggregation đơn giản. -
Session ❌ Sai:
Session window dựa trên khoảng thời gian không hoạt động (inactivity gap) giữa các sự kiện, không có kích thước cố định (ví dụ: session kết thúc sau 5 phút không có sales mới). Nó phù hợp cho phân tích hành vi user (như session browsing) chứ không dùng cho streaming aggregation sales data định kỳ, vì kích thước window biến đổi dẫn đến aggregation không đều đặn, khó dự đoán và không khớp với báo cáo theo giờ/ngày chuẩn. -
Tumbling ✅ Đúng:
Như đã giải thích ở trên, Tumbling window không overlap, kích thước cố định, hoàn hảo cho aggregation sales theo batch thời gian (ví dụ: tổng sales mỗi giờ), đảm bảo dữ liệu chính xác, hiệu suất cao trong AWS streaming services mà không có trùng lặp hay độ trễ phức tạp. Đây là lựa chọn mặc định cho hầu hết use case aggregation thời gian thực.
🛠️ Lời khuyên thực tế: Khi triển khai trên AWS, hãy dùng Tumble.process() trong Flink SQL cho sales aggregation để tránh sai sót! Nếu cần tùy chỉnh, kết hợp với watermarking cho event-time processing.
Which two dynamic management views should you use? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
- A sys.dm_pdw_nodes_tran_locks
- B sys.dm_exec_compute_node_errors
- C sys.dm_exec_requests
- D sys.dm_cdc_errors
- E sys.dm_pdw_nodes_os_wait_stats
- F sys.dm_tran_locks
Xem giải thích
🧩 Phân tích chi tiết nội dung câu hỏi
Câu hỏi này xuất hiện trong các kỳ thi chứng chỉ Microsoft SQL Server (như DP-300 hoặc tương đương trên Azure SQL Database), yêu cầu xác định hai Dynamic Management Views (DMVs) phù hợp để phân tích nguyên nhân gây ra vấn đề hiệu suất (performance issues) trên cơ sở dữ liệu SalesSQLDb1.
- Bối cảnh: SalesSQLDb1 là một instance SQL Server (có thể là Azure SQL Database hoặc SQL Server on Azure VM). Vấn đề hiệu suất thường liên quan đến waits, locks, blocking sessions hoặc resource contention. DMVs là các view hệ thống động giúp giám sát real-time mà không cần công cụ bên ngoài.
- Yêu cầu chọn: Đây là câu hỏi multi-select (chọn đúng 2/6 lựa chọn), mỗi đáp án đúng chiếm 1 điểm.
- Mục tiêu: Tập trung vào DMVs phổ biến cho troubleshooting performance ở SQL Server chuẩn (không phải Data Warehouse chuyên biệt như Azure Synapse Analytics cũ - APS/PDW).
📘 Tài liệu tham khảo chính (cập nhật đến phiên bản SQL Server 2022/Azurë SQL 2024-2026):
- sys.dm_exec_requests
- sys.dm_tran_locks
- Microsoft Docs: Performance Troubleshooting Guide (2024 update).
✅ Đáp án đúng và lý do lựa chọn
Hai DMVs đúng là: sys.dm_exec_requests và sys.dm_tran_locks.
🛠️ Lý do chi tiết:
- sys.dm_exec_requests: Cung cấp thông tin toàn diện về các request đang thực thi (active queries), bao gồm wait type, wait time, CPU time, blocking session ID. Đây là DMV cốt lõi để xác định wait stats (ví dụ: CXPACKET, PAGEIOLATCH) – nguyên nhân phổ biến nhất gây performance issues. Sử dụng với
WHERE session_id > 50để lọc user sessions. - sys.dm_tran_locks: Hiển thị tất cả locks đang active trên database objects (tables, pages, rows), giúp phát hiện blocking chains (một session lock resource khác, gây deadlock hoặc slowdown). Kết hợp với DMV trên để trace blocker -> blocked.
- Tại sao kết hợp hai cái này? Chúng bổ trợ nhau:
sys.dm_exec_requestscho overview waits/execution,sys.dm_tran_lockscho deep dive locks. Đây là best practice theo Microsoft cho troubleshooting performance (Activity Monitor hoặc sp_WhoIsActive script).
📋 Giải thích tất cả các phương án (đúng/sai)
Dưới đây là phân tích từng lựa chọn một, giữ nguyên text gốc tiếng Anh. Mỗi cái được đánh giá ✅ (đúng) hoặc ❌ (sai), kèm lý do cụ thể bằng tiếng Việt dựa trên kiến thức SQL Server 2022+ / Azure SQL (không áp dụng cho AWS - câu hỏi này thuộc Microsoft ecosystem).
-
❌ sys.dm_pdw_nodes_tran_locks
Sai vì đây là DMV dành riêng cho Azure SQL Data Warehouse (PDW/APS nodes) – môi trường phân tán (scale-out). Không tồn tại hoặc không áp dụng trên SQL Server chuẩn/Azure SQL DB đơn lẻ như SalesSQLDb1. Chỉ dùng trong Synapse Analytics legacy. -
❌ sys.dm_exec_compute_node_errors
Sai vì DMV này theo dõi lỗi trên compute nodes trong PolyBase Data Warehouse (PDW). Không liên quan đến performance chung (chỉ lỗi external data sources), không giúp troubleshoot waits/locks thông thường. -
✅ sys.dm_exec_requests
Đúng! Như giải thích trên, đây là DMV hàng đầu cho performance: xem waits, status, command đang chạy. Query mẫu:SELECT * FROM sys.dm_exec_requests WHERE wait_time > 0. -
❌ sys.dm_cdc_errors
Sai vì chỉ theo dõi lỗi Change Data Capture (CDC) – tính năng capture changes cho ETL/audit. Không liên quan đến performance issues tổng quát (chỉ specific cho CDC failures). -
❌ sys.dm_pdw_nodes_os_wait_stats
Sai vì dành cho OS-level wait stats trên PDW nodes (Data Warehouse phân tán). Không có trên SQL Server on-prem/Azure SQL DB thông thường; gây lỗi nếu query trên môi trường sai.
🧩 Kết luận troubleshooting: Chạy query kết hợp hai DMV đúng để script như:
SELECT r.session_id, r.wait_type, r.blocking_session_id, l.resource_type, l.request_mode
FROM sys.dm_exec_requests r
JOIN sys.dm_tran_locks l ON r.session_id = l.request_session_id;
Điều này sẽ pinpoint nguyên nhân nhanh chóng. Nếu là Azure SQL, dùng Query Store + DMVs cho insights sâu hơn (tính năng 2024+).
Nếu cần script mẫu hoặc case study cụ thể, hãy cho tôi biết! 🚀
You need to track each time values from the column are returned in a query. The tracking information must be stored for 365 days from the date the query was executed.
Which three actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
- A Turn on auditing and write audit logs to an Azure Storage account.
- B Add extended properties to the column.
- C Turn on auditing and write audit logs to an Event Hub
- D Apply sensitivity labels named Highly Confidential to the column.
- E Turn on Azure Defender for SQL
Xem giải thích
🧩 Giải thích nội dung câu hỏi
Câu hỏi yêu cầu thực hiện ba hành động để theo dõi mỗi lần giá trị từ một cột chứa thông tin bí mật (confidential information) được trả về trong kết quả truy vấn (query) trên cơ sở dữ liệu Azure SQL mới. Thông tin theo dõi phải được lưu trữ trong 365 ngày kể từ ngày thực hiện truy vấn.
✅ Đây là câu hỏi multiple correct answers (mỗi lựa chọn đúng chiếm 1 điểm), tập trung vào tính năng Auditing kết hợp Data Classification trong Azure SQL Database.
🛠️ Mục tiêu: Bật theo dõi truy vấn SELECT trên cột nhạy cảm (sensitive column), ghi log chi tiết (bao gồm thời gian, query, user), và đảm bảo lưu trữ lâu dài (365 ngày) qua các đích lưu trữ phù hợp. Không chỉ phát hiện mà phải track chính xác từng lần truy xuất dữ liệu.
✅ Đáp án đúng (3 lựa chọn)
Các hành động đúng là:
- Turn on auditing and write audit logs to an Azure Storage account.
🧩 Lý do: Bật Auditing và gửi log đến Azure Storage account cho phép ghi chi tiết mọi SELECT trên cột đã classify nhạy cảm. Storage hỗ trợ retention policy lên đến 365 ngày hoặc hơn (cấu hình Lifecycle Management), lưu blob logs an toàn, dễ query. - Turn on auditing and write audit logs to an Event Hub.
🧩 Lý do: Auditing có thể gửi log đồng thời đến Event Hub (hỗ trợ streaming real-time). Event Hub namespace cho phép retention lên đến 90 ngày tiêu chuẩn, nhưng với Azure Monitor/Defender tích hợp có thể mở rộng qua streaming đến Storage để đạt 365 ngày. Phù hợp track high-volume queries. - Apply sensitivity labels named Highly Confidential to the column.
🧩 Lý do: Phải classify cột với label "Highly Confidential" (qua Advanced Data Discovery & Classification) trước. Auditing mới tự động track/log SELECT trả về dữ liệu classified này. Không classify thì không track được.
Tổng lý do chọn: Kết hợp classification → auditing → destinations (Storage/Event Hub) đảm bảo track đầy đủ, lưu 365 ngày. Azure hỗ trợ multi-destinations cùng lúc (từ phiên bản 2023+).
📋 Giải thích tất cả các phương án
Dưới đây là phân tích từng lựa chọn một, giữ nguyên văn bản gốc tiếng Anh. Mỗi phần chỉ rõ đúng/sai và lý do chi tiết:
-
Turn on auditing and write audit logs to an Azure Storage account.
✅ Đúng. Auditing ghi log SELECT trên cột classified (như Highly Confidential), Storage là đích lưu trữ chính, hỗ trợ retention 365 ngày qua blob lifecycle. Logs bao gồm query text, timestamp, user – chính xác track "each time values returned". -
Add extended properties to the column.
❌ Sai. Extended properties chỉ là metadata tùy chỉnh (như mô tả cột), không liên quan đến tracking queries hay lưu log. Không kích hoạt auditing hay classification tự động. -
Turn on auditing and write audit logs to an Event Hub.
✅ Đúng. Event Hub nhận audit events real-time từ SQL Auditing, hỗ trợ streaming log để phân tích. Kết hợp Storage có thể lưu lâu dài 365 ngày; phù hợp scale lớn, track continuous access. -
Apply sensitivity labels named Highly Confidential to the column.
✅ Đúng. Label "Highly Confidential" (từ Information Protection labels) classify cột nhạy cảm. Auditing tự động log SELECT returning classified data, bao gồm rank cao nhất để trigger tracking chi tiết. Bước bắt buộc đầu tiên. -
Turn on Azure Defender for SQL.
❌ Sai. (Bây giờ là Microsoft Defender for SQL từ 2023). Đây là threat detection (phát hiện tấn công, anomaly), không track bình thường queries hay lưu log access 365 ngày. Chỉ alert, không phải auditing chi tiết.
📘 Tài liệu tham khảo (cập nhật đến 2026)
- Azure SQL Auditing Overview (hỗ trợ multi-sinks: Storage, Event Hub từ 2021+).
- Data Discovery & Classification (labels như Highly Confidential trigger SELECT logging).
- Azure Storage Retention (365+ days).
- Event Hubs for Auditing (streaming + retention).
✅ Kiến thức dựa trên Azure SQL features stable đến 2026 (không thay đổi core logic). Nếu cần config thực tế, dùng Azure Portal > SQL Database > Auditing.
You need to minimize the possibility of Query Store transitioning to a read-only state.
What should you do?
- A Double the value of Data Flush interval
- B Decrease by half the value of Data Flush Interval
- C Double the value of Statistics Collection Interval
- D Decrease by half the value of Statistics Collection interval
Xem giải thích
🧩 Phân tích chi tiết câu hỏi trắc nghiệm về Azure SQL Query Store
📖 Nội dung câu hỏi:
Câu hỏi tập trung vào việc quản lý Azure SQL Database có tên sqldb1, cụ thể là tính năng Query Store. Query Store là một công cụ giám sát và tối ưu hóa hiệu suất truy vấn trong Azure SQL, lưu trữ thông tin về lịch sử thực thi truy vấn (query execution plans, runtime stats, v.v.). Vấn đề cần giải quyết là giảm thiểu khả năng Query Store chuyển sang trạng thái read-only (chỉ đọc, không ghi thêm dữ liệu mới).
Trạng thái read-only xảy ra khi Query Store đạt khoảng 90% dung lượng lưu trữ (disk space hoặc memory cache đầy), dẫn đến không thể thu thập dữ liệu mới. Mục tiêu là điều chỉnh các thông số cấu hình để tránh tình trạng này, dựa trên cơ chế hoạt động của Query Store: dữ liệu được thu thập trong bộ nhớ runtime trước khi flush (ghi) ra đĩa định kỳ. Việc tối ưu hóa tần suất flush và thu thập thống kê giúp kiểm soát lượng dữ liệu tích tụ.
(Lưu ý: Kiến thức dựa trên phiên bản Azure SQL mới nhất đến năm 2026, Query Store v2+ với các cải tiến về retention và cleanup tự động, nhưng nguyên tắc cơ bản về Data Flush Interval vẫn giữ nguyên).
✅ Đáp án đúng:
Decrease by half the value of Data Flush Interval
🛠️ Lý do chọn đáp án đúng:
Giảm một nửa giá trị Data Flush Interval (mặc định 900 giây ~ 15 phút) sẽ làm cho Query Store flush dữ liệu từ bộ nhớ ra đĩa thường xuyên hơn. Điều này giúp dọn dẹp bộ nhớ runtime nhanh chóng, giảm lượng dữ liệu tích tụ trong cache, từ đó giảm nguy cơ bộ nhớ đầy dẫn đến read-only. Đây là cách hiệu quả nhất để duy trì Query Store ở trạng thái read-write, đặc biệt trong môi trường tải cao.
🔍 Giải thích chi tiết tất cả các phương án (đúng/sai)
-
❌ [SAI] Double the value of Data Flush interval
Tăng gấp đôi Data Flush Interval sẽ làm giảm tần suất flush (giữ dữ liệu trong bộ nhớ lâu hơn). Kết quả: bộ nhớ runtime dễ đầy nhanh chóng, tăng nguy cơ Query Store chuyển sang read-only. Không nên dùng vì làm tình trạng tệ hơn. -
✅ [ĐÚNG] Decrease by half the value of Data Flush Interval
Như đã giải thích ở trên: Giảm interval → flush thường xuyên hơn → bộ nhớ được giải phóng nhanh → giảm rủi ro read-only. Đây là khuyến nghị chuẩn từ Microsoft để tối ưu không gian. -
❌ [SAI] Double the value of Statistics Collection Interval
Tăng gấp đôi Statistics Collection Interval (mặc định 15 phút) sẽ giảm tần suất thu thập thống kê truy vấn. Điều này giảm lượng dữ liệu mới vào Query Store, nhưng không giải quyết trực tiếp vấn đề bộ nhớ đầy hoặc flush. Thậm chí có thể làm dữ liệu thống kê kém chính xác hơn, không hiệu quả để tránh read-only. -
❌ [SAI] Decrease by half the value of Statistics Collection interval
Giảm một nửa Statistics Collection Interval sẽ tăng tần suất thu thập thống kê, dẫn đến thêm nhiều dữ liệu vào Query Store hơn. Kết quả: tăng tải cho bộ nhớ và đĩa, làm dễ đầy nhanh hơn, từ đó tăng nguy cơ read-only. Không phù hợp.
📘 Tài liệu tham khảo
- Microsoft Docs (cập nhật 2025-2026): Query Store trong Azure SQL Database – Phần "Runtime Statistics Capture" và "Manage Query Store".
- Query Store Best Practices: sys.database_query_store_options – Chi tiết Data Flush Interval (max_memory_percent và interval_seconds).
- Troubleshoot Read-Only: Monitor and Troubleshoot Query Store.
💡 Lời khuyên từ Azure DBA: Nếu áp dụng, hãy giám sát qua Azure Portal > Query Store > Configure, và kết hợp với QUERY_CAPTURE_MODE = AUTO để tự động quản lý. Test trên môi trường dev trước! 🚀