Table of Contents

About the authors

Introduction

Who this book is for

How this book is organized

Acknowledgments

Errata, updates, & book support

Part I          Introduction

Chapter 1   Getting started with SQL Server tools

SQL Server setup

Installing SQL Server by using the Installation Center

Planning before an upgrade or installation

Installing or upgrading SQL Server

Tools and services installed with the SQL Server Database Engine

Machine Learning Services

Data Quality Services

Command line interface

SQL Server Configuration Manager

Performance and reliability monitoring tools

Database Engine Tuning Advisor

Extended events

Management data warehouse

SQL Server Reporting Services

Installation

Report Services Configuration Manager

SQL Server Management Studio (SSMS)

Releases and versions

Installing SQL Server Management Studio

Upgrading SQL Server Management Studio

Features of SQL Server Management Studio

Additional tools in SQL Server Management Studio

Error logs

Activity Monitor

SQL Server Agent

Azure Data Studio

User interface

Highlighted features in Azure Data Studio

Notebooks in Azure Data Studio

SQL Server Data Tools

SQL Server Integration Services

A note on discontinued and deprecated features

Chapter 2   Introducing database server components

Memory

Understanding the working set

Caching data in the buffer pool

Caching plans in the procedure cache

Lock pages in memory

Editions and memory limits

Central Processing Unit

Simultaneous multithreading

Non-Uniform Memory Access

Disable power saving everywhere

Storing your data

Types of storage

Configuring the storage layer

Connecting to SQL Server over the network

Protocols and ports

Added complexity with Virtual Local Area Networks

High availability concepts

Why redundancy matters

Disaster recovery

Clustering

The versatility of log shipping

Always On availability groups

Read-scale availability groups

Distributed availability groups

Basic availability groups

Securing SQL Server

Integrated authentication and Active Directory

Azure Active Directory

Understanding virtualization and containers

Going virtual

Resource provisioning for virtual consumers

When processors are no longer processors

The network is virtual, too

Chapter 3   Designing and implementing an on-premises database infrastructure

Introduction to SQL Server database architecture

Data files and filegroups

Grouping data pages with extents

Contents and types of data pages

Verifying data pages by using a checksum

Recording changes in the transaction log

Flushing data to the storage subsystem with checkpoints

Inside the transaction log file

The Minimum Recovery LSN

Types of database checkpoints

Restarting with recovery

MinLSN and the active log

A faster recovery with Accelerated Database Recovery

Table partitioning

Compressing data

Table and index compression

Backup compression

Managing the temporary database

Storage options for TempDB

Recommended number of files

Configuration settings

Managing system usage with Resource Governor

Configuring the operating system page file

Taking advantage of logical processors by using parallelism

SQL Server memory settings

Allocating CPU cores with an affinity mask

File system configuration

Container orchestration with Kubernetes

Kubernetes support for SQL Server

Deploying SQL Server in containers

Getting started with SQL Server on Kubernetes

Deploying SQL Server on Kubernetes

Reviewing cluster health

Part II        Deployment

Chapter 4   Installing and configuring SQL Server instances and features

What to do before installing SQL Server

Deciding on volume usage

Important SQL Server volume settings

SQL Server editions

Installing a new instance

Planning for multiple SQL Server instances

Creating an Azure VM running SQL Server

Installing SQL Server on Windows

Installing common features

Logging SQL Server Setup

Automating SQL Server Setup by using configuration files

Post-installation server configuration

Post-installation checklist

Post-installation configuration of other features

SSISDB initial configuration and setup

SQL Server Reporting Services initial configuration and setup

SQL Server Analysis Services initial configuration and setup

Chapter 5   Installing and configuring SQL Server on Linux

What is Linux?

Differences between Windows and Linux

Linux distributions supported by SQL Server

Considerations for installing SQL Server on Linux

Configuring OS settings

Installing SQL Server on Linux

Installation requirements

Downloading and installing packages

Configuring SQL Server for Linux

Using mssql-conf to set up and configure SQL Server

Caveats of SQL Server on Linux

Missing SQL Server features on Linux

Chapter 6   Provisioning and configuring SQL Server databases

Adding databases to a SQL Server instance

Creating a database

Moving existing databases

Upgrading database compatibility levels

Other Considerations for migrating databases

Database properties and options

Moving and removing databases

Moving user and system databases

Database actions: offline versus detach versus drop

Single-user mode

Chapter 7   Understanding table features

Reviewing table design

General purpose data types

Specialized data types

Data type precedence

Constraints

Sequence objects

User-defined data types and user-defined types

Sparse Columns

Computed columns

Special table types

System-versioned temporal tables

Memory-optimized tables

Graph tables

Storing BLOBs

Understanding FILESTREAM

FileTable

Table partitioning

Horizontally partitioned tables and indexes

Vertical partitioning

Capturing modifications to data

Using change tracking

Using change data capture

Querying change tracking and change data capture

Comparing change tracking, change data capture, and temporal tables

Part III       SQL Server management

Chapter 8   Maintaining and monitoring SQL Server

Detecting, preventing, and responding to database corruption

Setting the database’s page verify option

Using DBCC CHECKDB

Repairing database data file corruption

Recovering from database transaction log file corruption

Database corruption in databases in Azure SQL Database

Maintaining indexes and statistics

Changing the Fill Factor property when beneficial

Monitoring index fragmentation

Maintaining Indexes

Managing database file sizes

Understanding and finding autogrowth events

Shrinking database files

Monitoring activity by using DMOs

Observing sessions and requests

Understanding wait types and wait statistics

Monitoring with the SQL Assessment API

Utilizing extended events

Viewing extended events data

Using extended events to capture deadlocks

Using extended events to detect autogrowth events

Using extended events to detect page splits

Securing extended events

Capturing performance metrics with DMOs and Data Collectors

Querying performance metrics by using DMVs

Capturing performance metrics by using Performance Monitor

Monitoring key performance metrics

Monitoring key performance metrics in Linux

Monitoring key performance metrics in Azure Data Portal

Protecting important workloads by using Resource Governor

Configuring the Resource Governor classifier function

Configuring Resource Governor pools and groups

Monitoring Resource Pools and Workload Groups

Understanding the new servicing model

Chapter 9   Automating SQL Server administration

Components of SQL Server automated administration

Database Mail

SQL Server Agent

Maintaining SQL Server

Basic “care and feeding” of SQL Server

Using SQL Server Maintenance Plans

Covering databases with the Maintenance Plan

Maintenance plan tasks

Maintenance Plan report options

Building Maintenance Plans using the designer in SSMS

Backing up availability groups using a secondary replica

Strategies for administering multiple SQL Servers

Master and Target servers for SQL Agent jobs

SQL Server Agent event forwarding

Policy-Based Management

Using PowerShell to automate SQL Server administration

PowerShell basics

Installing the PowerShell SQLServer module

Using PowerShell with SQL Server

Using PowerShell with availability groups

Chapter 10 Developing, deploying, and managing data recovery

Preparing for data recovery

A disaster recovery scenario

Defining acceptable data loss: RPO

Defining acceptable downtime: RTO

Establishing and using a run book

Understanding different types of backups

An overview of SQL Server recovery models

Backup types

The backup chain

File and filegroup backups

Additional backup options and considerations

Availability and security of backup media

Understanding backup devices

Backup to disk

Backup to URL

Backup and media sets

Creating and verifying backups

Creating backups

Verifying backups

Restoring a database

Restoring a database using a full backup

Restoring a database with differential and log backups

Restoring a database to a point in time

Restoring a database piecemeal

Defining a recovery strategy

A sample recovery strategy for our DR scenario

Recovery strategies for hybrid and cloud environments

Chapter 11 Implementing high availability and disaster recovery

Overview of high availability and disaster recovery technologies in SQL Server

Comparing HA and DR technologies

Understanding log shipping

Understanding types of replication

Understanding the capabilities of failover clustering

Understanding the capabilities of availability groups

Configuring failover cluster instances

Understanding FCI quorum

Configuring a SQL Server FCI

Patching A Failover Cluster

Designing availability groups solutions

Comparing different cluster types

Creating WSFC for use with availability groups

Understanding the database mirroring endpoint

Improvements to availability groups recently

Choosing the correct secondary replica availability mode

Understanding the impact of secondary replicas on performance

Understanding failovers in availability groups

Seeding options when adding replicas

Additional actions after creating an availability group

Reading secondary database copies

Implementing a hybrid availability group topology

Configuring availability groups in SQL Server on Linux

Understanding the differences between Windows and Linux clustering

Setting up an availability group in SQL Server on Linux

Administering availability groups

Analyzing DMVs for availability groups

Analyzing wait types for availability groups

Analyzing extended events for availability groups

Alerting for availability groups

Part IV       Security

Chapter 12 Administering security and permissions

Authentication modes

Windows authentication

SQL Server Authentication

Azure Active Directory universal authentication

Azure Active Directory password authentication

Azure Active Directory integrated authentication

Advanced types of server principals

Authentication to SQL Server on Linux

Contained database authentication

Security principals

Understanding the basics of privileges

Configuring login server principals

Configuring database principals

Permissions

Understanding permissions for Data Definition Language and Data Manipulation Language

Understanding overlapping permissions

Understanding authorization

Common security administration tasks

Solving orphaned SIDs

Preventing orphaned SIDs

Moving SQL Server logins and permissions

Saving the day with the Dedicated Administrator Connection

Chapter 13 Protecting data through encryption, privacy and auditing

Privacy in the modern era

General Data Protection Regulation (GDPR)

Introducing security principles and protocols

Securing your environment with defense in depth

The difference between hashing and encryption

A primer on protocols and transmitting data

Symmetric and asymmetric encryption

Digital certificates

Protecting the data platform

Securing the network with TLS

Data protection from the OS

The encryption hierarchy in detail

Using EKM modules with SQL Server

Master keys in the encryption hierarchy

Encrypting data by using TDE

Protecting sensitive columns with Always Encrypted

Row-level security

Dynamic data masking

Protecting Azure SQL Database

Auditing with SQL Server and Azure SQL Database

SQL Server Audit

Auditing with Azure SQL Database

Securing Azure infrastructure as a service

Network Security Group

User-defined routes and IP forwarding

Additional security features in Azure networking

Part V         Performance

Chapter 14 Performance tuning SQL Server

Understanding isolation levels and concurrency

Understanding how concurrent sessions become blocked

Changing the isolation level

Understanding and handling common concurrency scenarios

Understanding the enterprise solution to concurrency: row version-based concurrency

Understanding on-disk versus memory-optimized concurrency

Understanding durability settings for performance

Delayed durability database options

Understanding how SQL Server executes your query

Understanding the overall query execution process

Retrieving execution plans in SQL Server Management Studio

Understanding execution plans

Understanding parameterization and “parameter sniffing”

Understanding the Procedure Cache

Understanding parallelism

Understanding advanced engine features for tuning queries

Plan Guides and Query Store

Automatic Plan Correction

Intelligent Query Processing

Chapter 15 Understanding and designing indexes

Designing clustered indexes

Choosing a proper rowstore clustered index key

The case against intentionally designing heaps

Understanding the OPTIMIZE_FOR_SEQUENTIAL_KEY feature

Designing rowstore nonclustered indexes

Understanding nonclustered index design

Creating filtered nonclustered indexes

Understanding the “missing” indexes feature

Understanding and proving index usage

Understanding columnstore indexes

Designing columnstore indexes

Understanding batch mode

Understanding the deltastore of columnstore indexes

Demonstrating the power of columnstore indexes

Understanding indexing in memory-optimized tables

Understanding hash indexes for memory-optimized tables

Understanding nonclustered indexes for memory-optimized tables

Understanding index statistics

Automatically creating and updating statistics

Manually creating statistics for on-disk tables

Understanding statistics on memory-optimized tables

Understanding statistics on external tables

Understanding other types of indexes

Understanding full-text indexes

Understanding spatial indexes

Understanding XML indexes

Part VI       Cloud

Chapter 16 Designing and implementing hybrid and Azure database infrastructure

Cloud computing and Microsoft Azure

Database-as-a-service

Managing Azure: The Azure portal and PowerShell Core

Azure governance

Cloud-first

Resource scalability

Networking in Azure

Cloud models and SQL Server

Infrastructure-as-a-service

Platform-as-a-service

Hybrid cloud with Azure

Cloud security

Other data services in Azure

Chapter 17 Provisioning Azure SQL Database

Provisioning a logical SQL server

Creating a server using the Azure portal

Creating a server by using PowerShell Core

Establishing a connection to your server

Deleting a server

Provisioning a database in Azure SQL Database

Creating a database using the Azure portal

Creating a database by using PowerShell Core

Creating a database by using Azure CLI

Creating a database by using T-SQL

Scaling up or down

Provisioning an elastic pool

Managing database space

Security in Azure SQL Database

Security features shared with SQL Server 2019

Server and database-level firewall

Integration with virtual networks

Access control using Azure AD

Role-Based Access Control

Auditing

Advanced Data Security

Preparing Azure SQL Database for disaster recovery

Understanding default disaster recovery features

Manually backing up a database

Enabling zone redundant configuration

Configuring geo-replication

Setting up failover groups

Using Azure Backup for long-term backup retention

Chapter 18 Provisioning Azure SQL Database managed instance

What is a Managed Instance?

Differences between SQL Server on-premises and in a Managed Instance

Creating a managed instance

Selecting a pricing tier and service objective

Provisioning a managed instance from the portal

Provisioning a managed instance using PowerShell

Establishing a connection

Creating the endpoints via the portal

Creating the VPN Gateway via PowerShell

Connect from an on-premises computer

Connect from a Virtual Machine (VM)

Migrating data to Managed Instance

Data Migration Service

Backup and restore

Deleting a Managed Instance

Network requirements for Managed Instances

Subnet

Network Security Group

User Defined Route table

Endpoints

IP addresses

Managed Instance administration features

High Availability

Replication

Scaling up or down

Automated backups

Azure SQL Analytics

Security of Managed Instance

Azure Active Directory (Azure AD)

Data protection features

Isolation

Auditing

Data encryption

Row-level security

Chapter 19 Migrating to SQL Server solutions in Azure

Migration Services Options

Database Experimentation Assistant (DEA)

Azure Data Migration Assistant (DMA)

Specifics for Linux migrations

Features of Data Migration Assistant

Database Migration Service

SQL Server Migration Assistant

Common causes for migration failures

Open Source PowerShell migration option

Integration Runtime options for Migration Services

Best Practices for security and resiliency during migration

Part VII      Big Data and Machine Learning

Chapter 20 Leveraging big data and machine learning

A big data primer

Introducing MapReduce with Hadoop and HDFS

Introducing distributed memory with Spark

Introducing Big Data Clusters

Big Data Clusters technical overview

Deploying Big Data Clusters

Configuring BDC storage

Big Data Clusters security

Benefits of PolyBase

Unified data platform features

Operationalizing analytics with Machine Learning Server

Architecture

Machine Learning Server

How to operationalize your models

Launchpad service

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset