Microsoft SQL Server Administration

advertisement
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 clause…OR 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
Download