dp-300
dp-300 copied to clipboard
Revision plan for DP-300
DP-300
Intro
Minor update - Sept 2020
Found out after rescores that I passed this with a decent score, so hopefully it will help!
Note - this is a dump of my notes as they were when I sat the exam, I've just dumped them out of Notion, no update happened after the exam.
There isn't a DP-300 learning path as I write this, I took the detailed skills outline and used my knowledge, plus the MSDocs to fill in my gaps. I always do this before I start revising my weak spots, it becomes my revision plan. It may also be worth searching in MSLearn for SQL while there's no learning path as new content is added and removed - Search learning for SQL
This is a mix of free and paid content, but mostly free, it covers labs, workshops and Microsoft Learn tasks. The section "Main resources outside of Docs" are generic learning sources, they cover one or more of the skills listed below them. Detail for what I think each skill point is referencing is then added with a direct link to something in the Docs or part of the Main resources section.
I didn't watch everything I have listed here video wise, they're listed incase I felt I needed another voice on a topic. My way of studying is to build out the environments and test them. I also used to be a DBA (a long time ago), so some parts of this will be light as I just needed a refresher. Hope it helps!
Main resources outside of Docs
Reading Material / Workshops
- https://microsoft.github.io/sqlworkshops/ - Workshops written by Microsoft Engineering, awesome content :)
- https://azure.microsoft.com/en-gb/resources/sql-server-azure-virtual-machines/ - SQL Server on Azure VM's - free eBook by Pack
- https://azure.microsoft.com/mediahandler/files/resourcefiles/professional-azure-sql-database-administration/Professional_Azure_SQL_Database_Administration.pdf - Professional Azure SQL Database Administration
- https://docs.microsoft.com/en-gb/learn/paths/work-with-relational-data-in-azure/
Video Courses
- https://www.pluralsight.com/courses/microsoft-azure-implementing-relational-database-solutions
- https://app.pluralsight.com/library/courses/introduction-azure-data-migration-service/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-configuring-encryption-data-rest/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-databases-access-securing/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-configuring-encryption-data-rest/table-of-contents
- https://app.pluralsight.com/library/courses/analyzing-sql-server-query-plans/table-of-contents
- https://app.pluralsight.com/library/courses/azure-sql-database-diagnosing-performance-issues-dmvs/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://app.pluralsight.com/library/courses/managing-azure-sql-server-database-performance/table-of-contents
- https://app.pluralsight.com/library/courses/sql-server-microsoft-administering-availability-groups/table-of-contents
- https://www.udemy.com/course/ms-sql-server-70-764/learn/lecture/8579018#overview - 70-764 Course
- https://www.udemy.com/course/ms-sql-server-70-765/learn/lecture/8579348?start=0#content - 70-765 Course
- https://www.udemy.com/course/professional-azure-sql-database-administration/learn/lecture/11937264#overview - Has good reviews but seems to be reading out the Professional Azure SQL Book from above, word for word?
Plan and Implement Data Platform Resources (15-20%)
Deploy resources by using manual methods
MSLearn Resources
Provision Azure SQL DB - https://docs.microsoft.com/en-gb/learn/modules/provision-azure-sql-db/
Provision and Elastic Pool - https://docs.microsoft.com/en-gb/learn/modules/scale-sql-databases-elastic-pools/
Provision PostGres - https://docs.microsoft.com/en-gb/learn/modules/create-azure-db-for-postgresql-server/
SQL on Linux - https://docs.microsoft.com/en-gb/learn/modules/deploy-sql-server-linux/
-
deploy database offerings on selected platforms
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-single-database-get-started
- https://github.com/microsoft/sqlworkshops-azuresqlworkshop/blob/master/azuresqlworkshop/02-DeployAndConfigure.md
- https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-ver15
-
configure customized deployment templates
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-ps-sql-create
- https://docs.microsoft.com/en-gb/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-server-provision
- https://docs.microsoft.com/en-us/powershell/module/az.compute/set-azvmsourceimage?view=azps-3.8.0
- https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-using-a-configuration-file?view=sql-server-ver15
-
apply patches and updates for hybrid and IaaS deployment
Recommend an appropriate database offering based on specific requirements
-
evaluate requirements for the deployment
-
evaluate the functional benefits/impact of possible database offerings
- https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/single-database-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-pool-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview
-
evaluate the scalability of the possible database offering
-
evaluate the HA/DR of the possible database offering
- sql vm - (Avail group, failover cluster, Log Shipping, Backup & Restore)
-
evaluate the security aspects of the possible database offering
- Security sections of docs listed under funcitonality benefits/offerings
Configure resources for scale and performance
-
configure Azure SQL database/elastic pools for scale and performance
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool-manage
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-performance-guidance
- https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-pool-scale
-
configure Azure SQL managed instances for scale and performance
-
configure SQL Server in Azure VMs for scale and performance
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-storage-configuration
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-types#disk-size
-
calculate resource requirements
-
evaluate database partitioning techniques, such as database sharding
- https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning
-
https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding
- Used in sharding - https://docs.microsoft.com/en-us/azure/sql-database/elastic-jobs-overview
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-introduction
Evaluate a strategy for moving to Azure
Azure SQL Labs - Migration Lab
https://github.com/microsoft/sqlworkshops-azuresqllabs
Learn - Data Migration Assistant
https://docs.microsoft.com/learn/modules/assess-convert-sql-server-databases-using-dma/
Learn - Migrate to Managed Instance
https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-managed-instances/
Learn - Migrate to SQL Azure VMs
https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-virtual-machines/
Learn - Migrate Postgres
https://docs.microsoft.com/en-gb/learn/modules/migrate-on-premises-postgresql-databases/
Learn - Migrate MySQL
https://docs.microsoft.com/en-gb/learn/modules/migrate-on-premises-mysql-databases/
Data Migration Service
https://docs.microsoft.com/en-gb/azure/dms/
-
evaluate requirements for the migration
-
evaluate offline or online migration strategies
-
evaluate requirements for the upgrade
-
evaluate offline or online upgrade strategies
Implement a migration or upgrade strategy for moving to Azure
MS Learn
-
https://docs.microsoft.com/en-gb/learn/paths/migrate-sql-workloads-azure/
-
https://docs.microsoft.com/en-gb/learn/paths/sql-server-2017-upgrades/
-
implement an online migration strategy
-
implement an offline migration strategy
-
implement an online upgrade strategy
-
implement an offline upgrade strategy
Implement a Secure Environment (15-20%)
MSLearn
https://docs.microsoft.com/en-gb/learn/modules/secure-your-azure-sql-database/
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview
- https://app.pluralsight.com/library/courses/microsoft-ignite-session-45/transcript - Whats new in SQL Security
Configure database authentication by using platform and database tools
-
configure Azure AD authentication
-
create users from Azure AD identities
-
configure security principals
Configure database authorization by using platform and database tools
- configure database and object-level permissions using graphical tools
- apply principle of least privilege for all securables https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15
Implement security for data at rest
-
implement Transparent Data Encryption (TDE)
- https://docs.microsoft.com/en-us/azure/sql-database/transparent-data-encryption-azure-sql?tabs=azure-portal
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-ps-sql-keyvault
- https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/move-a-tde-protected-database-to-another-sql-server?view=sql-server-ver15
-
implement object-level encryption
-
implement Dynamic Data Masking
-
implement Azure Key Vault and disk encryption for Azure VMs
Implement security for data in transit
-
configure SQL DB and database-level firewall rules
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure
-
implement Always Encrypted
- https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/always-encrypted-certificate-store-configure?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/always-encrypted-azure-key-vault-configure?view=sql-server-ver15&tabs=azure-powershell
-
configure Azure Data Gateway
Implement compliance controls for sensitive data
-
apply a data classification strategy
-
configure server and database audits
-
implement data change tracking
-
perform vulnerability assessment
Monitor and Optimize Operational Resources (15-20%)
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-monitoring-tuning-index
Monitor activity and performance
-
prepare an operational performance baseline
-
determine sources for performance metrics
-
interpret performance metrics
-
assess database performance by using Azure SQL Database Intelligent Performance
-
configure and monitor activity and performance at the infrastructure, server, service, and database levels
-
https://docs.microsoft.com/en-us/azure/azure-monitor/insights/sql-assessment
Implement performance-related maintenance tasks
-
implement index maintenance tasks
-
implement statistics maintenance tasks
-
configure database auto-tuning
-
automate database maintenance tasks
- SQL Agent Jobs: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-job-automation-overview#sql-agent-jobs
- Azure Automation: https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/
- SQL Server Agent Jobs: https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job
-
manage storage capacity
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-file-space-management
- https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/performance-guidelines-best-practices#disks-guidance
- https://docs.microsoft.com/en-us/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure?view=sql-server-ver15
Identify performance-related issues
MSLearn
https://docs.microsoft.com/en-gb/learn/modules/automatically-tune-sql-server-linux/
- the github repo doesn't exist, cloned gitmemory version to https://github.com/stevensnicole/automatically-tune-sql-server-linux
https://docs.microsoft.com/en-gb/learn/modules/use-sql-server-query-tuning-assistant/
-
configure Query Store to collect performance data
-
identify sessions that cause blocking
-
assess growth/fragmentation of databases and logs
-
assess performance-related database configuration parameters
- including AutoClose, AutoShrink, AutoGrowth
Configure resources for optimal performance
-
configure storage and infrastructure resources
- https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/storage-configuration
- https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-virtual-machines/2-considerations-sql-server
- https://docs.microsoft.com/en-us/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure?view=sql-server-ver15
- optimize IOPS, throughput, and latency
- optimize tempdb performance
- optimize data and log files for performance
- configure server and service account settings for performance
- configure Resource Governor for performance
Configure a user database for optimal performance
- implement database-scoped configuration
- configure compute resources for scaling
- Smells like SQL Scale Set, ugh in prod?? or..
- https://docs.microsoft.com/en-us/azure/azure-sql/database/serverless-tier-overview
- configure Intelligent Query Processing (IQP)
Perform Automation of Tasks (10-15%)
Create scheduled tasks
- manage schedules for regular maintenance jobs
- configure multi-server automation
- configure notifications for task success/failure/non-completion
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-an-operator?view=sql-server-ver15#TsqlProcedure
Evaluate and implement an alert and notification strategy
-
create event notifications based on metrics
-
create event notifications for Azure resources
-
create alerts for server configuration changes
-
create tasks that respond to event notifications
Manage and automate tasks in Azure
-
perform automated deployment methods for resources
- https://docs.microsoft.com/en-us/azure/azure-sql/database/arm-templates-content-guide?tabs=single-database
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-elastic-pool-create
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-logical-server
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-vm-new-storage
-
automate Backups
-
automate performance tuning and patching
-
implement policies by using automated evaluation modes
- Azure Policy?
Plan and Implement a High Availability and Disaster Recovery (HADR) Environment (15-20%)
Recommend an HADR strategy for a data platform solution
- recommend HADR strategy based on RPO/RTO requirements
- evaluate HADR for hybrid deployments
- evaluate Azure-specific HADR solutions
- identify resources for HADR solutions
Test an HADR strategy by using platform, OS and database tools
test HA by using failover
https://docs.microsoft.com/en-us/azure/azure-sql/database/move-resources-across-regions
test DR by using failover or restore
Perform backup and restore a database by using database tools
https://docs.microsoft.com/learn/modules/backup-restore-azure-sql/
-
perform a database backup with options
-
perform a database restore with options
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/restore-sample-database-quickstart
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-transaction-log-backup-sql-server
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/tail-log-backups-sql-server
-
perform a database restore to a point in time
-
configure long-term backup retention
Configure DR by using platform and database tools
- configure replication
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-active-geo-replication
- https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-setup-geodr-and-failover-database-powershell
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/replication-transactional-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/replication-between-two-instances-configure-tutorial
- configure Azure Site Recovery for a database offering
Configure HA using platform, OS and database tools
-
create an Availability Group
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/creation-and-configuration-of-availability-groups-sql-server?view=sql-server-ver15
-
integrate a database into an Availability Group
-
configure quorum options for a Windows Server Failover Cluster
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/create-or-configure-an-availability-group-listener-sql-server?view=sql-server-ver15
- https://docs.microsoft.com/en-us/windows-server/failover-clustering/manage-cluster-quorum
- https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/understand-quorum
-
configure an Availability Group listener
Perform Administration by Using T-SQL (10-15%)
Examine system health
-
evaluate database health using DMVs
-
evaluate server health using DMVs
- https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/use-the-system-health-session?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-session-wait-stats-transact-sql?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-server-diagnostics-transact-sql?view=sql-server-ver15
-
perform database consistency checks by using DBCC
- https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-transact-sql?view=sql-server-ver15
Monitor database configuration by using T-SQL
- assess proper database autogrowth configuration
- report on database free space
- review database configuration options
Perform backup and restore a database by using T-SQL
- prepare databases for AlwaysOn Availability Groups
- perform transaction log backup
- perform restore of user databases
- perform database backups with options
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-files-to-a-new-location-sql-server?view=sql-server-ver15
Manage authentication by using T-SQL
- manage security principals
Manage authorization by using T-SQL
- configure permissions for users to access database objects
- configure permissions by using custom roles
Optimize Query Performance (5-10%)
Review query plans
- determine the appropriate type of execution plan
- live Query Statistics, Actual Execution Plan, Estimated Execution Plan, Showplan
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-and-save-execution-plans?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-the-estimated-execution-plan?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15
- live Query Statistics, Actual Execution Plan, Estimated Execution Plan, Showplan
- identify problem areas in execution plans
- extract query plans from the Query Store
Evaluate performance improvements
- determine the appropriate Dynamic Management Views (DMVs) to gather query performance information
- identify performance issues using DMVs
- identify and implement index changes for queries
- recommend query construct modifications based on resource usage
- assess the use of hints for query performance
Review database table and index design
- identify data quality issues with duplication of data
- identify normal form of database
- assess index design for performance
- validate data types defined for columns
- recommend table and index storage including filegroups
- evaluate table partitioning strategy
- evaluate the use of compression for tables and indexes