Você está na página 1de 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 SQL SMO(Formerly
DBA DMO)
Server SQL Instance
Client Principal
Concurrency/Locks Securable
Login
User
Role
Database
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 re-


attachment
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