You are on page 1of 122

Microsoft SQL Server

Administration Using MS SQL


Server 2008
David Henson
dhenson@certifiednetworks.com

www.certifiednetworks.com

Logistics

Class Days: 3
Class Hours: 9-5
Notes/Handouts
Demos
Class website

Recommended Reading
Microsoft SQL Server(TM) 2005 Administrator's
Pocket Consultant
(Pro-Administrator's Pocket Consultant)
Microsoft Press

Module 1: Overview

Course Outline
Lab Setup
Definitions
Tools
What is SQL Server
SQL Language Basics
SQL Server Network Integration

Course Outline Day 1

Module 1: Overview
Module 2: Installation
Module 3: Objects and Securables
Module 4: Security And Principals

Course Outline Day 2


Module 5: Backup
Module 6: Restore

Course Outline Day 3

Module 7: Web and Email Integration


Module 8: Automation and Job Scheduling
Module 9: Transferring Data
Module 10: Replication

Lab Setup
Windows 2003 Server
SQL Server 2008
Standard, or Enterprise

Computer Names
IP Addresses

Definitions

Transact SQL
DBA
Server
Client
Concurrency/Locks
Login
User
Role
Database

SQL SMO(Formerly
DMO)
SQL Instance
Principal
Securable

Tools

SQL Management Studio


Visual Studio .Net (2005/2008)
SQL Server Configuration Manager
Command Prompt
SQLCMD
Ping, telnet, nslookup, net use

Database Tuning Advisor


Full-FeaturedText Editor
Notepad++(Free)
UltraEdit
Textpad

Profiler

What is SQL Server?


Client Server Relational Database
Operating System
Windows Service That Manages Database
Files, Security and Concurrency

SQL Language Basics

SELECT
INSERT
UPDATE
DELETE

SQL Server Network Integration


Network oriented protocols
TCP/IP disabled on SQL Express by default

DNS
Windows Domain/Active Directory
Firewalls

Lab 1A Tools
In this instructor led lab, you will:
Preview SQL Management Studio
Preview Database Engine Tuning Advisor
Preview Profiler

Module 2: Installation

Software Requirements
Hardware Requirements
SQL Server Versions
Licensing
Capacity Planning
SQL Services
Installation

Software Requirements
Windows Server
2000
2003 or 2008

Windows XP (Developer)
Windows CE

Hardware Requirements
Install Type Dependent
Express
192 MB RAM

Standard/Enterprise
512MB RAM

450 MB Typical Install

SQL Server Versions


DataCenter
Hardware/Software solution

Enterprise
Standard
Developer
Workgroup
Express
Windows Mobile

Licensing
Per Processor
Per Server plus Device CALS
Per Server plus User CALS
SQL Server 2008 Express is free

Capacity Planning

Drive Space
CPU
Memory
I/O Subsystem

I/O Subsystem
RAID 0, 1, 5 or 10
Logical Drive Structure
Physical Drive Structure
Considerations:
Performance
Ease and Cost of Management
Disaster Planning

SQL Services
Service Names:
SQL Server (MSSQLServer)
SQL Server Agent (MSSQLServer)
SQL Server Browser
SQL Traffic director, allows Dedicated Admin Connection
(DAC)

SQL Server Integration Services


SQLIS.com

SQL Server Fulltext Search


SQL Server Analysis Services
SQL Server Reporting Services

Starting/Stopping

Service Accounts
LocalSystem
Local Account
Domain Account
Automatic Startup

Installation
Options
Server
Instance
Client Tools Only

Administrative Rights
Instances

Online Demonstration: Installing an


SQL Server instance

Module 3: Managing Objects

Object Definition
Creating Objects
Altering Objects
Dropping Objects
MetaData
Object Permissions

What is an Object?
Type Of Objects:
Table
View
Stored Procedure
Trigger
DataType
Function (UDF)
Index
Constraint

Synonyms
Allows an alias for a securable
New CREATE SYNONYM syntax

Creating Objects
CREATE Statement
Example:
CREATE TABLE Customers(
CustomerID int identity,
CustomerEmail varchar(50)
)

Altering Objects
ALTER Statement
Example:
ALTER TABLE Customers
ADD CustomerPhone varchar(40)

Dropping Objects
DROP Statement
Example:
DROP TABLE Customers

Getting Metadata
Information Schema
Sysobjects table
Sp_helptext

Setting Permissions
GRANT Statement
Example:
GRANT SELECT
ON Customers
TO Public

Lab 3A: Creating Objects

Lab 3B: Altering Objects

Module 4: Security and Principals

Surface Area Configuration


Best practice reduce the surface area exposure of
your system to minimum
Off By Default

Microsoft .NET Framework,


SQL Service Broker Network Connectivity, and
HTTP connectivity in Analysis Services
Xp_cmdshell
Ad Hoc Remote Query
Database Mail
Native XML Web Service

See Surface Area Configuration Tool

Levels of Security
Login Server Level
User Database Level
Object Permissions to Access Objects
Application Security
Network Access
Encryption

Windows Workgroup Model


Distributed Accounts
Each machine has locally maintained user
and group database

Windows Server Not Required

Windows Domain Model


Centralized Accounts
Active Directory is a single source for users
and groups

Single Sign-On
Access all resources after logging in only
once

Auditing

Active Directory
Extension of the Domain Model
Leverages DNS Name Resolution
Better Security Protocols
Better Fault Tolerance
More Extensible
Group Policy

Logins
Types:
Windows (Integrated)
SQL (Standard)

Tools
SQL Management Studio
Scripts

Users
Tools:
SQL Management Studio
Scripts

Roles
Role Is A Group of users
Purpose Ease Permission Management
Role Types:
Standard
Application Role

Tools:
SQL Management Studio
Scripts

Permissions
User Defined:
Action
Object Access
Object Execution

Tools:
SQL Management Studio
Scripts

Lab 4A: Creating Accounts

Lab 4B: Creating Users and


Groups

Lab 4C: Permissions

Module 5: Backup

Reasons for Data Loss


Accidental Update
Hardware Failure
Improper Application Design
Transactions Not Used

Other User Error


Intentional Distruction
Hackers
Viruses

SQL Server Backup


Online Backup
Users can access data during backup

Types:
Full
Differential
Log

COPY_ONLY option
Does not disturb normal backups, truncate logs, or
reset any flags

Use of Filegroups

Increasing Backup Performance


Set appropriate BLOCKSIZE parameter
-2048 good for cdrom stored backups
With default setting, restore uses buffered io
which is more flexible and slower

Stripe backup devices

Restricted Activities During Backup

Modifying Database Properties


Autogrowth
Managing Indexes
Nonlogged Operations

Backup Statement
Example:
BACKUP DATABASE Lab3A
To Disk=c:\Lab3A.bak
WITH INIT, BLOCKSIZE=2048

Using SQL Management Studio

Backup Options

Database Recovery Model


Property of a database
Options:
Full
Bulk_Logged
Simple

Affects log behavior

Backup Requirements
System Databases:
Master New Logins, change password
MSDB Modifying or creating jobs

User Databases:
Whenever data loss is unacceptable
At a rate when the cost(cash, downtime) of
restore is unacceptable

Operating A Standby Server


Server 1-Log Backup Regularly
Server 2-Log Restore with NoRecovery
Server 2 Database is read-only

Server 2-Log Restore with Recovery


Used in case of catastrophic failure of Server1

Backup Devices
Device = File
Permanent object you can reference by
name
Example:
BACKUP DATABASE Lab3A
TO DailyBackup

Tape Backup
Must be attached locally to the SQL
Server
Some syntax is unique to tape media
Must be recognized by Windows Backup
as a SCSI tape device

Special Log Backups


WITH Truncate_Only
Clears log, no backup file is created
Used to maintain log when no regular log backups occur

WITH No_Truncate
Emergency use when data file not available

WITH COPY_ONLY (new to SQL 2005)


Does not disturb normal backup flow or interrupt normal log
backup/restore process
Use on an ad-hoc basis before running potentially harmful
queries

Backup Strategies
Weekly Full Backup
Nightly Full Backup
Variations of above with Differential and
Log Backups

Best Practices

Use Automation
Test Your Backups
Use Notification
Use COPY_ONLY option as needed
Understand the Business
Keep Management Informed

Lab 5A: Backup

Module 6: Restore

Restore Safety Features


Restore will fail(or need override) if:
Backup file stored name does not match the
database name
Set of database files do not match
All necessary files are not available

Restore Database Statement


RESTORE DATABASE Lab6
FROM DISK=c:\Lab6.bak
WITH RECOVERY

Restore Process
Always backup the log first!

Full
Differential
Log
Recovery

Saving Space
Maintain the log file
Compress your backup files

Log Restore Options


Stopping at a certain time
Stopping at a named bookmark

Single Row Restore


Use in case of accidental delete:
Restore to a temporary location
Enable identity inserts
Insert necessary rows

Intimate knowledge of data structure


required

Restoring Master
Place server into single user mode
Perform Restore
Restart Server

Restoring Master with No Backup


Rebuilm.exe utility creates brand new
master, model, msdb
Sp_attach_db plugs data files back in

Best Practices

Backup the log at first sign of trouble


Periodically test a restore
Maintain enough working space
Avoid the need to restore
Backup system databases as required

Lab 6A: Restore

Module 7: Web and Email


Integration

Web Technologies
Allow connection to SQL Server through
HTTP
Used for logging, collecting data,
reporting, data transfer and admin
functions
Examples:
ASP, ASP.Net, Perl, CGI, Cold Fusion, JSP,
Java

Communication Process

Benefits of web integration


Secure worldwide access
No client deployment
Remote access for administrative
functions

Dangers of web access


Misuse of data
Data communication interception
Hackers have a doorway to your network

SQL Injection
Malicious users leverage web input
against SQL Server
Examples:
Running server level commands
Changing the where clauseOR 1=1
Running DDL Commands
Reading ODBC Errors for data discovery

Protection from SQL injection


Only use minimal priviledged account
Pre-process all input
Minimize direct SQL from web page by
using Stored Procs and UDFs

ASP Example

ASP.Net Example

Email Notification
Allows asynchronous communication with SQL Server
Numerous techniques:
Database Mail
New to SQL 2005
Easy to use smtp mail provider, easy setup

CDONTS.Newmail
Provided as a .dll file with Windows 2000
Com Object

CDO.Message
Provide with XP/Windows 2003
Com Object

SQLMail
MAPI Client
Must be setup during a full moon

Third party objects


.NET Framework mail objects

CDONTS Object

CDO Object

Database Mail

SQL Mail Setup


Not recommended
Requirements:
MAPI compliant mail server
MAPI client on SQL Server
SQL Service logged in as domain account
Domain account has mailbox available

Lab 7A: Web/Email Integration

Module 8: Automation and Job


Scheduling

Requirements
SQLServerAgent service must be running
Permissions on network or local resources

Automation Examples

Nightly backup
Nightly data transfer
Hourly generation of web pages
Detection of server problems:
Log 95% full
Backup Log
Email Notification

Automation Components
Job
Collection of steps, each step performing work

Operator
Pointer to email account in Database Mail or SQL
Mail

Alerts
Connection between a detected problem and a
job/operator

Jobs
Created with gui or with sp_add_job
May be scheduled
Comprised of Steps:
Transact SQL
Operating System Commands
ActiveX (VBScript/Javascript)
Other (Replication, SSIS, Analysis Services)

Retain history
Might have success/failure workflow
Can target multiple servers

Defining a Job Step

Operators
An alias to a native email address of SQL Mail or
Database Mail
Net Send address also supported
Operator Addresses
Email business hours email address
Pager after hours email address
Net send

Failsafe Operator

Defining an Operator

Alerts
Alert types
SQL Server Error
SQL Server Performance Condition
WMI Query

Windows eventlog MUST trigger response


Alert response is defined by admins
Execute Job
Send Notification

Defining An Alert

Proxies
Allow job steps to run with a different windows
login

Lab 8A: Automation and Job


Scheduling

Module 9: Data Transfer

Data Transfer
Movement of data between systems
One of the most common DBA functions

Data Transfer Examples


Nightly download of sales data from all
stores
Quarterly catalog update for website
Order fulfillment
Hourly transfer of order information to
fulfillment center
Hourly gathering of ship tracking information

Movement of web data into accounting


system

Data Transfer Techniques

SSIS and Import-Export Wizard


Legacy DTS Package Support
BCP.EXE command line utility
Backup/Restore
Distributed Queries
Saving results from query analyzer
Web Page download
Bulk Insert Statement
Detach/Re-attach database files
Log Shipping
Select/Insert

SSIS
Import/Export Wizard
Visual Studio Project

BCP
Command line utility
Examples:
Bcp northwind..products out
c:\nwind.csv w t, -r/n T
Bcp select * from products
queryout c:\nwind.txt c t~ -r/n
Usa -P

Backup/Restore
Simply compress, then transfer the backup
file to the destination
Clean up sysusers table after restore

Distributed queries
Openquery/Openrowset/OpenXML
SELECT INTO
INSERT/SELECT
Linked Servers

Query Analyzer
Controlling saved results
Output to text file
Reading from different providers

Web page download


Response Content type change
Saving results to a file, then providing a
link
Job scheduler, results come through email

Bulk Insert

Detach/Reattach database files


On database node:
Right click/all tasks/detach

Clean up of sysusers not needed after reattachment

Lab 9A: Data Transfer

Module 10: Replication

Definitions
Automatic transfer of data between
locations

Replication Types
Transactional
Only changes are copied across
Most efficient

Merge
Two sources of read/write data
Most dangerous

Snapshot
Data is removed, then re-created on a
schedule

Replication Models
Central publisher/Distributer
Central Subscriber/Multiple Publisher
Multiple Publisher/Subscriber

Setup Tips
Ensure box servers are logged in with a
domain account
Ensure the domain account is an admin on
both boxes
Ensure the domain account can map to c$
Ensure the domain account can run
queries against the other server

Lab 13A: Replication

You might also like