Q001 - Question
You are designing a new software as a service application. Each tenant has its own copy of the database, and the workload of individual tenants is unpredictable. You want to share compute resources across the tenant databases to reduce cost. Which deployment option should you choose?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. An Azure SQL Database elastic pool that contains the tenant databases.
- B. Single databases, one for each tenant, each with its own dedicated resources.
- C. One Azure SQL Database Hyperscale database that is sized for the largest tenant.
- D. An Azure SQL Managed Instance that hosts a database for each tenant.
A is correct.
Explanation: An elastic pool shares CPU, memory, and storage among the databases in the pool. It is a good fit for multitenant databases where each tenant has its own database. A database that needs more resources can use them, up to the set limits. Balance the workload across databases so that one database doesn't use most of the pool's resources.
B is incorrect: Each single database has its own dedicated resources, even on the same logical server. You scale and manage each database individually, so resources aren't shared.
C is incorrect: Hyperscale addresses large database size and independent scaling of compute and storage. It adds a per terabyte storage cost and doesn't address sharing resources across tenant databases.
D is incorrect: SQL Managed Instance is described as the best option for most migration scenarios. This is a new application, and the requirement is to share resources across databases in a pool.
Q002 - Question
You plan to deploy a development database to the Azure SQL Database serverless compute tier. The database is idle for several days at a time, and the team wants to pay only for storage during idle periods. Which action must you take for the application?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. Set the autopause delay to 30 minutes so the database pauses sooner.
- B. Configure the application to handle connection errors and retry the connection.
- C. Run a manual backup before each pause to protect the data.
- D. Configure geo-replication to keep a secondary database online while the primary is paused.
B is correct.
Explanation: When a serverless database is paused, a connection attempt generates a connection error and then resumes the database. Configure the application to handle the error and include retry logic.
A is incorrect: The autopause delay has a minimum value of 60 minutes, so you can't set it to 30 minutes.
C is incorrect: Manual backups aren't supported in Azure SQL Database, and the platform denies the request. Automated backups run without intervention.
D is incorrect: Serverless isn't fully compatible with features that require constant background processes, and geo-replication is one of them.
Q003 - Question
A retail company wants to move a business-critical product database to Azure. The application depends on SQL Agent jobs, cross database joins, and SQL Server Integration Services. The company wants a fully managed platform as a service (PaaS) solution. It also wants to limit changes to the application and the time that database administrators and developers spend on the migration. Which Azure hosting option should you choose?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. Azure SQL Database, after the application is rewritten to remove the dependencies
- B. SQL Server on an Azure virtual machine, which moves the database and supporting technologies to infrastructure as a service (IaaS)
- C. Azure SQL Managed Instance
- D. Azure SQL Database, with the SQL Agent jobs and SSIS packages left on an on-premises server
C is correct.
Explanation: Azure SQL Managed Instance provides close to 100 percent compatibility with SQL Server, including instance-scoped features such as cross database joins. It brings the database and supporting technologies to a fully managed PaaS experience without requiring an application redesign.
A is incorrect: Azure SQL Database needs extra development to address migration blockers such as SQL Agent jobs, cross database joins, and SSIS. That conflicts with the goal of limiting application changes and developer time.
B is incorrect: SQL Server on IaaS avoids an application overhaul, but it does not provide the fully managed PaaS experience that the company requires.
D is incorrect: This option leaves supporting technologies on-premises instead of bringing them to Azure PaaS. It also does not remove the dependencies that block the migration to Azure SQL Database.
Q004 - Question
You plan to use Log Replay Service (LRS) to migrate an active on-premises SQL Server database to Azure SQL Managed Instance. New backup files will be created while the migration is running, so the full backup chain is not available in advance. Which migration mode and planning constraint should you use?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. Autocomplete mode, because it finishes automatically after the last backup file is restored
- B. Continuous mode, because the LRS job has no time limit
- C. Autocomplete mode, because it accepts backup files that are added during migration
- D. Continuous mode, and plan to complete the migration within 30 days
D is correct.
Explanation: Continuous mode scans for new backup files and restores them, so the backup chain can be added during migration. It is recommended for active workloads. Regardless of the mode, the LRS job is canceled automatically after 30 days, so plan to complete the migration within that time.
A is incorrect: Autocomplete mode requires the entire backup chain to be available in advance. It is recommended for passive workloads.
B is incorrect: Continuous mode fits this workload, but the LRS job is automatically canceled after 30 days. The job does have a time limit.
C is incorrect: Autocomplete mode does not support adding backup files during migration. The entire backup chain must be available before the migration starts.
Q005 - Question
You are designing a hybrid SQL Server solution that connects an on-premises network to Azure. The solution must provide the lowest latency and the best security. Communication must flow over a direct secured channel that is independent of the public internet. Higher cost is acceptable. Which connectivity method should you use?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. A dedicated ExpressRoute connection
- B. A site-to-site (S2S) VPN
- C. Azure Arc-enabled SQL Server
- D. An Azure Storage account locked down with ACLs
A is correct.
Explanation: ExpressRoute connections tend to cost more, but they provide the best security and lowest latency. All communication flows over a direct secured channel that is independent of the public internet. Cost is a known drawback, and ExpressRoute can't be applied between cloud providers in a multicloud solution.
B is incorrect: An S2S VPN can provide secure two-way communication between the on-premises network and Azure. It isn't the option described as having the best security and lowest latency over a direct channel.
C is incorrect: Azure Arc-enabled SQL Server centralizes management, inventory, and security assessment for SQL Server instances. It isn't a network connectivity method.
D is incorrect: Locking down a storage account with ACLs and Microsoft Entra ID helps protect data that is stored in Azure. It doesn't provide a network channel between the on-premises network and Azure.
Q006 - Question
A manufacturing company has a SQL Server instance that is enabled by Azure Arc. The team plans to migrate its databases to Azure SQL Managed Instance by using the Azure portal. The team changed several database features this week and needs a current migration readiness result before the next weekend. What should the team do?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. Trigger an assessment manually in the Azure portal.
- B. Wait for the weekend, because assessments can run only on that schedule.
- C. Skip the assessment and start the data migration, because the assessment is optional.
- D. Create the target SQL Managed Instance first, because an assessment can run only after target selection.
A is correct.
Explanation: For a SQL Server instance that is enabled by Azure Arc, discovery and readiness reports run automatically every weekend. You can also trigger an assessment manually at any time. The assessment evaluates feature compatibility and identifies potential migration blockers.
B is incorrect: The weekend run is the automatic schedule, but it is not the only option. A manual assessment can run at any time.
C is incorrect: The assessment identifies migration blockers and provides right-sized recommendations for the target configuration. Starting the migration without current results leaves those items unchecked.
D is incorrect: Assessing the source instance is the first stage. Selecting the target is the second stage, so the assessment does not depend on it.
Q007 - Question
A vendor application installs its own software on the same server as SQL Server. The installer needs direct access to the operating system. The application also uses Active Directory authentication instead of Microsoft Entra ID authentication. You plan to move the application to Azure. Which deployment option should you choose?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. Azure SQL Database
- B. Azure SQL Managed Instance
- C. SQL Server on Azure Virtual Machines
- D. Azure Arc-enabled SQL Server
C is correct.
Explanation: SQL Server on Azure Virtual Machines is an IaaS offering. It gives you access to the operating system, virtual storage, virtual networking, and any software you install in the VM. It also supports Active Directory authentication. You are responsible for OS patching and for SQL Server installation and configuration.
A is incorrect: Azure SQL Database is a PaaS offering. Direct access to the operating system isn't supported in a PaaS model, so the vendor installer can't run.
B is incorrect: Azure SQL Managed Instance is also a PaaS offering. Microsoft manages the operating system, and direct operating system access isn't supported.
D is incorrect: Azure Arc-enabled SQL Server extends Azure management to on-premises or multicloud SQL Servers. It is not a deployment option for moving an application to Azure.
Q008 - Question
You plan to migrate a large SQL Server database to Azure SQL Database by importing a BACPAC file. The migration must finish in the shortest practical time. Which TWO actions should you include in the migration plan?
Domain: Plan and implement data platform resources (15–20%) Type: Multiple choice
- A. Scale the target database to the lowest service tier and compute size during the migration, and scale up after the migration finishes.
- B. Scale the target database to a higher service tier and compute size for the migration, and scale down after the migration finishes.
- C. Store the BACPAC file in a different Azure region than the destination data center.
- D. Disable auto update statistics and auto create statistics during the migration.
B and D are correct.
Explanation: Choose the highest practical service tier and compute size for maximum transfer performance, and scale down after the migration. Also disable auto update and auto create statistics during the migration.
A is incorrect: A low service tier and compute size during the transfer reduces the resources available for the migration. Scale up before the migration, not after it.
C is incorrect: You should minimize the distance between the BACPAC file and the destination data center. Storing it in a different region increases the distance.
Q009 - Question
A company must enable the public endpoint on Azure SQL Managed Instance for data communication. Security policy requires separation of duties between the database administrator and the network administrator. The database administrator has already run the PowerShell script that enables the public endpoint. What must happen next?
Domain: Plan and implement data platform resources (15–20%) Type: Single choice
- A. The database administrator opens port 1433 on the network security group (NSG).
- B. A network administrator with permissions in scope Microsoft.Network/* opens port 3342 on the NSG and provides a user-defined route (UDR) to avoid asymmetric routing.
- C. A network administrator opens port 445 outbound on the managed instance subnet to reach the Azure file share.
- D. The database administrator, with permissions in scope Microsoft.Sql/managedInstances/*, opens port 3342 on the NSG.
B is correct.
Explanation: Enabling the public endpoint takes two steps by two separate roles. The database administrator runs the PowerShell script. A network administrator with permissions in scope Microsoft.Network/* opens port 3342 on the NSG and provides a UDR route to avoid asymmetric routing.
A is incorrect: Port 1433 is not the port that the public endpoint uses. Port 1433 outbound is a transactional replication requirement when the publisher or distributor is on a managed instance and the subscriber is on-premises.
C is incorrect: Port 445 outbound provides access to the Azure file share that transactional replication uses. It does not open the public endpoint.
D is incorrect: The database administrator role is scoped to Microsoft.Sql/managedInstances/*, which does not include network permissions. Separation of duties requires a separate network administrator for the NSG and route changes.
Q010 - Question
A table in SQL Server contains a three-digit card verification code column. The column has few distinct values that someone with access to the encrypted data could guess. Applications only need to return this column in query results. DBAs must not be able to read the values. Which configuration should you use?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. Always Encrypted with deterministic encryption and a column master key stored in Azure Key Vault
- B. Transparent Data Encryption with a service-managed key
- C. Always Encrypted with randomized encryption and a column master key generated on the server that hosts the database
- D. Always Encrypted with randomized encryption and a column master key stored in Azure Key Vault
D is correct.
Explanation: Randomized encryption is recommended for columns with a few well-known distinct values that could be guessed. Randomized encryption limits you to returning the column in results, which meets the requirement. Storing the column master key in a key store such as Azure Key Vault keeps it away from the database engine. The database engine never stores the column master key.
A is incorrect: Deterministic encryption always encrypts a value the same way. Values that are few and well known could be guessed from the encrypted data.
B is incorrect: TDE encrypts data at the page level and does not encrypt at the column level. Anyone with the appropriate permissions can still read the data, which does not protect it from DBAs.
C is incorrect: Randomized encryption is correct, but you should never generate the keys on the server that hosts your database. The key could potentially be extracted from memory on that server.
Q011 - Question
A logical server in Azure SQL Database hosts several databases. A vendor must connect from a single public IP address to only one of these databases. You must not allow that IP address to reach the other databases. What should you do?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. Add a server-level firewall rule in the Azure portal for the vendor IP address.
- B. Run sp_set_firewall_rule in the master database for the vendor IP address.
- C. Run sp_set_database_firewall_rule in the target user database for the vendor IP address.
- D. Add a virtual network rule for the vendor network.
C is correct.
Explanation: Database-level firewall rules grant or block specific IP addresses for specific databases. You configure them with T-SQL by running sp_set_database_firewall_rule from within the user database.
A is incorrect: A server-level firewall rule lets users connect to all databases on the server. The vendor IP address would reach the other databases.
B is incorrect: sp_set_firewall_rule creates a server-level rule from the master database. Server-level rules apply to all databases on the server.
D is incorrect: Virtual network rules allow traffic from a specific Azure Virtual Network and apply at the server level, not the database level. They also do not scope access to one database.
Q012 - Question
Auditing is enabled at the server level on an Azure SQL logical server, and all databases write audit logs to one Log Analytics workspace. A compliance requirement now states that one database must send its audit logs to a different storage account and use a different retention period. The other databases must keep the current configuration. What should you do?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. Disable server-level auditing and enable database-level auditing on every database.
- B. Keep only server-level auditing and leave database-level auditing disabled on the database.
- C. Disable database-level auditing on all databases and rely on the data_sensitivity_information field in the audit log.
- D. Keep server-level auditing and also enable database-level auditing on that database with its own storage account and retention period.
D is correct.
Explanation: Enabling server auditing and database auditing together is appropriate when a specific database needs a different storage account, retention period, or Log Analytics workspace. The server policy continues to audit the other databases. The database policy applies the separate settings to the one database. Both audits exist at the same time.
A is incorrect: Server policies automatically cover new and existing databases. Moving every database to database-level auditing adds configuration work and is not needed for one exception.
B is incorrect: Server-level auditing alone is recommended for databases that have no special requirements. This database needs a different destination and retention period, so it needs its own database-level policy.
C is incorrect: The data_sensitivity_information field records sensitivity labels of the data a query returns. It does not change the audit destination or the retention period.
Q013 - Question
A Sales table in Azure SQL Database stores rows for several tenants in a TenantName column. Each tenant user connects directly to the database and must see only the rows for their own tenant. A TenantAdmin user must see all rows. The solution must require minimal application changes. Which approach should you use?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. Apply a Dynamic Data Masking default() function to the TenantName column.
- B. Enable Azure SQL auditing with the BATCH_COMPLETED_GROUP action group.
- C. Create an inline table-valued function that evaluates the user name, and add it as a filter predicate in a security policy on the Sales table.
- D. Add sensitivity labels to the TenantName column by using Data Discovery & Classification.
C is correct.
Explanation: Row-level security uses a security policy that invokes an inline table-valued function as a predicate. The predicate compares the user name with the TenantName value and allows TenantAdmin to see all rows. The control is applied at the database level, so application changes are minimal. Users can query the table directly and see only their own rows. Limit the ability of users to run unplanned queries, because a specially crafted WHERE clause can cause information leakage through a side-channel attack.
A is incorrect: Dynamic Data Masking obfuscates column values. It does not remove rows from query results.
B is incorrect: Auditing records events such as queries. It does not restrict which rows a user can read.
D is incorrect: Sensitivity labels describe the sensitivity of columns. They do not enforce access to rows.
Q014 - Question
You must export a copy of a production Azure SQL database to a development environment. The Customer table contains Email and PhoneNumber columns. Developers must not see the actual values in the exported data. Which two actions should you take? Select two answers.
Domain: Implement a secure environment (20–25%) Type: Multi-select
- A. Define Dynamic Data Masking rules on the Email and PhoneNumber columns.
- B. Grant the UNMASK permission to the user who runs the export.
- C. Run the export as a user who does not have the UNMASK permission.
- D. Create a row-level security policy and set its state to OFF before the export.
A and C are correct.
Explanation: Dynamic Data Masking must be defined on the columns before it can obfuscate their values. When a user without the UNMASK permission runs SQL Server Import and Export, the exported data file contains masked data. Both actions are required. Remember that unmasked data is always visible to high privileged users, so do not run the export as one of them.
B is incorrect: The UNMASK permission lets a user retrieve unmasked data from masked columns. The export would contain the actual values.
D is incorrect: Row-level security restricts access to rows. Setting its state to OFF makes users see all rows. It does not mask column values.
Q015 - Question
An application accesses all of its data in an Azure SQL database by calling stored procedures. The procedures and the tables they reference have the same owner, and the procedures don't use dynamic SQL. You must follow the principle of least privilege for the application account. What should you grant to the application account?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. SELECT, INSERT, UPDATE, and DELETE on every table the procedures use
- B. Membership in the db_datareader and db_datawriter roles
- C. CONTROL on each table the procedures use
- D. EXECUTE on the stored procedures, with no direct access to the tables
D is correct.
Explanation: The principle of least privilege means giving an application only the permissions it needs. If an application accesses all data through stored procedures, it needs only EXECUTE on those procedures. Because the procedures and tables have the same owner and the procedures don't use dynamic SQL, the ownership chain lets the procedures access the tables.
A is incorrect: Direct DML permissions on the tables give the application more access than it needs, because the procedures already reach the tables through the ownership chain.
B is incorrect: db_datareader reads every table and view, and db_datawriter changes data in every table and view. Both are broader than needed.
C is incorrect: CONTROL grants all rights to an object, including the ability to delete it. This is the opposite of least privilege.
Q016 - Question
You must configure SQL Server on an Azure virtual machine to connect to Azure Key Vault so that a key can be used for Transparent Data Encryption. Which two actions are part of this configuration? Select two.
Domain: Implement a secure environment (20–25%) Type: Multiple choice
- A. Assign the Azure subscription admin role to the SQL Server service account.
- B. Create a normal SQL Server login in the instance.
- C. Store the Always Encrypted column master key in the database engine.
- D. Create a credential mapped to the login. Use the key vault name as the identity and the application ID from Azure Key Vault as the secret.
B and D are correct.
Explanation: To connect SQL Server to Azure Key Vault, you first create a normal SQL Server login in the instance. You then create a credential and map it to the login. The identity of the credential is the name of the key vault. The secret of the credential is the application ID from Azure Key Vault.
A is incorrect: Key Vault data has its own RBAC policies, separate from the Azure subscription. A subscription admin role does not give access to the key vault unless access is explicitly granted.
C is incorrect: The database engine never stores a column master key. It holds only metadata about where the key is stored, and the key must be in a key store such as Azure Key Vault.
Q017 - Question
You select a TLS certificate in SQL Server Configuration Manager and set ForceEncryption to Yes. The certificate is in the local computer certificate store and is within its valid period. You ran SQL Server Configuration Manager with a local administrator account. When you restart the SQL Server service, the restart fails. What is the most likely cause?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. The certificate is in the local computer certificate store instead of a different store.
- B. The SQL Server service account does not have permission to access the certificate.
- C. SQL Server Configuration Manager was run with a local administrator account.
- D. The Encrypt connection option is not yet selected in SQL Server Management Studio.
B is correct.
Explanation: The SQL Server service account must have permission to access the certificate. If the correct access is not provided, restarting the SQL Server service fails. Grant the service account access to the certificate and restart the service.
A is incorrect: The certificate must be in the local computer certificate store or the current user certificate store. The local computer store meets the requirement.
C is incorrect: You must run SQL Server Configuration Manager with a local administrator account to install certificates for SQL Server. This is a requirement, not a cause of failure.
D is incorrect: Selecting Encrypt connection in SQL Server Management Studio is a client-side step that you use to test the connection after configuration. It does not affect whether the service restarts.
Q018 - Question
A user is a member of the SalesReader role, which has SELECT and EXECUTE on the Sales schema and no permissions on the Production schema. The user runs Sales.DemoProc, which queries Production.Product. The procedure and table have the same owner, and the procedure runs successfully. A developer then changes the procedure to build the same query as a string and run it with sp_executesql. The user now receives an error that SELECT permission is denied on Production.Product. What is the cause?
Domain: Implement a secure environment (20–25%) Type: Single choice
- A. Dynamic SQL runs outside the context of the calling stored procedure, so the ownership chain doesn't apply.
- B. The user lost EXECUTE permission on the Sales schema when the procedure was altered.
- C. The SalesReader role must be a member of db_owner to run procedures that use sp_executesql.
- D. The user has an implicit DENY on the Production schema because the user belongs to the public role.
A is correct.
Explanation: Ownership chaining lets a user run a procedure that accesses a table with the same owner without direct table permissions. Dynamic SQL runs outside the context of the calling procedure, which breaks the chain. The user running the dynamic SQL then needs permissions on the tables and views that the code uses.
B is incorrect: The user's EXECUTE permission comes from the role's grant on the Sales schema. The error is about SELECT on Production.Product, not EXECUTE on the procedure.
C is incorrect: Adding the role to db_owner would grant broad administrative access and doesn't address the broken chain. It also conflicts with the principle of least privilege.
D is incorrect: Membership in the public role doesn't create a DENY. By default, the public role has no permissions granted to it.
Q019 - Question
You manage a database in Azure SQL Database. Index fragmentation is increasing as data changes, and you must automate index maintenance on a schedule. Which two methods can you use? Select two.
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Multi-select
- A. Create a SQL Server Agent job in the Azure SQL Database.
- B. Use an Azure Automation runbook.
- C. Schedule a task with Windows Task Scheduler on the server that hosts the database.
- D. Use Azure SQL elastic jobs.
B and D are correct.
Explanation: Azure SQL Database doesn't provide SQL Server Agent or Windows Task Scheduler, so you must schedule index maintenance by other methods. Azure Automation runbooks and Azure SQL elastic jobs are two of those methods. A SQL Server Agent job on a SQL Server in an Azure Virtual Machine that calls the database remotely is a third method.
A is incorrect: Azure SQL Database doesn't give you access to SQL Server Agent, so you can't create the job in the database itself.
C is incorrect: Azure SQL Database doesn't give you access to Windows Task Scheduler, and you don't have a server of your own that hosts the database.
Q020 - Question
A SQL Server instance hosts databases for several applications. Index rebuilds that run from a dedicated maintenance login use too many resources during the maintenance window and slow user queries. You plan to use Resource Governor to limit the resources for the rebuilds. Which approach should you use?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Use the classifier function to send the maintenance login to the internal workload group and resource pool, and set limits on that pool.
- B. Change the limits on the default resource pool to throttle rebuilds that are already running.
- C. Set the maximum CPU percent for the pool to 70 percent and expect the rebuilds to use no more than 70 percent of the CPU at any time.
- D. Create a resource pool with limits and a workload group for that pool, and use the classifier function to assign the maintenance login to the workload group.
D is correct.
Explanation: Resource Governor uses a classifier function to place connections into workload groups. Each workload group uses one resource pool, and you can set limits on the pool. Classifying the maintenance login into its own group and pool limits the resources for the rebuilds. Test the classifier function for efficiency, because it runs every time a connection is established.
A is incorrect: The internal pool is reserved for critical SQL Server functions and cannot be restricted.
B is incorrect: Changes to a resource pool affect only new sessions, so they do not restrict a process that is already running.
C is incorrect: The maximum CPU percent applies only when there is CPU contention. Without contention, the workload can use up to 100 percent of the available CPU cycles.
Q021 - Question
A SQL Server workload on an Azure VM needs a large amount of memory, storage, and I/O bandwidth, but it is not CPU-intensive. SQL Server licenses are based on the number of cores. You want to reduce software licensing cost without reducing memory. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Select a larger VM size that has more vCPUs.
- B. Select a VM size that uses constrained cores.
- C. Change the data disks to Ultra disk.
- D. Select a smaller VM size that has fewer cores and accept the lower memory.
B is correct.
Explanation: Azure allocates a fixed ratio of CPU cores to memory. Constrained cores reduce the vCPU count and the software licensing cost while you keep the full amount of memory, storage, and I/O bandwidth. This fits database workloads that are not CPU-intensive.
A is incorrect: More vCPUs increases the number of cores, and SQL Server licenses are based on cores.
C is incorrect: Ultra disk addresses storage latency. It does not change the number of cores that are licensed.
D is incorrect: A smaller size with fewer cores also reduces memory because of the fixed core-to-memory ratio, which does not meet the memory requirement.
Q022 - Question
You manage several instances of SQL Server on Azure Virtual Machines that were deployed from Azure Marketplace images. The Azure portal metrics for each virtual machine show CPU usage, network utilization, and disk read and write operations. You need to collect SQL Server-specific performance counters and review them in a single view across all of the servers. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Use the default Azure Monitor metrics for each virtual machine.
- B. Enable Monitoring Insights on each virtual machine and use only the data in the Log Analytics workspace.
- C. Collect the SQL Server counters with Performance Monitor on each virtual machine and forward the results to Azure Monitor.
- D. Use the SQL Server configuration page of the SQL virtual machine resource provider on each virtual machine.
C is correct.
Explanation: When SQL Server is installed on Windows, the database engine creates its own Performance Monitor counters. SQL Server-specific metrics must be gathered from the virtual machine itself. In larger environments, you can forward Performance Monitor results to Azure Monitor to get a single view across many servers.
A is incorrect: The default Azure Monitor metrics for a virtual machine are operating system metrics. Their namespace is the virtual machine host, not SQL Server, so SQL Server-specific metrics aren't available in the portal.
B is incorrect: Monitoring Insights collects extra data points such as storage latency, available memory, and disk capacity. These are not SQL Server database engine counters.
D is incorrect: The SQL virtual machine resource provider shows how much space the database files and transaction log file use. It also manages features such as automated patching and storage configuration. It doesn't collect Performance Monitor counters.
Q023 - Question
You query sys.dm_db_index_physical_stats and find that a b-tree index on a frequently modified table has 45 percent fragmentation. You want to correct the fragmentation and also update the statistics on that index. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Reorganize the index.
- B. Rebuild the index.
- C. Disable AUTO_CREATE_STATISTICS for the database.
- D. Run CREATE STATISTICS on the table columns.
B is correct.
Explanation: The common guidance is to rebuild an index when fragmentation is 30 percent or more. A rebuild also updates the statistics on the index. An online rebuild builds a new index in parallel with the existing one, so it requires more space.
A is incorrect: Reorganizing is the common guidance for fragmentation of at least 5 percent and less than 30 percent. A reorganization doesn't update statistics.
C is incorrect: Disabling AUTO_CREATE_STATISTICS doesn't reduce fragmentation. It is recommended to keep this option enabled so that the query optimizer can create statistics for query predicate columns.
D is incorrect: CREATE STATISTICS creates additional statistics to improve specific query plans. It doesn't remove fragmentation from the index.
Q024 - Question
A SQL Server virtual machine has a workload with predictable seasonal changes in CPU usage. You create an Azure Monitor metric alert on Percentage CPU. You need the alert to fire only when CPU behavior is abnormal compared with the historical behavior of the metric. Which configuration should you use?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. A static threshold of 95 percent with the average aggregation.
- B. Dynamic Thresholds on the Percentage CPU metric.
- C. An action group that sends an email notification, with no other alert changes.
- D. Archive the Azure Monitor Metrics data to Azure Storage.
B is correct.
Explanation: Dynamic Thresholds learn the historical behavior of a metric and raise an alert when the resource operates in an abnormal manner. They can detect seasonality in a workload and adjust the alerting accordingly.
A is incorrect: A static threshold requires you to provide a fixed value. It doesn't learn historical behavior or adjust for seasonality.
C is incorrect: An action group defines how to respond to an alert, such as a notification or an automation. It doesn't define the alert condition. Defining an action group is optional.
D is incorrect: Archiving to Azure Storage keeps metrics beyond the 93 days that active metrics are retained. It doesn't create an alert condition.
Q025 - Question
A SQL Server data volume on an Azure VM must provide about 10 TB of capacity and 50,000 IOPS. You plan to use Premium SSD P30 disks. Each P30 disk is 1 TB and provides 5,000 IOPS. How should you configure the storage?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Create a Storage Spaces pool from 10 P30 disks and configure mirror redundancy to protect against disk failure.
- B. Use one P30 disk and enable read caching to reach the required capacity and IOPS.
- C. Add 10 P30 disks to the VM and create a Storage Spaces pool with no redundancy.
- D. Use Standard HDD disks in a Storage Spaces pool to meet the capacity requirement.
C is correct.
Explanation: A pool of 10 P30 disks has the sum of the IOPS and the sum of the capacity of all disks, which is a 10-TB volume with 50,000 IOPS. Do not configure redundancy in the pool, because the Azure framework keeps three copies of each disk in synchronous replication.
A is incorrect: Redundancy in the pool limits performance, and Azure already provides disk redundancy.
B is incorrect: Read caching reduces trips to the disk, but it does not increase the capacity or IOPS limit of a single P30 disk.
D is incorrect: Standard HDD is suitable for backups and infrequently accessed file storage, not for production SQL Server data files.
Q026 - Question
You deploy SQL Server on an Azure virtual machine (VM) that uses Premium SSD managed disks. You are designing the storage layout for the data files, transaction log files, and TempDB. Which two configurations should you use? Select two.
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Multi-select
- A. Enable read caching on the volume that hosts the data files.
- B. Enable read caching on the volume that hosts the transaction log files.
- C. Store the data files and transaction log files on one shared volume.
- D. Place the TempDB files on the locally attached SSD (the D: drive on Windows).
A and D are correct.
Explanation: Premium SSD disks support read caching, which reduces the number of trips to the disk for read-heavy workloads, so enable it on the data file volume. TempDB is recreated when the server restarts, so placing it on the local SSD does not risk data loss.
B is incorrect: Do not enable any caching on the log file volume.
C is incorrect: Create a separate volume for data files and transaction log files instead of sharing one volume.
Q027 - Question
You must create a nonclustered index on a large table in a busy production database. Index creation might affect the performance of the whole database system. You need to be able to pause the build and continue it later from the point where it stopped. Which approach should you use?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Run CREATE INDEX with RESUMABLE=ON and ONLINE=OFF.
- B. Start the build, end the session if performance degrades, and start the build again later.
- C. Run CREATE INDEX with RESUMABLE=ON and ONLINE=ON, and run ALTER INDEX with the PAUSE clause when you need to stop the build.
- D. Query sys.index_resumable_operations to pause the index build.
C is correct.
Explanation: A resumable index build lets you pause the operation and restart it later at the point where it was paused. Resumable index is supported only with online operations, so you must set both RESUMABLE=ON and ONLINE=ON. Use ALTER INDEX with the PAUSE clause to stop the build.
A is incorrect: Resumable index is supported only with online operations. ONLINE=OFF does not meet this requirement.
B is incorrect: Ending the session is the only option in versions before SQL Server 2019. If the system rolls back the session, you must restart the build from the beginning.
D is incorrect: sys.index_resumable_operations is a system view that you query to check the status of a resumable online index. It does not pause the operation.
Q028 - Question
A SQL Server instance has one TempDB data file. Wait statistics show many PAGELATCH_UP waits on data pages 2:1:1. You need to reduce this wait type. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Lower the max degree of parallelism (MAXDOP) setting and increase the cost threshold for parallelism.
- B. Add TempDB data files, up to one per CPU core with a maximum of eight, and configure them with the same size and autogrowth settings.
- C. Change the database to the READ COMMITTED SNAPSHOT isolation level.
- D. Create additional indexes to reduce the amount of data that queries scan.
B is correct.
Explanation: PAGELATCH_UP waits on data pages 2:1:1 can indicate TempDB contention on Page Free Space (PFS) pages. This is typically caused by having only one TempDB data file. Add data files, use one file per CPU core up to eight, and keep the files the same size with the same autogrowth settings so SQL Server uses them evenly.
A is incorrect: Lowering MAXDOP and raising the cost threshold for parallelism addresses a high occurrence of CXPACKET waits, not TempDB PFS contention.
C is incorrect: READ COMMITTED SNAPSHOT is a way to resolve blocking that appears as LCK_M_X waits. It does not address TempDB PFS page contention.
D is incorrect: Index changes address waits such as PAGEIOLATCH_SH or SOS_SCHEDULER_YIELD that are caused by excessive scans. They do not address contention on page 2:1:1.
Q029 - Question
A table in a SQL Server database changes rapidly throughout the day. An actual execution plan for a reporting query shows an estimated row count of 10,000,000 for one operator, but the operator returns 100 rows. Sessions that run the query often show RESOURCE_SEMAPHORE waits. What should you do first?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Rewrite the query to use a cursor so that it processes one row at a time.
- B. Change the session to the Read uncommitted isolation level.
- C. Update the statistics on the columns and indexes that the query uses more frequently.
- D. Run the query with Live Query Statistics to reduce the memory grant.
C is correct.
Explanation: The optimizer is cost-based and uses statistics to estimate row counts. An overestimate such as 10,000,000 rows instead of 100 produces a larger memory grant. A large memory grant can cause RESOURCE_SEMAPHORE waits. If not enough memory is available when the query runs, it spills to tempdb. SQL Server updates statistics automatically, but rapidly changing data can need more frequent updates.
A is incorrect: Row-based processing with cursors increases cost linearly with the number of rows. It does not correct the row estimate that caused the large memory grant.
B is incorrect: An isolation level affects how long locks are held. It does not change row estimates or memory grants.
D is incorrect: Live Query Statistics shows execution progress through the operators. It is a viewing option and does not change the memory grant.
Q030 - Question
A query against a large table uses an index scan, although an index seek would be possible. The execution plan shows that SQL Server converts data types implicitly. The conversions also add CPU overhead. You can change the table definitions and the query code. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Select appropriate data types so that column and query data types match and the conversion is not needed.
- B. Change all columns to larger data types so that every conversion succeeds.
- C. Rely on implicit conversion because SQL Server performs it automatically at no cost.
- D. Use CAST to convert the date columns to bit so that the types match.
A is correct.
Explanation: Implicit conversions can be costly and negatively affect query plans. They can cause index scans where seeks would have been possible, and they add CPU overhead. Choosing appropriate data types removes the need for conversion. Use explicit conversion with CAST or CONVERT only when a conversion is necessary.
B is incorrect: Data types that are larger than necessary waste space and require more pages to be read. This approach does not remove the conversions and can reduce query performance.
C is incorrect: Implicit conversion is not free. It can negatively affect query plans, cause index scans, and add CPU overhead.
D is incorrect: Some conversions are not possible. For example, a date cannot be converted to a bit. Using CAST in this manner would not resolve the problem.
Q031 - Question
A vendor application sends a query with hardcoded text. The query optimizer does not generate an efficient plan for it, and you can't modify the query text. You need to make the query recompile on each execution without changing application code. What should you do?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Add OPTION (RECOMPILE) to the end of the query text in the application.
- B. Change the max degree of parallelism value by using sp_configure.
- C. Create additional indexes on the tables that the query reads.
- D. Find the Query Store query_id for the query, and run sys.sp_query_store_set_hints with the RECOMPILE hint.
D is correct.
Explanation: Query Store hints shape query plans without modifying application code. They are useful when the query optimizer doesn't generate an efficient plan and you can't change the query text. Identify the query_id from the Query Store catalog views, reports, or Query Performance Insight for Azure SQL Database. Then run sys.sp_query_store_set_hints with the hint string. Recompiling a query on each execution is a supported scenario.
A is incorrect: Adding OPTION (RECOMPILE) requires changing the query text, which you can't do in this scenario.
B is incorrect: The max degree of parallelism setting controls parallelism. It does not make a query recompile on each execution.
C is incorrect: Adding indexes changes data structures, but it does not force a recompile on each execution. The requirement is a query-level hint.
Q032 - Question
Users report slow responses from an Azure SQL Database. Resource usage shows high CPU utilization, so you classify the problem as a running scenario. You need to identify the cause. Which two actions should you take?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Multi-select
- A. Query sys.server_resource_stats to view CPU, IO, and storage usage for the database.
- B. Use the Query Store Top Consuming Resource reports to find which queries consume the most CPU resources.
- C. Query sys.dm_os_waiting_tasks to find lock and latch waits for the current tasks.
- D. Query sys.dm_exec_requests and look for queries with a state of RUNNABLE and a wait type of SOS_SCHEDULER_YIELD.
B and D are correct.
Explanation: For a running scenario, use Query Store reports, catalog views, or Query Performance Insight to find the queries that use the most CPU. Also query sys.dm_exec_requests for RUNNABLE queries with the SOS_SCHEDULER_YIELD wait type to determine whether you have enough CPU capacity.
A is incorrect: sys.server_resource_stats is a catalog view for Azure SQL Managed Instance. For Azure SQL Database, use sys.dm_db_resource_stats.
C is incorrect: sys.dm_os_waiting_tasks is used to analyze waiting scenarios, such as tasks that wait on a resource. This problem is classified as a running scenario.
Q033 - Question
A data warehouse fact table has a clustered columnstore index. Nightly loads insert fewer than 102,400 rows per operation. Open delta stores now slow down analytic queries. Select two actions that address the cause.
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Multiple choice
- A. Load the data in smaller batches so that each batch is written to a delta store.
- B. Use bulk insert operations of at least 102,400 rows so that the rows load directly into the columnstore index.
- C. Replace the clustered columnstore index with a clustered b-tree index that uses page compression.
- D. Reorganize the index with the COMPRESS_ALL_ROW_GROUPS option to compress the delta stores into the columnstore.
B and D are correct.
Explanation: Bulk loads of 102,400 rows or more use the optimized load path and go directly into the columnstore. This avoids creating new delta stores. Reorganizing the index with COMPRESS_ALL_ROW_GROUPS forces the existing delta stores to be compressed into the columnstore. Reading rows from open delta stores is less efficient than reading from the columnstore.
A is incorrect: Loads of fewer than 102,400 rows are written to a delta store. Smaller batches increase the number of open delta stores, which reduces query efficiency.
C is incorrect: A clustered b-tree index does not provide the benefits of a columnstore index for large aggregation workloads. In the load comparison, the page-compressed b-tree table took nearly 20 seconds compared with roughly 8 seconds for the columnstore table.
Q034 - Question
After an index change, several queries in an Azure SQL database run slower than they did last week. Query Store is enabled. You need to find the queries whose duration regressed because of execution plan changes, and then force an earlier plan for one of them. Which approach should you use?
Domain: Monitor, configure, and optimize database resources (20–25%) Type: Single choice
- A. Open the Query Wait Statistics view and unforce the plan for the top wait category.
- B. Open the Queries With Forced Plans view and review the queries that currently have forced plans.
- C. Inspect the procedure cache for the earlier execution plan and force it from there.
- D. Open the Regressed Queries view, select the query, and force an earlier plan from the plan summary pane.
D is correct.
Explanation: The Regressed Queries view identifies queries whose execution metrics regressed because of plan changes over a specified timeframe. Query Store persists multiple plans for each query. You can select a persisted plan in the plan summary pane and force it, or you can use the sp_query_store_force_plan stored procedure.
A is incorrect: The Query Wait Statistics view analyzes wait categories. It does not identify regressions caused by plan changes, and you can only unforce a plan that is already forced.
B is incorrect: The Queries With Forced Plans view lists queries that already have forced plans. It helps you reevaluate forced plans, but the queries here have not been forced.
C is incorrect: The procedure cache stores only the latest execution plan for a query, and plans can be evicted based on memory demands. An earlier plan might not be available.
Q035 - Question
Your team wants SQL Server to start a database consistency check automatically when storage errors 823, 824, or 825 occur. The response is a well-known condition that does not need manual intervention. Which configuration meets the requirement?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. Configure the existing job to send a notification to an operator only when the job succeeds.
- B. Create an operator for the email group and send an email each time an error is logged.
- C. Create an alert for errors 823, 824, and 825 that executes a SQL Server Agent job that performs a consistency check.
- D. Add a Maintenance Cleanup task to the maintenance plan.
C is correct.
Explanation: An alert can respond to an error condition by executing another SQL Server Agent job. This fits well-known conditions, such as storage errors 823, 824, and 825, that can be handled without manual intervention. The job can perform a database consistency check.
A is incorrect: A job success notification only informs an operator after the job finishes. It does not respond to storage errors.
B is incorrect: An email notification informs a person. A person must still start the consistency check, so the response is not automatic.
D is incorrect: The Maintenance Cleanup task removes old maintenance plan files, such as text reports and backup files. It does not run a consistency check.
Q036 - Question
You create a PowerShell runbook that uses Connect-AzAccount -Identity to sign in with the system-managed identity of an Automation account. The runbook then queries an Azure SQL Database. Transient issues can interrupt the runbook. Select TWO actions that you must take to help the runbook run reliably.
Domain: Configure and manage automation of tasks (15–20%) Type: Multi-select
- A. Rely on Azure Automation to resume an interrupted runbook at the last completed statement.
- B. Enable appropriate RBAC permissions for the system identity of the Automation account.
- C. Import only the Az.SQL module, because it does not depend on the Az.Accounts module.
- D. Write the runbook logic so that it supports being restarted from the beginning.
B and D are correct.
Explanation: The runbook signs in with the system identity, so that identity needs appropriate RBAC permissions. Without them, the runbook might fail. If a runbook is interrupted, Azure Automation restarts it at the beginning, so you must write the logic to support a restart.
A is incorrect: An interrupted runbook restarts at the beginning. It does not resume at the last completed statement.
C is incorrect: The Az.SQL module depends on the Az.Accounts module. Import Az.Accounts first, and then import Az.SQL.
Q037 - Question
You manage several Azure SQL databases on one logical server. You create an elastic job agent and a job database. You add the server to a target group so that a job runs T-SQL against all databases on that server. The job agent must be able to enumerate the databases on the server. Which credential must you create?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. A credential that exists only in the job database
- B. A database credential in each target database only
- C. A credential in the master database of the target server
- D. A credential in the msdb database of the target server
C is correct.
Explanation: When the target is a server or an elastic pool, you create a credential in the master database of that server or pool. The job agent uses it to enumerate the databases. Give the credential only the privileges that the job step needs.
A is incorrect: The documented requirement is a credential in the master database of the target server. A credential in the job database alone does not meet that requirement.
B is incorrect: A database credential alone is enough only when the target is a single database. A server target also needs the master database credential.
D is incorrect: Azure SQL Database does not have the msdb database or SQL Server Agent, so you cannot create the credential there.
Q038 - Question
You need to deploy Azure SQL resources to several new environments. You must ensure consistent implementation and reduce configuration risks and human errors. Which approach should you use?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. Define the resources in scripts that are stored in source control.
- B. Create the resources manually in the Azure portal for each environment.
- C. Run imperative commands interactively from the Azure Cloud Shell.
- D. Export the configuration to a document and apply it manually.
A is correct.
Explanation: Infrastructure as code means all resources are defined in scripts that are stored in source control. Defining your infrastructure ensures consistent implementation and reduces configuration risks and human errors.
B is incorrect: Creating resources manually in the Azure portal does not ensure consistent implementation and increases the risk of human errors.
C is incorrect: Running imperative commands interactively does not define the resources in scripts stored in source control for consistent, repeatable deployments.
D is incorrect: Exporting configuration to a document for manual application relies on human intervention, which increases configuration risks and errors.
Q039 - Question
You are writing a PowerShell script that uses the Az.Sql module. The script must create a new database on an existing logical server in Azure SQL Database. Which cmdlet should you use?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. New-AzSqlDatabase
- B. Get-AzSqlServer
- C. New-AzSqlInstance
- D. Get-AzSqlInstance
A is correct.
Explanation: The New-AzSqlDatabase cmdlet creates a database on a specific server. You pass the resource group name, server name, and database name as parameters.
B is incorrect: The Get-AzSqlServer cmdlet returns information about one or more logical servers. It does not create a database.
C is incorrect: The New-AzSqlInstance cmdlet creates a SQL Managed Instance. It does not create a database on a logical server.
D is incorrect: The Get-AzSqlInstance cmdlet retrieves information about a managed instance. It does not create a database.
Q040 - Question
You are choosing between Bicep files and Azure Resource Manager (ARM) JSON templates to deploy Azure SQL Database resources. Which two statements about Bicep are correct?
Domain: Configure and manage automation of tasks (15–20%) Type: Multiple select
- A. A Bicep file compiles into an ARM JSON template at deployment time.
- B. Bicep deployments are idempotent, ensuring resources end up in a consistent state.
- C. You must wait for a tool update to use new resource types introduced by a resource provider.
- D. Bicep is a general-purpose programming language used to build applications.
A and B are correct.
Explanation: A Bicep file compiles into an ARM JSON template at deployment time, providing the capabilities of ARM templates with a more concise syntax. Bicep deployments are idempotent, meaning you can deploy repeatedly and your resources end up in a consistent state.
C is incorrect: Bicep provides continuous full support for all resource types and API versions. You can use them in your Bicep file as soon as a resource provider introduces them, without waiting for a tool update.
D is incorrect: Bicep is not intended to be a general-purpose programming language. It is a specialized tool for declaring Azure infrastructure resources and their properties.
Q041 - Question
Your company plans to move a database to Azure. The database needs scheduled maintenance jobs, operators, and alerts that are managed by SQL Server Agent. Which deployment option should you choose?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. Azure SQL Managed Instance
- B. Azure SQL Database, and schedule the jobs with SQL Server Agent
- C. Azure SQL Database, and use a maintenance plan to schedule the jobs
- D. Azure SQL Database, and use SQL Server Agent operators for alert notifications
A is correct.
Explanation: SQL Server Agent is available on SQL Server and Azure SQL Managed Instance. It is not available on Azure SQL Database. Azure SQL Managed Instance is the option that supports SQL Server Agent jobs, operators, and alerts.
B is incorrect: SQL Server Agent is not available on Azure SQL Database, so you cannot schedule jobs with it there.
C is incorrect: Maintenance plan activities run as SQL Server Agent jobs. Without SQL Server Agent, a maintenance plan cannot schedule them.
D is incorrect: Operators and alerts are SQL Server Agent objects. They are not available when SQL Server Agent is not available.
Q042 - Question
You plan a Logic Apps workflow that runs when a row is inserted in an Azure SQL Database table. You want to use the built-in SQL Server connector, which runs in the same process as the Logic Apps runtime. Which workflow type should you use?
Domain: Configure and manage automation of tasks (15–20%) Type: Single choice
- A. A Standard workflow in single-tenant Azure Logic Apps
- B. A Consumption workflow in multitenant Azure Logic Apps
- C. An Azure Automation runbook that imports the Az.SQL module
- D. An elastic job agent with a target group
A is correct.
Explanation: In single-tenant Azure Logic Apps, Standard workflows can use the SQL Server connector as a managed connector or as a built-in connector. The built-in connector supports triggers, such as when a row is inserted, and actions such as Execute query and Get rows. The connector supports Azure SQL Database.
B is incorrect: In multitenant Azure Logic Apps, Consumption workflows can use this connector only as a managed connector. They do not have the built-in connector.
C is incorrect: A runbook runs PowerShell or Python code. It is not a Logic Apps workflow and does not use the built-in SQL Server connector.
D is incorrect: Elastic jobs run T-SQL scripts against a target group, either once or on a schedule. They do not provide a built-in connector trigger for row inserts.
Q043 - Question
A user database on SQL Server in an Azure virtual machine uses the SIMPLE recovery model. The business now requires a small Recovery Point Objective (RPO) and the ability to restore the database to a granular point in time. You need to meet this requirement. What should you do?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. Keep the SIMPLE recovery model and schedule transaction log backups every minute.
- B. Increase the backup frequency of the master and msdb system databases.
- C. Change the database to the FULL recovery model and schedule transaction log backups.
- D. Restore the full backup with recovery, and then apply the transaction log backups.
C is correct.
Explanation: The FULL recovery model allows all backup types, including transaction log backups. Transaction log backups let you restore to a more granular point in time to meet a small RPO.
A is incorrect: The SIMPLE recovery model doesn't allow transaction log backups, so you can't schedule them.
B is incorrect: System databases are updated less frequently, and the main concern is backing up user databases. More frequent system database backups don't give point-in-time recovery for the user database.
D is incorrect: If RESTORE runs with recovery, no additional backups can be applied. Use WITH NORECOVERY or WITH STANDBY to apply later backups.
Q044 - Question
You manage an Azure SQL Managed Instance. The business requires automatic failover to another region, and applications must not need a connection string update after failover. The business also has a tight RPO and wants to limit data loss if an unplanned failover occurs. Which two actions should you take? Select two.
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Multi-select
- A. Configure an auto-failover group.
- B. Configure active geo-replication.
- C. Set GracePeriodWithDataLossHours to a higher value.
- D. Set GracePeriodWithDataLossHours to a lower value.
A and C are correct.
Explanation: Auto-failover groups support SQL Managed Instance and provide automatic failover. Clients connect through listener names, so they don't need to update the connection string after failover. GracePeriodWithDataLossHours controls how long Azure waits before it fails over. A higher value makes Azure wait longer, which gives the secondary more time to fully synchronize and can result in less data loss.
B is incorrect: Azure SQL Managed Instance doesn't support active geo-replication. Active geo-replication also doesn't provide automatic failover, and users must update the connection string after failover.
D is incorrect: A lower value shortens the wait before failover. The secondary has less time to synchronize with the primary, and a forced unplanned failover can lose more data.
Q045 - Question
An application uses Azure SQL Database. A node-level hardware failure occurs, and the service creates a new node and attaches the data storage. Users report dropped connections and lost in-flight transactions. You need to reduce the effect of this event on the application. What should you do?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. Replace the database with a failover cluster instance so that you control the failover process.
- B. Add retry logic to the application so that it handles dropped connections and transient failures.
- C. Turn off Accelerated Database Recovery (ADR) to reduce recovery work on the new node.
- D. Set the database to the EMERGENCY state to repair it during the failover.
B is correct.
Explanation: In Azure SQL Database, all connections are dropped when a new node starts, and in-flight transactions are lost. The application must include retry logic. Cloud applications should be designed to handle transient failures.
A is incorrect: With PaaS, you can configure only the options that Azure provides. A failover cluster instance is a SQL Server feature for IaaS deployments.
C is incorrect: ADR is on by default in Azure SQL Database and cannot be turned off. It also contributes to database availability.
D is incorrect: You cannot set a database to the OFFLINE or EMERGENCY state in Azure SQL Database. Azure manages and maintains the service.
Q046 - Question
You manage SQL Server on an Azure virtual machine. Automated backups through the SQL Server resource provider are configured with transaction log backups to a storage account. A colleague also plans to add transaction log backup jobs inside the virtual machine at the instance level. You need to protect the ability to restore databases from the log chain. What should you do?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. Use one backup method for transaction log backups and don't configure the other.
- B. Keep both transaction log backup methods so that each backup has a duplicate.
- C. Keep both methods and rely on automated restores to combine the log backups.
- D. Disable the automated backups and store log backups on the ephemeral storage of the virtual machine.
A is correct.
Explanation: Each transaction log backup clears the log. A log restore requires an entire unbroken chain of log backups. Using one method keeps the chain in one coordinated place.
B is incorrect: Two uncoordinated log backup methods each clear the log. You might need to piece together backups from both locations to restore a database.
C is incorrect: Restores can't be automated. You must use the restore from URL functionality in SQL Server, and combining two log backup sets doesn't prevent a fragmented chain.
D is incorrect: Ephemeral storage is erased on shutdown or restart, so backups written there can be lost.
Q047 - Question
You plan high availability for SQL Server on Azure virtual machines. After a failover, the secondary server must have the logins, SQL Server Agent jobs, and databases already in place. You do not want to re-create instance-level objects manually. You can plan the installation of SQL Server from the start. Which feature should you use?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. Always On Failover Cluster Instance (FCI)
- B. Always On availability group (AG)
- C. Log shipping
- D. An availability group that uses only Windows authentication
A is correct.
Explanation: An FCI provides instance-level protection. The entire instance restarts on another node, so logins and SQL Server Agent jobs are already in place. An FCI is configured when SQL Server is installed. A standalone instance cannot be converted to an FCI. An FCI also requires shared storage, Active Directory Domain Services (AD DS), and Domain Name Services (DNS).
B is incorrect: An AG provides database-level protection. You must manually create SQL Server Agent jobs, instance-level logins, and linked servers on a new primary replica.
C is incorrect: Log shipping provides database-level protection. You must account for objects outside the database yourself.
D is incorrect: Windows authentication can simplify access for an AG. The AG still provides only database-level protection, and SQL Server Agent jobs and linked servers must be created manually.
Q048 - Question
Two availability groups run on the same two Azure virtual machines. Each availability group has its own listener. You configure one internal load balancer with a front-end IP address and port for each listener. You need the listeners to work for applications that connect from outside the virtual machine that hosts the primary replica. What should you configure?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. One shared probe port that you set on both listener IP address resources.
- B. A reserved IP address in Azure for each listener so that no other resource can use it.
- C. A distributed network name for each availability group listener name.
- D. A unique probe port for each listener IP address, set on the listener IP address resource in the WSFC.
D is correct.
Explanation: Creating the load balancer is not enough. Each IP address that uses the load balancer requires its own unique probe port. Two listeners require two probe ports. You set each probe port on the cluster IP address resource for the listener by using Set-ClusterParameter. Setting the probe port stops and starts the listener IP address and temporarily brings the AG offline, so configure it before you deploy to production.
A is incorrect: Each IP address that uses the load balancer requires a unique probe port, so two listeners can't share one probe port.
B is incorrect: You can't reserve the listener IP address at the Azure level. Instead, verify that no other resource claims the address to avoid network conflicts.
C is incorrect: A distributed network name is for the WSFC name only. You can't use it with the name of an availability group or an FCI.
Q049 - Question
You deploy two SQL Server virtual machines in an Azure region that supports Availability Zones. The solution must tolerate the loss of a single data center in the region. It must also tolerate a SQL Server crash inside a virtual machine. Which design should you use?
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Single choice
- A. Place both virtual machines in one availability set and rely on fault domains for all failure types.
- B. Use Azure Site Recovery alone to replicate the virtual machines within the region.
- C. Place the virtual machines in an availability set and in different Availability Zones at the same time.
- D. Deploy the virtual machines into different Availability Zones and configure an Always On availability group.
D is correct.
Explanation: Availability Zones account for data center-level failure because each zone is a unique physical location in a region. Zones do not protect against in-guest failures such as a SQL Server crash. An availability group (AG) or failover cluster instance (FCI) is also needed to meet recovery objectives. Test the latency between the zones to verify that it meets performance targets.
A is incorrect: Availability sets protect against Azure maintenance and single points of failure in a single data center. They do not protect against a data center failure or an in-guest failure.
B is incorrect: Azure Site Recovery replicates a virtual machine from one Azure region to another. It does not know that SQL Server is running in the virtual machine, so it may not meet the recovery point objective (RPO).
C is incorrect: Availability sets and Availability Zones cannot be combined. You must choose one.
Q050 - Question
A company runs SQL Server with an availability group and uses active geo-replication for another workload. Management proposes to reduce cost by skipping a formal backup strategy. Which two statements should guide your response? Select two.
Domain: Plan and configure a high availability and disaster recovery (HA/DR) environment (20–25%) Type: Multi-select
- A. Availability groups and active geo-replication replace the need for a backup and recovery strategy.
- B. Backups must be validated by performing a restore.
- C. Generating backup files is enough to confirm that recovery works.
- D. A backup and recovery strategy is required even when availability groups or active geo-replication are used.
B and D are correct.
Explanation: Without backups, you have neither high availability nor disaster recovery. Features such as availability groups and active geo-replication don't replace a backup and recovery strategy. You must also test backups by restoring them to confirm that they can be used.
A is incorrect: Availability groups and active geo-replication don't replace a proper backup and recovery strategy.
C is incorrect: Backup files that were generated but never restored are only files on a file system. Perform a restore to verify that they work.