Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
701 views

SQL Server 2008 R2 Upgrade Technical Reference Guide

This document covers the essential phases and steps to upgrade existing instances of SQL Server 2000 and 2005 to SQL Server 2008 R2 by using best practices. It is not intended to supersede any information in SQL Server Books Online or in the Microsoft Knowledge Base articles. If there are any discrepancies between this document and a linked article, the linked article is assumed to be more accurate.

Uploaded by

shahviju
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
701 views

SQL Server 2008 R2 Upgrade Technical Reference Guide

This document covers the essential phases and steps to upgrade existing instances of SQL Server 2000 and 2005 to SQL Server 2008 R2 by using best practices. It is not intended to supersede any information in SQL Server Books Online or in the Microsoft Knowledge Base articles. If there are any discrepancies between this document and a linked article, the linked article is assumed to be more accurate.

Uploaded by

shahviju
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 490

SQL Server 2008 R2

Upgrade Technical Reference Guide


d  
   
January 2011
   SQL Server 2008 R2

x  

       3 Ron Talmage, Aaron Johal, Allan Hirt, Herbert Albert,
Antonio Soto, Greg Low, DejanSarka, Larry Barnes, Pablo Ahumada

Ô   3 Sabrena McBride

       3 Kathy Blomstrom

     3 Darmadi Komo

Microsoft gratefully acknowledges the contributions from numerous additional writers, reviewers and
editors involved in this document, and also those who developed the SQL Server 2005 and 2008
Upgrade Technical Reference Guides.

 
SQL Server 2008 R2 Upgrade Technical Reference Guide 2

 
A successful upgrade to SQL Server 2008 R2 should be smooth and trouble-free. To achieve that smooth
transition, you must plan sufficiently for the upgrade and match the complexity of your database
application. Otherwise, you risk costly and stressful errors and upgrade problems.

Like all IT projects, planning and then testingyour plan gives you confidence that you will succeed. But if
you ignore the planning process, you increase the chances of running into difficulties that can derail and
delay your upgrade.

This document covers the essential phases and steps to upgrade existing instances of SQL Server 2000
and 2005 to SQL Server 2008 R2 by using best practices. These include preparation tasks, upgrade tasks,
and post-upgrade tasks. It is intended to be a supplement to SQL Server 2008 R2 Books Online. It is not
intended to supersede any information in SQL Server Books Online or in the Microsoft Knowledge Base
articles. The reader will notice many links to SQL Server Books Online topics and Knowledge Base
articles. In all such cases, the information in this document is included to provide the context you need
to decide whether to spend the time to read the linked article. If there are any discrepancies between
this document and a linked article, the linked article is assumed to be more accurate.

© 2010 Microsoft Corporation. All Rights Reserved. This document is for informational purposes only. MICROSOFT MAKES NO
WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 3

î

The information contained in this document represents the current view of Microsoft Corporation on
the issues discussed as of the date of publication. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft
cannot guarantee the accuracy of any information presented after the date of publication.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights
under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval
system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these
patents, trademarks, copyrights, or other intellectual property.

© 2010 Microsoft Corporation. All rights reserved.

Microsoft, Active Directory, Excel, Intellisense, Internet Explorer, Outlook, SharePoint, SQL Server, Visual
Basic, Visual Studio, Windows, Windows NT, Windows PowerShell, Windows Server, and Windows Vista
are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or
other countries.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 4

Ô   î


1 Upgrade Planning and Deployment ................................................................................................ 16
1.1 Introduction ........................................................................................................................... 16
1.2 Feature Changes in SQL Server 2008 R2 .................................................................................. 16
1.3 Upgrading SQL Server 2008 to SQL Server 2008 R2 ................................................................. 16
1.4 Preparing to Upgrade ............................................................................................................. 17
1.4.1 Upgrade Strategies ......................................................................................................... 17
1.4.2 Backward Compatibility .................................................................................................. 31
1.4.3 Upgrade Tools ................................................................................................................ 32
1.4.4 SQL Server 2008 R2 Setup ............................................................................................... 36
1.4.5 Allowable Upgrade Paths ................................................................................................ 43
1.4.6 Application and Connection Requirements ..................................................................... 48
1.4.7 Upgrading Applications that Use the .NET Framework .................................................... 49
1.4.8 Plan for Backups ............................................................................................................. 50
1.4.9 Upgrading Both Windows and SQL Server ....................................................................... 51
1.4.10 Upgrading Multiple Instances ......................................................................................... 53
1.4.11 Upgrading Very Large Databases..................................................................................... 53
1.4.12 Upgrading High Availability Servers................................................................................. 53
1.4.13 Minimizing Upgrade Downtime ...................................................................................... 54
1.5 Developing an Upgrade Plan................................................................................................... 55
1.5.1 Treat the Upgrade as an IT Project .................................................................................. 55
1.5.2 Minimize Variables Involved in the Upgrade ................................................................... 58
1.5.3 Create Upgrade Checklists .............................................................................................. 60
1.5.4 Test the Upgrade Plan..................................................................................................... 61
1.5.5 Develop Acceptance Criteria and Rollback Steps ............................................................. 64
1.6 Post-Upgrade Tasks ................................................................................................................ 64
1.6.1 Integrate the New Instance into Its New Environment .................................................... 64
1.6.2 Determine Application Acceptance ................................................................................. 65
1.6.3 Troubleshooting an Upgrade........................................................................................... 65
1.6.4 Decommission and Uninstall After a Side-by-Side or New Hardware Upgrade ................. 65
1.7 Considerations for Upgrading without a DBA .......................................................................... 66
1.8 Conclusion.............................................................................................................................. 69

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 5

1.9 Additional References ............................................................................................................ 69


2 Management and Development Tools............................................................................................ 70
2.1 Introduction ........................................................................................................................... 70
2.2 Feature Changes in SQL Server 2008 R2 Management and Development Tools ...................... 70
2.2.1 SQL Server Management Studio Changes........................................................................ 71
2.2.2 Business Intelligence Development Studio Changes ........................................................ 74
2.2.3 SQL Server Configuration Manager ................................................................................. 76
2.2.4 Reporting Services Tools ................................................................................................. 77
2.2.5 DTS Tools ........................................................................................................................ 77
2.2.6 SQL Server Agent ............................................................................................................ 78
2.2.7 Maintenance Plans ......................................................................................................... 80
2.3 Preparing to Upgrade ............................................................................................................. 81
2.3.1 Deprecated Features ...................................................................................................... 81
2.3.2 Discontinued Functionality ............................................................................................. 83
2.3.3 Breaking Changes ........................................................................................................... 85
2.3.4 Behavior Changes ........................................................................................................... 85
2.3.5 Upgrade Tools ................................................................................................................ 85
2.3.6 64-bit Considerations...................................................................................................... 86
2.3.7 Known Issues and Workarounds ..................................................................................... 86
2.4 Upgrading from SQL Server 2000 ............................................................................................ 87
2.4.1 Tools Replacement ......................................................................................................... 87
2.4.2 Tools Connectivity .......................................................................................................... 88
2.4.3 SQL Server Agent Jobs .................................................................................................... 88
2.5 Upgrading from SQL Server 2005 ............................................................................................ 89
2.5.1 Tools Replacement ......................................................................................................... 89
2.5.2 Tools Connectivity .......................................................................................................... 89
2.5.3 Project Files .................................................................................................................... 90
2.6 Post-Upgrade Tasks ................................................................................................................ 91
2.7 Conclusion.............................................................................................................................. 91
2.8 Additional References ............................................................................................................ 91
3 Relational Databases...................................................................................................................... 92
3.1 Introduction ........................................................................................................................... 92

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 6

3.2 Relational Database Configurations ........................................................................................ 92


3.3 Upgrade Considerations ......................................................................................................... 92
3.3.1 Full-Text Search .............................................................................................................. 93
3.3.2 What Can Be Upgraded? ................................................................................................. 94
3.3.3 What Cannot Be Upgraded?............................................................................................ 95
3.4 In-Place Upgrade vs. Side-by-Side Upgrade ............................................................................. 96
3.4.1 In-Place Upgrade ............................................................................................................ 97
3.4.2 Side-by-Side Upgrade...................................................................................................... 97
3.5 Evaluating Potential Upgrade Issues ..................................................................................... 102
3.5.1 Deprecated Features .................................................................................................... 102
3.5.2 Discontinued Functionality ........................................................................................... 103
3.5.3 Breaking Changes ......................................................................................................... 104
3.5.4 Behavior Changes ......................................................................................................... 106
3.6 Preparing for an Upgrade ..................................................................................................... 107
3.6.1 Preparing for an In-Place Upgrade ................................................................................ 107
3.6.2 Preparing for a Side-by-Side Upgrade............................................................................ 112
3.7 Performing an Upgrade ........................................................................................................ 113
3.7.1 Performing an In-Place Upgrade ................................................................................... 113
3.7.2 Performing a Side-By-Side Upgrade .............................................................................. 113
3.8 Post-Upgrade Tasks .............................................................................................................. 115
3.8.1 In-Place Upgrade .......................................................................................................... 115
3.8.2 Side-by-Side Upgrade.................................................................................................... 115
3.8.3 General Post-Upgrade Tasks ......................................................................................... 115
3.8.4 Use Plan Hints............................................................................................................... 116
3.8.5 Important Information about Query Plans .................................................................... 117
3.9 Connecting Client Applications to SQL Server 2008 R2 .......................................................... 117
3.10 Conclusion............................................................................................................................ 118
3.11 Additional References .......................................................................................................... 118
4 High Availability ........................................................................................................................... 119
4.1 Introduction ......................................................................................................................... 119
4.2 Preparing to Upgrade ........................................................................................................... 119
4.2.1 In-Place Upgrade .......................................................................................................... 119

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 7

4.2.2 Side-by-Side Upgrade on the Same Server or Cluster .................................................... 120


4.2.3 Side-by-Side Upgrade to a Separate Server or Cluster ................................................... 121
4.2.4 Decommissioning and Disabling the Original Instance or Database in a Side-by-Side
Upgrade 121
4.2.5 Methods for Side-by-Side Upgrades to a Separate Server or Cluster ............................. 122
4.2.6 Which SQL Server Upgrade Method Should You Use? ................................................... 123
4.3 Minimizing Downtime during the Upgrade ........................................................................... 124
4.3.1 Prepare for SQL Server 2008 R2 .................................................................................... 124
4.3.2 Devise an Upgrade Plan ................................................................................................ 125
4.3.3 Test the Upgrade Plan................................................................................................... 125
4.3.4 Prepare Servers and Instances for SQL Server 2008 R2 .................................................. 126
4.4 Upgrading Failover Clusters .................................................................................................. 130
4.4.1 Feature Changes in SQL Server 2008 R2 Failover Clustering .......................................... 130
4.4.2 Instance IDs and Failover Clustering .............................................................................. 131
4.4.3 Windows Server 2008, Windows Server 2008 R2, and SQL Server 2008 R2 Failover
Clustering..................................................................................................................................... 131
4.4.4 Considerations for Upgrading a SQL Server 2000 Failover Cluster to SQL Server 2008 R2
134
4.4.5 Considerations for Upgrading a SQL Server 2005 Failover Cluster to SQL Server 2008 R2
135
4.4.6 Considerations for Upgrading a SQL Server 2008 Failover Cluster to SQL Server 2008 R2
135
4.4.7 Upgrading an Older Failover Cluster to SQL Server 2008 R2 .......................................... 135
4.4.8 Additional References for Clustering Upgrades ............................................................. 152
4.5 Upgrading Log Shipped Databases ........................................................................................ 152
4.5.1 Feature Changes in SQL Server 2008 R2 Log Shipping.................................................... 152
4.5.2 Log Shipping Upgrade Scenarios ................................................................................... 152
4.5.3 Upgrading from SQL Server 2000 Enterprise to SQL Server 2008 R2 Log Shipping.......... 154
4.5.4 Upgrading from SQL Server 2005 Log Shipping to SQL Server 2008 R2 Log Shipping ...... 158
4.5.5 Upgrade Log Shipping with a Role Change .................................................................... 158
4.5.6 Upgrade Log Shipping without a Role Change ............................................................... 159
4.5.7 Upgrading with Multiple Secondaries ........................................................................... 161
4.5.8 Additional References for Upgrading Log Shipping ........................................................ 161

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 8

4.6 Upgrading Mirrored Databases............................................................................................. 161


4.6.1 Feature Changes in SQL Server 2008 R2 Database Mirroring ......................................... 161
4.6.2 In-Place Upgrade ʹ High-Performance Mode ................................................................ 162
4.6.3 In-Place Upgrade ʹ High-Safety Mode ........................................................................... 162
4.6.4 Side-by-Side Upgrade to a New Server .......................................................................... 163
4.6.5 Additional References for Upgrading with Mirrored Databases ..................................... 163
4.7 Upgrading Replicated Databases .......................................................................................... 164
4.7.1 Feature Changes in SQL Server 2008 R2 Replication ...................................................... 164
4.7.2 Snapshot Replication .................................................................................................... 166
4.7.3 Merge Replication ........................................................................................................ 168
4.7.4 Transactional Replication .............................................................................................. 173
4.7.5 Additional Information for Upgrading Replicated Databases ......................................... 178
4.8 Conclusion............................................................................................................................ 178
4.9 Additional References .......................................................................................................... 179
5 Database Security ........................................................................................................................ 180
5.1 Introduction ......................................................................................................................... 180
5.2 New Security Features .......................................................................................................... 180
5.2.1 New Configuration Tools............................................................................................... 181
5.2.2 Configuring Services and Connections ........................................................................... 181
5.2.3 Service Account Security ............................................................................................... 183
5.2.4 Configuring Features..................................................................................................... 184
5.2.5 Metadata Visibility........................................................................................................ 185
5.3 Preparing to Upgrade ........................................................................................................... 186
5.3.1 Deprecated Features .................................................................................................... 186
5.3.2 Discontinued Features .................................................................................................. 187
5.3.3 Breaking Changes ......................................................................................................... 189
5.3.4 Behavior Changes ......................................................................................................... 190
5.3.5 Pre-Upgrade Security Tasks........................................................................................... 193
5.4 Upgrading to SQL Server 2008 R2 ......................................................................................... 194
5.4.1 In-Place Upgrade .......................................................................................................... 194
5.4.2 Side-by-Side Upgrade.................................................................................................... 195
5.5 Post-Upgrade Security Tasks................................................................................................. 195

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 9

5.5.1 Post-Upgrade Security Testing ...................................................................................... 196


5.6 Conclusion............................................................................................................................ 196
5.7 Additional References .......................................................................................................... 196
6 Full-Text Search ........................................................................................................................... 197
6.1 Introduction ......................................................................................................................... 197
6.2 Preparing to Upgrade ........................................................................................................... 197
6.2.1 Deprecated Features .................................................................................................... 197
6.2.2 Discontinued Functionality ........................................................................................... 198
6.2.3 Breaking Changes ......................................................................................................... 199
6.2.4 Behavior Changes ......................................................................................................... 199
6.2.5 Running Upgrade Advisor ............................................................................................. 200
6.2.6 Preparing for a Possible Rollback .................................................................................. 201
6.2.7 Additional Preparation Steps When Upgrading from SQL Server 2000 ........................... 202
6.3 Upgrading a Full-Text-Enabled Database .............................................................................. 202
6.3.1 In-Place Upgrade .......................................................................................................... 202
6.3.2 Side-by-Side Upgrade.................................................................................................... 203
6.4 Post-Upgrade Tasks .............................................................................................................. 207
6.4.1 Using Customized Noise Word Files from a Previous SQL Server Version....................... 207
6.5 Conclusion............................................................................................................................ 207
6.6 Additional Resources ............................................................................................................ 208
7 Service Broker .............................................................................................................................. 209
7.1 Introduction ......................................................................................................................... 209
7.2 Feature Changes................................................................................................................... 209
7.3 Preparing to Upgrade ........................................................................................................... 210
7.3.1 Disk Space Requirements .............................................................................................. 210
7.3.2 Upgrade Tools .............................................................................................................. 210
7.3.3 64-bit Considerations.................................................................................................... 211
7.4 Upgrading from SQL Server 2005 .......................................................................................... 211
7.4.1 In-Place Upgrade .......................................................................................................... 211
7.4.2 Side-by-Side Upgrade.................................................................................................... 212
7.5 Post-Upgrade Tasks .............................................................................................................. 213
7.5.1 Restoring Settings ......................................................................................................... 213

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 10

7.5.2 Routing Changes ........................................................................................................... 213


7.5.3 Implementing Conversation Priorities ........................................................................... 213
7.6 Conclusion............................................................................................................................ 214
7.7 Additional References .......................................................................................................... 214
8 Transact-SQL Queries ................................................................................................................... 215
8.1 Introduction ......................................................................................................................... 215
8.2 Preparing to Upgrade ........................................................................................................... 215
8.2.1 Backup and Rollback Plan ............................................................................................. 215
8.2.2 Deprecated Features .................................................................................................... 215
8.2.3 Discontinued Functionality ........................................................................................... 218
8.2.4 Breaking Changes ......................................................................................................... 221
8.2.5 Behavior Changes ......................................................................................................... 224
8.2.6 Upgrade Tools .............................................................................................................. 236
8.2.7 64-Bit Considerations.................................................................................................... 236
8.2.8 Known Issues and Workarounds ................................................................................... 236
8.3 Upgrading from SQL Server 2000 or SQL Server 2005 ........................................................... 241
8.3.1 In-Place Upgrade .......................................................................................................... 241
8.3.2 Side-by-Side Upgrade.................................................................................................... 241
8.4 Post-Upgrade Tasks .............................................................................................................. 241
8.5 Conclusion............................................................................................................................ 242
8.6 Additional References .......................................................................................................... 242
9 Notification Services .................................................................................................................... 243
9.1 Introduction ......................................................................................................................... 243
9.2 Preparing to Upgrade ........................................................................................................... 243
9.2.1 Stop the Notification Services Instances ........................................................................ 243
9.2.2 Back Up the Instance Data ............................................................................................ 244
9.2.3 Install the Prerequisites ................................................................................................ 244
9.2.4 Install the Notification Services Components ................................................................ 245
9.3 Upgrading from SQL Server 2000 .......................................................................................... 245
9.4 Upgrading from SQL Server 2005 .......................................................................................... 246
9.4.1 In-Place Upgrade .......................................................................................................... 246
9.4.2 Side-by-Side Upgrade.................................................................................................... 247

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 11

9.5 Post-Upgrade Tasks .............................................................................................................. 248


9.6 Conclusion............................................................................................................................ 249
9.7 Additional References .......................................................................................................... 249
10 SQL Server Express ....................................................................................................................... 250
10.1 Introduction ......................................................................................................................... 250
10.2 Feature Changes................................................................................................................... 250
10.3 Preparing to Upgrade ........................................................................................................... 251
10.3.1 SQL Server Express and MSDE Limitations ..................................................................... 253
10.3.2 SQL Server Express and MSDE Feature Support ............................................................. 254
10.3.3 Deprecated Features .................................................................................................... 254
10.3.4 Discontinued Functionality ........................................................................................... 254
10.3.5 Breaking Changes ......................................................................................................... 254
10.3.6 Behavior Changes ......................................................................................................... 255
10.3.7 Upgrade Tools .............................................................................................................. 255
10.3.8 64-Bit Considerations.................................................................................................... 255
10.3.9 System Requirements for SQL Server 2008 R2 Express .................................................. 256
10.3.10 Known Issues and Workarounds ............................................................................... 259
10.4 Upgrading from SQL Server 2000 (MSDE) ............................................................................. 259
10.4.1 Number of Instances of MSDE ...................................................................................... 259
10.4.2 MSDE Installation Method ............................................................................................ 260
10.4.3 MSDE Language ............................................................................................................ 260
10.4.4 In-Place Upgrade .......................................................................................................... 260
10.4.5 Side-by-Side Upgrade.................................................................................................... 261
10.4.6 Performing Scripted Upgrades ...................................................................................... 264
10.5 Upgrading from SQL Server 2005 Express ............................................................................. 264
10.5.1 In-Place Upgrade .......................................................................................................... 264
10.5.2 Side-by-Side Upgrade.................................................................................................... 265
10.6 Post-Upgrade Tasks .............................................................................................................. 266
10.7 Upgrading to Other Editions of SQL Server 2008 R2 .............................................................. 266
10.7.1 Upgrading to SQL Server 2008 R2 Workgroup ............................................................... 267
10.7.2 Upgrading to SQL Server 2008 R2 Standard Edition ....................................................... 268
10.8 Conclusion............................................................................................................................ 268

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 12

10.9 Additional References .......................................................................................................... 269


11 Analysis Services .......................................................................................................................... 270
11.1 Introduction ......................................................................................................................... 270
11.2 Preparing to Upgrade ........................................................................................................... 271
11.2.1 In-Place Upgrade vs. Side-by-Side Upgrade ................................................................... 271
11.2.2 Determining and Evaluating Potential Upgrade Issues................................................... 271
11.2.3 Issues Preventing an Upgrade ....................................................................................... 272
11.2.4 Deprecated Features .................................................................................................... 272
11.2.5 Discontinued Functionality ........................................................................................... 273
11.2.6 Breaking Changes ......................................................................................................... 274
11.2.7 Behavior Changes ......................................................................................................... 279
11.2.8 64-bit Considerations.................................................................................................... 280
11.3 Upgrading from SQL Server 2000 .......................................................................................... 280
11.3.1 In-Place Upgrade .......................................................................................................... 281
11.3.2 Side-by-Side Upgrade.................................................................................................... 289
11.3.3 Redesigning Databases for SSAS 2008 R2 ...................................................................... 295
11.4 Upgrading from SQL Server 2005 .......................................................................................... 297
11.4.1 In-Place Upgrade .......................................................................................................... 298
11.5 Performing Post-Upgrade Tasks............................................................................................ 301
11.6 Conclusion............................................................................................................................ 301
11.7 Additional References .......................................................................................................... 302
12 Chapter 123 Data Mining .............................................................................................................. 303
12.1 Introduction ......................................................................................................................... 303
12.2 Data Mining Features in SQL Server 2000, 2005, 2008, and 2008 R2 ..................................... 303
12.3 Preparing to Upgrade ........................................................................................................... 305
12.3.1 Deprecated Features .................................................................................................... 306
12.3.2 Discontinued Functionality ........................................................................................... 306
12.3.3 Breaking Changes ......................................................................................................... 307
12.3.4 Behavior Changes ......................................................................................................... 307
12.3.5 Running Upgrade Advisor ............................................................................................. 308
12.4 Upgrading from SQL Server 2000 .......................................................................................... 310
12.4.1 In-Place Upgrade .......................................................................................................... 310

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 13

12.4.2 Side-by-Side Upgrade.................................................................................................... 313


12.4.3 Post-Upgrade Tasks ...................................................................................................... 313
12.5 Upgrading from SQL Server 2005 .......................................................................................... 318
12.5.1 In-Place Upgrade .......................................................................................................... 319
12.5.2 Side-by-Side Upgrade.................................................................................................... 320
12.5.3 Post-Upgrade Tasks ...................................................................................................... 322
12.6 Conclusion............................................................................................................................ 327
12.7 Additional References .......................................................................................................... 328
13 Integration Services ..................................................................................................................... 329
13.1 Introduction ......................................................................................................................... 329
13.2 Preparing to Upgrade to SSIS 2008 R2 .................................................................................. 329
13.2.1 Preparing to Upgrade from DTS .................................................................................... 330
13.2.2 Deprecated Features .................................................................................................... 334
13.2.3 Discontinued Functionality ........................................................................................... 335
13.2.4 Breaking Changes ......................................................................................................... 335
13.2.5 Behavior Changes ......................................................................................................... 336
13.2.6 Upgrade Tools .............................................................................................................. 336
13.2.7 Coexistence with Previous Versions .............................................................................. 344
13.2.8 64-bit Considerations.................................................................................................... 345
13.2.9 Data Providers .............................................................................................................. 348
13.2.10 Failover Clustering .................................................................................................... 349
13.2.11 Known Issues and Workarounds ............................................................................... 349
13.3 Upgrading from SQL Server 2000 .......................................................................................... 355
13.3.1 Migrating DTS Packages to SSIS ..................................................................................... 355
13.3.2 Comparing DTS and SSIS Functionality .......................................................................... 355
13.3.3 Running the DTS Migration Wizard ............................................................................... 358
13.3.4 DTS Migration Examples ............................................................................................... 369
13.4 Upgrading from SQL Server 2005 .......................................................................................... 400
13.5 Post-Upgrade Tasks .............................................................................................................. 410
13.5.1 DTS Post-Migration Tasks.............................................................................................. 410
13.5.2 SSIS 2005 Post-Upgrade Tasks ....................................................................................... 411
13.6 Conclusion............................................................................................................................ 417

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 14

13.7 Additional References .......................................................................................................... 417


14 Reporting Services ....................................................................................................................... 418
14.1 Introduction ......................................................................................................................... 418
14.1.1 Reporting Services Configurations................................................................................. 418
14.1.2 Reporting Services Editions ........................................................................................... 420
14.1.3 Upgrade Considerations................................................................................................ 421
14.1.4 In-Place Upgrade vs. Side-by-Side Upgrade ................................................................... 423
14.2 Preparing to Upgrade ........................................................................................................... 424
14.2.1 Important Reporting Services 2000 Configuration Files ................................................. 425
14.2.2 Storing Configuration Settings ...................................................................................... 426
14.2.3 Deprecated Features .................................................................................................... 427
14.2.4 Discontinued Functionality ........................................................................................... 428
14.2.5 Breaking Changes ......................................................................................................... 429
14.2.6 Behavior Changes ......................................................................................................... 433
14.2.7 Updating Report Projects and Definitions for Use in BI Development Studio ................. 438
14.2.8 Upgrade Tools .............................................................................................................. 439
14.2.9 64-bit Considerations.................................................................................................... 440
14.2.10 Known Issues and Workarounds ............................................................................... 440
14.2.11 Backup and Rollback Plan.......................................................................................... 442
14.3 Upgrading from SQL Server 2000 .......................................................................................... 443
14.3.1 In-Place Upgrade .......................................................................................................... 443
14.3.2 Side-by-Side Upgrade.................................................................................................... 449
14.4 Upgrading from SQL Server 2005 .......................................................................................... 458
14.4.1 In-Place Upgrade .......................................................................................................... 458
14.4.2 Side-by-Side Upgrade.................................................................................................... 458
14.5 Upgrading from SQL Server 2008 SP1 ................................................................................... 460
14.5.1 In-Place Upgrade .......................................................................................................... 460
14.5.2 Side-by-Side Upgrade.................................................................................................... 460
14.6 Troubleshooting a Failed Upgrade ........................................................................................ 460
14.7 Post-Upgrade Tasks .............................................................................................................. 462
14.7.1 Moving Reports Between SSRS 2000 and SSRS 2005, or SSRS 2005 and SSRS 2008 R2 ... 463
14.7.2 Moving Reports Between SSRS 2008 and SSRS 2008 R2 ................................................ 464

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 15

14.7.3 Deploying Custom Extensions and Assemblies .............................................................. 465


14.7.4 Verifying Configuration Files ......................................................................................... 466
14.7.5 Uninstalling SSRS 2000, SSRS 2005, or SSRS 2008 .......................................................... 466
14.8 Conclusion............................................................................................................................ 467
14.9 Additional Resources ............................................................................................................ 467
15 Other Microsoft Applications and Platforms................................................................................. 468
15.1 Introduction ......................................................................................................................... 468
15.2 Microsoft Windows Small Business Server 2008 and 2011 .................................................... 468
15.2.1 Preparing to Migrate to Windows SBS........................................................................... 468
15.2.2 Migrating to Windows SBS 2008 ................................................................................... 469
15.3 Microsoft Lync Server 2010 and Microsoft Office Communications Server R2 ....................... 470
15.3.1 Preparing to Upgrade to OCS 2007 R2 ........................................................................... 471
15.3.2 Upgrading OCS 2007 R2 to Use SQL Server 2008 ........................................................... 471
15.3.3 Rollback Options and Tools ........................................................................................... 472
15.4 Microsoft Office SharePoint Server 2010 .............................................................................. 472
15.4.1 Preparing to Upgrade SharePoint 2007 to SQL Server 2008 R2 ...................................... 472
15.5 Microsoft System Center ...................................................................................................... 474
15.5.1 Operations Manager3 Management Pack for SQL Server 2008 R2.................................. 474
15.5.2 Data Protection Manager.............................................................................................. 474
15.6 Microsoft Dynamics .............................................................................................................. 476
15.7 Conclusion............................................................................................................................ 476
15.8 Additional References .......................................................................................................... 477
Appendix 13 Version and Edition Upgrade Paths................................................................................... 478
Appendix 23 Upgrade Planning Deployment and Tasks Checklist .......................................................... 486

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 16

ac       


aac 


Thisfirst chapter lays out the general guidelines for planning a successful upgrade to SQL Server 2008 R2.
These guidelines include upgrade strategies, test and rollback considerations, and upgrade tools. This
chapter also introduces you to the SQL Server 2008 R2 Upgrade Advisor, a tool that analyzes legacy
instances of SQL Server 2000, SQL Server 2005,SQL Server 2008, and flags potential problems that you
must address before upgrading.

§ 3 The primary focus of this document is on upgrading to SQL Server 2008 R2 from either
SQL Server 2000 or SQL Server 2005. See Section 1.3 in this chapter for information about how
to upgrade from SQL Server 2008 to SQL Server 2008 R2.

The remaining chapters in this guideprovide technical detail about how to upgrade specific SQL Server
components and scenarios.

ac 
 î      
SQL Server 2008 R2 contains improvements and additional features in almost every area of the product.
In fact, any one of these improved features can be a compelling case for upgrading, depending on your
need for high availability, performance, and additional functionality. Additionally, upgrading to the latest
release of the product extends the Microsoft support life cycle to the maximum degree possible,
according to the software support policy.

SQL Server 2008 R2 new features and improvements fall into three categories3

{c Ô    3 SQL Server 2008 R2 provides the highest levels of security,
reliability, and scalability for your business-critical applications.
{c MÔ    3 SQL Server 2008 R2 reduces the time and cost required for
managing and developing database applications.
{c   dM3 SQL Server 2008 R2 provides a comprehensive platform for delivering
business intelligence (BI) solutions.

To better understand the SQL Server 2008 R2 features that make upgrading helpful, see theSQL Server
2008 R2 Home page.

SQL Server 2008 R2 introduces important new features in the BI area, particularly regarding
StreamInsight, SQL Server Reporting Services, and PowerPivot. For more information about these and
other new features, see What's New in SQL Server 2008 R2 Editions andSQL Server 2008 R2 Solutions
&Technologies.

ac     


    
SQL Server 2008 R2 is a minor revisionfor most SQL Server 2008 components, with the exception of
Reporting Services, failover clustering, and shared components such as the SQL Server Management
Tools.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 17

{c SQL Server 2008 R2 Reporting Services is an important exception in that it contains significant
changes from SQL Server 2008. For details, see Chapter 14, ͞ReportingServices,͟ in this
document.
{c SQL Server 2008 failover clustering has some important considerations because Windows Server
2008 R2 was released after SQL Server 2008, and SQL Server 2008 R2 takes advantage of new
Windows Server 2008 R2 failover clustering features. For information about these new features,
see the failover clustering sections of Chapter 4, ͞HighAvailability.͟
{c Because SQL Server 2008 and SQL Server 2008 R2 instances share many of the same
components, running them together on the same server over a long period of time has a
number of implications3
©c You must update both the SQL Server 2008 and SQL Server 2008 R2 instances separately
with service packs and cumulative updates.
©c Installing SQL Server 2008 R2 on the same server as SQL Server 2008 will automatically
upgrade the Management Tools to the SQL Server 2008 R2 version, amounting to an
automatic in-place upgrade of the Management Tools.
©c In addition, uninstalling the SQL Server 2008 R2 instance will prompt you about
removing shared components. If you remove shared components required by the SQL
Server 2008 instance, you will be warned that doing so may make the SQL Server 2008
instance unusable.

Most components of SQL Server do not differ significantly from SQL Server 2008 to SQL Server 2008 R2
and can be upgraded using either the in-place or side-by-side strategies, as described in the next section
and in the remaining chapters of this document. For more information about SQL Server 2008 and SQL
Server 2008 R2, see Considerations for Side-by-Side Instances of SQL Server 2008 R2 and SQL Server
2008 in SQL Server 2008 R2 Books Online.

ac  


  
To prepare for an upgrade, begin by collecting information about the effect of the upgrade and the risks
it might involve. When you identify the risks up front, you can determine how to lessen and manage
them throughout the upgrade process.

Upgrade scenarios will be as complex as your underlying applications and instances of SQL Server. Some
scenarios within your environment might be simple, other scenarios complex. Start to plan by analyzing
upgrade requirements, including reviewing upgrade strategies, understanding SQL Server 2008 R2
hardware and software requirements, and discovering any blocking problems caused by backward-
compatibility issues.

aac   


An upgrade is any kind of transition from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2.
There are two fundamental strategies for upgrading, with two main variations in the second strategy3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 18

{c M     Using the SQL Server 2008 R2 Setup program to directly upgrade an instance
of SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2. The older instance of SQL Server
is replaced.
{c     Using steps to move all or some data from an instance of SQL Server 2000
or SQL Server 2005 to a separate instance of SQL Server 2008 R2.There are two main variations
of the side-by-side upgrade strategy3
©c 6 3 The new instance exists on the same server as the target instance.
©c Ô3 The new instance exists on a different server than the target instance.

a  a ac 


By using an2  upgrade strategy, the SQL Server 2008 R2 Setup program directly replaces an
instance of SQL Server 2000 or SQL Server 2005 with a new instance of SQL Server 2008 R2 on the same
x86 or x64 platform. (An in-place upgrade requires that the old and new instances of SQL Server be on
the same x86 or x64 platform, see the note in "Extended System Support (WOW64)" later in this
chapter.) This kind of upgrade is called "in-place" because the upgraded instance of SQL Server 2000 or
SQL Server 2005 is actually replaced by the new instance of SQL Server 2008 R2. You do not have to copy
database-related data from the older instance to SQL Server 2008 R2 because the old data files are
automatically converted to the new format.When the process is complete, the old instance of SQL
Server 2000 or SQL Server 2005 is removed from the server, with only the backups that you retained
being able to restore it to its previous state.

§ 3 If you want to upgrade just one database from a legacy instance of SQL Server and not
upgrade the other databases on the server, use the side-by-side upgrade method instead of the
in-place method.

Figure 1-1 shows the before and after states of an in-place upgrade.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 19

ë! !In an in-place upgrade, SQL Server 2008 R2 Setup replaces a legacy instance of SQL Server
2000 or SQL Server 2005 with a new instance of SQL Server 2008 R2.

Note the following restrictions on an in-place upgrade3

{c SQL Server 2008 R2 Setup requires that all SQL Server 2000 and SQL Server 2005 components be
upgraded together. SQL Server 2008 R2 Setup will detect all the components of the instance to
be upgraded and will require that they all be upgraded immediately. In other words, you cannot
upgrade only an instance of the SQL Server 2005 Database Engine without also upgrading the
Analysis Services component.
{c A cross-platform, in-place upgrade from a 32-bit instance of SQL Server 2000 or SQL Server 2005
(x86) to a 64-bit instance of SQL Server 2008 R2 (x64), or vice versa, is not supported. For more
information, see the note in "Extended System Support (WOW64)" later in this chapter.

Here are the major steps that the SQL Server 2008 R2 Setup program takes when you perform an in-
place upgrade3

1.c The SQL Server 2008 R2 Setup prerequisitesͶMicrosoft .NET Framework 3.5 Service Pack 1
(SP1) or a later version, SQL Server Native Client, and so onͶare installed. The legacy instance
databases continue to be available.
2.c Setup checks for upgrade blocking issues, a small set of issues that will completely block an
upgrade. If it finds any, Setup will list them. You must fix them and restart the upgrade process.
3.c Setup installs the required SQL Server 2008 R2 executables and support files.
4.c Setup stops the legacy SQL Server service. At this point, the legacy instance is no longer
available.
5.c SQL Server 2008 R2 updates the selected component data and objects.
6.c Setup removes the legacy executables and support files in addition to the legacy SQL Server
2000 R2 tools. SQL Server 2005 tools are not removed (see Chapter 2, "Management and
Development Tools," for more information).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 20

The new instance of SQL Server 2008 R2 is now fully available. The legacy instance of SQL Server 2000 or
SQL Server 2005 has been replaced and can be reinstalled from a backup if the need arises.

a  a c  


In a À2 À2upgrade, instead of directly replacing the older instance of SQL Server, required
database and component data is transferred from an instance of SQL Server 2000 or SQL Server 2005 to
a separate instance of SQL Server 2008 R2.It is called a "side-by-side" method because the new instance
of SQL Server 2008 R2 runs alongside the legacy instance of SQL Server 2000 or SQL Server 2005, on the
same server or on a different server.

There are two important options when you use the side-by-side upgrade method3

{c You can transfer data and components to an instance of SQL Server 2008 R2 that is located on a
different physical server or on a different virtual machine, or
{c You can transfer data and components to an instance of SQL Server 2008 R2 on the same
physical server.

Both options let you run the new instance of SQL Server 2008 R2 alongside the legacy instance of SQL
Server 2000 or SQL Server 2005. Typically, after the upgraded instance is accepted and moved into
production, you can remove the older instance.

Figure 1-2 shows the before and after states of a side-by-side upgrade on two servers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 21

ë! "A side-by-side upgrade to another server leaves the legacy instance of SQL Server 2000 or
SQL Server 2005 unchanged.

You can also use the side-by-side method to upgrade to SQL Server 2008 R2 on the same server as the
legacy instance of SQL Server 2000 or SQL Server 2005. Figure 1-3 shows a side-by-side upgrade on the
same server.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 22

ë! # You can perform a side-by-side upgradeon the same server, leaving both instances running.

Whether a side-by-side upgrade is to a separate instance on the same server or to a new instance on
another server, data must be transferred in what is mostly a manual process. The result is two instances,
legacy and new, that can run side by side.

As just noted, the key point in a side-by-side upgrade is that you must manually transfer data files and
other supporting objects from the older instance of SQL Server to the instance of SQL Server 2008 R2.
The SQL Server 2008 R2 Setup program will not perform this task. The objects that you must transfer
include the following3

{c Data files
{c Database objects
{c SQL Server Analysis Services (SSAS) cubes
{c Configuration settings
{c Security settings
{c SQL Server Agent jobs
{c SQL Server Integration Services(SSIS) packages

Here are the main steps that you must perform when doing a side-by-side upgrade of SQL Server 2000
or SQL Server 2005 to SQL Server 2008 R23

1.c Install a separate instance of SQL Server 2008 R2 on the legacy server or on a separate server.
The legacy instance continues to be available.
2.c Run the SQL Server 2008 R2 Upgrade Advisor against the legacy instance, and remove any
upgrade blocker issues it finds.
3.c Stop all update activity to the legacy instance. This might involve disconnecting all users or
forcing applications to read-only activity.
4.c Transfer data, packages, and other objects from the legacy instance to the instance of SQL
Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 23

5.c Apply supporting objects such as SQL Server Agent jobs, security settings, and configuration
settings to the new instance of SQL Server 2008 R2.
6.c Upgrade SSIS (and potentially Data Transformation ServicesͶDTS) packages to SSIS (see Chapter
13, "Integration Services," for more information).
7.c Verify that the new instance supports the required applications by using validation scripts and
user-acceptance tests.
8.c If the new instance passes validation and acceptance tests, redirect applications and users to the
new instance. At this point, the new instance is available and databases are online.
9.c Keep your legacy instance for data recovery until you are absolutely confident that no problems
exist on your new production database instance.

A side-by-side upgrade to a new server offers the best of both worlds3 You can take advantage of a new
and potentially more powerful server and platform, but the legacy server remains as a fallback if you
encounter a problem. This method could also potentially reduce upgrade downtime by letting you have
the new server and instances tested, up, and running without affecting a current server and its
workloads. You can test and address hardware or software problems encountered in bringing the new
server online without any downtime of the legacy system.Although you would have to find a way to
export data out of the new system to go back to the old system, rolling back to the legacy system would
still be less time-consuming than a full SQL Server reinstall and restoring the databases, which a failed
in-place upgrade would require.

The downside of a side-by-side upgrade is that increased manual interventions are required, so it might
take more preparation time by an upgrade/operations team. However, the benefits of this degree of
control can frequently be worth the additional effort.

a  a c  


 
 

Table 1-1 summarizes the difference between the two upgrade strategies.

Ô ! !
     M  $  %   $  
 M  $     $  
§     One only Two
§     One One or more
    Automatic Manual
&      Automatic Manual
     SQL Server Setup Several data transfer methods

Be aware that the main difference between an in-place upgrade and a side-by-side upgrade depends on
the resulting instances. An in-place upgrade replaces the old instance so that only one instance remains.

Another way to view the differences between an in-place upgrade and a side-by-side upgrade is to focus
on how much of the legacy instance you want to upgrade. Table 1-2 shows how you can use the
component level of the upgrade, combined with the resulting number of instances, to determine what
upgrade strategies are available for your needs.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 24

Ô ! "$     


   

   &  '     Ô'  M  
&"(()'"
All components In-place Side-by-side
Single component In-place Side-by-side
Single database Not available Side-by-side

Overall advantages of an in-place upgrade include the following3

{c An in-place upgrade can be easier and faster, especially for small systems, because data and
configuration options do not have to be manually transferred to a new server.
{c It is mostly an automated process.
{c The resulting upgraded instance has the same name as the original.
{c Applications continue to connect to the same instance name.
{c No additional hardware is required because only the one instance is involved. However
additional disk is required by Setup (see "Setup Requirements for an In-Place Upgrade" in the
"SQL Server 2008 R2 Setup" section later in this chapter).
{c Because it is mostly automated, it also takes the least deployment team resources.

Some overall disadvantages of an in-place upgrade include the following3

{c You must upgrade the whole instance or a major SQL Server component. For example, you
cannot directly upgrade a single database.
{c You must inspect the whole instance for backward-compatibility issues and address any blocking
issues before SQL Server 2008 R2 Setup can continue.
{c Upgrading in place is not recommended for all SQL Server components, such as some DTS
packages. See Chapter 13, "Integration Services," for more information about how to upgrade
DTS packages. In addition, Notification Services cannot be upgraded in place (see Chapter 9,
"Notification Services").
{c Because the new instance of SQL Server 2008 R2 replaces the legacy instance, you cannot run
the two instances side by side to compare them. Instead, you should use a test environment for
comparisons.
{c Rollback of upgraded data and the upgraded instance in an in-place upgrade can be complex
and time-consuming. See "Rolling Back an Upgrade" in the next section for more information.

Overall advantages of a side-by-side upgrade include the following3

{c It gives more granular control over which database objects are upgraded.
{c The legacy database server can run alongside the new server. You can perform test upgrades
and research and resolve compatibility issues without disturbing the production system.
{c The legacy database server remains available during the upgrade, although it cannot be updated
for at least the time that is required to transfer data.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 25

{c Users can be moved from the legacy system in a staged manner instead of all at the same time.
Even though your system might have passed all validation and acceptance tests, a problem
could still occur. But if a problem does occur, you will be able to roll back to the legacy system.

Overall disadvantages of a side-by-side upgrade include the following3

{c A side-by-side upgrade might require new or additional hardware resources.


{c If the side-by-side upgrade occurs on the same server, there might be insufficient resources to
run both instances alongside one another.
{c Applications and users must be redirected to a new instance. This redirection might require
some recoding in the application.
{c You must manually transfer dataͶas well as security, configuration settings, and other
supporting objectsͶto the new instance.
{c Synchronization of data from the legacy server to a new server will be required to capture data
modifications that occurred to the legacy system while setting up the new system and its
original copy of the data.

a  a c 


 


 
! 

Sometimes it is expediency, disk space, new server hardware, or high availability considerations that will
help you decide which upgrade strategy to use. Use your best judgment to decide which, because there
are no simple rules to follow. Table 1-3 is intended to give you some guidelines for your consideration as
you make your decisions. And be aware that you might decide to upgrade some of your instances in-
place and other instances side-by-side, depending on your organization͛s needs. Many of these factors
are discussed in more detail later in this chapter.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 26

Ô ! #  ë     $      



    M  $      $   
Require the fewest {c Setup automatically {c It gives more granular control over
hours for the upgrades data and settings which database objects are
upgrade in place, without the need migrated.
deployment team to for a manual transfer of {c The legacy database server can
plan and prepare data or settings. run alongside the new server. You
the upgrade effort {c The resulting upgraded can perform test migrations and
instance has the same research and resolve compatibility
name as the original. issues without disturbing the
{c Applications continue to production system.
connect to the same {c The legacy database server
instance name. remains available during the
migration, although it cannot be
updated for at least the time that
is required to transfer data.
{c Applications can be moved from
legacy system in a staged manner
instead of all at the same time.
Even though your system might
have passed all validation and
acceptance test, a problem could
still occur (see Murphy͛s Law). If a
problem does occur, then you will
be able to roll back to the legacy
system.

Require minimal A junior DBA or System Engineer or System recovery3 If a junior DBA or
DBA skill set similar with basic knowledge and anybody who is not familiar with the
expertise (or no DBA adherence to good IT practices can upgrade process has any problems, the
available to complete upgrades without special production environment remains
implement the scripts or manual interventions; untouched. Only when the new system is
upgrade) Setup automates the upgrade approved by Test/QA will the users be
process. migrated to the new server.

Require minimal For small data sets, the total end- By controlling the steps directly, you can
user downtime to-end time might be smaller do much of the preparation including
because this is the most automated much of the data transfer without user
upgrade strategy. downtime; some user downtime is still
required to update the instance version.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 27


    M  $      $   
Require fastest The legacy instance of SQL Server is still
possible present at the end of the upgrade and
revert/rollback in may be used as a rollback option.
case issue
encountered

Schedule different Can separately control when each user


downtime windows database is upgraded; after the last user
for different user database is upgraded, the legacy instance
databases within can be removed.
the same instance

Preserve the server Preserves the same server and


and instance name instance name.

Server consolidation The upgraded instance can be placed on


project the consolidation server, after which the
old server can be taken out of service.

Applications Can maintain both systems with


required to run in production transactions until ready to turn
parallel with the off the original system.
original and new
instances of SQL
Server

New server The upgraded instance can be put on the


hardware or new server, after which the old server can
operating system be taken out of service.

Shortage of disk Because there is only one resulting


space in production instance, there is less additional
dataspace required than is possible
with two complete resulting
instances running side by side.

Legacy server NoneͶnotsupported. Only possible with side-by-side upgradeto


cannot meet the a new server that meets Setup
SQL Server 2008 R2 requirements.
Setup requirements
for installation

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 28


    M  $      $   
Changing to aearlier NoneͶnotsupported. Only possible with side-by-side upgrade.
edition of SQL
Server 2008 R2

Upgrade a 32-bit NoneͶnotsupported. Only possible with side-by-side upgrade.


version of SQL
Server 2000 or 2005
to a 64-bit version
of SQL Server 2008
R2

Upgrade a 64-bit NoneͶnotsupported. Only possible with side-by-side upgrade.


version of SQL
Server 2000 or 2005
to a 32-bit version
of SQL Server 2008
R2

Target instance is Transferring data to a new instance may


SQL Server 2000 be faster than the two steps required to
SP3a and only one apply the required SQL Server 2000 SP4
downtime window and then upgrade to SQL Server 2008 R2.
is available

Upgrading from a NoneͶnotsupported. Only possible with side-by-side upgrade.


nonclustered legacy
instance of SQL
Server to a clustered
instance of SQL
Server 2008 R2

Upgrading from SQL NoneͶnotsupported; would first Can be done in one direct upgrade by
Server 7.0 need to upgrade to SQL Server 2000 using manual data transfer.
or 2005.

Upgrading multiple Generally faster because data


instances transfer and configuration steps are
handled by Setup.

Upgrading very large Setup converts existing data files Can control the timing of several steps and
databases (VLDBs) automatically; no data transfer also the rollback if it is necessary.
steps are required.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 29


    M  $      $   
Upgrade testing Retesting might be easier because the
legacy instance of SQL Server does not
have to be rebuilt.

Testing can be done while legacy system


still supports production applications. SQL
Server Profiler can be used to capture SQL
commands against the legacy system and
to play back against the new instance of
SQL Server to verify that everything is
working well.

Data must be Data transformation tools such as SSIS can


transformed during be used to transform data as it is being
the upgrade window transferred from the legacy instance of
SQL Server to SQL Server 2008 R2.

Localization3 change Enables upgrade to SQL Server 2008 R2


of SQL Server with a different language from the legacy
language instance of SQL Server. Note3 This issue is
not to be confused with collation settings.
Thisapplies to the localized language of
the SQL Server product.

Upgrading NoneͶnotsupported. Only possible with side-by-side upgrade.


Notification Services Requires Notification Services backward
compatibility add-in.

Application Simpler because the same server Applications can be moved from legacy
integration name, instance name, and database system in a staged manner instead of all at
security settings are preserved by the same time. Even though your system
Setup, without manual might have passed all validation and
intervention. acceptance tests, a problem could still
occur. If a problem does occur, then you
will be able to roll back to the legacy
system.

Server integration Might be simpler because linked


server, replication, and log shipping
settings can be preserved,
depending on the SQL Server
version being upgraded.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 30

a  a "c #
$%



When you evaluate which upgrade strategy to use, consider the risk that an in-place upgrade or side-by-
side upgrade might have to be rolled back. The complexity and effort required to roll back is an
important factor in selecting which method to use.

Rolling back an in-place upgrade can be complex and time-consuming. The new data file structures for
SQL Server 2008 R2 are incompatible with legacy instances of SQL Server 2000 and SQL Server 2005.
Because the new instance of SQL Server 2008 R2 replaces the legacy instance of SQL Server in an in-
place upgrade, to roll back an upgraded instance, you must uninstall the instance of SQL Server 2008 R2,
remove the data files and other components, reinstall the legacy instance of SQL Server 2000 or SQL
Server 2005, and restore the original data. Having a backup or image of the initial system might enable
you to shorten the time that is required to restore the original system on the server. One option is
copying the legacy data files from a backup location to the appropriate disk volume, applying the ghost
image to retrieve executables, and then applying any scripts or components to complete the rebuild of
the original system.

In a side-by-side upgrade, the new instance of SQL Server 2008 R2 resides alongside the legacy instance
of SQL Server, either on the same server or on a different server. Therefore, the legacy instance
continues to be available for a rollback scenario.

However, after the upgraded instance of SQL Server 2008 R2 goes into production and starts capturing
new data, there will come a point in time when enough new data has been captured that a rollback is no
longer realistic. For an in-place upgrade, if you encounter problems after the system is in production,
making adjustments or updates to the new application would be a better option than trying a rollback.
For a side-by-side upgrade, you could use SSIS to transfer new data from the instance of SQL Server
2008 R2 to the legacy instance of SQL Server 2000 or SQL Server 2005 to bring it up-to-date. However,
this might be a difficult process, depending on the complexity of the data.

The complexity and expense of a rollback reinforces the importance of testing an upgrade process
beforehand. See the "Upgrade Test Plan" section later in this chapter for information about how to test
an upgrade.

a  a &c  






 

The upgrade method that is available for your specific needs depends on many factors, including the
components that you want to upgrade and the editions you want to use.

{c
   . A certain upgrade strategy might not be possible because the component does
not support it. For example, there is no in-place upgrade for SSIS from SQL Server 2000. For
more information, see Chapter 13, "Integration Services.͟ Also, we recommend that you
transfer most SSAS components if the source is SQL Server 2000. For more information, see
Chapter 11, "Analysis Services.͟
{c   . The in-place upgrade strategy does not support all paths between editions. For
example, to upgrade a SQL Server 2000 or SQL Server 2005 Enterprise instance to SQL Server
2008 R2 Standard Edition, you must perform a side-by-side upgrade because Setup does not

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 31

support an in-place upgrade path. See "Allowable Upgrade Paths" later in this chapter for more
information.
{c       . To transition only a few databases on a server to SQL Server 2008 R2 and
leave the rest on the legacy version, you must use a side-by-side upgrade.
{c $    . To transition databases gradually, several databases at a time, from a
legacy instance to SQL Server 2008 R2, you can only use a side-by-side upgrade.
{c      % If your organization requires minimal disturbance to the existing
applications and users, choose an in-place upgrade if you can.
{c    . Both an in-place upgrade and a side-by-side upgrade require that the databases be
unavailable for some time. The downtime required depends primarily on the size of the data
sets. At first, it might seem that an in-place upgrade would be faster than a side-by-side upgrade
because the data is not transferred from one server to another. However, an in-place upgrade
also requires time for the installation of SQL Server 2008 R2. In a side-by-side upgrade, SQL
Server 2008 R2 is already installed on another instance. If the data transfer proceeds quickly and
few changes are needed on the new instance, a side-by-side upgrade might be faster than an in-
place upgrade.
{c ' *. For many database systems in production, it is impossible to justify a change without a
rollback strategy, in case the results are unacceptable. The side-by-side upgrade strategy
supports rollback at the time of acceptance testing because the legacy instance can still be made
available. However, after users update the databases in the new instance, rollback might no
longer be workable.

Some factors alone might be enough for you to decisively choose one strategy over another. Regardless
of what strategy you select, do not forget testing and validation. Even if you select an in-place upgrade
strategy, test the upgrade process and results on a separate server first. For more testing information,
see "Upgrade Test Plan" later in this chapter.

ac   î 


When planning for an upgrade to SQL Server 2008 R2, you have to understand what features are
deprecated, discontinued, or changed in the new version. Being aware of these changes beforehand can
help you prevent both performance problems and issues related to making the application available.

Generally, SQL Server 2008 R2 is backward compatible with SQL Server 2000 and SQL Server 2005.
However, you should examine some feature changes during the planning process. The most serious
backward-compatibility issues that will affect planning are those that will block an in-place upgrade and
prevent an installation of SQL Server 2008 R2. If the SQL Server 2008 R2 Setup program detects these
issues during an in-place upgrade, it will exit the installation, leaving the legacy instance unchanged.
TheSQL Server 2008 R2 Upgrade Advisor is the best tool for finding these kinds of blocking issues
beforehand.Chances are good that you will encounter only a few issues, if any.

In the component- and feature-specific chapters in this document, you can review the relevant details
for each of these categories. For more information, see SQL Server Backward Compatibility in SQL Server
2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 32

§  The most serious backward-compatibility issues that will affect your planning are those
that will block an in-place upgrade and prevent the installation of SQL Server 2008 R2. If the SQL
Server 2008 R2 Setup program detects these issues during an in-place upgrade, it will exit the
installation, leaving the legacy instance unchanged. You must resolve the blocking issues to
continue.

a   ac !   
  

Features that are deprecated in SQL Server 2008 R2 still operate the same as in the legacy versions.
However, they will be removed in the next version of SQL Server. Access to these features does not
necessarily have to be removed to complete an upgrade. However, you should eventually address them
because they could cause problems with upgrades after SQL Server 2008 R2. For more information, see
Deprecated SQL Server Features in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online. Also see
"System MonitorͶSQL Server3 Deprecated Features" in the Upgrade Tools section later in this chapter.

§  An upgrade will not be blocked if you use deprecated features. However, it is advised that
you decide how or when you want to deal with any of these to give yourself sufficient time to
resolve the issues before they are discontinued in some future SQL Server release.

a   c ! 
  

In any component of SQL Server 2008 R2, some features of earlier SQL Server versions may have been
discontinued. These features functioned in earlier versions of SQL Server but were removed from SQL
Server 2008 R2. Although some references to these features might not block an in-place upgrade, you
should remove those references anyway. If the reference is not removed, the application might not
behave correctly. Use Upgrade Advisor to detect whether your application is using discontinued
features. For more information about such features, see Discontinued SQL Server Features in SQL Server
2008 R2in SQL Server 2008 R2 Books Online.

a   c $ %
 

Breaking changes to SQL Server 2008 R2 are those that might require changes to the applications
because the features in question now have a different behavior. If you do not use the feature, there is
no effect on you. However, if you do use the feature, your application might be affected. The best tool
for discovering this kind of issue is Upgrade Advisor, which analyzes a legacy system and reports on all
potential breaking changes and how to address them. For more information about this kind of change,
see Breaking Changes to SQL Server Features in SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

a   c $ '
 

Behavior changes might not visibly affect your database code or applications. However, you have to be
aware of them because interpretation might be different. For example, the behavior of the SQL Server
Native Client changes from SQL Server 2005 to SQL Server 2008 R2. For more information, see Behavior
Changes to SQL Server Features in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

ac   Ô


We have talked about the value of the SQL Server 2008 R2 Upgrade Advisor several times already in this
chapter, and some other tools are also available to help automate the upgrade process to SQL Server

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 33

2008 R2. Each tool has its own purpose and timing, so it is best to become familiar with all the tools and
then use those most appropriate to each upgrade project.

a   ac ()
 ' 
**+
#

'

Perhaps the most important tool of the several tools typically used for upgrade planning is Upgrade
Advisor. Upgrade Advisor smoothes the transition to SQL Server 2008 R2 by predicting issues in your
legacy instances of SQL Server 2000 and SQL Server 2005. It analyzes objects and code within legacy
instances and produces reports detailing upgrade issues, if there are any, organized by SQL Server
component. The resulting reports show detected issues and provide guidance about how to fix the
issues or work around them. The reports are stored on disk, and you can review them by using Upgrade
Advisor or export them to Microsoft Excel for further analysis.

In addition to analyzing data and database objects, Upgrade Advisor can analyze Transact-SQL (T-SQL)
scripts and SQL Server Profiler/SQL Trace traces. Upgrade Advisor examines SQL code for syntax that is
no longer valid in SQL Server 2008 R2. It generates a report listing the code in question, together with
links to where you can find more information to help resolve the questionable code. For information
about how to upgrade T-SQL queries, stored procedures, scripts, and application code, see Chapter 8,
"Transact-SQL Queries."

Requirements for running Upgrade Advisor are as follows3

{c Windows Server 2003 SP2, Windows Server 2008 SP2, Windows Server 2008 R2, Windows 7,
Windows Vista, or Windows XP SP2
{c The Microsoft .NET Framework 2.0 (the same version of the .NET Framework included with SQL
Server 2008 R2 and Visual Studio 2005)
{c Windows Installer 4.5
{c SQL Server 2000 Decision Support Objects (DSO) if analyzing SSAS (you can use SQL Server 2000
Setup to install DSO)
{c SQL Server 2000 client components if analyzing DTS (you can use SQL Server 2000 Setup to
install the SQL Server 2000 client components)
{c SQL Server 2005 backward-compatibility components if scanning SQL Server 2005 DTS packages
migrated from SQL Server 2000
{c Pentium III-compatible processor or a later version, with a processor speed of at least 500MHz
{c 15MB of available hard disk space

Whether you choose an in-place upgrade or a side-by-side upgrade, run Upgrade Advisor on your legacy
systems. You can run Upgrade Advisor from a local or remote server, and you can execute it from the
Command Prompt window by using a configuration file name as an input parameter.

§ 3 You can run the SQL Server 2008 R2 Upgrade Advisor only against instances of SQL Server
2000, SQL Server 2005, and SQL Server 2008.You cannot run it against instances of SQL Server
2008 R2 or on SQL Server 7.0.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 34

Upgrade Advisor is a separate download. The most recent downloadable version is available as part of
the Microsoft SQL Server 2008 R2 Feature Pack.

You can find more information about this valuable tool in Using Upgrade Advisor to Prepare for
Upgrades.

a   c $ 
 
, 

()
 ' 
***

()
 ' 
**"

Before you install SQL Server 2008 R2, you should also run the SQL Server Best Practices Analyzer (BPA)
against your current legacy instances of SQL Server. If bad or questionable practices exist, you could
address them before the upgrade, moving the fixes through test and into production. Using best
practices on the legacy SQL Server systems first will help ensure a smoother upgrade, but that is not
always possible. You might have to change some practices during the upgrade process instead.

You can download the SQL Server 2000 version of BPA at the Best Practices Analyzer Tool for Microsoft
SQL Server 2000download page.

You can download the SQL Server 2005 version of BPA at the SQL Server 2005 Best Practices Analyzer
(August 2008)download page.

You can download the SQL Server 2008 R2 BPA at the SQL Server 2008 R2 Best Practices download page.

a   c ()
 ' 
**+
#
  -
 
 
 % 

An in-place upgrade uses SQL Server 2008 R2 Setup to directly upgrade a SQL Server 2000 or 2005
instance. SQL Server 2008 R2's Setup program installs prerequisites such as the .NET Framework and
PowerShell 1.0. It also scans the destination computer for minimum hardware and software
requirements, in addition to a compatible SQL Server edition upgrade path for an in-place upgrade. To
do this, the SQL Server 2008 R2 Setup program contains a utility named the System Configuration
Checker (SCC) that performs a scan of the computer in preparation for an installation. For more
information, see Check Parameters for the System Configuration Checker in SQL Server 2008 R2 Books
Online.

The Setup SCC looks for conditions that will prevent a successful SQL Server installation or upgrade.
These checks occur before Setup starts the SQL Server 2008 R2 Installation Wizard and report any issues
that would block an installation along with advice about how to address the blocking issues. The Setup
SCC uses rules from the following categories; for more information about any of these categories, see
the related link from SQL Server 2008 R2 Books Online3

{c Installation Rules
{c Upgrade Rules Check
{c Edition Upgrade Rules
{c Uninstallation Rules

The common, relevant rulesͶacross all four categoriesͶfor an in-place upgrade and a side-by-side
upgrade, are here; failing any of these rules will result in a blocking issue that could prevent an in-place
upgrade3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 35

{c The destination computer must be connected to the Internet while the .NET Framework security
check validates a certificate.
{c The SQL Server registry keys must be consistent.
{c The CPU architecture of the installation program must match the CPU architecture of features
intended for upgrading.
{c If the computer is clustered, the cluster service must be online.
{c Windows PowerShell must be installed. (Setup will do this automatically when it installs
prerequisites.)
{c SQL Server Setup must be supported on this operating system platform.
{c SCC checks whether a pending computer restart is required.
{c The existing performance counter registry hive must be consistent.
{c SCC checks that neither SQL Server 7.0 nor SQL Server 7.0 OLAP Services is installed on the
server. SQL Server 2008 R2 is not supported on the same server with SQL Server 7.0.

Here are some additional checks that SCC performs to determine whether the SQL Server editions in an
in-place upgrade path are valid3

{c Checks the system databases for features that are not supported in the SQL Server edition to
which you are upgrading.
{c Checks all user databases for features that are not supported by the SQL Server edition.
{c Checks whether the SQL Server service can be restarted.
{c Checks that the SQL Server service is not set to Disabled.
{c Checks whether the selected instance of SQL Server meets the upgrade matrix requirements
(see "Allowable Upgrade Paths" in this section).
{c Checks whether SSAS is being upgraded to a valid edition.
{c Checks whether the edition of the selected instance of SQL Server is supported in this scenario
(see "Allowable Upgrade Paths" in this section as well as Chapter 4, "High Availability," later in
this guide).

For more information about SQL Server 2008 R2 Setup, see "SQL Server 2008 R2 Setup Requirements"
later in this chapter.

a   c ()
 ' 
 

SQL Server Profiler can record a running workload and then replay that same activity from a given SQL
Server instance, making it a valuable tool for preparing an upgrade.

Profiler is useful for simulating an upgrade to determine performance and correct behavior. For
example, you can use SQL Server 2008 R2 Profiler to trace a SQL Server 2005 database under load and
save the trace. You can then restore the SQL Server 2005 database to two instances on equivalent
hardware3 an instance of SQL Server 2005 and an instance of SQL Server 2008 R2. Run the replay on
each (but at different times if on the same server), and while you are running the replay, also run a
Profiler trace on each run, capturing for errors and query durations. By comparing the results, you can
determine whether the upgrade behaves correctly (without error) and performs well.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 36

§  When using Profiler make sure that the trace file contains a truly representative load
against the server, one that contains the full range of all queries that the application will submit
to the database. With a full range of queries and sufficient load, testing can add confidence to
the upgrade plan.

For more information about how to use Profiler for replay, see Replaying Traces in SQL Server 2008 R2
Books Online.

a   "c  
.()
 ' -
!   
  /0 

SQL Server 2008 R2 provides a new System Monitor (Perfmon) counter called SQLServer3Deprecated
Features to monitor whether your application is submitting commands to the SQL Server 2008 R2
Database Engine that are scheduled for removal from SQL Server in future releases. You should remove
such deprecated commands from SQL Server 2008 R2 applications after they are detected. You can use
this counter to help plan modifications to your application code so that when you upgrade to the next
version of SQL Server after SQL Server 2008 R2, the upgrade process will go more smoothly. Select
which kind of feature to monitor by using the Instance selection box for the counter. System Monitor
records the total number of times the deprecated feature was encountered since SQL Server 2008 R2
was last started. For more informationabout how to use this tool, see SQL Server, Deprecated Features
Object in SQL Server 2008 R2 Books Online.

a   &c 
 ' 
 
1,

The Analysis Services Migration Wizard can help with a side-by-side upgrade of SSAS. For information
about this tool, see Chapter 11, "Analysis Services."

a   2c !3
%
 
1,

Installing SSIS 2008 also installs theDTS Package Migration Wizard, which helps with the migration of
DTS packages to SSIS.

Also, SQL Server 2008 R2 provides support for running DTS packages. For more information, see Support
for Data Transformation Services (DTS) in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

For information about how to upgrade DTS to SSIS and support for DTS, see Chapter 13, "Integration
Services."

a   +c §
 ' 

You cannot perform an in-place upgrade of SQL Server Notification Services because it is not installed by
SQL Server 2008 R2 Setup. But you can use the Notification Services backward compatibility add-in; see
Chapter 9, "Notification Services," for information about this add-in.

ac     



When planning an upgrade to SQL Server 2008 R2, you first have to make sure that the target servers
meet the necessary hardware and software requirements for SQL Server 2008 R2 Setup to be
completed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 37

§ 3 If your legacy instance of SQL Server 2000 or SQL Server 2005 is installed on Windows
2000 Server, you must upgrade to a new server by using a side-by-side upgrade; SQL Server
2008 R2 is not supported on Windows 2000 Server.

a   ac  
# 4  





SQL Server 2008 R2 Setup has important version-level requirements for upgrading instances of SQL
Server 2000 and SQL Server 2005 in-place. The basic requirements are as follows3

{c SQL Server 20003 SP4 is required.


{c SQL Server 20053
©c On Windows 2008 Server, SQL Server 2005 SP2 or later versions is required. (SQL Server
2005 SP1 is not a supported configuration for an in-place upgrade on Windows Server
2008.)
©c Otherwise, SQL Server 2005 RTM or a later version is required.

When you upgrade a SQL Server 2000 installation that is still at SP3a or an instance of SQL Server 2005
on Windows Server 2008 that is at SP1, two courses of action can be taken3

{c Upgrade the legacy SQL Server instance to the minimum service-pack level during a scheduled
maintenance window before the upgrade, and then execute an in-place upgrade. This carries
the cost of an additional outage to install the service pack before the upgrade, in addition to the
risk of introducing a new configuration to one that might have been in place for years. Do not
consider this path without extensive application testing to make sure that the service-pack
upgrade does not introduce behavior that could have adverse effects.

{c Perform a side-by-side upgrade on the same server or a new server instead of an in-place
upgrade. If the configuration of the current server cannot be changed or the server is too old,
you might have to requisition a new server.

For an in-place upgrade, the target server and the legacy instance of SQL Server 2000 or SQL Server 2005
must satisfy some additional requirements for SQL Server 2008 R23

{c Cross-version instances of SQL Server 2008 R2 are not supported. Version numbers of the
Database Engine, Analysis Services, and Reporting Services components must be the same
throughout an instance of SQL Server 2008 R2. Therefore, you must upgrade all these
components together during an in-place upgrade.
{c Make sure that sufficient disk space is available for SQL Server 2008 R2 Setup. Disk space
requirements vary based on the components selected to upgrade. For disk space amounts, see
the "Hard Disk Space Requirements (32-Bit and 64-Bit)" section in the Hardware and Software
Requirements for Installing SQL Server 2008 R2 topic in SQL Server 2008 R2 Books Online.
{c Before upgrading SQL Server, enable Windows Authentication for SQL Server Agent and verify
the default configuration (that the SQL Server Agent service account is a member of the SQL
Server sysadmin group).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 38

{c Before upgrading from one edition of SQL Server 2008 R2 to another, verify that the
functionality currently being used is supported in the edition to which you are upgrading. For
more information, see the section for specific components inPlanning a SQL Server Installation
in SQL Server 2008 R2 Books Online.
{c Cross-platform upgrades (from x86 SQL Server 2000 or SQL Server 2005 to x64 SQL Server 2008
R2 and vice versa) are not supported.
{c Make sure that you are running a supported version of the Windows operating system.
{c The in-place upgrade will be blocked if3
©c The server has a pending restart
©c The Windows Installer service is not running
©c Windows System Monitor Performance Counters are corrupted
{c To upgrade an instance of SQL Server to a SQL Server failover cluster, the instance being
upgraded must be a failover cluster (or it must be upgraded to a failover cluster first). In other
words, to upgrade a standalone instance of SQL Server to a SQL Server failover cluster, install a
new SQL Server failover cluster, and then move user databases from the standalone instance by
using the Copy Database Wizard. (See Chapter 4, "High Availability," for more information.)

§  When the in-place upgrade process is running, avoid making any changes to the legacy SQL
Server 2000 or SQL Server 2005 system.

For more information, see the "Upgrade Notes" section in the Version and Edition Upgrades topic in SQL
Server 2008 R2 Books Online.

a   c ()
 ' 
  4 
 

 

The SQL Server 2008 R2 Installation Wizard installs the following prerequisites (if they are not already
present on the computer)3

{c .NET Framework 3.5 SP1


{c SQL Server Native Client
{c SQL Server support files

To reduce the time that is required for the upgrade process, install the .NET Framework 3.5 SP1
components (you must have SP1 or a later version) and SQL Server 2008 R2 Native Client beforehand on
the server that will be upgraded. Then, include the same components on the baseline image of the test
server. If the production system cannot be disturbed in any way before the scheduled downtime for the
upgrade process, the SQL Server 2008 R2 Setup program will automatically install the prerequisites as
part of the upgrade process. However, this increases the time that is required for the upgrade.

If either the Client Software or Database Services components are installed, Setup also installs3

{c Windows PowerShell 1.0 (if it is not already present)


{c SQL Server PowerShell snap-ins
{c The sqlps.exe command prompt utility for running SQL Server 2008 R2 PowerShell snap-ins

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 39

a   c 
!



Whether you are performing an in-place upgrade or a side-by-side upgrade, SQL Server Setup will ask for
an Instance ID. The Instance ID is a new concept in SQL Server 2008 R2. It is a unique identifier specified
during the upgrade (or install) to identify that specific SQL Server 2008 R2 installation. The Instance ID
behaves similarly to an instance of SQL Server 2000 or SQL Server 2005 name, but it has some additional
features. Default instances of SQL Server always have a default value of MSSQLSERVER. In addition, the
Instance ID is recorded in SQL Server 2008 R2's program files, which are located by default at
X3 Program Files Microsoft SQL Server MSSQL10.M À  M, where X is your system drive, such as drive
C.

Figure 1-4 shows an example of the Setup program requesting an Instance ID.

ë! +Instance Configuration screen of an in-place upgrade, which shows the Instance ID

Choose an Instance ID that makes sense; do not necessarily accept default values. This is especially true
for failover clustering implementations, where instances are not "local" and will have a presence on
each node. (For more information about clustering, see Chapter 4, "High Availability.")

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 40

a   c 
56

6
# 4  

()
 ' 
**+
#

In this section, we describe the minimum hardware and software requirements for running SQL Server
2008 R2. For detailed information about the minimum hardware and software requirements for all
editions of SQL Server 2008 R2, see Hardware and Software Requirements for Installing SQL Server 2008
R2 in SQL Server 2008 R2 Books Online. The following subsections are pasted for the reader͛s
convenience from information found in this link. The link might contain more recent information than
what is in this topic.

The following minimum hardware and software requirements apply to all SQL Server 2008 R2 editions3

{c All editions of SQL Server 2008R2 require .NET Framework 3.5. SQL Server 2008 R2 Setup will
install .NET Framework 3.5, the SQL Server Native Client, and the required SQL Server 2008 R2
Setup support files.
{c There is one exception3 For SQL Server 2008 R2 running on Windows Server 2003 (64-bit) on an
IA-64system, .NET Framework 2.0 SP1 is required. Note3 SQL Server 2008 R2 will be the last
version of SQL Server to support the Intel Itanium processor (for information about this, see
Windows Server 2008 R2 for Itanium-Based Systems).
{c SQL Server does not install the .NET Framework 3.5 SDK. However, the SDK contains tools that
are useful when you use the .NET Framework for SQL Server development. You can download
the .NET Framework SDK from the .NET Framework Downloads Web page.
{c For SQL Server Express and SQL Server Express with Advanced Services, you must manually
install the following components before you run SQL Server 2008 R2Setup3
©c SQL Server Express3 .NET Framework 2.0 SP2 and Windows Installer 4.5 (on Windows
Vista, use .NET Framework 3.5 SP1)
©c SQL Server Express with Advanced Services3 .NET Framework 3.5 SP1, Windows Installer
4.5, and Windows PowerShell 1.0

a   "c  7


 7

/ 
 
 
# 4  

The processor, memory, and operating system minimum requirements vary based on the SQL Server
2008 R2 edition you select. SQL Server 2008 R2 Books Online on MSDN contains an updated cross-
reference for the following combinations. The following links provide details for the server-based
editions of SQL Server 2008 R23

{c SQL Server 2008 R2 Datacenter (64-bit) IA64


{c SQL Server 2008 R2 Enterprise (64-bit) IA64
{c SQL Server 2008 R2 Datacenter (64-bit) x64
{c SQL Server 2008 R2 Enterprise (64-bit) x64
{c SQL Server 2008 R2 Standard (64-bit) x64
{c SQL Server 2008 R2 Datacenter (32-bit)
{c SQL Server 2008 R2 Enterprise (32-bit)
{c SQL Server 2008 R2 Standard (32-bit)
{c SQL Server 2008 R2 Developer (64-bit) IA64
{c SQL Server 2008 R2 Developer (64-bit) x64

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 41

{c SQL Server 2008 R2 Workgroup (64-bit) x64


{c SQL Server 2008 R2 Web (64-bit) x64
{c SQL Server 2008 R2 Express (64-bit) x64
{c SQL Server 2008 R2 Express with Tools (64-bit) x64
{c SQL Server 2008 R2 Express with Advanced Services (64-bit) x64
{c SQL Server 2008 R2 Developer (32-bit)
{c SQL Server 2008 R2 Workgroup (32-bit)
{c SQL Server 2008 R2 Web (32-bit)
{c SQL Server 2008 R2 Express, Express with Tools, and Express with Advanced Services (32-bit)

Note the following restrictions or constraints3

{c SQL Server 2008 R2 is not supported on Windows Server 2008 Server Core installations.
{c The Setup SCC will block Setup if the requirements for processor type and minimum operating
system, in addition to other conditions, are not met. For more information, seeCheck
Parameters for the System Configuration Checker in SQL Server 2008 R2 Books Online.
{c An in-place direct upgrade of SQL Server 2000 (64-bit) will not install SQL Server 2008 R2
Management Tools. To install the SQL Server 2008 R2 Management Tools, you mustrun Setup
again after the upgrade is completed. For more information, see Footnote 5 in Version and
Edition Upgrades in SQL Server 2008 R2 Books Online.

a   &c 5
!%
 
# 4  
8

&9

Hard disk is required to store the user data within your user databases. Consider the user data in your
disk space calculations, and if you intend to keep the target and new instances online in parallel for any
length of time, remember that you will need double the disk space to store the same data two times.

Additionally, there are disk space needs for the SQL Server system files and objects that must be
considered in your calculations. Installing SQL Server 2008 R2 requires that the Windows Installer create
temporary files on the system drive. Before you run Setup to install or upgrade SQL Server, verify that
you have at least 2GB of available disk space on the system drive for these files. (This requirement
applies even if you install SQL Server components to a non-system drive.) Table 1-4, from SQL Server
2008 R2 Books Online, shows the minimum disk space requirements for the major SQL Server 2008
R2components. For complete details, seeHardware and Software Requirements for Installing SQL Server
2008 R2.

Ô ! +&"(()'"*  ', 


ë  *  
', 
Database Engine and data files, Replication, and Full-Text Search 711MB
Analysis Services and data files 345MB
Reporting Services and Report Manager 304MB
Integration Services 591MB
Client Components 1823MB

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 42

SQL Server 2008 R2 Books Online 157MB

a   2c :;  
 
 
81/1&9

SQL Server 2008 R2on Windows x64 can use extended systems, also known as Windows on Windows 64
(WOW64). WOW64 is a 64-bit Windows edition feature that enables 32-bit applications such as SQL
Server 2008 R2 Management Tools to execute natively in 32-bit mode. Such applications function in 32-
bit mode even though the underlying operating system is running on the 64-bit operating system. As a
result, you can upgrade to a 32-bit SQL Server 2008 R2 edition on Windows x86, a 64-bit SQL Server
2008 R2 edition on Windows x64, or a 32-bit SQL Server 2008 R2 edition on Windows x64 using
WOW64.For more information, see the "Extended System Support" section in Hardware and Software
Requirements for Installing SQL Server 2008 R2.

§  A cross-platform, in-place upgrade from a 32-bit instance of SQL Server 2000 or SQL
Server 2005 (x86) to a SQL Server 2008 R2 64-bit instance (x64), or vice versa, is not supported.
Similarly, an upgrade in the reverse direction (an upgrade of a SQL Server 2005 64-bit instance
to a SQL Server 2008 R2 32-bit instance) is not supported. To change from a 32-bit to 64-bit
instance, or vice versa, you must use a side-by-side upgrade. To upgrade from SQL Server 2000
or SQL Server 2005 on a 32-bit system to SQL Server 2008 R2 on a 64-bit system, install SQL
Server 2008 R2 separately on the 64-bit version of Windows and then transfer the database
objects and settings of the legacy instance to the new instance. For more information, see the
"Upgrade Notes" section in Version and Edition Upgrades in SQL Server 2008 R2 Books Online.

a   +c 
()
 ' 


!
 

Although you can install SQL Server 2008 R2 on a domain controller, we do not recommend it for the
following reasons3

{c On Windows Server 2003, SQL Server services can run under a domain account or a local system
account. However, on a domain controller, SQL Server services cannot run under a local service
account or a network service account.
{c After SQL Server 2008 R2 is installed on a domain member server, the server's network role
cannot be changed from a domain member to a domain controller. SQL Server must be
uninstalled before the host computer is changed to a domain controller.
{c Similarly, after SQL Server 2008 R2is installed on a domain controller, it cannot be changed to a
domain member unless SQL Server is first uninstalled.
{c SQL Server 2008 R2 failover cluster instances are not supported where the cluster nodes are
domain controllers.
{c SQL Server 2008 R2 is not supported on a read-only domain controller.

For more information, see Installing SQL Server on a Domain Controller in SQL Server 2008 R2 Books
Online.

a   <c   


()
 ' 
**+
#
 

SQL Server 2008 R2 allows you to slipstream its install so that you can include the latest SQL Server 2008
R2 Service Pack (SP) or Cumulative Update (CU). The reason this is so important is that it can save you a

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 43

lot of time and steps. Instead of having to install (or upgrade) to SQL Server 2008 R2 and install a bunch
of patches post-install, it can all be done in a single shot unless you need an individual hotfix that is not
contained in an SP or CU. SQL Server does not ship slipstreamed, but you can create the updated
installation media on your own. For complete instructions, see the Microsoft Support blog post How to
fix your SQL Server 2008 Setup before you run setup (Part II), by Bob Ward.

a
c x    

We have mentioned that certain versions and components of SQL Server can be upgraded to SQL Server
2008 R2. Now let's be more specific about what versions, components, and upgrade paths are available.

a  " ac 
= 

()
 ' 
***

()
 ' 
**"

For an in-place upgrade, SQL Server 2008 R2's Setup program requires you to have certain versions of
either SQL Server 2000 or SQL Server 2005. (For more information, see "Setup3 System Configuration
Checker" earlier in this chapter.) Specifically, the in-place method that is provided by SQL Server 2008 R2
Setup can be used to directly upgrade the following versions3

{c SQL Server 2000 SP4 or later versions


{c SQL Server 2005 RTM or later versions (Windows Server 2003)
{c SQL Server 2005 SP2 or later versions (Windows Server 2008)

If you have to upgrade earlier versions of SQL Server 2000 or SQL Server 2005, use the side-by-side
method.

a  " c 

()
 ' 
2 *

()
 ' 
**+
#

SQL Server 2008 R2 cannot directly upgrade a SQL Server 7.0 instance in-place. For upgrading from SQL
Server 7.0 to SQL Server 2008 R2, available options include the following3

{c Upgrade the instance of SQL Server 7.0 in-place to SQL Server 2000 or SQL Server 2005, and
then upgrade the resulting instance in-place to SQL Server 2008 R2. This in-place upgrade path
requires two steps.
{c Upgrade the instance of SQL Server 7.0 to a new instance of SQL Server 2008 R2 by using a side-
by-side upgrade method.

Whether you use a two-step in-place upgrade or a side-by-side upgrade, you should use the SQL Server
2005 Upgrade Advisor to inspect the instance of SQL Server 7.0. If any blocking issues (discontinued
features or breaking changes) are found, you should remove them. For more information, see the SQL
Server 2005 Upgrade Technical Reference Guide white paper.

a  " c 
()
 ' 
  

SQL Server is a complex product, featuring many components that are fairly independent. Table 1-5
shows the SQL Server 2000 components that you can upgrade and what paths are available; Table 1-6
shows the same information for SQL Server 2005.

Ô ! -
    $    &"((( &"(()'"
&"(()'" M  $     $  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 44


    .&"(((/ .&"(((/
Database Engine SQL Server Setup One or two servers
(upgrades all databases and (Use backup/restore, detach/attach,
preserves server configurations or Copy Database Wizard)
when possible)
Analysis Services SQL Server Setup Use the Analysis Services Migration
Wizard
(see Chapter 11, "Analysis Services")
Integration Services None Use DTS Migration Wizard
(see Chapter 13, "Integration
Services")
Reporting Services Use SQL Server Setup (for a Use manual data transfer steps
default configuration only) (see Chapter 14, "Reporting
Services")
Notification Services Not Available Use the provided Notification
Services runtime add-in
(see Chapter 9, "Notification
Services")


Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 45

Ô ! 0
    $    &"((- "(()'"
&"(()'" M  $     $  

    .&"((-/ .&"((-/
Database Engine SQL Server Setup One or two servers
(upgrades all databases and (see Chapter 3, "Relational
preserves server configurations Databases")
when possible)
SQL Server High SQL Server Setup, with special See Chapter 4, "High Availability"
Availability Solutions considerations
(see Chapter 4, "High
Availability")
Analysis Services SQL Server Setup Manual data transfer
(see Chapter 11, "Analysis Services")
Integration Services SQL Server Setup Manual data transfer
(see Chapter 13, "Integration
Services")
Reporting Services SQL Server Setup Manual transfer of reports
(see Chapter 14, "Reporting
Services")
Notification Services Not Available Use the provided Notification
Services runtime add-in
(see Chapter 9, "Notification
Services")

a  " c 6




:

In a side-by-side upgrade, if data transfer is handled manually, there are no restrictionson the paths
taken from one edition to another3 In principle, any edition can be upgraded to another edition, if the
database data is compatible. However, there are some restrictions based on Enterprise features. For
example, table partitioning is supported only by the Enterprise edition of SQL Server 2008 R2 and SQL
Server 2005. So, a SQL Server 2005 Enterprise database that contains partitioned tables cannot be
restored to SQL Server 2008 R2 Standard.

However, there are restrictions on the upgrade path when you upgrade directly. When you use SQL
Server 2008 R2's Setup program for an in-place upgrade, the program will verify that the upgrade path
for SQL Server editions is enabled. For more information, see Edition Upgrade Rules in SQL Server 2008
R2 Books Online.

§ 3 The different components of SQL Server 2008 R2 must be kept at the same edition level
when they are on the same instance. For example, if you are running the SQL Server 2008 R2
Enterprise Database Engine on a particular instance, you must also install the Enterprise edition
of Analysis Services as part of that instance.

For a detailed view of what in-place upgrade paths are allowed, see the table "Version and Edition
Upgrade Paths" in the Appendix to this guide, and Version and Edition Upgrades in SQL Server 2008 R2
Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 46

a  " "c 


!


As databases continue to expand and support a growing global market, users must be able to work with
character data in meaningful ways. Collations are a powerful way for users to sort and compare strings
according to their own cultural conventions. Therefore, collations are an important factor when you
create a database and operate on the data. In addition, when you use the character data types such as
char and varchar, the collation dictates the code page and therefore determines which characters can
be represented for that data type.

§
   &"(()'"%SQL Server 2008 R2 introduces new collations that are in full
alignment with the collations provided by Windows Server 2008 R2. These new collations are denoted
by *_100 version and give users the most up-to-date and linguistically accurate cultural sorting
conventions.

The new collations include support for new East Asian government standards, linguistically correct for
surrogates, support for the Chinese minority scripts, Unicode 5.0 case table, and weights to previously
non-weighted characters that would have compared equal. Although new versions are being added to
the existing Windows collations from SQL Server 2000 and SQL Server 2005 to reflect these changes, all
current collations will be maintained in SQL Server 2005 for backward compatibility. Be aware that no
changes were made to the SQL_* collations.

         % Here are some considerations that might affect an upgrade
of a database collation3

{c Compatibility with existing instances of SQL Server or application code that depends on
consistent SQL Server collations sorting behavior3 Changing collations might require rebuilding
indexes, so consider the decision to change collations carefully based on business and technical
requirements.
©c The current need or future requirement to store character data from different
languages3 If you have both Unicode and non-Unicode data in your database, consider
Using the Windows-based collations because they apply Unicode-based sorting rules to
both Unicode and non-Unicode data. This provides the following benefits3
lc Enable consistency across data types in SQL Server because non-Unicode data is
converted to Unicode to perform comparison operations
lc Enable developing applications that use sort semantics consistent with SQL
Server, Windows, and other Microsoft applications
c
{ No one else is using the database during the change in collation.
{c You have no schema-bound objects that depend on the database collation, including the
following3
©c User-defined functions and views created by using SCHEMABINDING
©c Computed columns
©c CHECK constraints
©c Table-valued functions that return tables that have character columns with collations
inherited from the default database collation

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 47

©c A collation change that can potentially cause duplicate system names, such as switching
from case-sensitive to case-insensitive or changing from a collation with unique
character weights, which will raise an error and fail.Objects that can potentially cause
duplications are as follows3
lc Object names (procedure, table, trigger, or view)
lc Schema names (group, role, or user)
lc Scalar-type names (system and user-defined types)
lc Full-text catalog names
lc Column or parameter names in an object
lc Index names in a table
{c Changing the database collation does not alter the collations in pre-existing tables.New tables
that are createdafter you change to the new collation will use the new collation.
{c Changing between collations with different code pages is not recommended. This might result in
data loss when you change the collation of a column to a collation that is not recognized in the
target collation͛s code page. For example, if you change from a Japanese to an English collation,
be aware that most Japanese characters are not recognized by the Latin1_General_CI_AS 1252
code page.If you have to change collations to different languages, try the following3
©c Store only data that belongs to the code page for the character column.
©c Change from a non-Unicode data type (char, varchar) to a Unicode data type (nchar,
nvarchar).

For more information about how to change collations, you can download the following white papers3
The Impact of Changing Collations and of Changing Data Types from Non-Unicode to Unicode and Best
Practices for Migrating Non-Unicode Data Types to Unicode.

a  " &c 




),

The English version of SQL Server is supported on all localized versions of supported operating systems.
In addition, localized versions of SQL Server are supported on localized operating systems that are the
same language as the localized SQL Server version.

However, there are some important in-place upgrade restrictions when you change from one language
to another3

{c You can upgradelocalized versions of SQL Server 2000 and SQL Server 2005 to localized versions
of SQL Server 2008 R2 of the same language.
{c You cannot upgrade non-English localized versions of SQL Server to the English-language version
of SQL Server 2008 R2.
{c You cannot upgrade the English version of SQL Server to any non-English-language localized
version of SQL Server 2008 R2. Note3 This is a change from SQL Server 2005.
{c You cannot upgrade localized versions of SQL Server to localized SQL Server 2008 R2 versions if
to a different localized language. The in-place upgrade must be to the same localized language.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 48

Localized versions of SQL Server are also supported on English-language versions of supported operating
systems by using the Windows Multilingual User Interface Pack (MUI) settings. However, you must verify
certain operating system settings before you install a localized version of SQL Server on a server that is
running an English-language operating system with a non-English MUI setting. Verify that the following
operating system settings match the language of SQL Server to be installed3

{c The operating system user interface setting


{c The operating system user locale setting
{c The system locale setting

If these operating system settings do not match the language of the localized SQL Server, set them
correctly before you install SQL Server 2008 R2. For more information, seeCross-Language Support in
SQL Server 2008 R2 Books Online.

For more information about localization issues, see Collation and Unicode Support in SQL Server 2008 R2
Books Online.

a c x
  î
   

All applications, whether purchased or developed in-house, have to be tested and verified to work
against the new SQL Server 2008 R2 back end. Do not assume all applications will "just work" after an
upgrade. You might also have to perform specific application-related tasks before, during, or after the
SQL Server upgrade.

§  If you have a packaged application, before even planning an upgrade, check with the
software vendor to make sure that the software version that you are using is certified to work
with SQL Server 2008 R2 and supported on that platform. It is a good idea that you not upgrade
until you receive assurance of continued vendor support for the SQL Server 2008 version.

SQL Server 2008 R2 is closely coordinated with the .NET Framework. To take full advantage of many new
features in SQL Server 2008 R2, both the updated SQL Server Native Client (Version 10.0) on the server
and .NET Framework 3.5 SP1 on the client are required. SQL Server 2008 R2 will automatically install the
SQL Server Native Client 10.0 on all SQL Server 2008 R2 servers, but software developers must upgrade
their applications to use .NET Framework 3.5 to take full advantage of the new driver and many of SQL
Server 2008 R2͛s new features. However, it is not required that all applications use .NET Framework 3.5.

a  & ac ()
 ' 
§'
 
a* *

SQL Server 2008 R2 includes an updated version of the SQL Server Native Client, version 10.0. The
behavior changes that software developers should be aware of are documented in Updating an
Application to SQL Server 2008 R2 Native Client from SQL Server 2005 Native Client in SQL Server 2008
R2 Books Online.

Applications developed by using OLE DB or ODBC will still work when they connect to SQL Server 2008
R2. Although the overall recommended method for connecting to SQL Server 2008 R2 for non-.NET
Framework applications is through the new SQL Server Native Client,you can use the current OLE DB and
ODBC drivers until you upgrade the clients. However, new features in SQL Server 2005 and SQL Server

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 49

2008 R2, such as the new spatial and XML data types, are not fully supported in the OLE DB or ODBC
drivers. For more information, see When to Use SQL Server 2008 R2 Native Client in SQL Server 2008 R2
Books Online.

Although DB-Library client tools (such as isql.exe) are no longer supported in SQL Server 2008 R2, you
can still make connections to SQL Server 2008 R2 by using the DB-Library API. However, clients will be
unable to take full advantage of all the new SQL Server 2008 R2 features unless they use the SQL Server
Native Client API. Only the SQL Server Native Client API supports all the new SQL Server 2008 R2
features (through the new built-in OLE DB and ODBC interfaces). Embedded SQL (ESQL) applications are
still supported. For more information, see the note about DB-Library in Client Network Configuration in
SQL Server 2008 R2 Books Online.

a c   x





  Ô  
Clients that use .NET Framework 1.x can still work unchanged when they connect to an instance of SQL
Server 2008 R2. However, these applications cannot take advantage of new SQL Server 2008 R2 (or SQL
Server 2005) capabilities unless they are upgraded to ADO.NET 3.5 and the new SQL Server .NET
Managed Data Provider. For example, some new features such as Database Mirroring Automatic
Failover on LINQ or Multiple Active Result Sets (MARS) require the new drivers.

There might also be issues related to upgrading client applications. If client applications have to take full
advantage of new SQL Server 2008 R2 data types or features such as the XML data type, the client
applications must be upgraded to .NET Framework 3.5 SP1 or a later version.

There are very few issues when you move.NET 1.1 applications from SQL Server 2000 or SQL Server 2005
to SQL Server 2008 R2. However, the clients cannot take full advantage of new SQL Server 2008 R2
features. Some features such as snapshot isolation are available only through T-SQL commands. Also,
SQL Server 2005 Notification Services is not available for .NET 1.1 clients and is not part of SQL Server
2008 R2.

If you upgrade clients from .NET 1.1, 2.0, or 3.0 applications to .NET 3.5 SP1 or later versions, by
usingSQL Server 2005 or SQL Server 2008 R2, the client applications will be able to take full advantage of
new SQL Server 2005 and SQL Server 2008 R2 capabilities.

For information about SQL Server 2008 R2 Native Client, see the following links in SQL Server 2008 R2
Books Online3

{c SQL Server 2008 R2 Native Client Programming


{c Updating an Application to SQL Server 2008 R2 Native Client from SQL Server 2005 Native Client
{c When to Use SQL Server 2008 R2 Native Client
{c SQL Server 2008 R2 Native Client Features
{c Building Applications with SQL Server 2008 R2 Native Client
{c System Requirements for SQL Server 2008 R2 Native Client
{c SQL Server 2008 R2 Native Client (OLE DB)
{c SQL Server 2008 R2 Native Client (ODBC)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 50

{c Finding More SQL Server Native Client Information

For developer information about SQL Server 2008 R2 data access, see the Microsoft Data Developer
Center, which is the primary data access site for Microsoft developer technologies.

a  2 ac 
§:3
 6%

16
 ' 
**+
#

Installing .NET Framework 3.51 on Windows Server 2008 R2 is different than any previous version. If you
try to use the standalone installation package that ships with the DVD or that you can download, you
will see the error message in Figure 1-5. The only way to install .NET Framework 3.51 in Windows Server
2008 is using one of the mechanisms provided by the operating system3 the GUI-based Server Manager,
a command prompt, or via PowerShell. The good thing about this is that installing .NET Framework 3.51
will not require a reboot, maximizing your uptime.

ë! -Error message when trying to run the standalone .NET installer package

a  2 c 
§:3

 ' 
 

If you are not comfortable using a command prompt or PowerShell, you can use Server Manager to
configure .NET 3.51.

1.c From the Start menu, select Administrative Tools and then Server Manager.

2.c Select Features.

ac     
A backup of each database in an instance, including system databases, is the keystone of an upgrade
plan. Even when you upgrade to a new server by using a side-by-side method, you should still take
backups. Perform backups at the following points in the upgrade process3

{c Make a backup of the user databases and data after all users are out of the system and
before the upgrade process has begun. Do nothing until this is completed. Back up all
system databases at this point. These backups form the databases of record, marking the
final versions of your old environment. If you can, copy these backups to a different server
and make sure that they can be easily accessed even in a complete server-down situation.
Make sure that the media is intact so that you can restore the backups if necessary.
{c When the upgrade is complete, but before you do any configurations or changes, perform
backups under SQL Server 2008 R2. This lets you easily roll back to a point where the SQL

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 51

Server 2000 or SQL Server 2005 upgrade completed successfully but where an error was
introduced after that point.
{c After you make any changes to the SQL Server 2008 R2 databases and configuration as well
opening SQL Server for acceptance testing, make backups again. If the testers consider the
upgrade a success, these backups will be the initial backups for your new environment. If
testing finds errors but they are not serious enough to cause a rollback, you can restore
from these initial backups to revert the database to its original state, ready for a second
round of acceptance testing. Then apply required changes and repeat the backup process.
When testing is complete, still backup all databases before rolling out to production. These
backups then capture the final state of the database before they are put into production.

M  Make sure that either the Windows Server installation media with the appropriate keys
or good backups of the Windows Server installation image are available for a potential reinstall. You
can rebuild SQL Server only if Windows is stable and in a state to have applications installed on it.
It might seem that these backups are too many and will consume lots of disk space, but you can delete
most of them after the upgrade to SQL Server 2008 R2 is completed. It is a good practice to perform all
of this, just in case an unexpected issue requires a restore at any point in time.

ac   


    
Because SQL Server 2008 R2 was released on the heels of Windows Server 2008, you might be tempted
to combine a SQL Server 2008 R2 upgrade with an upgrade to Windows Server 2008 or Windows Server
2008 R2 to reduce the downtime of two major upgrades into one downtime event. However, upgrading
both at the same time can introduce a significant new variable into the SQL Server 2008 R2 upgrade
plan, increase the risk of failure, and increase the cost of rolling back. Therefore, a decision to combine
these two should be made carefully.

§  If you decide to change the operating system at the same time as the SQL Server upgrade,
we recommend that you design and execute a test of the upgrade and operating system
changes in a test or staging environment before you try it in production.

Some considerations when you upgrade both Windows and SQL Server3

{c If the legacy instances of SQL Server 2000 or SQL Server 2005 are on Windows Server 2000, an
upgrade of Windows is required because SQL Server 2008 R2 is not supported on Windows
Server 2000. In that case, consider a side-by-side upgrade to a separate server, especially if the
legacy server is older and does not meet the minimum requirements for SQL Server 2008 R2.
{c If the legacy instances of SQL Server 2000 or SQL Server 2005 are on Windows Server 2003, be
aware that SQL Server 2000 is
supported under Windows Server 2008. Therefore, if you are
currently using SQL Server 2000 and plan to upgrade the same server to Windows Server 2008,
upgrade your SQL Server 2000 instance to SQL Server 2008 R2beforeupgrading toWindows
Server 2008. This process will translate into two outages, but if you upgradeto Windows Server
2008 before upgrading to SQL Server 2008 R2,the resulting SQL Server 2000 instances will not be
supported.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 52

{c If a legacy instance of SQL Server 2000 is running on Windows Server 2000, use a multistep
process. For example, upgrade Windows Server 2000 to Windows Server 2003, and then SQL
Server 2000 to SQL Server 2008 R2, and finally Windows Server 2003 to Windows Server 2008 or
Windows Server 2008 R2.
{c If you are upgrading to Windows Server 2008 and the server is currently running SQL Server
2005, make sure that you apply SQL Server 2005 SP2or later versionsbefore the Windows
operating system upgrade; otherwise, you might encounter problems.
{c If you will reuse the existing server and upgrade Windows Server, depending on which version
of Windows that you start with and which is the final destination, you could perform an in-place
upgrade. This approach might also require installing a fresh version of Windows Server. If you
perform a fresh install of Windows Server, make sure that all SQL Server databases are backed
up, that all settings are known, and that all users are scripted out.
{c Windows Server 2008 has a new installation option called Core. Core is basically a locked-down,
minimal version of Windows Server that does not have an interface other than a command line.
SQL Server does not support Core because Core does not support the SQL Server-required
installation of the .NET Framework.
{c There are two kinds of virtualization with a Windows Server 2008 installation3 with Hyper-V and
without Hyper-V. SQL Server is supported on both types. However, as a rule, a server that is
used for SQL Server production data should be dedicated only to SQL Server to reduce the risk of
another process bringing SQL Server down. Unless a server must run virtual machines that will
host SQL Server, install Windows Server 2008 without Hyper-V. (Going without Hyper-V also
means that Windows administrators have one less feature to worry about when patching for
security.) If Windows Server 2008 is installed with Hyper-V, apply the final Hyper-V Release to
Manufacturing (RTM) patch. For more information, see3
©c The articlesHyper-V Update for Windows Server 2008 x64 Edition (KB950050) or Hyper-
V Update for Windows Server 2008 (KB950050) in the Microsoft Knowledge Base.
©c For Hyper-V on Windows Server 2008 R2, see
lc The TechNet Virtual LabVirtualization with Hyper-V
lc The following white papers3
{c Running SQL Server 2008 in a Hyper-V Environment
{c Planning, Implementing, and Supporting SQL Server Virtualization with
Windows Server 2008 R2 Hyper-V and Live Migration
{c You cannot use an old Windows NT-style domain for a Windows Server 2008 server. You must
be using Active Directory. If your organization is using older-style domains, you cannot deploy
Windows Server 2008 until your Active Directory infrastructure is upgraded.
{c By default, Windows Server 2008 is more secure than Windows Server 2000 and Windows
Server 2005. Many of its features are not configured, so there will be additional work involved in
the upgrade.
{c Windows Server 2008 supports only SAS, fiber channel, and iSCSI. If you are using older parallel
SCSI, you have to upgrade your disk solutions to support Windows Server 2008.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 53

For more Windows-specific information about how to deploy and upgrade to Windows Server 2008, see
Upgrading to Windows Server 2008 and Windows Server 2008 R2 Upgrade Paths. For information about
how to upgrade to Windows Server 2008 or 2008 R2 failover clustering with SQL Server 2008 R2, see the
"Upgrading Failover Clusters" section in Chapter 4, "High Availability."

aac    


 
 
You might have multiple instances of SQL Server 2000 or SQL Server 2005 on a standalone or clustered
server. Multiple instances can make the upgrade process more difficult, so you must consider them
before the upgrade. The options are simple3 Should all instances be upgraded in one maintenance
window, or should you upgrade them individually?

Upgrading them all at the same time will minimize overall deployment resources because you have to
schedule only a single outage. But that also means that if anything goes wrong for any reason, you might
have more to fix and deal with, which could increase downtime. It is a risk versus reward decision.

aaac      


 
Many SQL Server databases are in the hundreds of gigabytes or terabytes range. This presents special
challenges in any upgrade process because you have to account for constraints in time and hard disk
space when you deal with large amounts of data in a short window of maintenance time. Databases in
the terabyte range can potentially take days to copy over a networkͶeven the fastest networks. These
VLDBs might be mission-critical databases powering the largest systems in your business and might
tolerate very little downtime. When an upgrade has to occur over a weekend, you might have to use
several techniques and put in many preparation hours to meet the required time frames for success.
You might have to revise the upgrade window if the upgrade will not fit within it.

When you work with VLDBs, more than any other scenario except perhaps high availability, careful
planning is required to ensure a successful upgrade experience. The cost of a failure if there is an
unexpected issue is much larger because of the time involved to resolve the issue. For example, if a copy
of a database backup file stops half way through, or if a stored procedure uses discontinued T-SQL
syntax, you will lose time. With an in-place upgrade, you gain more time because you do not have to
physically move the database. However, this upgrade method makes a restore costlier if there is a
serious failure causing you to roll back to the original database. Advance testing in a full-size test or
staging environment is very important in these cases.

For more information about VLDB upgrades involving failover clustering or database mirroring, see
Chapter 4, "High Availability."

aac    x  


 
For issues related to high availability features such as clustering, database mirroring, log shipping, and
replication, see Chapter 4, "High Availability." See Chapter 4 even if you do not use these features for
high availability. For example, if you have to upgrade systems that use replication, even if the upgrade is
not for high availability purposes, you need to review Chapter 4͛s information.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 54

aac     


 
For small, simple instances where you can afford maintenance downtime during the business day, it
might not be important to take additional measures to speed up the upgrade and minimize end-user
downtime. But many times, you will want to take the quickest route to minimize the inconvenience to
your business when a business application is offline waiting for the upgrade to be complete. For high
availability applications, you might have to take additional measures to absolutely minimize the
downtime. For high availability and VLDB upgrades, see the detailed information in Chapter 4, "High
Availability," which goes beyond the basic information in this section.

The following steps can help minimize the downtime involved in an in-place upgrade or side-by-side
upgrade3

{c
*   & % Make sure that the legacy instances of SQL Server 2000
or SQL Server 2005 are at the correct service-pack level for an in-place upgrade. If they are not
at the correct level, plan to update them before an in-place upgrade (see "Setup Requirements
for an In-Place Upgrade" earlier in this chapter).
{c  *      ,   % SQL Server 2008 R2 Setup also has Windows
and other component requirements (see "Setup Requirements for an In-Place Upgrade" earlier
in this chapter).
{c   %§Ô 1    %If you can, install .NET Framework 3.5 SP1 or a later
version and Windows Installer (MSI) 4.5 beforehand on the target server. Both require a restart.
For an in-place upgrade, if a restart in production cannot be enabled except for the upgrade,
install them during the upgrade and not earlier. For a side-by-side upgrade to a separate server,
installing these components before the upgrade will help reduce downtime. When you run the
SQL Server 2008 Upgrade Advisor on a legacy server, a restart will be required if MSI 4.5 must be
installed.
{c   2  "(()!   % If Visual Studio 2008 is installed on the
server, make sure that it is at the SP1 level (see "SQL Server Prerequisites Installed by Setup"
earlier in this chapter).
{c   &"(()'"    % Install the SQL Server 2008 R2common
components (such as the SQL Server 2008 R2 SQL Native Client) before the upgrade. Also
consider pre-installing the Management Tools if SQL Server 2008 R2 Management Studio (SSMS)
is not required to manage SQL Server 2000 instances. (For more information, see Chapter 2,
"Management and Development Tools.")
{c           % In a side-by-side upgrade, SQL Server
databases must be transferred during the upgrade, and several strategies are available, such as
backup and restore, detach and attach, and log shipping. (For more information, see Chapter 3,
"Relational Databases," and Chapter 4, "High Availability.") For Analysis Services, you can use
backup and restore (see Chapter 11, "Analysis Services").
{c $   % Create and use new service accounts and groups, if it is necessary,
with your SQL Server 2008 R2 implementations. This guarantees account separation from the
legacy instances of SQL Server 2000 and SQL Server 2005. An in-place upgrade will not

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 55

automatically change the legacy instance͛s service accounts. Create new domain-based service
accounts that have the correct user rights on each server, and after the upgrade, use SQL Server
Configuration Manager to update the SQL Server 2008 R2 services to use these new accounts.
{c
*     % When you upgrade relational databases, run a Full DBCC CHECKDB on
databases before upgrading while the database is online so that you do not affect downtime.
(See Chapter 3, "Relational Databases," for more information.)
{c d *        % Check that your backup media has no errors and is
available for restores if necessary (see "Plan for Backups" earlier in this chapter).

a
c      
Every upgrade of a production database system that contains valuable data should occur in the context
of a good plan. In addition to performing the upgrade-plan tasks we have already covered, you should
also follow some other general best practices when planning for an upgrade.

a
ac Ô

    Ô 

If you do not have the luxury of extensive planning or testing and you decide to just upgrade, we
recommend that you take some basic precautions so that you can recover from any issues that might
arise3

{c Schedule a longer maintenance downtime window than you think you must have. If everything
finishes without issue, you will be able to bring users back online faster than they expected. But
if unexpected issues arise, you will have more time to deal with them without inconveniencing
users.
{c Do a complete backup of all the files and installed software on the server in case you have to
restore the server to its previous state. Confirm that your backup media is complete and
available.
{c Do a complete backup of all the user databases on the server in case you have to selectively
restore user databases. Confirm that your backup media is completeand available.

After the upgrade, check before you leave to make sure that everything looks to be working. Make sure
that applications return to running correctly and that transaction workloads are processed correctly.

It is best not to treat an upgrade informally, as a one-off procedure. Instead, treat it as a major database
upgrade. This approach implies the following steps3

{c Applying database change control procedures to the upgrade project


{c Guaranteeing sufficient integration and quality assurance (QA) testing
{c Developing verification and acceptance tests
{c Scripting and automating the deployment process and tests as much as you can
{c Developing a rollback plan in addition to a priority patch strategy
{c Guaranteeing sufficient downtime for the upgrade

The actual steps that you use should comply with the rules and procedures already existing in your
organization, but most likely, they will include all the above. The important point is that an upgrade to

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 56

SQL Server 2008 R2 is not a minor change to your production database system; instead, it should fit into
existing procedures for major database changes.

a " a ac 
%

Before you try to upgrade to SQL Server 2008 R2, make sure that those administering or deploying SQL
Server 2008 R2 are ready. Just as you would with any other application, never assume that your staff can
deploy and then manage the upgraded system without being correctly prepared.

Before deployment, set up a SQL Server 2008 R2 environment so that everyone who has to update his or
her skill set can become familiar with the new version. If the database administrators (DBAs) are
comfortable with SQL Server 2008 R2 by the time of production deployment, the transition from SQL
Server 2000 or SQL Server 2005 will go much more smoothly.

There are many resources that are available to update skills. To start, see the SQL Server 2008 R2
Learning Center. Also there is free access to more than 100 hours of training material on theSQL Server
2008 Jumpstart technical training site. Presentations, recordings, hands-on labs, and demonstrations
cover overview sessions, database infrastructure and scalability, business intelligence, developmentand
Software + Services, and application compatibility and upgrade.

a " a c ! 






Work as part of a team, document the planning process, and communicate the upgrade effectively.
Team members and stakeholders usually include not only DBA staff, but Operations staff, QA staff, the
Security officer, and application/business owners. Explicitly document requirements and establish
agreement from relevant stakeholders, just as for any major database server change. Use the
documentation as a basis to execute the upgrade during the deployment phase. The plan should be as
detailed as possible, and you should store the resulting document or documents by using some form of
change control such as a source control system. In the rest of this section, we will detail these steps.

When documenting the plan, include the upgrade requirements in addition to the rationale for choosing
an upgrade strategy for each instance or class of instances. Use the rest of the plan to detail remaining
issues. For example, the plan might include the following steps3

{c M       *% This step includes installing Microsoft Windows Installer (MSI) 4.5,
.NET Framework 3.5 SP1, and the SQL Server Native Client on the target instances. Because
these steps do not affect the application, they can occur before the actual upgrade deployment
begins. Be aware that installing MSI 4.5 requires a restart of the server.
{c      % If performance is an important feature of the current legacy
system, collect data that indicates typical performance measurements for important and
common queries. Refer to these baselines after the upgrade if reports show that performance
has changed. Users might be mistaken, and you might find through the baselines that the new
system performs equally well or better.
{c   , % The deployment of an upgrade will involve some downtime for
the targeted database servers. When you perform the actual upgrade, allow for enough
downtime so that the processes can be completed successfully. Try to give yourself time to roll

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 57

back in case an unexpected issue arises that cannot be resolved in the downtime window. This
might mean that you reach a go/no-go deadline within your downtime window where you must
decide whether to finish the upgrade or roll back.
{c    * % The server environment for targeted database servers might have
their own infrastructure complexities. Detail the steps that you must follow for taking the
systems offline for a while and bringing them back online. Also detail the steps to take during
the upgrade processes. The upgrade steps, in particular, might be more complex. Regardless of
which method that you use, you might have to apply scripts at certain important points to
resolve issues that are identified by Upgrade Advisor. (For more information about how to
develop checklists, see the "Upgrade Checklists" section later in this chapter.)
{c M   *      % Although a part of the deployment process, this task is
worth calling out separately. One of the first steps in the deployment plan should be to back up
the targeted databases. Also verify the backups, and have a strategy for restoring them if it is
necessary.
{c          % Clearly state what criteria your organization will use to
validate that the upgrade was successfulͶin other words, that it produced the result expected.
This might consist of scripts run to inspect the instances of SQL Server 2008 R2 and verify that
issues are resolved, that configuration settings are as expected, and so on. It might include
bringing applications online selectively and processing some transactions to confirm successful
operation.
{c       % The upgrade might succeed at the instance of SQL Server 2008
R2 level, but some other unaccounted-for variable in the server infrastructure might still prevent
applications from running correctly. Whatever the case, determine how the organization will
accept the upgrade and how it will make the "go/no-go" decision. This goes beyond validating
the upgrade result3 It focuses on whether the applications that use the targeted database
servers run as expected and required. It might be appropriate to enlist the support of the QA
team to develop appropriate acceptance tests.
{c    *  % If the upgrade is unsuccessful or if the acceptance tests are unsuccessful,
be prepared to back out of the process and restore the original conditions. This is much easier to
do with a side-by-side strategy than with an in-place upgrade. However, the importance is clear.
For example, with an in-place upgrade, a rollback plan might require restoring a disk image (also
known as a "ghost" image) of the computer that is running SQL Server 2000 or SQL Server 2005,
and then restoring the SQL Server 2000 or SQL Server 2005 databases from the deployment
backup.
{c M         % Even after the upgrade is validated and accepted, you might
have some remaining tasks to perform, such as updating statistics in the relational database or
rebuilding cubes in SSAS. You might also have to reconfigure log shipping, reconfigure database
mirroring, reestablish replication, test a failover cluster, or verify that certain SQL Server Agent
jobs run correctly.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 58

a
c       
  
As an experienced IT professional, you probably realize that the more changes started in a project, the
more complex the testing becomes and the higher the risk of problems. The same is true of upgrading.
The simpler the upgrade process, the better its chance of success without much intervention. On the
other hand, the more complex, the more likely you will want to make the additional effort to ensure a
successful upgrade outcome.

Here are some key variables to consciously decide to add to an upgrade process and the new system.
Some changes might occur at the SQL Server-instance level3

{c
  % First, you must deal with the consequences of changing SQL Server versions.
Upgrade Advisor details these issues and is the best source for this kind of information. These
changes cannot be avoided. For more information, see the previous coverage of Upgrade
Advisor and backward-compatibility issues.
{c
   % You also have to consider the effects of upgrading and at the same time
changing the SQL Server edition you are running. This combination of changes can have
significant consequences. If you are using an in-place upgrade, the result will be at the same
edition level or higher. Even this might present issues. For example, if you are upgrading from
SQL Server 2000 MSDE to SQL Server 2008 R2 Express, you can no longer rely on SQL Server
Agent jobs. In this case, you might be better served by upgrading to SQL Server Workgroup
instead of SQL Server Express. If you choose a side-by-side upgrade, you can change edition level
in any direction. For example, you can transition by using a side-by-side upgrade from a SQL
Server 2000 or SQL Server 2005 Enterprise two-node failover cluster to a SQL Server 2008 R2
Standard two-node failover cluster. However, in that case, you would lose access to Enterprise
features that you previously had available. Generally, reduce the number of changes to the
system by staying at the same edition level unless your organization needs a different edition͛s
features.
{c
 *      % If you perform an in-place upgrade, the kind of
instance will remain the same. If you plan an upgrade of a default instance of SQL Server 2000 or
SQL Server 2005, the result will be a default instance of SQL Server 2008 R2. However, if you
choose a side-by-side upgrade onto two servers or even on a single server, you could upgrade a
default instance to a named instance, or vice versa. Changing from a default to a named
instance is a variable that could add complexity to the upgrade and require changes in
applications and users who are connecting to the resulting instance. Do not try this change
unless you are prepared for its effects.
{c
    % Making changes to the SQL Server configuration at the server level
might make the upgrade more difficult. For example, suppose that on the current system, there
is no value set for the maximum degree of parallelism. But in the new system, you decide you
want to set it to 4. Such a change could adversely affect the behavior of some queries. To make
sure that the upgrade is under control, do not change configuration values unless you are
reasonably sure of the consequences.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 59

{c
      . You might want to change the kind of authentication that is used for
a given database server, such as changing the server to use only Windows authentication.
However, that kind of change would be better reserved for another time unless there is no
possibility that the change will harm the system. If the authentication change causes problems,
users might mistakenly blame the upgrade process.

In a complex upgrade scenario, you can reduce the risk of problems by keeping all server-level
configurations the same between instances and avoiding new introductions to the system until after the
upgrade isconsidered successful.

At the database level, possible changes during a direct in-place upgrade or side-by-side upgrade include
the following3

{c
        % Minimizing changes at the database level will make
the upgrade process smoother. If you can do this, make consolidation or distribution of
databases a separate project.
{c
     %Keep the new databases at the same compatibility
level, and move them to the new compatibility level after you have validated the upgrade͛s
success.
{c
   3 %Avoid making upgrades to the database schema, structure, or code
objects part of the upgrade project.

If you decide to make these kinds of changes at the database level, we recommend that you design and
execute a test of the upgrade and database changes in a test or staging environment before you try it in
production. When you introduce other variables into the upgrade process, it might be difficult to
separate the success of the upgrade from any problems associated with the other changes.

You might also be tempted to change the database server infrastructure while you are upgrading. These
changes might include the following3

{c
    % For an in-place upgrade, you must use the same server. However, in
a side-by-side upgrade, you can put the new instance on the same server or a different server. If
on a different server, such a change implies a change of IP address and server name in the
network, unless you perform a rename and readdress of the servers in some manner. Users and
applications must now adapt to the new server name and IP address, which might be a
complexity that you cannot avoid.
{c   % For a side-by-side upgrade, you might decide to keep the same server and
instance name by pulling the legacy server out of the domain, adding in the new server, giving it
the same IP address as the legacy server, and renaming the new server to the legacy server
name. However, with an in-place upgrade, in which the new instance of SQL Server 2008 R2
becomes a named instance, be aware that you cannot rename an instance name or change a
named instance to a default instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 60

{c
 
$ #"   0+  % You might also view a side-by-side upgrade as an
opportunity to put the new instance on a 64-bit server instead of your current 32-bit server. In
this case, be prepared to install the correct editions and be aware of any restrictions, as
described earlier in this chapter.
{c
      % You might see an in-place upgrade as an opportunity to
change server hardware, such as memory, number of CPUs, or disk configuration. Such changes
could affect the resulting user acceptance of the upgrade if problems arise. Only make these
changes if you can fully test their effects beforehand.
{c
 1  %Changing the Windows version in a side-by-side upgrade might
have unintended consequences if the new operating system is configured incorrectly and in the
same manner as the legacy computer. Again, you must test this kind of change beforehand. For
an in-place upgrade, upgrade the operating system first, and make sure that the legacy SQL
Server is stable on the newer version of Windows before upgrading to SQL Server 2008 R2. (For
more information, see "Upgrading Both Windows and SQL Server" earlier in this chapter.)

§ 3 If your legacy instance of SQL Server 2000 or SQL Server 2005 is installed on
Windows 2000 Server, you must upgrade to a new server by using a side-by-side
upgrade because SQL Server 2008 R2 is not supported on Windows 2000 Server.

{c      % For information about failover clustering, see Chapter 4, "High
Availability."
{c M           % For information, see Chapter 4, "High
Availability."

Just remember3 The fewer changes that are introduced to the infrastructure during the upgrade process,
the less complex an upgrade will be. The more changes that you introduce concurrently, the more
testing you will want to do in your test or staging environment. If you absolutely must combine multiple
changes within the upgrade process, plan for additional testing in your test or staging environment to
reduce the risk of encountering unexpected issues during the production upgrade.

a
c î
   î 

A key component of a complex application upgrade in IT shops is a checklist of activities. Because many
of the steps that are required for an upgrade to SQL Server 2008 R2 are the same as would be required
for a major application upgrade, existing application upgrade checklists can become the basis for SQL
Server upgrade checklists. For a sample checklist for several different upgrade tasks, see Appendix
2,͞Upgrade Planning Deployment and Checklist.͟

When you develop an upgrade checklist, consider the following points3

{c Classify instances of SQL Server into classes, based on how important the data is. Consider a
possible scenario in which a given SQL Server instance could be classified into one of three
levels. Perhaps only the top-level systems use high availability technologies, the mid-level
systems might use log shipping for creating warm standby servers, and the lowest-level
databases might require only nightly backups. In this scenario, the checklist for upgrading the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 61

top-level instances of SQL Server would be much more extensive and require full testing and a
complex rollback plan. In contrast, upgrading the lowest-level instances of SQL Server would
have a much simpler checklist.
{c Incorporate application steps and SQL Server integration into upgrade checklists. For example, if
a given instance of SQL Server is involved in replication as a subscriber, make sure that you add
steps into the upgrade checklist for removing the legacy instance SQL Server as a subscriber,
putting the new instance in its place, and testing the result to ensure that replication is still
running.

The other chapters in this guide and SQL Server 2008 R2 Books Online contain many topics that contain
valuable information that can help in developing upgrade checklists3

{c Database Engine3 SeeConsiderations for Upgrading the Database Engine and Chapter 3,
"Relational Databases"
{c Management and Development Tools3 See Chapter 2, "Management and Development Tools"
{c Clustered environments3 SeeUpgrading a SQL Server Failover Cluster and the section on failover
clustering in Chapter 4, "High Availability"
{c Replication3 See Considerations for Upgrading Replicated Databases and the section on
replication in Chapter 4, "High Availability"
{c Analysis Services3 See Considerations for Upgrading Analysis Services and Chapter 11, "Analysis
Services"
{c Integration Services and DTS3 SeeConsiderations for Upgrading Data Transformation Services
and Chapter 13, "Integration Services"
{c Reporting Services3 SeeConsiderations for Upgrading Reporting Services and Chapter 14,
"Reporting Services"

a
c Ô

    
Testing is easy to propose but frequently difficult to perform in practice, usually because of its
complexity and other pressing work. If your data is valued, test the upgrade plan fully in a test or staging
environment before you try it in production.

Make sure that you test the plan with the people who will actually perform it. Testers should be familiar
with the upgrade plan. Trying to troubleshoot mistakes because of unfamiliarity during the deployment
process is stressful and costly.

Work with your QA team to make sure that the testing occurs. QA departments frequently already have
acceptance criteria, smoke tests, and so on that they apply during application upgrades. Check with the
QA team for help and support for a SQL Server upgrade also.

Here are some general considerations for testing either an in-place upgrade or side-by-side upgrade3

{c Begin by building a test or staging environment. Consider putting the test server or servers in a
test environment that has its own domain so that you can use the same server and SQL Server
instance names.Make sure that the test servers match production in disk volume assignments

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 62

and free disk space. This is especially important in an in-place upgrade or a side-by-side upgrade
on the same server. In a side-by-side upgrade to a different server, you might use the additional
server for testing as well.
{c Test the upgrade multiple times. To make repeated testing easier, you could reset the test
environment back to its original state quickly. Making a disk image of the database server, in
addition to copies of all data files, could be helpful. Then, restore the ghost image and data file
copies to the original servers. Or, you could use a Virtual PC (VPC) image or images to build the
test environment if the VPC image really can support all the components and behavior of the
production server. Reverting the VPC image to its original state when closing it down makes a
second test run much easier.
{c Install the .NET Framework 3.5 SP1 and SQL Server 2008 R2 drivers on the production server by
using SQL Server 2008 R2 Setup before the upgrade process, if that is possible and matches the
upgrade plan for production. This saves time during the actual upgrade.
{c Execute Upgrade Advisor remotely against the test server that runs the legacy instance of SQL
Server 2000 or SQL Server 2005 and validate that its output matches what is received when it is
executed against the production system. Then, apply scripts to fix blocking issues that Upgrade
Advisor reveals. In some cases, fixing blocking issues might break the legacy application. If that is
the case, apply additional scripts or code as workarounds to update the database code or the
application so that it continues to operate. Again, it is important to verify that the application
operates correctly. For more information, see "SQL Server 2008 R2 Upgrade Advisor" earlier in
this chapter.
{c When the upgrade is complete, apply any later scripts that might be required to resolve post-
upgrade issues uncovered by Upgrade Advisor.
{c Upgraded relational databases will have a compatibility level of 80 if you upgraded from SQL
Server 2000, or 90 if you upgraded from SQL Server 2005. At this point, make sure that
databases have the compatibility level that your company requires for continued production
after the upgrade.
{c As soon as the test server reaches its final state of the upgrade process, test all relevant
applications that are running against the upgraded instance of SQL Server 2008 R2.
{c Test the process of rolling back the in-place upgrade to the original SQL Server version so that
you are confident of the rollback process in case you have to revert the upgrade during the
maintenance window.

a "  ac 3 




Some additional considerations for testing an in-place upgrade include the following3

{c To test an in-place upgrade, put a copy of the production instance of SQL Server 2000 or SQL
Server 2005 on a test server so that your test includes "real" data and objects. To the best of
your ability, make the initial state of the test server duplicate all necessary components of the
production server.
{c After the test environment is built, verify that it behaves correctly with the same, or copies of,
application components that connect to the production system.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 63

a "  c 3 

 


There are some special considerations for testing a side-by-side upgrade. A side-by-side upgrade can be
more complex because more SQL Server instances will be involved, either on one server or on two
distinct servers.

Whether you perform a side-by-side upgrade on the same server or separate servers, consider the
following points3

{c A side-by-side upgrade requires manually transferring data and components to the instance of
SQL Server 2008 R2. After you install the parallel instance of SQL Server 2008 R2, test the
process of manually transferring components to the new instance.
{c To repeat the side-by-side upgrade tests, you might not have to restore the test server from a
ghost image. You could uninstall SQL Server 2008 R2 and remove the data files to set the server
back to its original state and repeat the upgrade tests. Make sure that you test uninstalling SQL
Server 2008 R2 and verify that the legacy version of SQL Server 2000 or SQL Server 2005 is
working correctly.
{c In a side-by-side upgrade, the rollback will most likely be to the original instance of SQL Server
2000 or SQL Server 2005. Make sure that you test the rollback scenario.

In a side-by-side upgrade on a single server, consider the following additional items3

{c You could run the legacy SQL Server instance in parallel with the new instance of SQL Server
2008 R2. If that is part of the upgrade plan, make sure in the test environment that running in
parallel will not require too much of the server's resources.
{c When the cutover to the new instance of SQL Server 2008 R2 occurs and the instance is verified
as ready for production, stop the legacy instance of SQL Server, leaving it dormant for a while as
a potential rollback instance.
{c After the upgrade has passed acceptance tests, uninstall the legacy instance without disturbing
the new production instance.
{c Decide whether the production system will be online during the installation of SQL Server 2008
R2. If this is the case, test the effect that SQL Server 2008 R2 Setup has on application
performance.

In a side-by-side upgrade to a different server, consider the following additional item3

{c If the upgrade plan includes removing the old server from the domain and renaming the new
server with the legacy name and legacy IP address, test this step as well.

Now, perform final tests on the new SQL Server 2008 R2 server. To rerun the tests and gain confidence
in the plan and deployment, repeat the process by restoring the baseline target server.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 64

a

c  x 
  î
    

An upgrade plan must consider all possibilities. Some might be ignored as improbable, but for all likely
scenarios, the highest priorities must be to protect any production data and to be able to restore the
system to its original state if it is required. The following tasks help provide that protection3

{c d *     . In the upgrade checklist, include steps for backing up all the databases
and other data that would be required to rebuild the system.
{c        4     . As part of the upgrade checklist, at
some point decide whether the upgrade is successful and the system can be put back into
production. The final go/no-go decision might involve a team of people, including the testers
who determine whether the application operates as expected.
{c    *     . Specify in sufficient detail how to restore the system if it is
necessary. The more detailed the plan, the better, because rollbacks usually occur in high-stress
situations. Clearly defined steps are easier to follow in those contexts.
{c Ô   *. Test the rollback plan to make sure that it will actually work. The degree of
testing might be a function of how important the data is and how time-critical a rollback would
be. There can be no confidence in an untested rollback plan.

a c 
  Ô 
As soon as you have completed the upgrade tasks, two more steps are required3

{c Integrating the new SQL Server instance into the application and database server environment
{c Determining whether the upgrade was successful

These two steps are not necessarily sequential3 For example, you might apply some acceptance criteria
immediately to obtain a go/no-go decision. This could then be followed by integrating the new instance
and applying the remaining set of acceptance tests.

a ac 


  
  
 
  

First, make sure that the new instance of SQL Server 2008 R2 will operate with the applications that
need the data. You might have to perform upgrades to the application to get everything working
correctly. But in most cases, the transition should be seamless and not require any application changes.

There might be additional requirements affecting the upgrade that depend on the environment of the
resulting instance of SQL Server 2008 R2. Some examples include the following3

{c & *%The current system might depend on linked server relationships and definitions
that must be applied for an upgrade. Failures in the application might result if those linked
servers are not defined and tested correctly.
{c M   5  %The legacy database system might receive data imports and be the source
of data exports. These imports and exports might use DTS, be converted to SSIS, or use other
tools. You have to isolate these requirements and make sure of the resulting upgraded
instance͛s correct participation.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 65

{c
     & %If selectively transitioning legacy SQL Server
instances, make sure that the resulting instance of SQL Server 2008 R2 has components that can
still connect successfully to the older SQL Server versions.
{c ,    0+   &% These required drivers might
include drivers for accessing other database systems and mainframes from a 64-bit server.
{c   5    % After you upgrade to SQL Server 2008 R2 from
another edition of SQL Server, you must reapply any hotfix or service pack updates to the
upgraded SQL Server instance.

a c 
  x
 x 
 
Now you are ready to apply the criteria for final acceptance of the upgrade and decide whether the new
system can go live. For a complex application, this decision will likely require the input of a QA team to
make sure that the applications are running correctly. For simpler applications, you could use "smoke
tests" that give brief but reliable results as to the viability of the application. Consider involving your
stakeholders (such as application owners) in this kind of final acceptance testing.

a c Ô  


   
The best time to discover problems with an upgrade is when validating the upgrade plan in a test
environment. Most upgrade issues related to the static code and objects in the instance, as well as the
techniques recommended to resolve them, are fully documented in Upgrade Advisor. Dynamic code
requires a workload to verify and troubleshoot.

General troubleshooting techniques include the following3

{c Troubleshooting an in-place upgrade is basically the same as troubleshooting a SQL Server 2008
R2 installation. The SQL Server 2008 R2 Setup program logs a summary of its actions in the
Summary.txt file in the Program Files Microsoft SQL Server 90 Setup Bootstrap LOG folder.
The Summary.txt file contains a section for each SQL Server component's installation summary.
{c Detailed log files are located in the Files folder under the path just mentioned, providing one file
for each component and for many subcomponents. For information about interpreting the log
files, see How to3 Read a SQL Server Setup Log File in SQL Server 2008 R2 Books Online.
{c You use the same log files for troubleshooting a side-by-side upgrade as an in-place upgrade,
except that the actual data transfer will not be logged because it is a manual process that is not
under the control of SQL Server 2008 R2 Setup.
{c The steps for troubleshooting a side-by-side upgrade are basically based on the technique that
you use for transferring data. If you use the backup/restore or detach/attach side-by-side
upgrade method, capturing the output of those processes to text files is possible as long as you
use the SQLCMD command-line tool and redirect the output to a file. If you use the Copy
Database Wizard to transfer data, the process is interactive, and you have to watch it live for
potential errors.

a c      


 x
          
After you perform a side-by-side upgrade on a single server or separate server, the old servers and SQL
Server instances will still exist. Before uninstalling or decommissioning the server, stop and disable the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 66

SQL Server services before going live with the new SQL Server 2008 R2 environment. This ensures that
no application or connection will mistakenly connect to the old instance or server.

1   If you are not upgrading all databases or components from an instanceat the same
time,do not disable and shut down any SQL Server instance still running active databases for other
applications.
After your new instance has passed acceptance tests and the newly upgraded server is successfully in
production, schedule a time to either uninstall the instance or fully decommission the server. If you are
uninstalling in a side-by-side upgrade on one server, a restart might be required to fully remove the
legacy instance of SQL Server 2000 or SQL Server 2005, and that outage must be scheduled. When
uninstalling a legacy SQL Server instance, be very careful to select the correct components. Upgrading to
a separate server is generally the better option, because it is easier to decommission a whole server
than it is to uninstall on an actively used one.

a c î 
    

 x
Some groups are tasked with deciding whether to upgrade to SQL Server 2008 R2 without a SQL Server
DBA available for support. In other cases, no DBA may be available. In either case, make sure that you
determine at what point you should seek additional help.

The key issue is the nature and value of the data that is stored in your current SQL Server instance. If the
data is business critical or irreplaceable, address how to back it up before an upgrade and restore it if a
rollback is needed in the upgrade process for any reason. As soon as either of these steps is unclear or
uncertain, seek the help of a professional DBA with SQL Server 2008 R2 skills.

Assuming that your organization can handle a rollback, the following issues must be dealt with related to
testing and acceptance3

{c Do you have a clear sense of what criteria would qualify the upgrade as successful?
{c Do you have a tester or team of testers who can verify that the applications that depend on SQL
Server work correctly after the upgrade?
{c Can you test the upgrade in a test environment first so that you can be confident that the
upgrade will succeed?
{c Above all, have you run Upgrade Advisor and detected and resolved any blocking issues it
found?

If you are confident that your organization can back up and restore data, successfully test the results,
and rebuild the SQL Server database if it is necessary, next consider what upgrade strategy would best
meet your needs.

By far the easiest upgrade strategy without a DBA available is the in-place upgrade, in which the new
instance of SQL Server 2008 R2 replaces your legacy SQL Server instance. With this strategy, SQL Server
automatically transfers your data from the old to the new instance. In most cases, upgrading an instance
without a DBA is best performed by using in-place upgrade. However, you will want to consider all the
relevant factors before you make a final decision.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 67

The flowchart in Figure 1-6 describes the different stages in upgrading your instance of SQL Server 2000
or SQL Server 2005 to SQL Server 2008 R2. The chart also describes basic tools available to help you
upgrade to SQL Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 68

ë! 0SQL Server 2008 R2 upgrade flowchart

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 69

ac î  


The key steps in planning for a successful SQL Server 2008 R2 upgrade are as follows3

{c Researching the upgrade requirements


{c Establishing pre-upgrade tasks
{c Establishing upgrade implementation tasks
{c Establishing post-upgrade tasks

The result should include the following3

{c Choice of an appropriate upgrade strategy


{c Checklists for implementing each upgrade
{c Tested backup, restore, and rebuild steps
{c Clear acceptance criteria, go/no-go decision processes, and conditional rollback steps

As with any significant database application upgrade, an upgrade to SQL Server 2008 R2 will benefit
from limiting the number of variables during the upgrade process and applying standard IT production
release procedures to the upgrade process.

ac x
   
For an up-to-date collection of additional SQL Server 2008 R2 upgrade planning and deployment
references, seethe Microsoft SQL Server 2008 R2 Upgrade Resources page and the following links3
{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

For more information about how to upgrade each SQL Server componentͶsuch as the Database Engine,
Analysis Services, Integration Services, and Reporting ServicesͶsee the remaining chapters in this
document.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 70

c    
  
Ô

ac 


SQL Server 2008 R2 is the culmination of many years of hard work by several Microsoft-focused
technical teams. These teams were charged with developing front-office applications, back-office online
transaction processing (OLTP) systems, and business information systems that let you effectively analyze
and report on these systems. In addition, the architecture teams have made major in-roads in
monitoring and controlling all the aspects of the technical environment, such as Microsoft System
Center Operations Management (SCOM) through Windows Management Instrumentation (WMI).

This chapter covers the new and improved features of the SQL Server StudiosͶSQL Server Management
Studio and Business Intelligence Development StudioͶwhich are the user interface tools used to
manage and develop in SQL Server 2008 R2. Introduced in SQL Server 2005, these tools are additions to
the longstanding Visual Studio integrated development environment (IDE) for client-side development
and are designed to hide excessive detail while maximizing the information available to administrators
for the task at hand.

This chapter details the management tools issues you need to consider as you prepare to upgrade your
SQL Server 2000 or SQL Server 2005 installations to SQL Server 2008 R2. This chapter also contains
references to valuable management tools upgrade resources.

c 
 î          
  

Ô
When upgrading from SQL Server 2005 to SQL Server 2008 R2, the impact of the upgrade on
management and development tools will be minimal. There are some menu changes, but the interface is
still similar to Visual Studio. However, if you are upgrading from SQL Server 2000 to SQL Server 2008 R2,
note that SQL Server Enterprise Manager and Query Analyzer have been replaced by two new Visual
Studio-based tools called the SQL Server Studios.

A À 2
provides an environment for management or development. The SQL Server Studios are3

{c SQL Server Management Studio ʹ For managing all SQL Server 2008 R2 components, including
relational database and business intelligence (BI)
{c Business Intelligence Development Studio ʹ For managing the development experience for BI-
related components

If you are new to Management Studio, the user interface might seem disorienting at first sight.
However, you will soon realize that it has familiar elements buried within the layout. You just need to
start with what you know and then extend from that as your confidence in the environment grows.
Developers will find the layout of the BI Development Studio environment familiar because it is an
extension of Visual Studio. But SQL Server 2000 database administrators (DBAs) who have used only
Enterprise Manager and Query Analyzer have a slightly steeper learning curve. For more information

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 71

about the SQL Server Studios, see SQL Server Studios Overview in SQL Server 2008 Books Online (also
applicable to SQL Server 2008 R2).

In addition to looking at Management Studio and BI Development Studio, this chapter will also cover the
following management tools you need to consider as you upgrade SQL Server3

{c SQL Server Configuration Manager


{c SQL Server Profiler
{c Database Engine Tuning Advisor
{c Command-prompt tools

There are many other tools in SQL Server 2008 R2. To describe them in detail is beyond the scope of this
document. For more information about all the tools, see Features and Tools Overview in SQL Server
2008 R2 Books Online.

ac      



 î 
Management Studio is an integrated environment for managing all SQL Server components3the SQL
Server Database Engine, SQL Server Reporting Services, SQL Server Integration Services, and SQL Server
Compact, as well as developing Transact-SQL (T-SQL) database queries and components.Management
Studio uses the Visual StudioIDE to give administrators a single, easy-to-use graphical tool for managing
the most sophisticated systems and to give developers a consistent experience for database and
applicationdevelopment.

  a ac 
()
 ' 
***
:  
 

( 
, 

For those still using the SQL Server 2000 tools, one of the biggest changes in SQL Server 2005 and SQL
Server 2008 R2 is the consolidation of SQL Server 2000͛s Enterprise Manager, Query Analyzer, and the
MDX Sample ApplicationͶas well as some Analysis Services Manager featuresͶinto Management
Studio. The functionality of both Enterprise Manager and Query Analyzer has been incorporated into
subsets of Management Studio. To see how to work with Management Studio, see Tutorial3 SQL Server
Management Studio in SQL Server 2008 R2 Books Online.

§  Management Studio can be customized to make it appear similar to the familiar SQL
Server 2000 tools. You can hide all the new Management Studio components except for the
object browser and the query editor, making the initial learning curve easier. For instructions
about how to customize the Management Studio environment, see Changing the Environment
Layout in SQL Server 2008 R2 Books Online. We cover the key Management Studio elements
later in this chapter.

  a c #   
 ' 

In SQL Server 2008 R2, you register servers by using theRegistered Servers component of Management
Studio.To add SQL Server 2000 Enterprise Manager registered servers into Management Studio after an
in-place upgrade, right-click the Database Engine node in the Registered Servers window, and select
Previously Registered Servers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 72

  a c /0 
:;  

In Management Studio͛s Object Explorer, you will find the following enhancements3

{c
 6  % You can display in the browser the information that is relevant to your
needs rather than having to accept what is provided as a default.
{c 63       % Additional details of the selected object are displayed in a
property window.
{c 63   % By simply clicking an object column heading, you can sort objects into the
desired order based on the context of the click.
{c       3  3      % You can
©c Move backward and forward through related objects
©c Move upward to parent objects
©c Synchronize the object selected in the detail window with the ones in the object window
©c Filter to show subsets of objects
©c Select the scope of an object group based on the level of object selected in Object Explorer
©c Search for objects using wildcards

For more information about Object Explorer enhancements, see the "Object Explorer" section in
Manageability Enhancements (Database Engine) in SQL Server 2008 R2 Books Online.

  a c ( 
:

For the Query Editor, you will find the following enhancements3

{c Ô &  M  % The T-SQL Query Editor provides IntelliSense functionality such
as word completion and error underlining. IntelliSense is provided for frequently used T-SQL
elements and will be extended to other T-SQL elements in future releases.
{c     &  % Management Studio includes an Error List window that
displays the syntax and semantic errors generated from the IntelliSense code in the T-SQL Query
Editor.
{c
   % The status bar changes depending on activity. For example, when
performing a distributed query, the color changes to indicate this.
{c
 6     % The title bar can include the names you want instead of being
predefined.

For details about these Query Editor enhancements, see the "Query Editor" section in Manageability
Enhancements (Database Engine) in SQL Server 2008 R2 Books Online.

  a "c G 


DBAs managing SQL Server 2000 environments often use keyboard shortcuts in Enterprise Manager and
Query Analyzer to increase their productivity. DBAs upgrading to SQL Server 2005 or SQL Server 2008 R2
will find that some of these shortcuts have changed.

If you want to keep your SQL Server 2008 R2 environment similar to your SQL Server 2000 or SQL Server
2005 environment, you can change the Management Studio default standard keyboard scheme to the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 73

SQL Server 2000 or SQL Server 2005 keyboard scheme. To change the keyboard scheme in Management
Studio, follow these steps3

1.c From the Tools menu in Management Studio, click Options.


2.c Expand the Environment node, and highlight the Keyboard page.
3.c Change the keyboard scheme by using the Keyboard Scheme drop-down box.

If you change the keyboard scheme in Management Studio, note that the following SQL Server 2000 and
SQL Server 2005 shortcuts are not available in SQL Server 2008 R23

{c CTRL+O (Open a new query editor window)


{c CTRL+SHIFT+P (Insert the body of the specified file into the window)
{c CTRL+K (Include actual execution plan in the query output)
{c CTRL+SHIFT+O (Open the Query Option dialog box)

For a list of keyboard shortcut changes, see SQL Server Management Studio Keyboard Shortcutsin SQL
Server 2008 R2 Books Online.

  a &c !
! 

During an in-place upgrade to SQL Server 2008 R2, database diagrams created on earlier releases of SQL
Server will automatically be upgraded but not activated. The following steps describe how to set up
database diagramming on SQL Server 2008 R2 to complete the upgrade. DBAs wanting to set up
database diagramming on a SQL Server 2008 R2 database must be a member of the sysadmin fixed
server role or the db_owner role for each database they want to configure3

1.c From Object Explorer in Management Studio, expand the database you want to configure.
2.c Expand the Database Diagram node under the database connection.
3.c Select Yes when prompted to create the support objects.
4.c When you then open the database diagrams, SQL Server 2008 R2 automatically upgrades them.

For details about upgrading database diagrams, see How to3 Upgrade Database Diagrams from Previous
Editions (Visual Database Tools) in SQL Server 2008 R2 Books Online.

  a 2c  ;
3
1,

In SQL Server 2005 and SQL Server 2008 R2, the Index Tuning Wizard has been replaced by the Database
Engine Tuning Advisor. If you are using the tool from the command line, this means that itwiz.exe has
been replaced by the dta.exe command-line utility. DBAs should review utility scripts and replace
itwize.exe calls with dta.exe calls.

DBAs should also note the inability of dta.exe to tune workload tables on remote servers. You should
use one of the following two options to modify utility scripts that call the itwiz.exe command-line utility
with the   argument3

{c Use a trace file instead of a remote trace table, and modify the script to execute against a file
instead of a trace table.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 74

{c Copy the remote trace table to an instance on the local server, and modify the server
connection.

For a detailed comparison of the Index Tuning Wizard and the Database Engine Tuning Advisor, see
Differences Between Database Engine Tuning Advisor and Index Tuning Wizard in SQL Server 2008 R2
Books Online.

  a +c  # 4  
:  

()
 ' 
**+
#

Note that you can now perform the following actions in Management Studio 2008 R2 as a result of
customer requests3

{c Query against multiple servers simultaneously


{c Access SQL Server Profiler from the Query Editor window
{c Return Top rows in a result set
{c Configure the number of rows that are returned by the Open Table dialog box
{c Specify the action that results by double-clicking a table in Object Explorer
{c Disable the table designer from recreating tables when you are implementing design changes

You can also now add parameters to a connection string by using the Additional Connection Parameters
option in the î
 
dialog box. For more information, see Connect to Server (Additional Connection
Parameters Page)in SQL Server 2008 R2 Books Online.

For the latest information about Management Studio features that you will find after an upgrade, see
Manageability Enhancements (Database Engine) in SQL Server 2008 R2 Books Online.

c  
   

î 
BI Development Studio is the SQL Server 2005 and SQL Server 2008 R2 environment for developing BI
solutions that use SQL Server Analysis Services, Integration Services, and Reporting Services. BI
Development Studio is essentially Visual Studio 2008 with additional project types specific to SQL Server
2008 R2BI, giving you templates for creating objects for BI solutions as well asthe designers, tools, and
wizards you need to work with those objects. Let͛s do a quick survey of the tools in BI Development
Studio to help as you plan your upgrade strategy.

d M     '   


SQL Server 2008 R2 Setup will
replace BI Development Studio 2005 tools with BI Development
Studio 2008 R2 tools.

{c SQL Server 2008 R2 setup will install BI Development Studio 2008 R2 side-by-side with BI
Development Studio 2005
{c BI Development Studio 2008 enables you to create, edit, and deploy BI projects to SQL Server
2008 R2 instances of Analysis Services, Integration Services, and Reporting Services.
{c BI Development Studio 2005 lets you create, edit, and deploy BI projects to your instances of
SQL Server 2005 Analysis Services, Integration Services, and Reporting Services.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 75

{c BI Development Studio 2008 R2 requires Visual Studio 2008 Service Pack 1 (SP1). If Visual Studio
2008 RTM is present on the computer, you need to upgrade Visual Studio 2008 RTM to Visual
Studio 2008 SP1 in order to install BI Development Studio 2008 R2. If Visual Studio 2008 is not
present on the computer, SQL Server 2008 R2 Setup will install the Visual Studio 2008 SP1 shell.
For the most current information on the dependent components, see the relevant SQL Server
2008 R2 release notes.
{c BI Development Studio 2008 R2 installs Visual Studio Tools for Applications 2.0, which is used for
Integration Services projects. Visual Studio Tools for Applications 2.0 is a replacement for Visual
Studio for Applications.
{c BI Development Studio 2005 on the upgraded instance must be removed separately using
Add/Remove Programs. This applies whether there are one or many instances of SQL Server
2005 on the server.

d M     3 ë


BI Development Studio 2008 R2 can open projects created with BI Development Studio 2005. BI
Development Studio 2008 R2 upgrades the BI Development Studio 2005 projects to the BI Development
Studio 2008 R2 components. After the projects have been upgraded for 2008 R2 components, you can
edit and update the projects in BI Development Studio 2008 R2. After the projects have been upgraded,
they can work only with SQL Server 2008 R2 components. BI Development Studio 2008 R2 is not
designed to work with SQL Server 2005 instances. You need to use BI Development Studio 2005 to work
with SQL Server 2005 components. Thus, it is highly recommended that customers back up their BI
Development Studio 2005 projects before opening and saving them in BI Development Studio 2008 R2.

   ac $ 
  
! '   

#  
()
 ' 
***

 ' 

 

/ 
$
3

SQL Server 2000 provides Analysis Services Manager for managing BI solutions, but for performing
extraction, transformation, and loading (ETL) activities or reporting, you need to use Enterprise Manager
or external tools. For SQL Server 2005 and SQL Server 2008 R2, the tools essential to BI are collected into
a common interface3 BI Development Studio.

   c ()
 ' 

 ' 
>
 
!

The Analysis Services elements of the BI Development Studio toolset are designed to optimize the
analysis of and reporting on data using online analytical processing (OLAP) techniques. In OLAP, you
copy the OLTP data and restructure it into a different model that is easier to create PivotTables on and
produce ad hoc reports from. SQL Server 2008 R2 features various improvements to the tools in this
area, including optimization of data aggregation through enhanced design techniques, more support for
backing up and restoring, and the ability to provide customized extensions to the tools.

For more information about upgrading to Analysis Services 2008 R2, see Chapter 11, "Analysis Services,"
and Considerations for Upgrading Analysis Services in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 76

   c ()
 ' 

 ' 
>
!


BI Development Studio also includes data mining tools to help BI developers, administrators, and
business analysts create data structures that can be investigated by software algorithms to identify
relationships between elements that might not be obvious through the use of common business sense
and pivot tables. Data mining can take the business user beyond typical analysis to find information that
would be difficult to realize without a huge amount of time and money without this technology.

For detailed coverage of the upgrade considerations for SQL Server 2008 R2 data mining, see Chapter
12, ͞Data Mining,͟ and SQL Server Analysis Services ʹ DataMining in SQL Server 2008 R2 Books Online.

   c ()
 ' 
 
 ' 

There are many new features available in Integration Services, but if you are coming from the SQL
Server 2000 environment, make sure you are familiar with the new interface in BI Development Studio.
For information about upgrading to Integration Services 2008 R2, see Chapter 13, ͞Integration Services.͟
You can find more details about these and other new features in SQL Server Integration Services in SQL
Server 2008 R2 Books Online.

   "c ()
 ' 
# 
 ' 

Reporting Services 2008 R2 provides the new Reporting Services Configuration tool for configuring a
Reporting Services installation. Start the tool from the Configuration Tools group within the Microsoft
SQL Server 2008 R2 Start menu group. When you upgrade Reporting Services from a previous version of
SQL Server, you can use this tool to update the Report Server database to the new SQL Server 2008 R2
format. For more information about how to use this tool, see Chapter 14, ͞Reporting Services,͟ and
Reporting Services Configuration Tool in SQL Server 2008 R2 Books Online.

Reporting Services 2008 R2 also comes with an ad hoc reporting tool called Report Builder, which lets
users create, edit, and deploy their own reports. A browser-based client application, Report Builder
gives business users an intuitive model of their data, predefined templates, and a friendly interface for
building ad hoc reports. Report Builder 3.0 was released for SQL Server 2008 R2. For more information
about this tool, see Report Builder 3.0 in SQL Server 2008 R2 Books Online.

c   î 


   
The SQL Server 2000 Service Manager and Network Protocol tools are now grouped under the SQL
Server Configuration Manager tool, which is a Microsoft Management Console (MMC) snap-in. It
manages connectivity components and replaces the following tools from pre-SQL Server 2005 releases
of SQL Server3

{c The Server Network Utility


{c The Client Network Utility
{c The Service Manager

You can use SQL Server Configuration Manager to start, stop, pause, and resume SQL Server services,
change the service properties, and configure SQL Server network protocols.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 77

SQL Server Configuration Manager manages all SQL Server services, including those for the Database
Engine, Analysis Services, Integration Services, Reporting Services, SQL Server Agent, and SQL Server
Browser. For more information about the latest Configuration Manager features, see SQL Server
Configuration Manager in SQL Server 2008 R2 Books Online.

c 
   Ô
In preparation for upgrading to SQL Server 2008 R2, DBAs working with Reporting Services should note
that there might be certain expected elements that are no longer available. For example, the
Rsactivate.exe command-line utility no longer initializes a single report server instance or multiple
report server instances that are part of the same Web farm because this functionality is obsolete in SQL
Server 2008 R2. In addition, SQL Server 2008 R2 does not support the Report Server Windows
Management Instrumentation (WMI) Provider from SQL Server 2000; Reporting Services 2008 R2
includes a new version of the WMI provider.

For more information about these changes, see Chapter 14, ͞Reporting Services,͟ and the following
topics in SQL Server 2008 R2 Books Online3

{c Upgrade (Reporting Services)


{c Considerations for Upgrading Reporting Services


c Ô Ô
Although you can migrate Data Transformation Services (DTS) packages to SQL Server 2008 R2
Integration Services packages, DTS and Integration Services packages can also co-exist on SQL Server
2008 R2. However, to get the richer features for ETL processing, you need to migrate your packages to
Integration Services.

Note that support for developing, managing, and executing existing DTS packages will remain untouched
if an existing instance of the SQL Server 2000 or SQL Server 2005 relational engine remains on the server
after the upgrade. For example, if you install a new instance of the SQL Server 2008 R2 relational engine
or if you install other components of SQL Server 2008 R2 without installing the new relational engine,
then SQL Server Enterprise Manager will remain available as well as the DTS runtime and command-line
tools. With these components still in place, you can still execute DTS packages manually or via SQL
Server Agent jobs. For more information about this capability, see Chapter 13, "Integration Services."

However, if all instances of the SQL Server 2000 relational engine are removed or upgraded to SQL
Server 2008 R2, the ability to develop DTS packages will no longer exist. The SQL Server 2008 R2 Setup
application will install an updated DTS runtime and command-line tools, but no DTS design environment
will be available. In this case, you can install the DTS Designer Components via a Web download as part
of the Feature Pack for Microsoft SQL Server 2005 - December 2008.

For more DTS-related upgrade information, see Considerations for Upgrading Data Transformation
Services in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 78

 c   x



SQL Server Agent has undergone several changes and enhancements since SQL Server 2000, providing
stronger security, improved performance, and support for job steps that use Analysis Services and
Integration Services. Because SQL Server Agent is central to multiple SQL Server components, including
maintenance plans, you need to review and understand the issues you might face when upgrading your
use of SQL Server Agent.

  & ac ;


In SQL Server 2000, SQL Server Agent T-SQL jobs execute under the security context of the account that
created the job; however, the sysadmin fixed server role can specify a different account for a T-SQL job͛s
execution context. Job steps in non-T-SQL jobs owned by sysadmin execute under the context of the SQL
Server Agent service account. Job steps in non-T-SQL jobs owned by a non-sysadmin run under the
context of a proxy account if it is enabled.

One limitation that SQL Server 2000 database administrators have is the inability to create more than
one proxy account to use for SQL Server Agent jobs. SQL Server 2005 and SQL Server 2008 R2 address
this issue through multiple proxy accounts.

A proxy account defines the security context for a job step and gives SQL Server Agent access to security
credentials for a Windows user. SQL Server Agent impersonates the credentials defined in the proxy
account before it executes a job step. This lets SQL Server Agent execute the job step by using the
security context of the proxy account.

After you upgrade from SQL Server 2000, the user proxy account you defined on SQL Server 2000 before
the upgrade will be upgraded to a proxy account called UpgradedProxyAccount. After the upgrade, this
UpgradedProxyAccount proxy account is granted access only to those subsystems that were explicitly
used in SQL Server 2000 and will not have access to all subsystems; the same restriction applies to non-
sysadmin users who in SQL Server 2000 explicitly used the proxy account to execute their job step. You
will need to manually grant access to any other subsystem that this proxy account needs. Table 2-1 lists
the valid subsystems to which you can grant proxy access.

Ô " !2    17


8 5 
  §    
Microsoft ActiveX Script Run an ActiveX scripting job step
Operating System (CmdExec) Run an executable program
Replication Distributor Run a job step that activates the replication Distribution Agent
Replication Merge Run a job step that activates the replication Merge Agent
Replication Queue Reader Run a job step that activates the replication Queue Reader Agent
Replication Snapshot Run a job step that activates the replication Snapshot Agent
Replication Transaction Log Reader Run a job step that activates the replication Log Reader Agent
Analysis Services Command Run an Analysis Services command
Analysis Services Query Run an Analysis Services query

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 79

  §    


SSIS package execution Run an Integration Services package
PowerShell Run a PowerShell script
Unassigned

You can modify the proxy account by using Management Studio, as follows3

1.c In Object Explorer, expand a server, expand SQL Server Agent, and then expand Proxies.
2.c Expand the subsystem node for the proxy, right-click the proxy you want to modify, and click
Properties.

Alternatively, you can use the sp_grant_proxy_to_subsystemsystem stored procedure to grant access to
disk subsystems to a proxy account, as this example shows3

› c
c
c
 
     c
  ›   c
 c
c
For more information about the SQL Server Agent proxy account, see Creating SQL Server Agent Proxies
in SQL Server 2008 R2 Books Online.

  & c ()
 ' 

3% 


In SQL Server 2008 R2, the syntax for calling tokens in SQL Server Agent job steps has changed. The
change replaces the use of square brackets with $() when calling out SQL Server Agent job step tokensͶ
forexample, [DATE] changes to $(DATE). This change does not require you to modify SQL Server Agent
jobs after the upgrade; the change is performed behind the scenes by the upgrade process.

In addition, after the upgrade, the replacement for alert tokens is turned off by default, so you need to
turn on this feature after ensuring that only trusted users have write permissions to the eventlog. You
can turn on this feature by using the SQL Server Agent Properties dialog box and selecting the „

 À

 À
ÀÀ
 À check box under the Alert Subsystem tab.

For details about upgrading token references for SQL Server Agent jobs, see Using Tokens in Job Steps in
SQL Server 2008 R2 Books Online.

  & c 
3 
 ' 

DBAs upgrading multi-server environments need to upgrade all target servers (TSX) before upgrading
master servers (MSX).

You can re-enlist target servers by using Management Studio, as follows3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 80

1.c In Object Explorer, connect to an instance of the Microsoft SQL Server Database Engine and
expand that instance.
2.c Right-click SQL Server Agent, point to Multi Server Administration, and then click ’  2À
  . The Target Server Wizard guides you through the process of making a target server.

Keep in mind that SQL Server 2008 R2introduces two new features that make working in a distributed
environment more cost-effective than using master and target servers as they were used previously3

{c Anew method of managing servers called Policy-Based Management


{c Multi-server queries that use configuration servers and server groups

For information about these features, see the following SQL Server 2008 R2 Books Online topics3

{c Administering Servers by Using Policy-Based Management


{c Administering Multiple Servers Using Central Management Servers

  & c 
()
 ' 

 
1 


()
 ' 
***

If you are upgrading from SQL Server 2000, the following SQL Server Agent upgrade issues might affect
the functionality of SQL Server Agent, so you need to address them after you have completed your
upgrade3

{c SQL Server Agent is available only for members of the sysadmin, SQLAgentUserRole, or
MaintenanceUserRole roles.
{c The SQL Server Agent service account no longer allows SQL Server authentication.
{c After upgrading to SQL Server 2008 R2, you must modify user scripts that use the
xp_sqlagent_proxy_account extended stored procedure to remove references to this extended
stored procedure.
{c SQL Server Agent jobs that perform log shipping will not be enabled after upgrading to SQL
Server 2008 R2. You must reconfigure log shipping after the upgrade is complete. For details,
see the log shipping section in Chapter 4, "High Availability."

For related information about upgrading SQL Server Agent from SQL Server 2000 to SQL Server 2005,
see the SQL Server 2005 Upgrade Technical Reference Guide white paper.

 c  
    
After upgrading from SQL Server 2000 to SQL Server 2008 R2, you will find changes to the way you
create maintenance plans. In pre-SQL Server 2005 releases, you use only the Maintenance Plan Wizard
to create database maintenance plans that, in turn, result in multiple SQL Server Agent jobs that
perform the defined maintenance tasks. The wizard in earlier versions of SQL Server, however, did not
let you define all SQL Server-related maintenance tasks, including the important task of performing
differential backups.

SQL Server 2005 and SQL Server 2008 R2 have a more functional Maintenance Plan Wizard for creating
basic maintenance plans. The wizard lets you create plans for almost any SQL Server-related
maintenance task while taking advantage of the Integration Services designer to extend the functionality

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 81

of the maintenance plans. To gain the advantages of the newmaintenance plan functionality, you need
to transfer your maintenance plans to SQL Server 2008 R2. This transfer can be done automatically or
manually.

For details about the Maintenance Plan Wizard, see Maintenance Plan Wizard in SQL Server 2008 R2
Books Online.

c  


  
To make sure your upgrade process goes smoothly, consider the following changes in the way certain
management tools work in SQL Server 2008 R2 so that you can make appropriate modifications after
your upgrade and maintain effective administration of your SQL Server environment.

ac 
 

The following management tools features are deprecated in SQL Server 2008 R2, meaning that they are
still supported for backward compatibility only and will be removed from a future release of SQL Server.
For a complete discussion of deprecated features, see Deprecated SQL Server Features in SQL Server
2008 R2 in SQL Server 2008 R2 Books Online.

  a ac ()!/

SQL Server 2008 R2 replaces the SQL Distributed Management Objects (SQL-DMO) object library from
earlier releases of SQL Server with SQL Management Objects (SMO). SQL-DMO is supported in SQL
Server 2008 R2 but only for backward compatibility. It has been upgraded to work with the latest
release of SQL Server but will not support features beyond those available in SQL Server 2000. For more
information, see Developing SQL-DMO Applications in SQL Server 2008 R2 Books Online.

  a c 4 

SQL Server 2005 deprecated the ODBC-based osql command-line utility but without deprecating the
functionality in any great way. For more information, see osql Utility in SQL Server 2008 R2 Books
Online. If you intend to keep versions of SQL Server 2000 in your solution space, see Backward
Compatibility with SQL Server 2000 Tools in SQL Server 2008 R2 Books Online.

Like the osql utility, the sqlcmdutility lets you enter T-SQL statements, system procedures, and script
files at the command prompt, in a Windows script file, or in an operating system (Cmd.exe) job step of a
SQL Server Agent job as well as in QueryEditor in SQLCMD mode. This utility uses OLE DB or SqlClient
rather than ODBC as the data delivery mechanism. If you have not used this utility before, see Tutorial3
sqlcmd Utility in SQL Server 2008 R2 Books Online.

Management Studio uses the Microsoft .NET Framework SqlClient for regular execution and SQLCMD
mode in Query Editor. When sqlcmd is run from the command line, sqlcmd uses the OLE DB provider.
Because different default options might apply, you could see different behavior when you execute the
same query in Management Studio in SQLCMD Mode versus in the sqlcmd utility. For more information,
see sqlcmd Utility in SQL Server 2008 R2 Books Online.c

In addition to providing backward compatibility with SQL Server 2000 via osql and with SQL Server 2005
via continued support for SQLCMD, SQL Server 2008 R2 can now host scripting solutions using Windows

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 82

PowerShell to facilitate common administration and data access requirements. The main benefits of
using PowerShell scripting are that you can use the same scripting language despite the server type you
are communicating with and the language is object based. For more information, see Scripting
(Database Engine) in SQL Server 2008 R2 Books Online.

  a c 

The SQL Server 2000 version of the bulk copy program (bcp) lets a user with INSERT and SELECT
permissions on a given table load data into that table by using the following command3

 !"# !$%"#&'(c
c
This default format of the bcp command disables CHECK constraints and triggers on that table implicitly,
which is not very secure because it raises a data manipulation language (DML) operation into a data
definition language (DDL) operation invisibly. In addition to being a poor security practice, this could also
lead to unwanted DDL triggers firing.

Therefore, in both SQL Server 2005 and SQL Server 2008 R2, the user must have the additional
permission of ALTER for the target table to bulk-load data into it using the default bcp option of no
checking; otherwise, the operation will fail.

To ensure that an attempt at the implicit escalation of trust does not occur, you can change the script to
use a non-default transfer mode, which explicitly checks the constraints and fires the triggers, as follows3

 !"# !$%"#&'(')*
+
,
 (- ( . -(- - /c
c
This command checks the constraints and fires the triggers, but compared with SQL Server 2000, there
will be no loss in performance of the data load due to the constraint checking and the consequent
requirement to check the data using alternative methods.

For more information about this bcp issue, see Controlling Constraint Checking by Bulk Import
Operations in SQL Server 2008 R2 Books Online.

  a c 4


The isql command-prompt utility is not available in SQL Server 2008 R2. In its place, the new SQL Server
release provides the SQLCMD utility. This means you need to remove all calls and references to isql or
modify those calls to use the SQLCMD utility. If you do use isql to connect to SQL Server 2008 R2, at
most you can access features available only in SQL Server 7.0. For more information, see the "Legacy
Command Prompt Tools" section in Backward Compatibility with SQL Server 2000 Tools in SQL Server
2008 R2 Books Online.

  a "c #  ;

SQL Server 2008 R2 does not support Rebuild.exe. DBAs should review administration scripts for use of
the Rebuild.exe utility and modify those scripts to use the REBUILDDATABASES option of the Setup.exe

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 83

utility. For more information, see How to3 Install SQL Server 2008 R2 from the Command Prompt in SQL
Server 2008 R2 Books Online.

  a &c   ;

The Setup.exe command-line interface has undergone a complete overhaul in SQL Server 2008 R2. For
instance, the Setup.exe utility does not support the TARGETCOMPUTER parameter for remote setup.
DBAs must remove this functionality from any administrative scripts they have. To set up SQL Server
2008 R2 on a remote server using Setup.exe in command-line mode, you need to use a remote
connection to run Setup.exe or set up SQL Server in user-interface mode. For more information, see
How to3 Install SQL Server 2008 R2 from the Command Prompt in SQL Server 2008 R2 Books Online.

  a 2c ()


SQL Server 2005 deprecated SQL Mail, but it is still shipped with SQL Server 2008 R2. However, the
preferred mail feature, Database Mail, is independent of an external API such as MAPI and instead uses
the .NET Framework. Database Mail lets you send email messages from database applications, but it
does not let you read email messages; for this, you need a client. Although the SQL Mail Client will
upgrade from SQL Server 2000to SQL Server 2008 R2, it has been tested only against Outlook 2000 and
2002.

Before beginning your upgrade, be sure to review scripts using SQL Mail to determine whether the
scripts are sending attachments. The SQL Server 2008 R2 version of SQL Mail will not send mail
attachments if the mail client is connected using SQL Server Authentication; the authentication mode
must be set to Windows Authentication. For information about how to convert a stored procedure to
Database Mail, see How to3 Convert Stored Procedures from SQL Mail to Database Mail (Transact-SQL)
in SQL Server 2008 R2 Books Online.

c  
   
 

SQL Server 2008 R2 removes support for the Reporting Services component on Itanium-based Windows
2003. You need to upgrade the operating system first. You can find the latest information about
removed features in Discontinued SQL Server Features in SQL Server 2008 R2 in SQL Server 2008 R2
Books Online.

   ac 1 

 
  

The Web Assistant stored procedures have been removed in SQL Server 2008 R2. Use Reporting Services
instead for building reports. For more information, see Discontinued Database Engine Functionality in
SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

   c : 
( 

As of SQL Server 2005, English QueryͶa set of tools for developing a natural-language interface to the
databaseͶhasbeen discontinued and cannot be installed in or upgraded to SQL Server 2005 or SQL
Server 2008 R2. For in-place upgrades of SQL Server 2000 installationsto SQL Server 2008 R2, English
Query will not be affected.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 84

   c  
!
 ' 

SQL Server 2000 Meta Data Services 3.0 is not available in SQL Server 2008 R2, and DBAs upgrading to
SQL Server 2008 R2 will not be able to use the service to access repository tables. The repository tables
will upgrade during the in-place upgrade process, but you should manually delete them from the msdb
database after the upgrade process has completed.

You can execute the following script to obtain the drop statements for the repository tables and review
the script͛s output to remove user tables not associated with Meta Data Services3

› c
c
c
0
(1-(20 3(204c
.-4 .-4( 
+4 (20 c
5+-(20
+4 c
1(2040 ,-("6c
c

   c 3

 
 
3

The Surface Area Configuration tool is discontinued for SQL Server 2008 R2. Table 2-2 shows what you
can use instead to configure settings, options, and component features.

Ô " "Ô
  &"(()'"  
   
   ë   
 
Protocols, connection, and startup options Use SQL Server Configuration Manager.
Database Engine features Use Policy-Based Management, the property
settings in Management Studio, or sp_configure.
Analysis Services features Use the property settings in Management Studio.
Reporting Services - EnableIntegrated Security Use the property settings in Management Studio.
property
Reporting Services - "Schedule events and report Edit the RSReportServer.config configuration file.
delivery" and "Web service and HTTP access"
Command-line options No support in this release.
SOAP and Service Broker endpoints Use CREATE ENDPOINT and ALTER ENDPOINT.

In addition, make sure that you review Chapter 5, "Database Security," because the Surface Area
Configuration tool was designed to create a secure environment by default. For more information, see
Discontinued SQL Server Features in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

§  Modify the various SQL Server service accounts only by using the SQL Server Configuration
Manager and not through Services in Control Panel, Administrative Tools.The SQL Server

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 85

Configuration Manager will modify User Groups, permissions, and registry settings specific to
SQL Server when accounts are added; Services will not.

c   î 


Breaking changes are those that might block an upgrade. The Microsoft SQL Server 2008 R2 Upgrade
Advisor, which we discuss in the ͞Upgrade Tools͟ section in a moment, helps detect major breaking
changes by looking through the environment to be upgraded and checking to make sure that the
relevant elements are present. For information about these types of changes, see Breaking Changes to
SQL Server Features in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

c   î 


Behavior changes are non-breaking changes that might not cause your upgrade to fail but that might
affect your applications after the upgrade. You can use Upgrade Advisor after the upgrade to help detect
non-breaking changes. Upgrade Advisor checks the environment, looking at the objects that can be
accessed, such as scripts, stored procedures, triggers, and trace files. Upgrade Advisor cannot analyze
desktop applications or encrypted stored procedures, so you cannot assume that these are non-
breaking changes.

The Upgrade Advisor output is in the form of an XML report that you view by using the Upgrade Advisor
report viewer. The reports might contain an "other upgrade issues" item, which links to a list of issues
that are not detected by Upgrade Advisor but that might exist on your server or in your applications. You
should review the list of undetectable issues and determine whether you must change your server or
applications because of the undetectable issues.

One behavior change you will see in SQL Server 2008 R2 is that SQL Server 2008 R2 Enterprise Edition
now supports a maximum of 8 processors, where each processor can have multiple core CPUs. To use
more than 8 processors on a server, you must use SQL Server 2008 R2 Datacenter Edition.

For more information about these types of changes, see Behavior Changes to SQL Server Features in SQL
Server 2008 R2 in SQL Server 2008 R2 Books Online.


c   Ô
Microsoft has released a Feature Pack for SQL Server 2008 R2 that includes, among other useful extras,
the SQL Server 2008 R2 Upgrade Advisor Analysis Wizard. You can download the Microsoft SQL Server
2008 R2 Feature Pack before you install SQL Server 2008 R2. However, if you already have the SQL
Server 2008 R2 installation DVD, Upgrade Advisor is available as one of the options when you start to
install the product. For details about using this useful tool, see Chapter 1, "Upgrade Planning and
Deployment."

The Upgrade Advisor wizard checks more than 100 rules for possible upgrade issues, separated into the
following categories3

{c SQL Server
{c Analysis Services
{c Reporting Services

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 86

{c Data Transformation Services


{c Integrations Services

After the checks are completed, a reporting interface lists the issues found and advises you about how
to resolve them. For more information, see Using Upgrade Advisor to Prepare for Upgrades in SQL
Server 2008 R2 Books Online.

 c  
î 

The client tools are developed for the 32-bit machine environment, and when running on a 64-bit
machine, the software functions within Windows On Windows 64 (WOW64), an emulation environment
that hosts 32-bit software within the 64-bit machine. Therefore, there should be no tools issues
regarding upgrading to the 64-bit environment. For more information, see Hardware and Software
Requirements for Installing SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

 c G      


When you perform a side-by-side upgrade, you can import some settings from legacy management
tools. As issues arise, Microsoft will document them and supply fixes or workarounds. The best place to
find such information is in Microsoft Knowledge Base articles. For updated information regarding
Knowledge Base articles, blogs, and other resources related to SQL Server management tools, see the
link at the end of this chapter under "Additional References."

  2 ac 

0
 

Table 2-3 summarizes the major changes to management tools from SQL Server 2000 to SQL Server
2008 R2.

Ô " # 3


       Ô&"((( &
"(()'"
&"((( &"(()    M  $  c §   6
ë c '"ë c $  c Ôc
Enterprise SQL Server Both available Integration Deprecated
Manager Management Services only
Studio
Analysis Manager Business Both available Business Deprecated
Intelligence Intelligence
Development Development
Studio Studio only
ISQL/OSQL SQLCMD/ All available Only osql and Osql deprecated
PowerShell SQLCMD available Isql discontinued
SQLMAIL Database Mail Both available Both available Deprecated and only
32-bit support
Surface Area Declarative Both available DMF only Discontinued (see
Configuration Management separate table)
Framework (DMF)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 87

&"((( &"(()    M  $  c §   6


ë c '"ë c $  c Ôc
English Query Not available Available on old Not available Discontinued
version
SQL Server New version plus Both available Removed reliance on
Reporting Services external Report IIS; must use Report
2000 Builder Builder
Data Integration Both available; Both available; Support and
Transformation Services scripting option migration option migration available
Services (DTS)
Notification Not available Available on old Discontinued
Services server
SQL Server Agent Still available Support for multiple
proxy accounts
Database Database Both available Both available; Migrate to
Maintenance Maintenance plans to legacy Integration Services
Plans (Agent jobs) Plans (Integration components for more control over
Services plans
packages)
Index Tuning Database Engine Both available Only Database Use Database Engine
Wizard (ITW) Tuning Advisor Engine Tuning Tuning Advisor; it has
Advisor available useful features such
as time-limiting
optimization
SQL Server Profiler SQL Server New features such as
Profiler running Profiler from
the Query Editor
SQL-DMO SQL-SMO Both available Both available SQL-DMO supported
only for backward
compatibility
BCP BCP Available Available Fully supported, but
check for behavior
changes

c      


When you are upgrading in-place from SQL Server 2000 to SQL Server 2008 R2, Setup will require that
you upgrade all components3 both the Database Engine and Analysis Services.

ac Ô   



As a general rule, with an in-place upgrade from SQL Server 2000 to SQL Server 2008 R2, if you are
including the Common Components/Management Tools, the SQL Server 2000 Client Tools will be
replaced with SQL Server 2008 R2 Management Tools.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 88

{c If there are multiple instances of SQL Server 2000 on the server and any of the remaining
instances were also installed with the SQL Server Client Tools option, the SQL Server 2000 tools
will remain.
{c When the last SQL Server 2000 instance that had the Client Tools option is upgraded, the SQL
Server 2000 tools will be removed.
{c If a SQL Server 2000 instance was installed with the Minimal option, it will not prevent the SQL
Server 2000 tools from being removed.
{c SQL Server 2008 R2 Setup will detect the Registered Servers of SQL Server 2005 Enterprise
Manager and attempt to preserve them when upgrading to SQL Server 2008 R2.

When you are upgrading to a new instance of SQL Server 2008 R2 on the same server or a separate
server, SQL Server 2008 R2 will not remove the SQL Server 2005 Client Tools.

c Ô î




Generally speaking, upward connectivity is not supported. SQL Server 2000 Enterprise Manager, for
example, cannot connect to SQL Server 2008 R2 or SQL Server 2005. The one exception is SQL Server
2000 Query Analyzer, which uses ODBC to connect to SQL Server 2008 R2; however, Query Analyzer
cannot use new SQL Server 2008 R2 data types or properly display query plans.

Therefore, when upgrading a SQL Server 2000 instance to SQL Server 2008 R2, always include the
Common Components (and therefore Management Tools), because the SQL Server 2000 tools cannot
manage SQL Server 2008 R2.

c   x


!
When you are upgrading in-place from SQL Server 2000 to SQL Server 2008 R2, SQL Server Agent jobs
will be upgraded along with the agent, but only to the best of the Setup program͛s ability to do so.

§  Because SQL Server 2008 R2 uses a different mechanism for Integration Services packages
as opposed to DTS packages, any job that references a DTS package might run differently. For
more information about converting DTS packages or running them in SQL Server 2008 R2, see
Chapter 13, "Integration Services."

Consider these best practices for SQL Server Agent jobs3

{c In an in-place upgrade, recreate and test each SQL Server Agent job on the new SQL Server
instance to eliminate issues that might arise due to changes in functionality.
{c In a side-by-side upgrade, script out the SQL Server Agent job, transfer it to the SQL Server 2008
R2 instance, and test it. Keep in mind that changes might need to be made to preserve the same
functionality.
{c External script files might also need to be moved to a new location. For more information about
upgrading T-SQL scripts, see Chapter 8, "Transact-SQL Queries."

SQL Server 2000 maintenance plans will not be directly upgraded to SQL Server 2008 R2 maintenance
plans. Instead, the upgraded SQL Server 2000 plans can be viewed in the Legacy node of the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 89

Management folder in Management Studio 2008 R2͛s Object Explorer. These maintenance plans can be
migrated to run under SQL Server 2008 R2 by right-clicking over the legacy plan and selecting Migrate.
For more information, see How to3 Migrate SQL Server 2000 Database Maintenance Plans in SQL Server
2008 R2 Books Online.

Here are some considerations for migrating legacy maintenance plans3

{c Maintenance plans will no longer support SQL Server 2000 log shipping. You must configure log
shipping outside of the maintenance plan using SQL Server 2008 R2 log shipping.
{c Maintenance plans in a master server/target server distributed environment are not supported.
Thus, you will need to create an individual maintenance plan for each target server as you would
for a standalone server, instead of creating one plan and downloading it to the target servers.
{c For maintenance plans to execute successfully, you must have Integration Services installed on
the same machine on which the SQL Server engine is installed.
{c Unlike with SQL Server 2000, in SQL Server 2008 R2, cleanup tasks do not clean up files in sub-
directories of a chosen folder. The work-around is to have multiple cleanup tasks for each sub-
folder in a folder or to havethe backup task back up databases toonly one folder.
{c Maintenance plans will no longer attempt to repair minor problems currently configured under
the Database Integrity Check task of the Maintenance Plan Wizard.
{c To view maintenance plan tasks in SQL Server 2008 R2, administrators must log in to SQL Server
using Windows authentication with sysadmin privileges or as sa using SQL Server authentication.
{c During the upgrade process, maintenance plan metadata will be migrated to SQL Server 2008 R2
catalog views. You should modify any code that references the old maintenance plan system
tables to reference the new catalog views.


c      

When you are upgrading in-place from SQL Server 2005 to SQL Server 2008 R2, Setup will require that
you upgrade all components3 Database Engine, Analysis Services, Integration Services, and so on.


ac Ô   

SQL Server 2008 R2 Setup will
replace the SQL Server 2005 tools with SQL Server 2008 R2 tools.

{c The SQL Server 2005 tools on the upgraded instance must be removed separately by using
Add/Remove Programs. This applies whether there are one or many instances of SQL Server
2005 on the server.
{c SQL Server 2008 R2 Setup will detect the Registered Servers and other settings of the SQL Server
2005 tools and attempt to preserve them when upgrading to SQL Server 2008 R2.
{c Exporting and importing Management Studio registered servers between SQL Server 2005 and
SQL Server 2008 R2 is not supported because the underlying .regsrvr files do not have the same
structure.


c Ô î


After an in-place upgrade, you can use only SQL Server 2008 R2 tools and utilities to manage SQL Server
2008 R2 instances.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 90

SQL Server 2005 tools cannot be used to manage SQL Server 2008 R2 instances. For example, if you try
to use Management Studio 2005 against SQL Server 2008 R2, you will see the message similar to that
shown in Figure 2-1.

ë" !SQL Server Management Studio 2005 cannot connect to a SQL Server 2008 R2 instance

However, the SQL Server 2008 R2 tools can manage SQL Server 2005 instances. To manage SQL Server
remotely, install the SQL Server 2008 R2 tools on a workstation to ensure that you can manage SQL
Server 2008 R2 after it is installed.

On the server where you might be upgrading SQL Server in-place to SQL Server 2008 R2, the SQL Server
2008 R2 install process will not remove the existing SQL Server 2005 management tools. After the
upgrade, you should check and, if necessary, uninstall the tools by using Add or Remove Programs.

For this reason, when moving to a new instance of SQL Server 2008 R2 on the same server or a separate
server, SQL Server 2008 R2 will not remove the SQL Server 2005 Client Tools.


c 

SQL Server Management Studio 2008 R2 can open and work with project files built with Management
Studio 2005. In addition, Management Studio 2005 can open and work with project files built in
Management Studio 2008 R2. However, because Management Studio 2005 cannot connect to SQL
Server 2008 R2, if Management Studio 2005 is used to open a Management Studio 2008 R2 project and
attempts to connect to a SQL Server 2008 R2 instance, there will be a connection failure when
attempting to execute a script.

BI Development Studio 2008 R2 is built on a different version of Visual Studiothan BI Development


Studio 2005. When a BI Development Studio 2005 project is opened using BI Development Studio 2008
R2, the project file will be converted to the new Visual Studio format. At that point, BI Development

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 91

Studio 2005 will not be able to open the project. Opening BI Development Studio 2008 R2 projects using
BI Development Studio 2005 is not supported.

 c 
  Ô 
After the upgrade, you might need to perform some tasks to have your new management tools behave
the same as before the upgrade.

After an in-place upgrade, SQL Server 2008 R2 will preserve your settings in Management Studio.
However, in a side-by-side upgrade, you will need to customize the tools to have the same functionality
as before. These include the following features, discussed earlier in this chapter3

{c Exporting and importing registered servers from Management Studio


{c Transferring Management Studio 2005 and BI Development Studio 2005 projects to
Management Studio 2008 R2 and BI Development Studio 2008 R2
{c Customizing the layout of Management Studio 2008 R2
{c Making appropriate SQL Server settings using SQL Server 2008 R2 Policy-Based Management
{c Recreating linked servers on the new instance
{c Using Database Mail instead of SQL Server 2000 SQL Mail
{c Recreating SQL Server Agent jobs and SQL Server 2000 or SQL Server 2005 maintenance plans
{c Transferring external T-SQL scripts to the correct location for the new instance

There are other resources available to help get you familiarized with the new environment after
upgrading. These will be especially useful if you are upgrading from a pre-SQL Server 2005 installation
because there have been such dramatic changes in SQL Server͛s management interface. The Microsoft
Events Web site lists many more resources to help you get started with the SQL Server 2008 R2
management environment after the upgrade; just search for SQL Server 2008 R2.

 c î  
SQL Server 2008 R2 provides many valuable new features and enhanced functionality in the
management tools area. You can minimize the risk of an upgrade to SQL Server 2008 R2 and gain
confidence by following these practices and understanding the management tools changes you need to
consider to prepare for an effective upgrade.

c x
   
For an up-to-date collection of additional references for upgrading database security, see the following
links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 92

c 
  
 

ac 


Customers currently using SQL Server 2000 or SQL Server 2005 have several options for upgrading their
relational databases to SQL Server 2008 R2. The best approach depends on how the SQL Server 2000 or
SQL Server 2005 instances and databases are deployed, the level of database availability required during
the upgrade, and how much upgrade testing you have to do.

c 
  
  î 

SQL Server 2000 and SQL Server 2005 can be deployed in different configurations. For example, a SQL
Server might have a single default instance or multiple named instances. In high availability (HA)
environments, a given configuration might participate in a cluster, a log shipping scenario, or perhaps a
database mirroring relationship. Other configuration options could include replication or full-text
indexing. This chapter discusses upgrading relational databases in any of these configurations. However,
there are special considerations when you upgrade relational databases that are part of a cluster, log
shipped, mirrored, replicated, or enabled for full-text indexes. For specific information about how to
upgrade these configurations, see the following resources3

{c Considerations for Upgrading the Database Engine in SQL Server 2008 R2 Books Online provides
a valuable overview of the upgrade process and covers many high-level details to consider
before you start the upgrade process.
{c For HA features such as clustering, log shipping, mirroring, and replication, see Chapter 4, "High
Availability." You can find additional specific information about each of these technologies in the
following resources3
©c For cluster upgrade information, see Upgrading a SQL Server Failover Cluster in SQL
Server 2008 R2 Books Online.
©c For log shipping upgrade information, see the following SQL Server 2008 R2 Books
Online topics3
lc Migrating a SQL Server 2000 Log Shipping Configuration to SQL Server 2008
(applicable to SQL Server 2008 R2)
lc Upgrading SQL Server 2005 Log Shipping to SQL Server 2008 (applicable to SQL
Server 2008 R2)
©c For mirroring upgrade information, see How to3 Minimize Downtime for Mirrored
Databases When Upgrading Server Instances in SQL Server 2008 R2 Books Online.
©c For replication upgrade information, see Considerations for Upgrading Replicated
Databasesin SQL Server 2008 R2 Books Online.
{c For full-text upgrade information, see Chapter 6, "Full-Text Search," andFull-Text Search
Upgradein SQL Server 2008 R2 Books Online.
{c For MSDE and SQL Server Express upgrades, see Chapter 10,"SQL Server Express."

c   î 



Before upgrading from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2, you need to address
the following considerations.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 93

{c Make sure that you have a valid backup of all the databases participating in the upgrade
process. For backup details, see Chapter 1, "Upgrade Planning and Deployment."
{c Only instances of SQL Server 2000 Service Pack 4 (SP4) or later versions, instances of SQL Server
2005 RTM or later versions on Windows Server 2003, and SQL Server 2005 SP2 or later versions
on Windows 2008 can be upgraded to SQL Server 2008 R2. For comprehensive information
about which versions and editions can be upgraded, see Version and Edition Upgradesin SQL
Server 2008 R2 Books Online.
{c To minimize potential problems when a database is upgraded to SQL Server 2008 R2, the
database keeps its existing compatibility level (except for system databases, which have a 100
compatibility level). If you upgrade a database from SQL Server 2000, it will have an initial
compatibility level of 80, and if you upgrade from SQL Server 2005, the database will have an
initial compatibility level of 90. Before you change the compatibility level of an upgraded
database to 100, you must assess how the change might affect your applications. For specific
compatibility-level guidance, see ALTER DATABASE Compatibility Level (Transact-SQL)in SQL
Server 2008 R2 Books Online.
{c On a server that contains multiple instances of the SQL Server Database Engine (SQL Server 2000
or SQL Server 2005), you must upgrade each instance individually; upgrading one instance has
no affect on other instances on the same server. From the SQL Server 2008 R2 point of view, you
can upgrade instances in any order and at any time.
{c You cannot perform a direct, in-place upgrade from a 32-bit edition of SQL Server 2000 or SQL
Server 2005 to any 64-bit edition of SQL Server 2008 R2. However, databases from a 32-bit
edition can be restored on or attached to a 64-bit edition of SQL Server 2008 R2, and they will
be automatically upgraded. For more information about this process, see Chapter 1, "Upgrade
Planning and Deployment."

§ 3 Be aware of significant tool upgrade issues in upgrading to SQL Server 2008 R2. For
comprehensive information about how to upgrade SQL Server tools, see Chapter 2, "Management
and Development Tools."

SQL Server 2008 R2 has multiple hardware and software requirements that you must consider when you
perform an in-place upgrade because you might have to update your operating system service pack or
install or upgrade other operating system components. For a complete list of requirements, see
Hardware and Software Requirements for Installing SQL Server 2008 R2in SQL Server 2008 R2 Books
Online.

ac   Ô"
  
In SQL Server 2008 R2, full-text search functionality is integrated into the Database Engine and is
improved in several ways. Improvements include the following3

{c Stop lists
{c Thesaurus improvements
{c New troubleshooting tools

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 94

{c New word breaker family


{c Performance improvements in indexing and in querying and query parallelism

When you perform an upgrade from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2, you
have three options for how to upgrade full-text indexes3

{c M  %This option imports full-text catalogs and brings them online and ready to search fairly
quickly. The downside to this option is that it does not take advantage of the new and improved
word breakers. If you later decide to rebuild your full-text indexes, SQL Server will use the new
word breakers.
{c '%This option enables all new full-text features of SQL Server 2008 R2, including the new
and improved word breakers. However, this option will likely take longer and consume more
CPU and memory resources.
{c ' %If you select the Reset option, only the metadata of the full-text indexes remains. If you
want to use the full-text indexes after the upgrade and you select this option, you have to
manually issue a full population.

For more information about SQL Server 2008 R2͛s full-text search improvements, see Chapter 6, "Full-
Text Search."

c 
î    #

   ac = 

You can upgrade SQL Server 2000 SP4; SQL Server 2005 RTM, SP1, and SP2; and SQL Server 2008
Community Technology Preview (CTP) 5 and later to SQL Server 2008 R2. For more information about
versions that you can upgrade, see the "Upgrade Considerations" section later in this chapter.

   c   

You can upgrade the Database Engine component, including SQL Server Agent, to SQL Server 2008 R2.
You can also upgrade the Management Tools, Full-Text Search, Analysis Services, and Reporting Services
components. For more information about each of these topics, see the following chapters in this guide3

{c Chapter 2, "Management and Development Tools"


{c Chapter 6, "Full-Text Search"
{c Chapter 11, "Analysis Services"
{c Chapter 14, "Reporting Services"

   c :

There are multiple in-place upgrade paths available to you, depending on the edition of SQL Server that
you are upgrading from. Generally, you can upgrade to an edition equal to or later than your current
edition. For example, you can upgrade from SQL Server 2005 Standard to SQL Server 2008 R2 Standard
or Enterprise.

However, you might have to perform multiple in-place upgrades to reach the edition you require. For
example, to upgrade from SQL Server 2005 Express to SQL Server 2008 R2 Standard, you would first

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 95

have to upgrade to SQL Server 2008 R2 Express and then from SQL Server 2008 R2 Express to SQL Server
2008 R2 Standard. In this case, it might be a better idea to perform a side-by-side upgrade, which would
let you upgrade compatible features directly from one version of SQL Server to the next.

When you upgrade editions in-place, you must maintain the same processor architecture type. There is
no support for upgrading from a 32-bit edition to a 64-bit edition or from X64 to IA-64 or vice versa. If
you have to upgrade to a different processor architecture, you must perform a side-by-side upgrade. For
a complete upgrade path list, see Version and Edition Upgradesin SQL Server 2008 R2 Books Online.

Note also that SQL Server 2008 R2 is not supported on Windows 2000 and earlier operating systems. For
a complete list of supported operating systems, see Hardware and Software Requirements for Installing
SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

   c ) 
 

There is broad support for localization within SQL Server 2008 R2. The US English version of SQL Server
2008 R2 is supported on all localized versions of supported operating systems. If you are running a
localized version of SQL Server 2000 or SQL Server 2005, you can perform an in-place upgrade to SQL
Server 2008 R2 as long as the target instance and operating system are of the same language as your
original SQL Server 2000 or SQL Server 2005 instance. You can run a localized instance of SQL Server
2008 R2 on English-language versions of supported operating systems by using the Multilingual User
Interface Pack (MUI) and verifying that the following operating system settings match the language of
SQL Server to be installed3

{c The operating system user interface setting


{c The operating system user locale setting
{c The system locale setting

For more information about cross-language support, see Version and Edition Upgradesin SQL Server
2008 R2 Books Online.

c 
î 
  #

   ac = 

Although SQL Server 7.0 and earlier databases are not directly upgradeable to SQL Server 2008 R2, there
are options available to upgrade these databases indirectly. For more information, see Copying
Databases from SQL Server 7.0 or Earlierin SQL Server 2008 R2 Books Online.

Instances of SQL Server 2000 with service pack levels less than SP4 cannot be upgraded. However,
individual databases can be upgraded by using the side-by-side upgrade model even if SQL Server 2000
is only at the RTM level.

   c   

Some components have either been deprecated or removed in SQL Server 2008 R2. For example,
Notification Services was removed from SQL Server 2008 R2. For information about how to run
Notification Services with SQL Server 2008 R2, see Chapter 9, "Notification Services." In addition, Data

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 96

Transformation Services (DTS) was replaced by SQL Server Integration Services (SSIS). For more
information about DTS and SSIS, see Chapter 13, "Integration Services."

   c :

Although Microsoft has made a great effort to support as many in-place upgrade paths as possible,
there remain some editions of SQL Server 2000 and SQL Server 2005 that do not support in-place
upgrades. These include the following3

{c SQL Server 2000 (32-bit) Developer SP4


{c SQL Server 2000 (32-bit) Personal SP4
{c SQL Server 2000 Enterprise Evaluation (32-bit, IA-64, X64)
{c SQL Server 2005 (32-bit) Workgroup
{c SQL Server 2005 (32-bit) Developer
{c SQL Server 2005 Enterprise Evaluation (32-bit, IA-64, X64)
{c SQL Server 2005 IA-64 (64-bit) Developer

For more information, see Version and Edition Upgradesin SQL Server 2008 R2 Books Online.

   c 

When you perform an in-place upgrade, you must upgrade to the same processor architecture. For
example, you cannot upgrade from a 32-bit edition of SQL Server 2005 to a 64-bit edition by using the
in-place upgrade method. However, you can upgrade to a different processor architecture by using the
side-by-side upgrade method.

   "c ) 
 

Upgrading across localized versions of SQL Server is not supported. For more information, see Version
and Edition Upgradesin SQL Server 2008 R2 Books Online.

   &c 
)

 

Be aware that when you perform an in-place upgrade, you cannot add features or make configuration
changes. If you need to do either, you must do so after the upgrade. In addition, when you perform an
in-place upgrade, you must upgrade the whole instance. You cannot upgrade one database in an
instance and leave the rest of the instance at the previous level. To upgrade a single database, for
example, you would have to perform a side-by-side upgrade. This would let you copy or restore a
database from your old instance to your new instance while leaving the old instance in place.

c            


When you upgrade a SQL Server 2000 or SQL Server 2005 database to SQL Server 2008 R2, you have two
main options3 You can perform an in-place upgrade or a side-by-side upgrade.

You can also upgrade the SQL Server 2008 Database Engine and other components to SQL Server 2008
R2. Because the two versions share many of the same components, an in-place upgrade is
recommended. For more information, see ͞SQL Server 2008 and SQL Server 2008 R2͟ in Chapter 1 of
this document.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 97

For information related to planning and deploying an in-place or side-by-side upgrade, see Chapter 1,
"Upgrade Planning and Deployment."

ac     
An in-place upgrade is the fastest and easiest upgrade method because it upgrades all system and user
databases and settings for you. In addition, you do not have to update client applications to connect
them to a new instance of the relational Database Engine. However, an in-place upgrade is an all-or-
nothing approach. In the unlikely event that an in-place upgrade of the relational Database Engine fails,
you cannot quickly roll back to SQL Server 2000 or SQL Server 2005.

If the upgrade fails, you have to take the following steps3

1.c From the installation media, run the repair option in an attempt to fix the instance; if this does
not work, go to Step 2.
2.c Uninstall the corrupted SQL Server 2008 R2 instance that was created during the failed upgrade
attempt.
3.c Restart.
4.c Reinstall the earlier version of SQL Server (SQL Server 2000 or SQL Server 2005).
5.c Reinstall any required SQL Server service packs to your SQL Server 2000 or SQL Server 2005
instance.
6.c Restore the system and user databases from database backups.
7.c Review issues that prevented a successful upgrade in the previous attempt, resolve them, and
restart the upgrade process.

Be aware that downtime if there are upgrade problems can be significant.

c     


With a side-by-side upgrade, the SQL Server 2008 R2 relational Database Engine is installed as a second
instance and the original SQL Server 2000 or SQL Server 2005 relational Database Engine remains
installed. Then you move or copy one or more SQL Server 2000 or SQL Server 2005 user databases to the
SQL Server 2008R2 instance (each moved database is automatically upgraded).

During the side-by-side upgrade process, users can continue to access the SQL Server 2000 or SQL Server
2005 relational Database Engine and its databases (which are unaffected by the upgrade process) while
the new SQL Server 2008 R2 server is being built. When you are ready to switch to the new instance,
users must stop activity on the older instance while you transfer databases to the new SQL Server 2008
R2 server. After the side-by-side upgrade is complete, the SQL Server 2008 R2 relational Database
Engine and the SQL Server 2000 or SQL Server 2005 relational Database Engines co-exist. After you verify
the SQL Server 2008 R2 relational Database Engine, you can let applications access the new server. And
after the SQL Server 2008 R2 relational Database Engine is in production, you can uninstall SQL Server
2000 or SQL Server 2005 from the old server.

A side-by-side upgrade can require much more effort than an in-place upgrade. In an in-place upgrade,
SQL Server 2008 R2 Setup makes sure that the new SQL Server 2008 R2 instance has the same name as

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 98

the old instance and automatically preserves server configuration and server objects, such as logins, SQL
Server Agent jobs, and so on. In a side-by-side upgrade, you must perform all those tasks yourself, either
manually or through scripting techniques.

With a side-by-side upgrade, you either install the SQL Server 2008 R2 relational Database Engine as a
new named instance on the same server or on a new server as either the default instance or a named
instance.

&  § If you install SQL Server 2008 R2 on a separate computer or as a separate instance
on the same computer as part of the upgrade to SQL Server 2008 R2, you have 60 days to complete
the upgrade from the earlier version (by removing the earlier version) before you are out of
licensing compliance.
1   3 A relational database that was upgraded to SQL Server 2008 R2 cannot be moved back to
an earlier version of SQL Server. You could extract the data out of the SQL Server 2008 R2 instance.
However, if the upgrade fails because of a persistent issue such as disk corruption, you must have a
verified backup of your original databases to retrieve data from.

A side-by-side upgrade lets you continue to use the existing relational database environment until you
are ready to switch to the new one. This approach can help maximize your ability to quickly roll back to
the prior instance should any difficulties arise. A side-by-side upgrade might also result in simpler testing
scenarios because both versions are available at the same time.

However, a side-by-side upgrade is not as fast or simple as an in-place upgrade because of the additional
effort required to transfer all server objects and redirect clients to the new instance. The side-by-side
upgrade method does not upgrade any system databases. Although you can use the Copy Database
Wizard to help move some system objects, most database objects in the system databasesͶsuch as
server logins, jobs, alerts, maintenance plans, user-defined error messages, and DTS packagesͶmust
generally be moved separately or recreated manually.

M  3 If you continue to use the instance of SQL Server 2000 or SQL Server 2005 while you are
testing an upgraded database in an instance of SQL Server 2008 R2, the databases will not remain
synchronized. Data changes that are made to the existing database will not be made to the
upgraded database. To bring the instance of SQL Server 2008 R2 forward in time, you must bring the
data from SQL Server 2000 or SQL Server 2005 forward by using a kind of data transfer, such as data
file detach and attach, transaction log backup and restore, or transactional replication. Some of
these topics are covered later in this chapter.
§ 3 When you install a new instance of the SQL Server 2008 R2 relational Database Engine and
then move one or more user databases to this instance, be aware that the following SQL Server
2000 and SQL Server 2005 relational database features are disabled by default in new installations3
{c Ad hoc distributed queries
{c Automation
{c SQL Mail

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 99

{c Web Assistant stored procedures


{c Named pipes
{c xp_cmdshell

To enable some or all of these features, use the SQL Server Configuration Manager utility.
If you opt to use the side-by-side method of upgrading to the SQL Server 2008 R2 relational Database
Engine, you have several methods to choose from, including the following3
{c Backup and restore
{c Detach and attach
{c Manual schema rebuild and data export/import
{c Log shipping
{c Copy Database Wizard

Let͛s take a look at each of these methods in turn.

   ac $%

# 

You can upgrade a SQL Server 2000 or SQL Server 2005 relational database by performing a database
backup of that database and then restoring it to a SQL Server 2008 R2 instance. You can create a
database backup by using SQL Server Enterprise Manager in SQL Server 2000 or SQL Server
Management Studio (SSMS) in SQL Server 2005. You can also create a backup in either version by
executing a Transact-SQL (T-SQL) script. You can then restore this database backup on the SQL Server
2008 R2 instance by using SSMS or a T-SQL script.The database will automatically be upgraded as it is
restored.

This side-by-side upgrade method lets you leave the SQL Server 2000 or SQL Server 2005 relational
database online and available to users until you are ready to switch to the upgraded database in the
new instance of SQL Server. Before switching over, make sure that you perform post-upgrade
compatibility and functionality testing (described later in this chapter) and any necessary application
modifications such as connection string changes, modifications required by the Database Engine
upgrade, and T-SQL changes.

The advantage of using the backup/restore method is that database backups are usually smaller than
the original database files because the database backup process captures only actual data, not reserved
but unused database space. In addition, only the tail of the transaction log is backed up instead of the
whole log file. This decrease in file size usually makes any file transfer over the network faster than
trying to transfer the original data and log files. You can also use third-party utilities to compress the
backup before transferring it over the network.

One drawback to the backup/restore method is that if the backup is made to disk instead of to tape, the
destination SQL Server will need additional disk space to accommodate the backup file in addition to the
original database files.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 100

M  3 As noted in the main text, if you continue to use the SQL Server 2000 or SQL Server 2005
instance while you are testing an upgraded database in a SQL Server 2008 R2 instance, the
databases will not remain synchronized. Data changes that you make to the existing database will
not be made to the upgraded database. You must perform another backup/restore of the database
when you are ready to switch to SQL Server 2008 R2.
To minimize downtime, you might consider putting the database into Full recovery mode before you
make the second backup and restore. You can then restore the database on your SQL Server 2008
R2 instance, specifying the NORECOVERY option. Because you are in the Full recovery mode, users
can continue to change the original database while all the backing up and restoring is occurring.
When you are ready for the final cutover, back up the transaction log on the original SQL Server
2000 or SQL Server 2005 instanceand restore the transaction log on the SQL Server 2008 R2
instance, specifying the RECOVERY option.

   c ! 



You can also upgrade a SQL Server 2000 or SQL Server 2005 database by detaching the database from its
current instance, moving or copying the underlying data and log files, and then reattaching those data
and log files to a SQL Server 2008 R2 relational database instance. The database will automatically be
upgraded as it is attached. If you copy the data and log files, you can reattach the original data and log
files to the existing instance of SQL Server with only minimal disruption to the availability of the
databases to be moved. The detach/attach upgrade method has the safety advantage in that the current
databases remain available until you are ready to switch over after you perform post-upgrade
compatibility and functionality testing and any necessary application modifications (such as connection
string changes, modifications required by the Database Engine upgrade, and T-SQL changes).

§ In many SQL Server databases, significant space is reserved in the data and transaction log
files that has no data. This is by design to minimize how often a data file must expand as data is
added. However, if you plan to detach a SQL Server database of any version and copy or move it to
another location to be reattached, you will be moving this empty space together with your data.
This increases the time that is required to complete the upgrade process.
M  3 As with the backup/restore method, if you continue to use the SQL Server 2000 or SQL
Server 2005 instance while you are testing a detach/attach upgraded database in a SQL Server 2008
R2 instance, the databases will not remain synchronized. Data changes that you make to the existing
database will not be made to the upgraded database. You must perform another detach/attach
upgrade of the database when you are ready to switch to SQL Server 2008 R2. As with all upgrade
methods, make sure that you have reliable backup copies of the databases that you are upgrading.
In the unlikely event that the data files become corrupted during this process, you will be able to
restore from these backups.

When you move a very large database (VLDB) from one instance to another on the same server,
detach/attach can have the advantage of requiring less disk space than some other upgrade methods if
you reuse underlying data and log files instead of copying them. On systems that use a SAN disk
configuration, you can detach the SAN volume from the older instance of SQL Server and then present it

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 101

to the instance of SQL Server 2008 R2. These options will save disk space and might save database
administrators (DBAs) from having to move the database files over the network. But they will also
eliminate the ability to roll back if the relational database upgrade should fail for any reason.

With a SAN disk configuration, you can also clone the disk volume while the original SQL Server
relational database is online and then recreate that clone on another disk array, which you can then
attach to the SQL Server 2008 R2 relational database instance for upgrade. DBAs with a SAN disk
configuration should meet with their disk engineers to discuss possible methods for moving the
database files without having to perform a copy over the network and without attaching the original
files if possible.


   For rollback purposes, you should create a copy of the relational database file (or perform
a backup) before attaching it to a new relational database instance. After you have attached a
relational database file to SQL Server 2008 R2, you cannot reattach it to an earlier version of the SQL
Server relational Database Engine.

   c 
 
# 

!
:; ? 

Another way you can perform a side-by-side upgrade of a SQL Server 2000 or SQL Server 2005 database
is by using SSMS to generate a database creation script for the database and executing the script in the
desired SQL Server 2008 R2 instance. You can then manually copy the data from the original relational
database to the new relational database by using T-SQL scripts, DTS packages, SSIS packages, BCP
commands, or any number of other methods that are available to SQL Server DBAs for copying data
from one database to another.

Most DBAs do not choose this method for upgrading their relational databases because it is primarily a
manual process and provides few advantages over the side-by-side upgrade methods previously
discussed. However, it does leave the current relational database online and lets you schedule the
upgrade at a convenient time (such as overnight or over a weekend). This upgrade method also enables
you to modify database schema, clean up database data,or filter data being moved to the upgraded
databases during the upgrade process.

   c )
 

You can use log shipping to make a side-by-side relational database upgrade easier with minimal
downtime. You can log ship from a legacy database on one instance to a target database on SQL Server
2008 R2 and then fail over the log shipping as the final upgrade step. For more information about this
alternative, see the "Methods for New Hardware and Side-by-Side Upgrades" section in Chapter 4, "High
Availability."

   "c  
!
1,

You can also upgrade a SQL Server 2000 or SQL Server 2005 database by using the Copy Database
Wizard. This wizard supports two upgrade methods3 detach and attach and SQL Server Management
Objects (SMO).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 102

{c    %This method is identical to the detach/attach upgrade method previously


discussed. It lets you move or copy the underlying relational database files after they are
detached, automatically reattaching the detached files after a copy (and optionally after a failed
move).
{c 6%This method is similar in concept to the manual schema rebuild and data export/import
upgrade method we looked at earlier. This method uses SMO to read the definition of each
database object in the relational database being upgraded, without taking it offline, and then
recreates each object in the destination database. It then creates and executes an SSIS package
to transfer the data from the source table to the newly created destination table, recreating
indexes and metadata.
Each of these methods lets you automate and schedule the upgrade process at a convenient time. Each
method within the Copy Database Wizard also lets you select one or more of the following additional
object types to upgrade3

{c Logins
{c User stored procedures in the master database
{c SQL Server Agent jobs
{c User-defined error messages

With the Copy Database Wizard, you cannot copy extended stored procedures, alerts, DTS packages, or
linked server configurations. You must move these manually.


c  
 

     
Regardless of whether you choose an in-place upgrade or a side-by-side upgrade of a relational
database, there are a range of potential issues that you might face during the upgrade. You can obtain a
report that identifies many of these potential issues before you start an upgrade by running the
Microsoft SQL Server 2008 R2 Upgrade Advisor, which you can download at Microsoft SQL Server 2008
R2 Feature Pack. You should run the Upgrade Advisor to analyze all the SQL Server 2000 or SQL Server
2005 databases that you want to upgrade. For information about how to install and run this tool, see
Chapter 1, "Upgrade Planning and Deployment." However, there is a category of issues that Upgrade
Advisor cannot detect or whose detection would result in too many false-positive results.

Look at the most important SQL Server 2008 R2 upgrade issuesͶincluding deprecated and discontinued
functionality, changes that might prevent an upgrade, and changes in feature behavior that might
require modificationsͶwhether detected by Upgrade Advisor or not. For a complete list of backward-
compatibility issues,see Backward Compatibilityin SQL Server 2008 R2 Books Online.For a complete list
of the Database Engine upgrade issues that Upgrade Advisor detects, see the "Database Engine Upgrade
Issues" topic in the SQL Server 2008R2 Upgrade Advisor Help file.


ac 
 

There are several features in SQL Server 2008 R2 that are marked for removal in the next version of SQL
Server. After you upgrade, you should remove the usage of these features from existing applications and
avoid them in new development work. For a complete discussion of deprecated features in SQL Server

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 103

2008 R2, see Chapter 8, "Transact-SQL Queries," and Deprecated Database Engine Features in SQL
Server 2008 R2in SQL Server 2008 R2 Books Online.


c  
   
 

Several features from earlier versions of the SQL Server Database Engine are not supported in SQL
Server 2008 R2, so you must use replacement features for these. Table 3-1 lists the discontinued
features that you will most likely encounter as well as the recommended replacement features.

M  3 Backward compatibility with earlier versions of SQL Server was a high priority in SQL
Server 2008 R2, so in most cases, applications will behave as in the past. For more information, see
Discontinued Database Engine Functionality in SQL Server 2008 R2in SQL Server 2008 R2 Books
Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 104

Ô # !  ë  '   


  ë 4ë     '   ë 4
   
 9   :   ;  % Modify scripts that update system tables directly
Used to directly update system tables, but direct to use documented commands instead of direct
updates to system tables are no longer supported. updates.
This option, although present, has no effect.
§ *  % The NWLink IPX/SPX, Use TCP/IP sockets, named pipes, VIA, or shared
AppleTalk, Banyan Vines, and Multiprotocol memory.
network protocols are no longer supported.
'%5% Used for rebuilding system This executable is replaced by the
databases, this executable is obsolete. REBUILDDATABASE option in setup.exe. Modify
any scripts that use the rebuildm.exe executable.
    % The Northwind and Pubs These sample databases are replaced by the
sample databases have been discontinued. AdventureWorks and the AdventureWorksDW
sample databases. However, you can download or
move Northwind and Pubs from a SQL Server 2000
or SQL Server 2005 instance.
'   % Used to install SQL Server on a Use a remote connection to run the SQL Server
remote computer, this option is no longer Setup program on the remote computer.
available in the Setup program.
§    * % No longer supported. Contact your backup vendor to see whether it has
a new version that supports VDI (the replacement
for named pipes). Alternatively, you can use SQL
Server native tools to back up to disk or tape.
     & % No longer Use Database Mail to send mail attachments.
supported.

For a complete list of discontinued functionality in SQL Server 2005 and SQL Server 2008 R2, see the
following topicsin SQL Server Books Online3

{c Discontinued Database Engine Functionality in SQL Server 2005


{c Discontinued Database Engine Functionality in SQL Server 2008 R2


c   î 
Some settings will prevent the SQL Server 2008 R2 Setup program from starting the upgrade process for
the Database Engine. If one of these issues is encountered, the upgrade process will stop, and the legacy
system will remain in place.Upgrade Advisor will discover each issue that Table 3-2 lists.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 105

Ô # "MÔ 1  $  


M
   
$ À À    % SQL Server 2008 Create a new user who has a different name,
R2 does not permit a username of À À in a transfer ownership of all database objects to that
database. new user, and drop user À À from the database.
   M% SQL Server 2008 R2 does not Drop and recreate the duplicate SQL Server logins
permit duplicate login SIDs for SQL Server on the legacy system.
authentication.
&    5 % Rename the logins on the legacy system.
SQL Server 2008 R2 does not allow login names to
match fixed server role names.
  M#"<0<% SQL Server 2008 R2 does not Detach and reattach the database and make sure
permit a database ID of 32767. that it gets a new database ID.
   5 % SQL Server 2008 R2 does Rename the indexes so that all indexes are unique
not permit duplicate index names on a table. within each table.

If you are performing a side-by-side upgrade, you must correct only the "username À À" and the
"duplicate index names" issues on the legacy system. SQL Server 2008 R2 will prevent you from applying
any of the other settings, such as using a database ID of 32767, having duplicate login SIDs, and having
login names that match fixed server role names.

Some additional issues will prevent you from upgrading a SQL Server 2000 or SQL Server 2005 database
to SQL Server 2008 R2. You must resolve these issues before you start an upgrade, or the upgrade will
fail. Table 3-3 lists the most likely issues of this kind together with the recommended corrective action.

Ô # #M 'd7   $  


M
   

 % SQL Server 2008 R2 cannot create or Verify that the relational databases to be
upgrade relational databases residing on compressed upgraded do not reside or will not reside on
drives. compressed drives. READ-ONLY relational
databases and files can be placed back on
compressed drives after the upgrade is
complete.
'     % SQL Server will not upgrade Make sure that all filegroups in relational
filegroups in relational databases set to READ_ONLY databases scheduled for upgrade are set to
because non-writeable files will not be upgraded. READ_WRITE.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 106

M
   
* % Additional space is required for data files During setup, make sure that each user
during an upgrade because of additional system database is set to autogrow and that the
metadata, 40 bytes per column required for large object PRIMARY filegroup of each user database
columns, and the storage of a full-text mapping table for has sufficient disk space. Insufficient disk
each full-text indexed table within the data file instead space will cause an upgrade to fail.
of in the file system.

§     % During the upgrade, the Setup If the pipe name is not valid, change it to a
program starts the SQL Server 2008 R2 relational valid name.
Database Engine with shared memory support, a named
pipe that accepts only local connections. If the pipe
name specified on the server is not blank, it must begin
with " . pipe " to be valid.

 % The SQL Server service must not be Change the service account to Local System,
running under the Local Service or the Network Service a local user account, or a domain user
account if SQL Server is running on a Windows Server account.
2003 domain controller.


For a complete list of breaking changes in SQL Server 2005 and SQL Server 2008 R2, see the following
SQL Server Books Online topics.

{c Breaking Changes to Database Engine Features in SQL Server 2005


{c Breaking Changes to Database Engine Features in SQL Server 2008 R2


c   î 
SQL Server 2008 R2 has several behavior changes that might require you to take corrective action after
the upgrade is complete. Table 3-4 lists the behavior changes that you are most likely to see in addition
to the recommended corrective action.

M  3 Backward compatibility with earlier versions was a high priority in SQL Server 2008 R2,
so in most cases, applications will behave as in the past.
Ô # +d  
 Ô  ',
   
d 
 
   
&* % Additional space is required by Make sure that the log files for each user database
transaction log files. are set to autogrow and have sufficient additional
disk space or increase the size of each log file
manually. Monitor the effect of workloads on
transaction log space after upgrade.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 107

 * % Additional space is required by Make sure that the data and log files for tempdb
tempdb data and log files because of tempdb͛s use are set to autogrow and have sufficient additional
by new features and enhancements to existing disk space, or increase the size of each file
features. manually. Monitor the effect of workloads on data
and log space after upgrade.
5    % Extended stored Drop the extended stored procedure by using
procedures that were previously registered sp_dropextendedproc, and then register the
without a full path for the DLL name might fail extended stored procedure with the full path by
because the old BINN directory is not added to the using sp_addextendedproc.
new path during upgrade.
  3 % System objects are now Modify scripts that contain statements that query
owned by À Àinstead of
. system tables or have search criteria specifying

.
§ 3 Table 3-4 lists general behavior changes in SQL Server 2008 R2 related to relational databases.
For more information about behavioral changes specific to relational technology, see the remaining
sections of this chapter.
For a complete list of behavior changes from SQL Server 2000 and SQL Server 2005 to SQL Server 2008
R2, please review the following SQL Server Books Online topics3
{c Behavior Changes to Database Engine Features in SQL Server 2005
{c Behavior Changes to Database Engine Features in SQL Server 2008 R2

 c      


Before you start a relational database upgrade, regardless of type, you must take several steps to
prepare for the upgrade and a possible rollback. This section covers the preparation steps that you must
follow for an in-place upgrade and then examines the steps for a side-by-side upgrade.
M  3 For any critical database, you should perform a test run of a side-by-side upgrade to
enable extensive application testing before you perform an actual upgrade visible to the online
application. This best practice lets you perform any necessary modifications to the application
environment in the test environment for verification. Performing a test upgrade can help prevent an
unnecessary rollback to the earlier version.

 ac         


You should take the following steps to prepare for an in-place upgrade of an instance of the relational
Database Engine and its databases3

1.c Verify that you have met the SQL Server 2008 R2 hardware and software requirements. If you
do not meet these requirements, the System Configuration Checker (SCC) part of the SQL Server
Setup program will not permit setup to continue.
2.c Run the SQL Server 2008 R2 Upgrade Advisor to analyze installed SQL Server 2000 or SQL Server
2005 relational engine components, as the following series of figures shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 108

a.c First, specify the legacy server name to be analyzed and, for our purposes, select the
SQL Server component, as Figure 3-1 shows. If you want to verify the compatibility
of other components, you can select them also.

ë# ! Selecting components to analyze by using the Upgrade Advisor

b.c Next, select the instance name to analyze. In this example, the instance name is
MSSQLSERVER, as Figure 3-2 shows. In this step, you also specify your
authentication type and credentials for running the analysis.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 109

ë# " Selecting the instance of SQL Server to analyze

c.c Figure 3-3 shows the next Upgrade Advisor window, which lets you select one or
more databases to analyze. You also have an option to analyze specified trace files
and SQL batch files to help identify any T-SQL code that might not port well to SQL
Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 110

ë# # Selecting a SQL Server 2000 or SQL Server 2005 database to analyze

d.c After Upgrade Advisor finishes its analysis, review the generated report. Figure 3-4
shows an example of the upgrade issue report, which lists items to address before
you start an upgrade in addition to some items to address after the upgrade. Verify
that all pre-setup issues are resolved and that you have a plan for all post-setup
issues.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 111

ë# + Reviewing Upgrade Advisor analysis results

3.c Back up all system and user databases to make sure that you can roll back the upgrade if it is
necessary.
4.c Run DBCC CHECKDB on all databases to make sure that they are in a consistent state.
5.c Configure the system databases for autogrow and make sure that they have sufficient hard disk
space. Additional disk space is required for the system databases in SQL Server 2008 R2 because
of changes in system database schema. You can turn off autogrow after the upgrade is
complete.
6.c Make sure that each user database is set to autogrow and that the PRIMARY filegroup of each
user database has sufficient disk space. Additional disk space is required to allow for the
additional space that is required for the PRIMARY filegroup when you install SQL Server 2008 R2.
You can turn off autogrow after the upgrade is complete.
7.c Make sure that the log file for each user database is set to autogrow and has sufficient
additional disk space. Additional space is required by transaction log files of user databases. You
can turn off autogrow after the upgrade is complete if it is required by your application or
database maintenance plan.
8.c Set the AUTO_UPDATE_STATISTICS option to ON for each database before upgrading to SQL
Server 2008 R2 (or run UPDATE STATISTICS after the upgrade is complete rather than wait until

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 112

the first query hits old statistics). By setting the AUTO_UPDATE_STATISTICS option to ON, all
statistics are updated when they are first referenced.
9.c Disable all startup procedures because they might block the upgrade process. You can re-enable
disabled startup procedures after the upgrade is complete.
10.cDisable all trace flags before upgrading to SQL Server 2008 R2. Some SQL Server 2000 and SQL
Server 2005 trace flags do not exist in SQL Server 2008 R2, and some trace flags have different
functionality in SQL Server 2008 R2. If you use trace flags, you should verify each one after the
upgrade to make sure there have been no changes before you enable any previously used trace
flags.
11.cStop replication and make sure that the replication log is empty.
12.cPrune backup history tables in the msdb database to save time during the upgrade (very large
backup history tables can slow down the upgrade process).
13.cExit all applications, including all services that have SQL Server dependencies. Upgrades might
fail if local applications are connected to the instance being upgraded.

 c        


You should take the following steps to prepare for a side-by-side upgrade (the steps will vary somewhat
based on the side-by-side method that you select)3

1.c Run Upgrade Advisor to analyze the database(s) you want to upgrade, as shown earlier in
Figures 3-1 through 3-4. Then review the generated report to verify that you have addressed all
issues that must be resolved before the upgrade and to ensure you understand the upgrade
issues that you must resolve after the Setup program is complete.
2.c Run DBCC CHECKDB on the databases to be upgraded to make sure that they are in a consistent
state.
3.c Make sure that the user databases to be upgraded are set to autogrow and that the PRIMARY
filegroup of each user database has sufficient disk space. Additional disk space is required to
allow for the additional space that is required for the PRIMARY filegroup when you install SQL
Server 2008 R2. You can turn off this option after the upgrade is complete.
4.c Make sure that the log file for each user database is set to autogrow and has sufficient
additional disk space. Additional space is required by transaction log files of user databases. You
can turn off this option after the upgrade is completeif it is required by your application or
database maintenance plan.
5.c Set the AUTO_UPDATE_STATISTICS option to ON before upgrading to SQL Server 2008 R2.
Statistics are not upgraded as part of the upgrade process, and relying on statistics from
previous SQL Server releases might result in suboptimal query plans. By setting the
AUTO_UPDATE_STATISTICS option to ON, all statistics are updated when they are first
referenced.
6.c Make sure that you have current backups of the databases that you are upgrading by using the
BACKUP DATABASE command, and verify their validity by using RESTORE VERIFY ONLY before
you start the upgrade process. If you use the detach/attach method, you should make sure that
you copy instead of move the data files so that in the unlikely event something should go wrong,

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 113

you can quickly and easily reattach your data files on the original SQL Server 2000 or SQL Server
2005 instance.

 c     


After thoroughly preparing to move your SQL Server 2000 or SQL Server 2005 relational Database Engine
to SQL Server 2008 R2, you are ready to perform the upgrade. Here are the steps for performing an in-
place upgrade and a side-by-side upgrade.

 ac        


You should take the following steps to perform an in-place upgrade of a relational database3

1.c Start the SQL Server 2008 R2 Setup program.


2.c Select required SQL Server 2008 R2 components.
3.c Select SQL Server Database Services and any other desired components, such as Workstation
Components, SQL Server Books Online, and Development Tools.
4.c Select the default or named instance of SQL Server 2000 or SQL Server 2005 to be upgraded.
5.c Specify the appropriate service account.
6.c Specify the logon account information if the instance being upgraded is configured to use Mixed
Mode authentication.

§ 3 The in-place upgrade process automatically upgrades all system and user databases.

 c       


Regardless of which side-by-side upgrade method you use, the first step is installing the SQL Server 2008
R2 relational database instance to which you plan to upgrade the SQL Server 2000 or SQL Server 2005
relational database. If you decide to install SQL Server 2008 R2 on the same server together with SQL
Server 2000 or SQL Server 2005, make sure that you install SQL Server 2008 R2 with a named instance to
avoid overwriting existing SQL Server 2000 or SQL Server 2005 instances on the server. (You might also
verify installed instances during the SQL Server 2008 R2Setup process to check which instances are
already present on the server.)

§ 3 In some cases, you might want to copy the system databases, including the master database,
from the source SQL Server 2000 or SQL Server 2005 instance to the SQL Server 2008 R2 instance
before transferring user databases. For more information, see Moving System Databases in SQL
Server 2008 R2 Books Online.

Then you can upgrade the SQL Server 2000 or SQL Server 2005 user databases by following the steps
associated with the side-by-side upgrade method that you chose.

 2  ac $% ?# 

 

Take the following steps to upgrade a user database by using the backup/restore upgrade method3

1.c Back up the database to be moved from the SQL Server 2000 or SQL Server 2005 instance by
using either SSMS or the BACKUP DATABASE T-SQL statement.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 114

2.c Use SSMS to connect to the SQL Server 2008 R2 relational database instance to which you want
to restore the SQL Server 2000 or SQL Server 2005 relational database.
3.c Restore the relational database from the backup file, changing the database or file names and
locations as necessary.

M  3 You must manually move to the SQL Server 2008 R2 instance the master and msdb
database objects (e.g., logins, jobs, alerts)related to the database being upgraded.

 2  c ! ? 

 

Take the following steps to upgrade a user database by using the detach/attach upgrade method3

1.c Detach the database to be moved from the SQL Server 2000 or SQL Server 2005 instance by
using SQL Server Enterprise Manager, SSMS, or the sp_detach_dbstored procedure.
2.c Copy (or move) the detached data file(s) and log file(s) to the new server.
3.c Attach the copied data and log files to the SQL Server 2008 R2 instance by using SSMS or the
CREATE DATABASE T-SQL statement with the FOR ATTACH or FOR ATTACH_REBUILD option.
4.c Optionally, if you copied the original data and log files, reattach the original data and log files to
the previous instance of SQL Server 2000 or SQL Server 2005.

M  3 You must manually move to the SQL Server 2008 R2 instance the master and msdb
database objects (e.g., logins, jobs, alerts)related to the database being upgraded.

 2  c  
!
1,

 

Take the following steps to upgrade a user database by using the Copy Database Wizard upgrade
method3

1.c Make sure that you have the required permissions on the appropriate servers.
a.c For the detach/attach method, you must be a member of thesysadminfixed server role
on both the source and destination servers.
b.c For the SMO transfer method, you must be a database owner for the source database
and must either have been granted the CREATE DATABASE permission or be a member
of the dbcreator fixed server role on the destination server.
2.c Specify the source and destination servers.
3.c Specify the databases to be moved or copied.
a.c For the detach/attach method, active sessions must not exist when the copy or move
operation is tried, or the Copy Database Wizard will not execute the move or copy
operation.
b.c For the SMO transfer method, active connections are allowed because the database is
never taken offline.
4.c Specify the name of the target database if different from the source database.
5.c Specify other objects to be moved, such as logins, shared objects from the master database,
jobs, maintenance plans, and user-defined error messages.
6.c Specify a schedule for the copy or move operation if you want it scheduled for a later time.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 115

7.c If you are not a member of the sysadmin fixed server role, you must specify a SQL Server Agent
Proxy account that has access to the SSIS package execution subsystem. For information about
how to create a proxy account, see How to3 Create a Proxy (SQL Server Management Studio)in
SQL Server 2008 R2 Books Online.

M  3 You must manually move to the SQL Server 2008 R2 instance certain master and msdb
database objects related to the database being upgraded (such as backup devices, linked server
definitions, and alerts).

c 
  Ô 
You should take the following actions after you upgrade a relational database to SQL Server 2008 R2 to
make sure that the upgrade ran successfully and to configure the relational Database Engine in addition
to the upgraded relational database.

ac     
For in-place upgrades, execute the following steps3

1.c Apply available service packs or updates to the upgraded SQL Server 2008 R2 instance.
2.c Reregister your servers. For information about registering servers, see Registering Serversin SQL
Server 2008 R2 Books Online.
3.c Configure the SQL Server installation. To reduce the attackable surface area of a system, SQL
Server selectively installs and enables key services and features. Therefore, you must configure
the new instance to meet your specific needs.

c     


For side-by-side upgrades, execute the following post-upgrade steps3

1.c Configure/update server logins on the new instance and database users in the upgraded
database.
2.c Configure jobs and database maintenance plans on the new instance.
3.c Configure alerts on the new instance.
4.c Configure DTS/SSIS packages on the new instance.
5.c Update connection strings at clients so that they can connect to the new instance, unless you
are replacing the old server with a new server that has the same identity.

c   
  Ô 
Whether you are doing an in-place upgrade or a side-by-side upgrade, you must execute the following
post-upgrade steps3

1.c Execute DBCC CHECKDB WITH DATA_PURITY to check the database for column values that are
not valid or are out of range. After you have successfully run DBCC CHECKDB WITH
DATA_PURITY against an upgraded database, you do not have to specify the DATA_PURITY
option again because SQL Server will automatically maintain "data purity." This is the only DBCC
CHECKDB check that you must run as a post-upgrade task.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 116

2.c Execute DBCC UPDATEUSAGE on all attached databases to update usage counters and make
sure that correct values exist for table and index row counts.
3.c Update statistics on all databases after you upgrade them. Execute UPDATE STATISTICS in user-
defined tables in SQL Server databases.
4.c Repopulate full-text catalogs. For information about this task, see Chapter 6, "Full- Text Search."
5.c Make sure that the relational databases are working correctly by executing a sample set of
queries.
6.c Update any scripts affected by SQL Server 2008 R2 behavior changes.

ë Ô5 $  %Any databases that were marked full-text enabled or disabled before the
upgrade will maintain that status after the upgrade. After the upgrade, the full-text catalogs will be
rebuilt and populated automatically for all full-text-enabled databases. This is a time- and resource-
consuming operation. For more information, see Chapter 6,"Full-Text Search."
      %Database maintenance plans in SQL Server 2000 consist of T-
SQLcommands executed by SQL Server Agent. Starting with SQL Server 2005, database maintenance
plans are SSIS packages. If you upgrade from SQL Server 2000 to SQL Server 2008 R2, your database
maintenance plans will still work. However, they will be listed under the legacy branch of SSMS. To
upgrade these packages to SQL Server 2008 R2, right-click the plan you want to upgrade and select
Migrate. For more information about this process, see Chapter 1, "Upgrade Planning and
Deployment," and Chapter 2, "Management and Development Tools." You can also find more
information in How to3 Migrate SQL Server 2000 Database Maintenance Plansin SQL Server Books R2
Online.

  
 d %There areseveral changes in caching behavior among SQL Server 2000,
SQL Server 2005, and SQL Server 2008 R2. For more information about changes between SQL Server
2000 and SQL Server 2005 RTM and SP2, see Changes in Caching Behavior between SQL Server 2000,
Server 2005 RTM and SQL Server 2005 SP2 and the SQL Programmability & API Development Team
Blog. For more information about how plan caching and reuse is handled in SQL Server 2008 R2, see
Execution Plan Caching and Reusein SQL Server 2008 R2 Books Online.

c    

Another post-upgrade task that you need to perform is validating or removing USE PLAN hints that were
used by SQL Server 2005 and applied to queries on partitioned tables and indexes. SQL Server 2008 R2
changes the way queries on partitioned tables and indexes are processed. Queries on partitioned
objects that use the USE PLAN hint for a plan generated by SQL Server 2005 might contain a plan that is
not usable in SQL Server 2008 R2. We recommend the following procedures after you upgrade to SQL
Server 2008 R2.

When the USE PLAN hint is specified directly in a query, take the following steps3

1.c Remove the USE PLAN hint from the query.


2.c Test the query.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 117

3.c If the optimizer does not select an appropriate plan, tune the query, and then consider
specifying the USE PLAN hint with the desired query plan.

When the USE PLAN hint is specified in a plan guide, follow these steps3

1.c Use the sys.fn_validate_plan_guide function to check the validity of the plan guide. Or, you can
check for invalid plans by using the Plan Guide Unsuccessful event in SQL Server Profiler.
2.c If the plan guide is not valid, drop the plan guide. If the optimizer does not select an appropriate
plan, tune the query, and then consider specifying the USE PLAN hint with the query plan that
you want.

An invalid plan will not cause the query to fail when the USE PLAN hint is specified in a plan guide.
Instead, the query is compiled without using the USE PLAN hint. For more information about query
processing on partitioned objects, see Query Processing Enhancements on Partitioned Tables and
Indexes inSQL Server 2008 R2 Books Online.


c  


 
   
Be aware that how SQL Server determines query plans between versions variesͶsometimes
significantly. When you upgrade to a new version of SQL Server, it is always important to review changes
to query plans to guarantee optimal performance. For more information about query plan tuning, see
the following SQL Server 2008 R2 Books Online topics3

{c Migrating Query Plans


{c Transact-SQL Statements That Produce Showplans
{c Finding and Tuning Similar Queries by Using Query and Query Plan Hashes

SQL Server 2008 R2 also includes many improvements to query plans on partitioned tables and indexes.
Some new improvements include an improved algorithm for identifying the best parallel execution
strategy, an improved seek mechanism for partitioned tables, and additional information displayed in
the query execution plans for queries that include partitioned tables. For complete information about
these improvements, see Query Processing Enhancements on Partitioned Tables and Indexes inSQL
Server 2008 R2 Books Online. Also see Behavior Changes to Database Engine Features in SQL Server
2008 R2 for the latest information about plans over partitioned tables.

c î
 î
x

    
After you have upgraded your instance or moved to a new instance and validated that your databases
are functioning correctly, you must verify that client applications can connect to your new instance.
Table 3-5 highlights some potential issues that might affect client connectivity.

Ô # -MÔ   


 
   
M   
Network protocols The only supported network protocols are now TCP/IP Sockets, named pipes,
VIA, and shared memory. If your application is using network protocols that
are not in this list, it will not work.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 118

M   
SQL-DMO-based WMI If your application uses DMO-based management APIs, you must upgrade to
providers either the SMO-based management APIs or the WMI for Configuration
management APIs. SMO is written by using the managed code APIs. WMI for
Configuration is written by usingunmanaged code APIs.

DB-Library Before SQL Server 7.0, the primary mechanism for client/server
communication between SQL Server and client applications was DB-Library.
Although DB-Library was still included with SQL Server 2000, Microsoft
announced that it was being deprecated. With the release of SQL Server
2005, DB-Library support is limited to SQL Server 7.0 features.
Network communication By default network communication might be disabled in new SQL Server
2008 R2 installations and must be enabled through the Server Network
Communication tool.

acî  
SQL Server 2008 R2 offers many improvements over SQL Server 2000 and SQL Server 2005, in addition
to many great new features. The first step in taking advantage of these improvements is upgrading your
existing databases to SQL Server 2008 R2. As this chapter explains, you have two main choices for
upgrading SQL Server 2000 or SQL Server 2005 databases to SQL Server 2008 R23 in-place or side-by-
side. And if you select the side-by-side method, you have additional choices to make, including whether
to use backup/restore, detach/attach, or the Copy Database WizardͶor another alternative. Each of
these options has its pros and cons, so you need to make sure that you understand your organization͛s
current configuration and needs. Then you have to prepare thoroughly and test extensively to make
sure that an upgrade is successful and ready for production.

aacx
   
For an up-to-date collection of additional references for upgrading SQL Server 2008 R2, see the
following links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 119

c  x  


ac 


It is almost guaranteed that when upgrading any major server hardware component or software version,
you will encounter some sort of outage. The problem is that in today's world of 24x7 computing,
companies of all sizes have less and less tolerance for downtime. This chapter discusses how to minimize
downtime when upgrading to SQL Server 2008 R2 and how to upgrade the high-availability features of
failover clustering, log shipping, database mirroring, and replication. This chapter does not cover how
each high-availability feature works unless it is different in SQL Server 2008 R2 and has a bearing on the
upgrade process. Prior basic knowledge of high-availability features is assumed.

c  


  
Before looking at how to have highly available upgrades to SQL Server 2008 R2, this section details the
types of upgrades possible and how each rates with regard to high availability. The three main upgrade
options are an in-place upgrade, a side-by-side upgrade, and going to a separate server or new cluster.
For a detailed discussion of upgrade types and their advantages and disadvantages for different
scenarios, see Chapter 1, "Upgrade Planning and Deployment."

M  During upgrade, the original instance of SQL Server and its databases remain
available until the Database Engine upgrade process begins. This means that during the checks
and file copies, you can use the instance and allow connections. However, the upgrade process
does not let you know when it starts processing the database or that other objects might be in
use. It is therefore always best to ensure that all connections are terminated and transactions
are complete before the setup or upgrade process has started. You do not want to run the risk
of someone issuing a query after a final backup has already been performed, thus invalidating it.

ac     
An in-place upgrade uses the SQL Server 2008 R2 Setup program to directly upgrade an instance of SQL
Server 2000, SQL Server 2005, or SQL Server 2008 to SQL Server 2008 R2. The "Upgrade Strategies"
section in Chapter 1 describes the in-place upgrade process in detail.

An in-place upgrade has the highest risk of extended downtime compared with the other upgrade
methods because it upgrades the existing instance of SQL Server. Because the upgrade is happening to
the source instance on the same hardware, there is no way to confine downtime to only switching from
the original instance to one on a different server. The instance and user databases will be unavailable
during the entire time of the upgrade. For some organizations, downtime might outweigh the benefits
of hardware reuse and not having to perform other required tasks (such as scripting logins) when
switching to another server.

However, a bigger risk with an in-place upgrade is that should the process fail for whatever reason, the
installation of SQL Server may not be usable. This worst-case scenario would be remedied by a full
reinstall of Windows and SQL Server because the file versions might be in a mixed state. After the
reinstallation, you would have to restore the databases and objects from backups and scripts. Any

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 120

fallback plan must include steps to potentially rebuild the server from scratch to the way it was before
the upgrade process started. There is no other fallback plan than backup and restore.

c      


     î

This type of side-by-side upgrade moves all or some data from an instance of SQL Server 2000, SQL
Server 2005, or SQL Server 2008 to a separate instance of SQL Server 2008 R2 that resides on the same
server or cluster. The "Upgrade Strategies" section in Chapter 1 describes this process in detail.

A side-by-side upgrade on the same server or cluster offers slightly better protection than an in-place
upgrade because the old configuration is technically still available if something fails. The real cost is the
downtime to switch to the instance of SQL Server 2008 R2 as the moving of data and objects to the new
instance could be handled transparently. The downtime to applications and end users could translate
into minutes of downtime depending on the process used.

Depending on the operating system used, you could potentially have SQL Server 2000, SQL Server 2005,
SQL Server 2008,  SQL Server 2008 R2 on the same cluster. That scenario is only possible on
Windows Server 2003. Windows Server 2008 and Windows Server 2008 R2 only support SQL Server
2005 or later, so you could potentially have SQL Server 2005, SQL Server 2008, and SQL Server 2008 R2
all on the same cluster.

Problems with a side-by-side upgrade on the same server include the following3

{c It is impossible to go back to the original configuration as it existed before the upgrade process
began. Installing SQL Server 2008 R2 will replace some shared components of the old SQL Server
version (such as connectivity) with those of SQL Server 2008 R2. This should not pose any major
problems, but you need to realize that although your old configuration might appear to still be
intact, you are really running a ͞hybrid.͟
{c You may still encounter downtime because some SQL Server 2008 R2 components could require
a reboot to install.
{c SQL Server 2008 R2 is still bound by the same rules as SQL Server 2000, SQL Server 2005, or SQL
Server 2008 regarding instance names; there can be only one default instance, and everything
else is a named instance. If the existing instance is the default instance, the SQL Server 2008 R2
instance must be a named instance in a side-by-side configuration. That might pose problems
for some older applications that do not support named instances. Through thorough testing of
the application prior to deployment, you can easily determine if this is an issue in your
implementation and, if so, account for it. Otherwise, users or applications might not be able to
connect to the upgraded database.
{c Related to the previous bullet point, redirecting users and applications to the new instance or
database might prove challenging. Make sure to work out any such issues long before the
upgraded solution goes into production.
{c Perhaps the biggest challenge in a side-by-side upgrade is going back to the previous
installation, if it is necessary. If an organization uses the new system in production for a period
of time (which would include changes to the data) and then determines that the new

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 121

environment is not suitable for production, getting the changed data from the new SQL Server
2008 R2 instance back into the old one will not be a trivial task. Many applications do not
provide ways to extract data easily (if at all), and a backup of a SQL Server version cannot be
applied to an earlier version of SQL Server. You will have to devise a manual process using
methods such as SSIS or BCP.

c     


  
   î

This variation of a side-by-side upgrade moves all or some user databases (and its related objects) from
an instance of SQL Server 2000, SQL Server 2005, or SQL Server 2008 to a separate instance of SQL
Server 2008 R2 that resides on a different server or cluster. This strategy potentially offers the best of
both worlds3 using separate servers or clusters leaves the old environment intact and available for use in
a fallback plan, and you can minimize downtime by using whatever method is best for moving the
databases and objects to the new instance. Other advantages to this option are that you can get the
hardware up and running as well as tested long before a cutover date and you can use the new
environment to test the process of the actual data move. This ability is invaluable to a smooth transition.

Using a separate server has the same drawbacks as a same-server side-by-side upgrade. Application and
end-user redirection, and default versus named instances are still issues. A new wrinkle in this scenario
is that although you are using new hardware and can create a new default instance, you cannot have
two objects with the same name in the same domain. Assuming that the old server name is MYSERVER,
for example, the new server (and default instance) could not use MYSERVER. With clusters, even the
instance name must be unique in the domain, so if the old clustered instance was MYSQLINS, you could
not reuse that while configuring the new cluster. The correct way to solve this issue is to decommission
the old server (or instance) and then rename the new server (or instance) to the original name so that
applications and users do not have to worry about a different connection ʹ especially for applications
that are installed on every desktop. You could also consider other workarounds such as using DNS
aliases, but that option puts a burden on network administrators and is only a patch that obscures the
underlying issue.

c       


 $  
   
     
 
After your new instance has passed acceptance tests and the newly upgraded server is successfully in
production, you will likely want to schedule a time to either uninstall the instance or fully decommission
the server, as discussed in "Decommission and Uninstall After a Side-by-Side or New Hardware
Upgrade," in Chapter 1. The key is to ensure that there are no problems with the new instance or server
and that it has the right configuration and is stable before tearing down the old environment.
Decommissioning and disabling the original instance too soon could be a mistake, and how long you are
down will depend on your fallback plan. It is usually more effective to switch back to the original, known,
and already configured environment than to have to restore and rebuild from scratch.

Before allowing users to access the new SQL Server 2008 R2 instance, you should disable the old one so
that users and applications will not accidentally connect to the wrong server. This may not be possible if
all the databases have not been migrated, but you run the potential risk of users accessing the old

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 122

environment and updating what is now the old data. The expense and time involved to detangle that
mess would be painful.


c 
      
  
   î

There are several methods for moving your SQL Server databases in a side-by-side upgrade involving
new hardware. Chapter 1, "Upgrade Planning and Deployment," and Chapter 3, "Relational Databases,"
cover these methods in detail. This section discusses the high-availability aspects of each one.

  " ac $%

# 

The downtime associated with upgrading a database by using a database backup is related to the size of
the database as well as the efficiency of the underlying network and disk I/O. It will take time to copy
the database backup from Server A to Server B (the network and the disk I/O of both servers will come
into play), and the restore speed will depend on the hardware configuration (including the underlying
disk subsystem) of Server B. You should not have any downtime related to actually performing the
backup because all SQL Server backups can be made while the database is online; if any transactions
occur after the backup is initiated, depending on your end goal, a differential backup or series of
transaction log backups can be performed to "catch up" the destination database.

If the database is small to mid-sized, it is relatively easy to back up, copy, and restore it in a reasonable
amount of time. However, if you have a very large database (VLDB), in the hundreds of gigabytes or
terabyte range, waiting until the cutover time to start the backup, copy, and restore process might
exceed the allowed outage window. Just copying a terabyte database could take the better part of a day
(or more). That is definitely
a highly available upgrade and will need to be accounted for in your
upgrade plan. For more information about VLDBs, see "Upgrading Very Large Databases," in Chapter 1.

There are a few things you can do to increase the speed of the backup, copy, and restore process3

{c Use backup compression (either third party or what is built into SQL Server 2008 Enterprise) to
generate the backups, which not only shrink the backup size (which means a quicker copy time)
but generally speed up the backup and restore process as well.
{c Use hardware-based (i.e., SAN-based) backups to make the backup, and then attach the backup
(and restore it) using lower-level technologies that are transparent to the hardware. This
strategy assumes that the source and destination servers are on the same storage unit.
Hardware-based backups are not an option if this configuration is not already set up. See
"Hardware-Based Installation" below for more information.

  " c ! 



Detaching and attaching databases is not the same as performing a backup, but both methods involve
physically copying files. The big difference is that the former method copies actual data and log files.
There will be complete downtime during the detach-and-copy process because once the database is
detached, it is no longer part of the source instance until it is reattached. This method might not be an
optimal solution for minimizing downtime and could pose risk. In addition, if the database is large, this
approach is impractical for the reasons stated above related to size.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 123

  " c )
 

Log shipping is traditionally used only as a high-availability or disaster recovery solution, but it is also a
useful upgrade option. The log shipping method is based on backup and restore and requires that the
source database be configured to be able to make transaction log backups (so the Simple recovery mode
would not work). It offers a way to minimize downtime because the only necessary outage occurs during
the switch from Server A to Server B. Most of the workͶincluding getting a new server up and running
and performing the initial backup, copy, and restoreͶcan be done well in advance of the actual cutover.

The problem is that while SQL Server 2008 R2 can restore backups from SQL Server 2000, SQL Server
2005, or SQL Server 2008, the log shipping features of those earlier versions of SQL Server cannot be
used to configure log shipping to SQL Server 2008 R2. Custom log shipping scripts (such as the ones
listed in "Additional References" at the end of the chapter) would need to be used.

  " c 56   


!
' 

Besides the traditional options for moving databases, another approach has become increasingly
cheaper over the years3 hardware-based moves via shared storage, such as a SAN. Many companies
deploy a large portion of their servers on one or more storage units. Failover clustering requires such
shared storage. Assuming that the source and target servers are on the same storage unit and that the
appropriate options are configured on the hardware, this option opens up a wide range of possibilities
for minimizing downtime.

A hardware-assisted backup is generally known by most storage vendors as a "snapshot," "clone," or


something similar. What happens is that a backup is initiated outside of SQL Server, and the disks being
used by SQL Server are essentially cloned and snapped off. The clone can then be attached to another
server on the same storage unit. This process is nearly instantaneous, and you can use the snapshot or
clone for a restore (traditional or hardware-based). Within SQL Server, I/O is "frozen" briefly and then
"thawed" to ensure consistency behind the scenes (this can be seen in the SQL Server log). Although this
process takes a few seconds, it should be completely transparent.

It's important to note that for this hardware-based approach to be properly implemented, a storage
vendor must support SQL Server's Virtual Device Interface (VDI) and/or use a VSS provider that supports
it. Otherwise, the process could damage the SQL Server database. The storage vendor might impose
some limitations, such as allowing only one database or file per disk, which must be verified before any
implementation. Work with the storage administrators to not only investigate whether this is an option
but to make sure SQL Server is implemented properly to take advantage of the feature. For more
information about this strategy, see the SQL Server 2005 Virtual Device Interface (VDI) Specification
white paper.

 c       


   % #
Ultimately, the upgrade method chosen should meet not only an organization's technical needs but also
the one which minimizes the downtime during the upgrade. If a side-by-side upgrade is necessary, log
shipping or hardware-based methods should strongly be considered to reduce the outage. There will
never be zero downtime in an upgrade; the issue is how much downtime can be tolerated. For valuable

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 124

information about choosing an upgrade strategy, see "Considerations for Choosing an Upgrade Strategy"
in Chapter 1.

c   


   
  
This section covers the key strategies for promoting highly available upgrades for all installations of SQL
Server, minimizing downtime in the switch to SQL Server 2008 R2.

ac       


Before putting together an upgrade plan or executing an upgrade to SQL Server 2008 R2, you must take
into account the following considerations.

  a ac ) 
1
5
 

When it comes to high availability, one of the best ways to minimize downtime is to anticipate changes
and account for them accordingly. Although some changes to the database engine and the other
components you use might appear to be only performance-related or involve feature changes that do
not seem relevant to your organization's product usage, if one of those changes causes a performance
or operational issue, it will be perceived as downtime. If an upgrade is properly planned, tested, and
executed, it should not introduce large performance degradations or problems. A database
administrator should never be caught by surprise. For a complete list of backward-compatibility issues in
SQL Server 2008 R2, see Backward Compatibility in SQL Server 2008 R2 Books Online.

  a c  


For information about how to prepare applications for a database upgrade, see the "Application and
Connection Requirements" section in Chapter 1. Treating the SQL Server upgrade as an isolated event
that will not affect anything else is a mistake and may cause downtime.

  a c 
%

Ensuring that the database administrator staff is fully trained and prepared for the upgrade will increase
uptime. For information about how to make sure that those administering or deploying SQL Server 2008
R2 are ready, see the "Treat the Upgrade as an IT Project" section in Chapter 1.

  a c  %

56
# 4  

Make sure that the hardware you plan to use for SQL Server 2008 R2 meets the minimum requirements
documented in the "Minimum Hardware Requirements," in Chapter 1, as well as in Hardware and
Software Requirements for Installing SQL Server 2008 R2 in SQL Server 2008 Books Online. It is a bad
idea when it comes to availability to assume that the current server will meet a company's future needs.
New software generally has higher requirements. If current servers are near capacity or exceed it, you
will be facing availability and performance issues. These issues must be resolved prior to deployment, or
they will cause a much larger upgrade outage than necessary.

  a "c !%
 

Disk space, or lack thereof, is one of the major causes of downtime. During the installation of SQL Server
2008 R2, SQL Server will tell you how much disk space is needed. For more information, see the "Hard

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 125

Disk Space Requirements" section in Chapter 1. Hardware and Software Requirements for Installing SQL
Server 2008 R2 also lists how much disk space the program files consume.

Besides accounting for the program files and system databases, follow the recommended guidelines to
account for the disk space needed during the upgrade. The downtime spent recovering and then
attempting to continue upgrading a VLDB that failed due to lack of disk space can easily be avoided
through proper planning. You also need to size all databases and their files appropriately after the
upgrade, especially tempdb.

In addition, one of the biggest consumers of disk space will be the backups used to initialize the upgrade
in a side-by-side scenario as well as the backups made prior to the upgrade or decommissioning. Make
sure you account for this space as noted in "Perform Database Backups" later in this chapter, and in the
"Plan for Backups" section in Chapter 1.

c       


The "Developing an Upgrade Plan" section in Chapter 1 provides extensive resources for how to put
together a plan for the upgrade to SQL Server 2008 R2. The goal is to have a solid plan that is
straightforward, minimizes downtime, and is successful. Because databases are more than just data and
log files sitting on some storage, it takes the coordination of not only the database administrators, but
all teams involved (application, storage, operating system, network, and so on) to minimize downtime.
Attempting to do an upgrade without a plan that is testedͶwhether you are upgrading one database or
a millionͶis a surefire way to increase your risk of downtime. Upgrading a major version of any
software should not be treated lightly. The key is having the appropriate measures and steps in place to
be able to recover to how the system was before the upgrade took place. This is commonly known as
having a fallback plan.

M   As part of the fallback plan as it relates to time management, you need to set "go" and
"no-go" points. For example, if you need to be up and running for Monday's business but your
upgrade looks like it will exceed the window you planned for, put your contingency plan into place.
Know how long the contingency plan will take to execute. If you know that it takes five hours to
execute and the business needs to be up by 7AM Monday, your no-go point would be around 2AM
Monday. Make sure the "go" points are listed steps or items that when checked, verify that the
upgrade can happen. Missing one of the steps could cause problems down the road.

c Ô

    
One of the best things you can do to minimize upgrade downtime is to test the upgrade plan. Most
downtime is directly related to the lack of testing. Testing requires a big commitment from the entire
organization. How easy or hard it is to test the upgrade plan is directly related to the selected upgrade
method and the complexity of your applications and environment, with most of the issue falling
squarely on the application.

If you find that the plan is flawed halfway through the upgrade, it is too late to fix problems or adjust
easily if this was not known before. Finding the problems and either accounting for or correcting them
before beginning the upgrade is essential for ensuring successful upgrade. One goal of testing the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 126

upgrade and fallback plans is to know approximately how long the process should take to perform. If an
unforeseen problem is encountered during the upgrade and the fallback plan is set into motion, all that
management will want to know is how long it will take to get back to a usable state whether it is the old
version or SQL Server 2008 R2. Without testing, it is anyone's best guess, and chances are, management
will not want to hear, "I don't know." It is also important that all plans include application testing steps;
upgrades are not just an IT exercise.

Testing does not provide a 100 percent guarantee that problems will not be encountered. There might
be some differences in production that cannot be replicated in the test environment. For example, many
companies do not use SQL Server failover clustering in their test environment, but it is implemented in
production. Performing tests against a stand-alone server will validate that the databases work after an
upgrade to SQL Server 2008 R2, but the upgrade process for a stand-alone server is different than that
for upgrading a cluster. Comprehensive testing helps mitigate such risks and reduces downtime.

c     


      
To minimize overall downtime during the upgrade window, you can perform several tasks before the
actual upgrade, as follows.

   ac  %
()
 ' 
= 

The first step to minimizing downtime is to ensure that the instances containing the databases targeted
for upgrade are at the proper SQL Server versions. Discovering only at upgrade time that the source
instance and database are at an incompatible version could cancel the upgrade or increase downtime by
requiring you to apply the appropriateͶand most likely untestedͶupdates to the source. "Allowable
Upgrade Paths," in Chapter 1, describes the versions of SQL Server that can be upgraded to SQL Server
2008 R2.

   c 
  4 

As noted in Chapter 1, SQL Server 2008 R2 requires .NET Framework 3.5 SP1 and Windows Installer
(MSI) 4.5. The .NET Framework is a side-by-side architecture, so installing .NET Framework 3.5 SP1
should cause little downtime on a server; earlier versions of the .NET Framework can be updated but
not removed. Any software that depends on the previous .NET Framework version should not, in most
cases, be affected by the installation of the newer version. The same applies for MSI 4.5.

However, installing .NET Framework 3.5 or MSI 4.5 will cause some downtime. That outage can happen
either during a scheduled maintenance window before the SQL Server 2008 R2 upgrade or during the
upgrade itself. Installing these components during a scheduled maintenance window will minimize the
downtime and reboots required during the upgrade. Remember to test this configuration before a
production rollout to ensure that there are no conflicts with .NET Framework 3.5 SP1 or MSI 4.5.

No administrator should install these two components whenever they like. Many instances of SQL
Server now host more than one database application, so an unplanned, unscheduled, and unknown
upgrade could wreak havoc with multiple applications. These installations might be easier to perform on
a cluster with more than two nodes, where one (or more) is a dedicated failover node. The server acting

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 127

as a dedicated failover node can be updated and rebooted without affecting anything else, assuming
that the node does not currently own any instances.

Consider the following example of a four-node cluster with five instances of SQL Server installed on it.
Instance A is on Node A, instances B and C are on Node B, and instances D and E are on Node C. Node D
is purely a failover node. On Node D, you could easily install both .NET Framework 3.5 SP1 and MSI 4.5
with no associated downtime because that node is the primary failover node. The other nodes are
actively hosting instances, so unless there is a scheduled maintenance window, you do not want to
install on any of them and cause an availability outage unless absolutely necessary. Of course, you could
fail the instance or instances to another server, but that would be an outage. Do you then fail that
instance back? You need to consider all these types of issues.

   c #


!$
5:G!$

SQL Server provides the Transact-SQL (T-SQL) DBCC CHECKDB command to check and ensure the health
of SQL Server databases. A healthy database generally ensures higher availability. For information about
using DBCC CHECKDB in conjunction with an upgrade, see Chapter 2, "Management and Development
Tools." The problem with running a full DBCC CHECKDB is that it generally affects a database's
availability, and how long it takes to run is directly related to the size of the database. The benefits
generally outweigh the downtime, but there might be service-level agreements (SLAs) that prevent
DBCC CHECKDB from being run or that make it very difficult to complete within the set window.

It is also recommended that you run DBCC CHECKDB after the database is upgraded to SQL Server 2008
R2 to ensure that nothing went wrong or was introduced as a result of the upgrade. That means more
downtime during the upgrade process. Although some people might consider the downtime required to
run DBCC CHECKDB before and after the upgrade excessive, the assurance it provides might be worth
the additional time.

   c #
()
 ' 
**+
#

'

SQL Server 2008 R2 Upgrade Advisor is a free tool that Microsoft provides to help detect problems
before the upgrade. Running this tool is an essential part of your upgrade-preparation phase, as
described in the "SQL Server 2008 R2 Upgrade Advisor" section in Chapter 1.

   "c #

 
$ 
 
, 

The Best Practices Analyzer (BPA), which comes in versions for SQL Server 2000 and SQL Server 2005, is
an invaluable tool for finding issues with current deployments so that they do not cause an upgrade to
failͶor worse, come along for the ride and cause a potential outage down the road. For more
information, see the "Best Practices Analyzer for SQL Server 2000 and SQL Server 2005" section in
Chapter 1.

   &c  
!
$% 

The more important thing you can do to protect data in an upgrade is to perform backups at the
appropriate times. The "Plan for Backups" section in Chapter 1 covers this essential topic. How many
backups you need to perform depends on the point to which the data might need to be recovered.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 128

Never decommission an instance or database until a final full backup is made. During the upgrade
process, it is also recommended that you perform backups at certain points so that in case something
goes wrong, the upgrade process will not have to start from the beginning. For example, suppose
application changes occur before the upgraded database goes live in production and something goes
wrong. If a database backup was made before those changes occurred, you will experience some
downtime but not nearly as much as if you had go back 18 hours to the initial backup, copy, and restore.
In any catastrophic failure, the only way to recover is with good, proper backups. Not making them will
most certainly increase, not decrease, downtime. The worst thing about backups is that they consume
disk space, but you can delete them some time in the future when you no longer need them.

   2c  

:; 

/0 

No SQL Server high-availability method except failover clustering accounts for objects that reside
outside the database. (Failover clustering provides instance-level protection.) Chapter 2, "Management
and Development Tools," and Chapter 13, "Integration Services," discuss how to use scripting or tools
such as SSIS to move objects from one database or instance to another. These objects include instance-
level logins, linked servers, SQL Server Agent jobs, user-created stored procedures, and so on.

To minimize downtime, prepare any scripts or SSIS packages before the upgrade and in cases where
sensitive information may be stored (such as passwords), secure them properly. Upgrades can fail when
an application no longer functions properly because an object such as a linked server is not configured.

Even if you do not use any of the high-availability technologies discussed in this chapter, using scripts or
SSIS packages for objects involved in the upgrade provides an insurance policy like backups in case a
complete failure occurs. Having these objects scripted or exported out of the original system could
mean the difference between some downtime and trying to track down the consultant who
implemented the system years ago to see if he or she remembers those key elements.

   +c 

  

Another way to minimize downtime is to upgrade the common components to the versions SQL Server
2008 R2 requires ahead of the actual SQL Server 2008 R2 upgrade. Do not install any upgrades without
performing due diligence and having reasonable confidence that the new elements will not destabilize
the current production environment and cause downtime.

   <c 3 ;
 

Chapter 6, "Full-Text Search," covers the strategies for upgrading full-text search, which is now
integrated into the Database Engine in SQL Server 2008 R2. Thus, there will no longer be a dedicated
cluster resource for full-text in the resource group with SQL Server if failover clusters are deployed. In
addition, if you use full-text indexes, you will have more to upgrade, so plan accordingly for more
downtime.

   a*c # 

Unlike SQL Server 2005 Setup, which let you skip installation of replication, replication is a required and
included component of SQL Server 2008 R2, even if replication was not deployed as part of an existing

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 129

SQL Server 2005 instance. For details about upgrading replicated databases, see "Upgrading Replicated
Databases" later in this chapter.

   aac  '


During an in-place upgrade, Setup will not prompt you to change the existing instance's service
accounts. This means that the existing SQL Server 2000, SQL Server 2005, or SQL Server 2008 service
accounts will be used for SQL Server 2008 R2. Thus, anyone who has access to those accounts and
knows the passwords will have full access to the new SQL Server 2008 R2 instance.

We do not recommend using the existing accounts for the upgraded instances of SQL Server 2008 R2.
Create new domain-based service accounts with the correct privileges on each server instead. After the
upgrade, use SQL Server Configuration Manager (covered in Chapter 5, "Database Security") to update
the newly upgraded services to use these new accounts.

   ac   
3

 

After the upgrade, only SQL Server 2008 R2 tools and utilities can manage the SQL Server 2008 R2
instances. If you try to use an earlier version of SQL Server Management Studio (SSMS), or even SQL
Server 2000͛s Enterprise Manager, to manage SQL Server 2008 R2, you will see a message similar to the
one that Figure 4-1 shows. However, you can use the SQL Server 2008 R2 tools to manage instances of
SQL Server 2005 and SQL Server 2008. If instances of SQL Server are managed remotely, install these
tools on a workstation to make sure you can manage SQL Server 2008 R2 after it is installed.

ë+ !SSMS 2005 is not able to connect to an instance of SQL Server 2008 R2

§  When you upgrade in-place to SQL Server 2008 R2, the SQL Server 2008 R2 install process
might not remove the existing management tools for the legacy version of SQL Server. After the
upgrade, check to see if the old tools versions still exist and, if necessary, uninstall them.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 130

c     î



This section describes the considerations and processes for upgrading existing SQL Server 2000, SQL
Server 2005, or SQL Server 2008 failover clustering instances to SQL Server 2008 R2. This is not intended
as a formal SQL Server 2008 R2 failover clustering white paper. Microsoft͛s SQL Server 2008 Failover
Clustering white paper is also applicable for SQL Server 2008 R2.

For comprehensive information about upgrading failover clusters, see Upgrading a SQL Server Failover
Cluster in SQL Server 2008 R2 Books Online.

ac 
 î         î

SQL Server 2008 R2 failover clustering works essentially the same way as it has since SQL Server 6.5,
providing availability through failover based on the underlying Windows failover cluster. If you are
familiar with the way either SQL Server 2000 or SQL Server 2005͛s new installation or upgrade processes
worked, they are very different in SQL Server 2008 R2 (but the same as they were in SQL Server 2008).
Instead of having all nodes configured during one pass, in SQL Server 2008 R2, each instance on every
node must be installed or upgraded separately. For a new installation, there is one main install for the
SQL Server instance, and everything else is an add-node operation. For an in-place upgrade, the process
is also node-by-node, as described later in this section.

Table 4-1 shows an example of how many install processes would be executed for up to four nodes and
four instances of SQL Server.

Ô + !§M  $   §     §M  ',


 !M   "M   #M   +M  
2 Nodes 2 4 6 8
3 Nodes 3 6 9 12
4 Nodes 4 8 12 16

These numbers might be surprising to some, but the installation change was implemented with these
important goals in mind3 increased stability, improved reliability, and more granular control. In terms of
an in-place upgrade, the ability to upgrade instances in a rolling fashion, one node at a time, increases
application and database availability and minimizes downtime during an upgrade. Other nodes and their
individual components as they relate to an instance can be upgraded independently.

Another major feature change is that if you are implementing a new failover clustering instance under
Windows Server 2008 or Windows Server 2008 R2, SQL Server 2008 R2 does not require the domain
groups that were introduced with SQL Server 2005. SQL Server 2008 R2 under Windows Server 2008 can
use Service SIDs, which are recommended. In-place upgrades (either Windows Server 2003 or Windows
Server 2008) and all failover clustering deployments under Windows Server 2003 will still use domain
groups. For information about Service SIDs, see Cyril Voisin'sPer-service SID security blog entry.

A welcome addition to failover clustering functionality is that not only can you do setup via the
command line or an .ini file, as you can do in SQL Server 2005, but you can also now perform the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 131

upgrade via the command line or an .ini file. This upgrade process is described in "Using the Command
Line to Upgrade a Failover Clustering Installation," later in this chapter.

c 
      î

During an in-place upgrade to SQL Server 2008 R2, Setup will prompt for the Instance ID on the Instance
Configuration screen, which was introduced SQL Server 2008. (See Chapter 1 for information about the
new Instance ID and paths that SQL Server 2008 uses.) The Instance ID will default to MSSQLSERVER for
a default instance and to the named part of a named instance for named instances. For example, if the
instance name is MY INS1, the Instance ID value will be INS1. You must use the same value for Instance
ID for that particular instance across all nodes of the cluster. Because a clustered instance is not the
same name as its underlying server, it might make more sense to rename the Instance ID to the actual
name of the instance or to the first part of the named instance.

c              
î

If you want to upgrade the operating system on the cluster nodes from Windows Server 2003 to
Windows Server 2008, it is not possible. A rolling upgrade (that is, an upgrade performed one cluster
node at a time) is not supported as it was with upgrading from Windows 2000 Server to Windows Server
2003. Starting with Windows Server 2008, the operating system-level clustering feature that SQL Server
is built on was completely recoded, so a direct upgrade is not possible.

To reuse existing cluster nodes, you must install a fresh copy of Windows Server 2008 or Windows
Server 2008 R2, meaning that the existing configuration will be erased. You can then reinstall SQL Server
after the installation of Windows Server 2008 is complete. This means that before tearing down the old
configuration, performing backups of all databases and scripting all objects is essential. Although these
tasks are part of a normal upgrade process, there is additional pressure to do them because the old
configuration will no longer exist. If you are going to deploy Windows Server 2008 or Windows Server
2008 R2, consider purchasing new hardware and implementing an upgrade strategy that would allow
the configuration of the existing cluster to remain.

Be aware that starting with Windows Server 2008, Windows is calling the availability clustering a failover
cluster, just as SQL Server does. Before Windows Server 2008, the operating system-level feature was
known as a server cluster. Every attempt will be made to distinguish the difference between Windows
and SQL Server in this portion of the upgrade guide.

M  You can find more information about upgrading a Windows cluster at the Migration
Options for Hardware with Failover Clustering in Windows Server 2008Microsoft Failover and
Network Load Balancing Clustering Team blog entry. However, note the following caveat. The blog
talks about using the Migrate a Cluster Wizard. This Wizard 
be used to migrate your existing
clustered SQL Server instances. The Migrate a Cluster Wizard can be used to assist in the migration
or upgrade of the operating system-level cluster. You will still need to do a full installation of SQL
Server and then upgrade the databases either using a database attach if the files are on the SAN
LUNs associated with the cluster or using backup restores. Do not try "disabling" SQL Server,
unclustering, upgrading the operating system, and then trying to re-enable SQL Server. Follow the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 132

supported upgrade paths that are outlined in this document and its links. Do not put yourself in a
position where you will have a hard time getting support if you run into problems.

   ac()
 ' 
**+
#
' 
  -
 
6
16
 ' 
**+


16
 ' 
**+
#
' 
 
  

Windows Server 2008 and Windows Server 2008 R2 provide a mixture of new and existing features for
failover clustering, but SQL Server 2008 R2 does not support them all.

1 "(()ë 
  ë 

{c Windows Server 2008 failover clusters are no longer bound by the old Windows Server Catalog
and the cluster solutions defined in them. Windows Server 2008 has a built-in process called
Cluster Validation. The concept is simple3 if the hardware passes the tests, a cluster can be
configured and is considered supported as long as the hardware itself is logoed for the version
of the operating system you plan on deploying. If the validation fails, the cluster is not
considered a supported or valid cluster. It is possible to deceive Cluster Validation because some
tests can be disabled; do not do this.

Do not take this capability as carte blanche to take two or more odd pieces of hardware and
cobble them together as a valid cluster. The recommendation is still to configure nodes that are
similar (i.e., same brand and type of server). The biggest change to implementers is that they
will have to rely on the other hardware vendors (SAN, HBA) to provide correct information
about which drivers are certified for clusters using Windows Server 2008.
M  It is crucial to ensure that the underlying Windows failover cluster has no
errors during cluster validation. SQL Server 2008 R2 Setup relies on the validation
results. If an error is found, Setup will not proceed. If you have deployed Windows
Server 2008 without Hyper-V RTM, you might encounter an error during cluster
validation that says the operating SKU is not valid, as described in When you run the
Validate a Configuration Wizard on a Windows Server 2008-based computer or on a
Windows Vista-based computer, the validation does not pass in the Microsoft
Knowledge Base. A fix for this issue is available for download. After applying the patch,
rerun cluster validation.
{c Windows Server 2008 and Windows Server 2008 R2 failover clustering supports separate
subnets for cluster nodes. SQL Server does not support this feature, so if you want to do
geographically dispersed clusters, you must implement them the traditional wayͶby using a
virtual LAN (VLAN).
{c The quorum is now known as the witness, and there are four models (up from two). They are3
©c No Majority. This is the same as the old disk-based quorum, where the quorum disk is a
single point of failure.
©c Node Majority. This is the same as the old Majority Node Set quorum, where one less
than half the number of nodes rounded up can be tolerated as a failure. So for example,
two nodes have no failure tolerance; three and four nodes can tolerate one node

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 133

failure; and five nodes can tolerate two nodes failing. Node majority is best for an odd
number of nodes.
©c Node and Disk Majority. This is a combination of both the witness disk and a majority of
nodes, giving you more protection. It can tolerate the failure of half the nodes rounded
down if the witness disk is available, and it can tolerate the failure of one less than half
the nodes rounded up if the witness is unavailable. So for example, two nodes have one-
node failure tolerance if the witness is available, but no failure tolerance if the witness is
unavailable.
©c Node and File Share Majority. Similar to the Node and Disk Majority, this uses a file
share instead of a witness disk. This is a good choice for a geographically dispersed
cluster.
{c Clustering the Microsoft Distributed Transaction Coordinator (DTC) is not required with SQL
Server 2008 R2. You can do it if you need it. You can also have more than one DTC per cluster, so
you can potentially dedicate DTC to a single instance of SQL Server if necessary. More
information can be found in the SQL Server 2008 failover clustering whitepaper linked above.
{c All cluster nodes must be in the same domain to implement SQL Server 2008 R2 with Windows
Server 2008 and Windows Server 2008 R2.
{c The private network, also known as the heartbeat, is now unicast.
{c All disks must still be Basic disks (not Dynamic); however, GPT disks are supported for sizes over
2 TB.
{c Cluster Administrator has been deprecated and removed. The administration tool is now a
Microsoft Management Console (MMC) snap-in and is called Failover Cluster Management in
Windows Server 2008 and Failover Cluster Manager in Windows Server 2008 R2.
{c To properly install a Windows Server 2008 failover cluster, a domain account with local
administrator rights must be designated on each node with rights to create objects in the
domain. The domain account after installation is used only for administrative purposes and is no
longer used to run the Windows failover cluster itself. If Failover Cluster Manager is not started
with that domain account, you will see the dialog box that Figure 4-2 shows.

ë+ "Attempting to use Failover Cluster Management with a non-domain account

 

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 134

&"(()'"ë 
  ë 

{c SQL Server 2008 R2 supports up to 16 nodes with Windows Server 2008 and Windows Server
2008 R2 failover clustering; SQL Server 2008 Standard still supports only two-node clusters.
{c A minimum of one drive letters is still required for each clustered SQL Server instance. Although
using mount points for clusters was supported even by Windows Server 2003, SQL Server 2008
R2 still only supports mount points on clustered SQL Server instances if they are associated with
a drive letter. This is slated to be fixed in a future version of SQL Server.
{c SQL Server 2008 R2 supports the new DHCP functionality of Windows Server 2008 and Windows
Server 2008 R2 failover clustering. But we recommend that for predictability, you use a static IP
address for SQL Server.
{c Guest failover clustering, which is configuring virtual machines as cluster nodes, is fully
supported as of SQL Server 2008 R2.

c î 


         î

   

Because many SQL Server 2000 installations are old and the hardware might not be viable for use with
SQL Server 2008 R2, the easiest method for upgrading a SQL Server 2000 failover cluster to SQL Server
2008 is most likely a side-by-side upgrade to a new cluster. Performing an in-place upgrade is possible
only if the hardware is viable and you are using Windows Server 2003.For information about an in-place
failover clustering upgrade, see the section "Upgrading a SQL Server 2000 or SQL Server 2005 Failover
Cluster to SQL Server 2008" later in this chapter as well as "Additional References for Clustering
Upgrades."

M  Windows Server 2003 ended mainstream support as of July 2010. While SQL Server 2008
R2 is technically supported on that operating system, we recommend you implement your SQL
Server 2008 R2 failover cluster using Windows Server 2008 R2 as it will give you the longest
supportability. Check the Microsoft Support Lifecycle Web site for the support dates for your
country.

A side-by-side upgrade requires additional dedicated cluster disks and enough disk space for the SQL
Server 2008 R2 implementation (including space for the backups or other method used to initialize the
data), a new IP address for the new SQL Server 2008 R2 failover clustering instance, and a new instance
name. For more information about how to install a new SQL Server 2008 R2 failover cluster, see
"Additional References for Clustering Upgrades" later in this chapter.

All new implementations under Windows Server 2003 will require the configuration of the domain
service account and cluster groups, as mentioned earlier. SQL Server 2000 did not require these, so an
in-place upgrade from SQL Server 2000 to SQL Server 2008 R2 failover clustering will require their
configuration as well. These features must be configured properly before the upgrade begins; for more
information, see Before Installing Failover Clustering in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 135

M  If you implemented the IA64 version of SQL Server 2000 Enterprise on Windows 2000
Advanced Server Limited Edition, there is no direct upgrade path to SQL Server 2008 R2. You will
need to install a fresh installation of Windows on new hardware, install a clustered SQL Server 2008
R2 instance, and then use one of the standard methods such as database attach or a restore to
upgrade the databases. This limitation is documented in Version and Edition Upgrades in SQL Server
2008 R2 Books Online3 "Upgrade of SQL Server 2000 (64-Bit) IA64 failover clusters is not supported."
Upgrade of SQL Server 2000 Analysis Services (SSAS 2000) to SQL Server 2008 is also not supported
on failover clusters. SQL Server 2000 never supported the clustering of SSAS 2000 as a feature of the
installer. How to cluster SQL Server 2000 Analysis Services in Windows 2000 and in Windows Server
2003 in the Microsoft Knowledge Base describes how to cluster SSAS 2000 by creating a generic
resource in the Windows server cluster. The clustering process is done after the initial installation.
SQL Server 2005 is the first version of SQL Server that provided as part of the Setup process the
ability to cluster SSAS.

   ac 
()
 ' 
' 
 
3

1/1&

SQL Server 2008 R2 does not support installing a 32-bit failover clustering instance under the Windows
On Windows 64 (WOW64) feature of 64-bit Windows. That means an in-place upgrade of a WOW64-
based SQL Server 2000 or SQL Server 2005 failover cluster to SQL Server 2008 R2 is not supported, even
if you implemented a 64-bit version of Windows. To upgrade to SQL Server 2008 R2 if a WOW64-based
SQL Server 2000 or SQL Server 2005 failover cluster is deployed, you must use a side-by-side approach.


c î 
      
  î

   

There are no specific considerations when upgrading from a SQL Server 2005 failover clustering instance
to SQL Server 2008 R2; the generic conditions that apply to SQL Server 2000 also apply to SQL Server
2005.

 c î 


         î

   

There are no specific considerations when upgrading from a SQL Server 2008 failover clustering instance
to SQL Server 2008 R2; the generic conditions that apply to SQL Server 2000 and SQL Server 2005 also
apply to SQL Server 2008.

 c    $   î



    
The process for upgrading a SQL Server 2000, SQL Server 2005, or SQL Server 2008 failover clustering
instance to SQL Server 2008 R2 is the same. You can perform the upgrade via the command prompt or
through the graphical Setup application. Step-by-step instructions for using the Setup program for an in-
place upgrade can be found in How to3 Upgrade a SQL Server Failover Cluster Instance (Setup) in SQL
Server 2008 R2 Books Online. This section walks through the main steps of an in-place upgrade but does
not cover every Setup screen. This section also covers the tasks to perform and considerations to take
into account before, during, and after upgrade, especially those not already documented or that might
need further context.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 136

To install a new clustered instance, follow the instructions in Installing a SQL Server 2008 R2 Failover
Cluster in SQL Server 2008 R2 Books Online.

M   The x À     2


option in the SQL Server Installation Center is for use
only with new installations, not in-place upgrades, and will not be covered in this chapter.

  2 ac $ 

8 


 9

1.c Make sure the underlying Windows cluster is properly configured to standard best practices.
The Windows Server 2003 solution must appear in the Windows Server Catalog under the
Cluster Solutions category. If it is not there, it is not a supported cluster solution for Windows
Server 2003.If this is Windows Server 2008 or Windows Server 2008 R2 failover cluster, the
cluster must pass cluster validation; otherwise, SQL Server 2008 R2 Setup will fail because it
relies on a successful outcome of thevalidation process.
2.c Create the security accounts and, if necessary, groups in the domain for SQL Server 2008 R2.
Because it is not be possible to alter the service accounts during the upgrade, we recommend
that you change the SQL Server 2000 and SQL Server 2005 service accounts to SQL Server 2008
R2-specific ones after upgrade.

M   It is not possible to switch from domain groups to a Security SID after an in-place
upgrade from SQL Server 2005. The upgrade process will utilize the existing domain group͛s
structure.

3.c Make sure that there are no errors in any of the logs (including SQL Server), that all resources
can be failed over to each node, and that all names and IP addresses can be accessed. This task
may need to be scheduled for a time that will not impact end users. The goal is to ensure that
everything is working properly in the failover cluster before you attempt to install SQL Server
2008 R2.

  2 c 



  
' 
 

1.c On the node that is not hosting the existing SQL Server clustered instance, install both .NET
Framework 3.5 SP1 and MSI 4.5 because this node can tolerate a reboot and will not affect the
SQL Server instance. As noted in Chapter 1 in the section ͞Installing .NET Framework on
Windows Server 2008 R2͟, Windows Server 2008 and Windows Server 2008 R2 may already
have these prerequisites installed so you there may be no downtime. These installs can be done
at any point leading up to the upgrade of SQL Server. Consider upgrading the shared
components, but be aware that this will represent a major difference in underlying connectivity
in the event a failover. If this might introduce risk to the cluster, upgrade the shared
components only when the actual upgrade is performed.
2.c To minimize the downtime involved in the upgrade, you must upgrade all the nodes which can
possibly host the instance and do not currently own the instance that is being upgraded. This is
done so that when the final upgrade happens to the instance itself, it can be failed over to a
node that is already upgraded and the only thing left to do is upgrade the databases. The
upgrades can be done using Setup or the command line (see "Using the Command Line to

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 137

Perform an In-Place Upgrade for a Failover Clustering Installation," later in this chapter). If you
attempt to upgrade the node that currently owns the instance, when you reach the Cluster
Upgrade Report dialog, you will see the message as shown in Figure 4-3.

ë+ #Message if you are attempting to upgrade the owner of the instance

M  When you get to Step 11 of How to3 Upgrade a SQL Server Failover Cluster
Instance (Setup) in SQL Server 2008 R2 Books Online, make sure to note the instance ID that
is used (assuming the default is chosen) because it must be the same for each upgrade run
on every node for the running SQL Server instance. If the instance ID is changed according to
"Instance IDs and Failover Clustering," earlier in this chapter, make sure you use that value
during the upgrade of each node. That screen will look like the one shown in Figure 4-4.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 138

ë+ +Dialog to alter the Instance ID

3.c Before the upgrade begins, Setup will display the Cluster Upgrade Report, as shown in Figure 4-
5.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 139

ë+ -Cluster Upgrade Report

After the upgrade of the node is complete, the Cluster Upgrade Report will be displayed
again with an updated status, as shown in Figure 4-6.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 140

ë+ 0Updated Cluster Upgrade Report after upgrading a node

1   At this point, it is not possible to fail over the older SQL Server clustered instance
to the node that was upgraded. For two-node clusters, if the instance itself is not upgraded
immediately and the instance fails without any nodes for it to fail over to, a bigger outage
could occur. Time the upgrades of each node to minimize exposure to this risk.
4.c At the appropriate time to make the final upgrade to the node which owns the clustered
instance of SQL Server, stop all traffic to the instance of SQL Server to ensure that no one tries
to access the instance during the upgrade process. While SQL Server will only have a brief
outage during the final upgrade steps, it is always a best practice to ensure that no changes
happen during the upgrade period to ensure a consistent state before and after.
5.c Follow the instructions in How to3 Upgrade a SQL Server Failover Cluster Instance (Setup) to
upgrade the failover clustering instance. Use the same instance ID that was used for upgrading
the other node(s). During the upgrade, the instance will be failed over to the already upgraded
node, as the notification in Figure 4-7 shows. Figure 4-8 shows the failover during the upgrade.
Figure 4-9 shows the instance brought online on another node. Note that the full-text search
resource has already been removed from the resource group.

SQL Server will be unavailable during the failover process that happens and while the databases
are being upgraded. Sometimes there is no need to stop the traffic. Setup will automatically
handle the failover to the upgraded node. On average this takes about 2 minutes depending on
the hardware and other configurations.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 141

c
ë+ <Uncompleted Upgrade Cluster Upgrade Report when the instance itself is upgraded

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 142

c
ë+ )Showing the failover during the upgrade

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 143

ë+ =Completed failover and upgrade of the services

6.c When the upgrade is complete, Setup will show a final Cluster Upgrade Report, similar to the
one in Figure 4-10.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 144

c
ë+ !(Final Cluster Upgrade Report after success

The upgrade is now complete. Note that the upgraded instance was not automatically moved back to
the original node. You can manually fail the resource group back to the original node by using the proper
Windows cluster administration tool for the operating system version deployed.

1.c Check for pending reboots and any errors in the logs to see if a reboot is necessary on the node.
Reboot as needed.
2.c Manually test failover of the resource group containing the SQL Server resource between all
nodes of the cluster.
3.c Ping the network name of the clustered SQL Server instance from all nodes inside the cluster as
well as outside the cluster.
4.c Ping the IP address of the clustered SQL Server instance from all nodes inside the cluster as well
as outside the cluster.
5.c Make sure that the compatibility level of the databases is set to 100.
6.c We recommend that you run all the necessary health checks including DBCC CHECKDB to ensure
the well-being of the newly upgraded databases.
7.c Open the instance for testing the applications and when those are certified, allow production
use.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 145

  2 c 



  
' 
 

Upgrading a cluster that has multiple instances is more challenging because it requires more
coordination. Each instance will be affected by an outage at some point, even if it is not being upgraded,
and will be left alone in a side-by-side configuration with SQL Server 2008 R2. This section walks through
an example of a cluster with multiple instances of SQL Server.

The cluster in this example has three Windows Server 2008 nodes (A, B, and C) and three instances of
SQL Server 2005 (1, 2, and 3). Node C is a dedicated failover node. The diagram in Figure 4-11 illustrates
this cluster configuration.

ë+ !!Pre-upgrade cluster configuration

Because there are three instances of SQL Server, the upgrade process will be executed nine times (three
per node). The real question is, outside of coordinating with business and application owners as well as
other IT staff involved, how should you approach the upgrade? Remember that SQL Server 2005 and
SQL Server 2008 R2 can coexist side-by-side in the same cluster, so even if only one or two instances are
upgraded, the remaining one or two SQL Server 2005 instances will still work.

The easiest thing to do first is to upgrade the shared components and install MSI 4.5 and .NET
Framework 3.5 SP1 on Node C if necessary. Because Node C is the dedicated failover node, no outages
will be incurred for any of the SQL Server instances themselves. And it will not pose any major risk if one
of the instances needs to fail over to Node C after reboots because the actual upgrades have not been
started. If both Node A and Node B have scheduled maintenance windows, those would also be
opportune times to install at least MSI 4.5 and .NET Framework 3.5 SP1 if necessary, and possibly
upgrade the shared components. Remember to fully test even this partial upgrade of components
elsewhere to ensure that there will be no incompatibilities with applications. If you cannot install MSI
4.5 and .NET Framework 3.5 SP1 during a maintenance window, you can do so during the actual upgrade
of SQL Server.

At this point, you must choose an instance to upgrade based on whatever factors you are using to
determine which instance goes first. For this example, assume that we want to upgrades the SQL 1
instance first. Upgrade the SQL 1 instance's components on Node C first and reboot that node if

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 146

necessary. At this point, Node C is not an option for SQL 1 to fail over to. SQL 2 and SQL 3 can still fail
over to Node C with no problems.

Next, upgrade SQL 1 on Node B. Here is where things get a bit sticky. SQL 2 and SQL 3 also exist on Node
B. Consider coordinating a scheduled failover to Node C for the SQL 2 and SQL 3 instances so that the
installation can occur. This failover would only mean minutes of downtime for those two instances and
most users and applications would not even notice. With this strategy, if something goes wrong with the
installation, SQL 2 and SQL 3 will not unexpectedly fail over, and the install process can occur and not
affect any processes on Node B. This approach also assumes that Node C has the capacity to run the
instances simultaneously. There should be no need at this point to schedule any failovers for SQL 2 or
SQL 3 and disrupt business again. Assuming the failover is complete, the configuration at this stage now
looks like the one in Figure 4-12.

ë+ !"SQL 1 upgraded on Nodes B and C but not yet on Node A

Finally, upgrade SQL 1 on Node A. After the instance is upgraded, it can fail over to either Node B or
Node C. The cluster now has one SQL Server 2008 instance (SQL 1) and two SQL Server 2005 instances
(SQL 2 and SQL 3) peacefully coexisting. For this example, let's say that SQL 1 failed over to Node B; the
configuration now looks like the one in Figure 4-13.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 147

ë+ !#Upgrade of SQL 1 is complete

The cluster configuration can stay this way indefinitely, or if you need to, you can upgrade SQL 2 and
SQL 3 to SQL Server 2008 R2. The considerations and technical processes will be the same as the ones
for SQL 13 You need to determine who the upgrade affects, how to minimize risk and downtime for the
other instances, and the correct set of steps to get the work done.

In our example, let's next upgrade SQL 2, which has been coexisting on Node C with SQL 3 for a few
weeks while SQL 1 remains on Node B. All the nodes have .NET Framework 3.5 SP1 as well as the shared
components, so this upgrade should be more straightforward and incur fewer overall outages. First,
upgrade SQL 2 on Node A and reboot if necessary. Next, schedule a planned failover of both SQL 1 and
SQL 3 to Node A. The configuration will look like the one in Figure 4-14.

ë+ !+Partial upgrade of SQL 2

Upgrade SQL 2 on Node B and then on Node C, which upgrades the SQL Server instance. Assuming that
SQL 2 fails over to Node B, the configuration after the successful upgrade of SQL 2 looks like the one in
Figure 4-15.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 148

ë+ !- Completed upgrade of SQL 2

Finally, it is time to upgrade SQL 3. First upgrade SQL 3 on Node C. Schedule a failover of SQL 1 and SQL
2 to Node C and upgrade Node B. Last, upgrade SQL 3 on Node A. The final configuration would look like
that in Figure 4-16, assuming a failover to Node B of SQL 3 after its upgrade.

ë+ !0All three instances of SQL Server upgraded

If everything is working, do not fail the instances back to their original configuration, which Figure 4-11
above shows. But if you want to fail back to the original configuration, schedule an outage to accomplish
this task.

  2 c  




 



§ 6
 

Performing a side-by-side upgradeͶwhether on the same cluster where the current instance lives or
using a newly deployed Windows clusterͶfollows basically the same steps as an in-place upgrade. Use
one of the methods listed in "Methods for Side-by-Side Upgrades to a Separate Server or Cluster" to
move and upgrade the databases in conjunction with installing a fresh instance of SQL Server 2008 R2.
Remember that with failover clustering, the new clustered instance name must be completely unique in
the domain. This means that after the upgrade, all users and applications will need to be redirected to
the new instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 149

  2 "c 


 

 





' 
 



This section provides the syntax for upgrading an instance via the command-line Setup. It is assumed
that.NET Framework 3.5 SP1 and MSI 4.5 are already installed. There are two options for using the
command line3 Either enter all the commands directly on the same line as setup.exe, or use a
configuration file. This section covers only using setup.exe. Table 4-2 shows the command-line Setup
upgrade options for failover clustering.

Ô + "
     $  6  ë 
  
6   2  § 
ACTION Upgrade This tells setup.exe that an
upgrade will be performed.
FAILOVERCLUSTERROLLOWNERSHIP 0 = Will not roll ownership to This is optional. If not specified,
already upgraded nodes, nor the default value will be 2. The
will it add the node to the list parameter controls the failover
of possible owners when behavior of the upgrade.
upgrade is completed.
1 = Will roll ownership to
upgraded nodes
2 = SQL Server determines if 0
or 1 is needed.
FTUPGRADEOPTION Import ʹ Import existing full- These are the same values as
text catalogs instead of on the Full-text Upgrade screen
rebuilding them. of the GUI.
Rebuild ʹ Rebuild the full-text
catalogs using the new word
breakers.
Reset ʹ Reset the full-text
catalogs.
INSTANCEID Valid value for the Instance ID. If a value is not specified, it will
See the earlier section default to MSSQLSERVER for a
"Instance IDs and Failover default instance and the value
Clustering" for an explanation after the slash for a named
and recommendations. instance (i.e., if the instance
name is MY INS1, the value will
be INS1).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 150

6   2  § 
INSTANCENAME Valid value for the instance to Use MSSQLSERVER for a default
be upgraded. instance and the value after the
slash for a named instance (i.e.,
if the instance name is
MY INS1, the value will be
INS1).
INDICATEPROGRESS TRUE shows a verbose output This is optional. If it is not set,
that can also be redirected to a INDICATEPROGRESS defaults to
text file. FALSE. See Figures 15 and 16
FALSE suppresses any for examples of what successful
messages. completed upgrades look like
with both options. Setting to
TRUE will be invaluable to
most, especially because at the
end, it indicates if a reboot is
needed or not.
Q(UIET) N/A This tells setup.exe to be
"silent" and not display any of
the GUI interface.
IACCEPTSQLSERVERLICENSETERMS N/A This is new to SQL Server 2008
R2, and is not optional.
CONFIGURATIONFILE N/A This tells setup.exe to use the
specified file with the
configuration options instead of
command line switches.
PID N/A This is the product key supplied
for your license and edition of
SQL Server 2008 R2. If it is not
specified, it will install an
Evaluation version.

You can also use other options on the command prompt, such as ISSVCACCOUNT and RSSVCACCOUNT,
which correspond to SQL Server Integration Services (SSIS) and SQL Server Reporting Services (SSRS),
respectively. For more information on all of the parameters available during an upgrade, see How to3
Install SQL Server 2008 R2 from the Command Prompt in SQL Server 2008 R2 Books Online.

To use the command prompt, use a slash (è before each option and separate with a space. For strings
that might contain spaces or odd characters, use double quotation marks. Below is an example of using
the command line to upgrade a default instance showing all output in the command window3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 151

 cècè 
cè

  c
è





cè



cè
c
è


cè
 

 cè 
  c

A successful end result would look something like Figure 4-17.

ë+ !<Example of a successful command-prompt upgrade of shared components only, with


INDICATEPROGRESS set, indicating a reboot is necessary.

Below is the sample syntax for upgrading a named instance using a command file3

  cè
  
c

This is in the command file3



c







c
 
c


  c
 

c


c


c



c

 

 c
 
 

c

Figure 4-18 shows the output of a command-file upgrade of a node when INDICATEPROGRESS is set to
FALSE. Note that no status is shown; you will have to check the log files to see if the upgrade was
successful and if a reboot is necessary.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 152

ë+ !) Example of a command-file upgrade of a node using INDICATEPROGRESS set to FALSE

c x
     î
  
For an up-to-date collection of additional references for upgrading failover clustersͶincluding
Knowledge Base articles, blogs, white papers, and other resourcesͶsee the Microsoft SQL Server 2008
R2 Upgrade page.


c     
 
This section covers how to upgrade databases that are using the built-in log shipping feature. This
section assumes an in-place upgrade of the instance containing either the primary or secondary
database.


ac 
 î        
Unlike in failover clustering, any objects that reside outside the database itself must be manually
accounted for. This means that items such as SQL Server Agent jobs, SQL Server-level logins, linked
servers, and anything not self-contained within the database must be either scripted or moved to the
destination server in another way. Think of this process as a disaster recovery drill3 you need to take the
same steps to prepare for the upgrade as you would if preparing to perform a role change. See "Script or
Export All Objects" section above for information about getting objects out of SQL Server and how to
perform such tasks as synchronizing logins.

Whether you want to upgrade a SQL Server 2000 database participating in log shipping or a SQL Server
2005 database participating in log shipping, if an upgrade occurs and the secondary database is left in
either STANDBY or NORECOVERY mode, the secondary database will not be upgraded to a SQL Server
2008 R2 database until it is brought online WITH RECOVERY.

SQL Server 2008 R2 supports one new log shipping feature not in SQL Server 2005 log shipping3 backup
compression. Backup compression, available only in SQL Server 2008 R2 Datacenter or Enterprise, by
default is not enabled after the upgrade to SQL Server 2008 R2. To enable it, go into the log shipping
configuration and manually enable it on the primary database.


c       
SQL Server 2000 and SQL Server 2005 have similar upgrade scenarios for log shipping. The two scenarios
are upgrading with or without a role change. A role change is the log shipping-specific terminology for
the process of switching the current primary database to promote the secondary database as the new
primary.

§ When upgrading without a role change and either preserving or reconfiguring log shipping, as
long as the primary database and any secondary databases are at the same point, the secondary will
be upgraded once log shipping is restarted or reconfigured. This works because the database

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 153

upgrade is a logged operation3 Once the transaction logs start flowing again to the secondary
database, it will be upgraded as part of the log shipping process. This scenario greatly speeds up the
upgrade process and reduces the number of steps required.

 "  ac 
6

#


In this upgrade scenario for log shipping, a role change is performed to shorten downtime. When
upgrading with a role change, the only time the database should be unavailable is during the actual
switch from the primary database to the secondary database. In theory, the process sounds simple, but
in reality, it can be more complex.

When the instance containing the secondary database is upgraded, the secondary database will not be
upgraded because it is still in a state to accept the loading of transaction log backups. This means that
after the instance is upgraded, there is the ability to apply the transaction logs from the primary
database which is still using the older version of SQL Server. However, once the cutover is started, the
primary database can no longer be used because there is no way to keep the two databases
synchronized3 when a secondary database is brought online WITH RECOVERY, it can no longer accept
transaction logs. This means that the secondary must become the new primary if you want to use the
new version of SQL Server. All users and applications would need to be redirected to the new instance
and database. If that process is not centrally managed, many desktops would need to be touched to
achieve the switch. Thus, this is not a recommended upgrade scenario.

At this point, although the old primary database could be upgraded, log shipping would no longer be
configured. You would have to completely reconfigure log shipping3 That means making a backup from
the new primary (the old secondary) and restoring it to a new secondary, which could be the old
instance containing the original primary that was upgraded or a new instance entirely. If the database is
small, that might not be difficult. But if you are dealing with a VLDB or have limited network bandwidth
for copying a full database backupͶnot to mention the time it would take to restoreͶupgrading
without a role change might be a better option.

A big positive of upgrading with a role change is that it provides a built-in fallback plan. If the SQL Server
2008 R2 upgrade does not work for any reason or is not accepted after a few days, the original instance
and database would be nearly ready to go. While you would just need to find a way to get any updated
data from SQL Server 2008 R2 back into the old database, you at least have a working base platform to
work from.

 "  c 
6

#


When upgrading without a role change, an upgrade is performed on an existing instance of SQL Server
without doing the role change. This will preserve the state of the databases. Depending on the version
of SQL Server you are upgrading (see the specific sections for SQL Server 2000 and SQL Server 2005
below), it might or might not upgrade log shipping in the process. This option generally has more
downtime associated with it, but for those who cannot afford to reinitialize log shipping, upgrading
without a role change might be a better option.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 154

 "  c  
)
 

Similar to upgrading without a role change is the option of completely removing the log shipping
configuration for a particular database. This would yield a result similar to upgrading without a role
change. But in the case of SQL Server 2000, it might leave a cleaner upgrade, as we will discuss in the
next section. Because a SQL Server 2008 R2 transaction log cannot be applied to a SQL Server 2000 or
SQL Server 2005 database, log shipping would need to be reinitialized.


c       
 
      
There is no direct upgrade path for log shipping configurations on a SQL Server 2000 database. However,
you can migrate from SQL Server 2000 log shipping to SQL Server 2008 R2 log shipping. If you are using
the Log Shipping Monitor and it is configured on an instance other than the primary or secondary
database, it can be migrated at any time because the functionality is not integral to the migration of the
primary or secondary database. After you migrate the instance that is running the Log Shipping Monitor,
be sure to remove the remnants of the SQL Server 2000 log shipping configuration.

M   The SQL Server 2000 secondary database that has been migrated to SQL Server 2008 R2
must be reconfigured to be restored WITH NORECOVERY if it was configured to restore WITH
STANDBY.

 "  ac 
 
6

#


Follow these steps to perform a role change during the migration from SQL Server 2000 Enterprise to
SQL Server 2008 R2 when log shipping is involved.

1.c Disable the copy and restore jobs for log shipping on the secondary database.
2.c Upgrade the instance of SQL Server 2000 that contains the secondary database. Note that even
though the instance will be upgraded to SQL Server 2008 R2, the log shipped database is in a
state where it is restoring transaction logs. Thus, the log shipped database will not be upgraded
to SQL Server 2008 R2 yet.
3.c Manually copy over and restore (WITH NORECOVERY; not WITH STANDBY) all transaction log
backups generated during the SQL Server 2008 R2 upgrade from the SQL Server 2000 primary
database to the secondary.
4.c On the primary database, stop all incoming traffic and verify that there are no connections to
ensure that the data cannot be changed. To do this, consider using single-user mode.
5.c On the primary database, make a final transaction log backup (also known as the tail of the log),
using the WITH NORECOVERY clause of the BACKUP LOG command to place the database in a
state where it can accept transaction logs. Do this only if you want to reconfigure log shipping or
make this database the primary again. If not, just perform a normal transaction log backup and
do not use the WITH NORECOVERY option.
6.c Copy and restore the tail of the log WITH RECOVERY on the secondary database to bring it
online. It is important that WITH RECOVERY is only used for this transaction log restore. At this
point, the old secondarydatabase will have been upgraded to SQL Server 2008 R2 and will be
usable.
7.c Make sure the compatibility level of the database is set to 100.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 155

8.c Synchronize any logins and ensure that all jobs and objects residing outside the database are
restored via scripts.
9.c Delete any remnants of the old log shipping configuration on the secondary database.
10.cIt is recommended that you now run all the necessary health checks, including DBCC CHECKDB,
to ensure the well-being of the newly upgraded databases.
11.cConfigure administration such as backup jobs for the database. It is especially important to
configure transaction log backups.
12.cRedirect all users and applications to the newly upgraded instance of SQL Server 2008 R2 and
database. The old secondary is now the new primary database.
13.cUpgrade the instance that was formerly the primary and any other instance that might have
been a secondary.
14.cRemove all remnants of SQL Server 2000 log shipping from any databases that were involved
the previous SQL Server 2000 log shipping topology, as noted in Table 4-3 later in this chapter.
15.cIf the old primary is going to become the new secondary or the primary again, configure log
shipping from the new primary server to the old primary server. For more information, seeHow
to3 Enable Log Shipping (SQL Server Management Studio) in SQL Server 2008 R2 Books Online.
16.cIf the old primary is going to be the primary again and not a secondary, perform a role change
back to that server. This is not recommended because it will cause another outage and increase
downtime. For information about how to perform a role change with SQL Server 2008 R2 log
shipping, see Changing Roles Between Primary and Secondary Servers in SQL Server 2008 R2
Books Online.

 "  c 
 
6

#


Follow these steps to perform a migration from SQL Server 2000 to SQL Server 2008 R2 without a role
change.

1.c Disable the copy and restore jobs for log shipping on the secondary database.
2.c Upgrade the instance of SQL Server 2000 that contains the secondary database. Note that even
though the instance will be upgraded to SQL Server 2008 R2, the log shipped database is in a
state where it is restoring transaction logs. Thus, the log shipped database will not be upgraded
to SQL Server 2008 R2 yet.
3.c Manually copy over and restore (WITH NORECOVERY; not WITH STANDBY) all transaction log
backups generated during the SQL Server 2008 R2 upgrade from the SQL Server 2000 primary
database to the secondary. At this point, there are two options3 continue to manually copy and
restore the transaction logs for a period of time or upgrade the instance containing the primary.
This is when downtime will begin.
4.c When you are ready to upgrade the primary, stop all incoming traffic and verify that there are
no connections to ensure that the data cannot be changed. To do this, consider using single-user
mode.
5.c Make a final transaction log backup (also known as the tail of the log) on the primary. Copy and
restore the tail to the secondary along with any remaining transaction log backups that should
be restored before the tail of the log.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 156

6.c Upgrade the instance of SQL Server 2000 containing the primary instance. At this point, both the
primary and secondary databases are at the same point in time, as well as upgraded to SQL
Server 2008 R2.
7.c Make sure the compatibility level of the online and upgraded primary database is set to 100.
8.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded databases.
9.c Remove any remnants of the old log shipping configuration on the primary and secondary.
10.cConfigure administration such as backup jobs for the primary database if necessary.
11.cReconfigure log shipping under SQL Server 2008 R2 from the primary database to the secondary.

 "  c  

)
 


SQL Server 2000 allows the configuration of the Log Shipping Monitor on another instance of SQL Server
that is not necessarily the primary or secondary. Treat this instance as if you were upgrading a typical
SQL Server 2000 instance unless it is also the primary or secondary. Remember to remove the SQL
Server 2000 log shipping objects from the monitor instance (refer to Table 4-3 below).

 "  c  


 


§ 6
 ' 

 

There are two scenarios for a side-by-side upgrade3 new hardware for both the primary and the
secondary or new hardware only for the primary. Because secondaries can easily be initialized, those
steps are not covered here.

§  d        


1.c Install the new SQL Server 2008 R2 instances.
2.c Take a full backup of the SQL Server 2000 primary database and restore two copies WITH
NORECOVERY3 one on the new primary and one on the new secondary.
3.c When you are ready to upgrade, stop all traffic and kill all connections to the instance containing
the original primary on SQL Server 2000. This will ensure that the data cannot be updated during
the upgrade.
4.c If transaction logs were made after the full backup was taken, copy and restore them WITH
NORECOVERY on both the primary and secondary.
5.c Back up the tail of the log on the original primary.
6.c Copy the tail log backup to the new primary and restore WITH RECOVERY.
7.c Copy the tail log backup to the new secondary and restore WITH NORECOVERY.
8.c If necessary, synchronize any logins and ensure that all jobs and objects residing outside the
database are restored via scripts.
9.c We recommend that you run all the necessary health checks, including DBCC CHECKDB, at this
point to ensure the well-being of the newly upgraded databases.
10.cSet the compatibility level of the primary database to 100.
11.cConfigure SQL Server 2008 R2 log shipping between the new SQL Server 2008 R2 primary and
secondary databases.
12.cRedirect all users and applications to the new SQL Server 2008 R2 instance containing the
primary.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 157

§     6  


1.c Install the new SQL Server 2008 R2 instance.
2.c Take a full backup of the SQL Server 2000 primary database and restore the database WITH
NORECOVERY on the new primary.
3.c When you are ready to upgrade, stop all traffic and kill all connections to the instance containing
the original primary. This will ensure that the data cannot be updated during the upgrade.
4.c If transaction logs were made after the full backup was taken, copy and restore them WITH
NORECOVERY on both the primary and secondary.
5.c Back up the tail of the log on the primary.
6.c Copy the tail log backup to the new primary and restore WITH RECOVERY.
7.c Copy the tail log backup to the secondary and restore WITH NORECOVERY.
8.c Upgrade the secondary in-place.
9.c If necessary, synchronize any logins and ensure that all jobs and objects residing outside the
database are restored via scripts.
10.cWe recommend that you run all the necessary health checks, including DBCC CHECKDB, at this
point to ensure the well-being of the newly upgraded databases.
11.cSet the compatibility level of the primary database to 100.
12.cConfigure SQL Server 2008 R2 log shipping between the new SQL Server 2008 R2 primary and
secondary databases.
13.cRedirect all users and applications to the new SQL Server 2008 R2 instance containing the
primary.

 "  "c  


3%

There might be objects left behind by the old SQL Server 2000 log shipping configuration. If the objects
shown in Table 4-3 exist, delete them.

Ô + #&"(((&  63 


63  &            
Maintenance Plan N/A X
Transaction Log Backup Job for DB SQL Server Agent Jobs X
Maintenance Plan ͚<Plan Name>'
Log Shipping Alert Job ʹ Backup SQL Server Agent Jobs X
Log Shipping Alert Job ʹ Restore SQL Server Agent Jobs X
Log Shipping copy for SQL Server Agent Jobs X
<instance>.<DBName>_logshipping
Log Shipping Restore for SQL Server Agent Jobs X
<instance>.<DBName>_logshipping
log_shipping_databases table msdb X X X
log_shipping_monitor table msdb X X X
log_shipping_plan_databases table msdb X X X
log_shipping_plan_history table msdb X X X

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 158

63  &            


log_shipping_plans table msdb X X X
log_shipping_primaries table msdb X X X
log_shipping_secondaries table msdb X X X


c      
 
      
Unlike SQL Server 2000, SQL Server 2005 and SQL Server 2008 R2 use the same underlying methods for
log shipping deployments. Log shipping in SQL Server 2005 was also expanded beyond Enterprise, so as
long as the version that you are upgrading from is supported, the log shipping configuration can be left
intact. For version information, see Version and Edition Upgradesin SQL Server 2008 R2 Books Online.
Whether log shipping is left intact also depends on which upgrade path (with or without a role change)
you choose.



c     
  î 
This option will make the former log shipped secondary database the new primary database. This results
in a smaller outage window for users of the database system. If you have multiple secondaries3

1.c Disable the log shipping copy and restore jobs on all instances containing a secondary.
2.c Disable the alert job on the monitor (if it is used).
3.c Upgrade each SQL Server 2005 instance containing the secondary database. As noted earlier
with SQL Server 2000, because the database is in a state where it is restoring transaction logs, it
will not be upgraded to SQL Server 2008 R2 yet.
4.c Manually copy over and restore (WITH NORECOVERY) all transaction log backups generated
during the SQL Server 2008 R2 upgrade from the primary to each secondary.
5.c On the primary, stop all incoming traffic and verify that there are no connections to ensure that,
at this point, the data cannot be changed. To do this, consider using single-user mode.
6.c Disable the transaction log backup job on the primary.
7.c On the primary database, manually make a final transaction log backup (also known as the tail of
the log) using the WITH NORECOVERY option. This will put the SQL Server 2005 database in the
RESTORING state. If this instance will not be the primary again, do not use the WITH
NORECOVERY clause of the BACKUP LOG command; leave the database online.
8.c Copy and restore the tail WITH RECOVERY on the secondary database, which has not yet been
upgraded. Once the restore is done and the database is online, it will be considered upgraded to
SQL Server 2008 R2.
9.c Synchronize any logins and ensure that all jobs and objects residing outside the database are
restored via scripts.
10.cIt is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded databases.
11.cConfigure administration such as backup jobs for the database.
12.cSet the database compatibility level of upgraded databases to 100.
13.cDelete the old copy and restore jobs on the former secondary database.
14.cUpgrade the monitor instance to SQL Server 2008 R2.
15.cDelete the alert job from the monitor instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 159

16.cUpgrade the original primary to SQL Server 2008 R2. Because there is a new primary, to save
time during the upgrade, consider dropping the old primary database so that it will not go
through the upgrade process.
17.cIf the old primary is going to become the new secondary, make a new full backup of the new
primary database, copy it, and restore it on the old primary server.
18.cConfigure log shipping from the new primary to the new secondary.
19.cRedirect all users and applications to the newly upgraded SQL Server 2008 R2 instance
containing the primary database, which is the old secondary.


 c     

 î 
If you want to retain the original log shipping configuration, the following steps are applicable. Be
warned that this upgrade path will cause an outage on the primary that you need to account for. If you
choose this option, consider taking a longer single outage and performing the upgrade without failover.

1.c Disable the copy and restore jobs on the secondary.


2.c Disable the alert job on the monitor (if it is used).
3.c Upgrade the SQL Server 2005 instance containing the secondary database. As noted earlier,
because the database is in a state where it is restoring transaction logs, it will not be upgraded
to SQL Server 2008 yet.
4.c Upgrade the monitor instance to SQL Server 2008 R2.
5.c Manually copy over and restore (WITH NORECOVERY) all transaction log backups generated
during the SQL Server 2008 R2 upgrade from the primary to the secondary.
6.c On the primary, stop all incoming traffic and verify that there are no connections to ensure that,
at this point, the data cannot be changed. To do this, consider using single-user mode.
7.c Disable the transaction log backup job on the primary.
8.c Upgrade the instance containing the primary database.
9.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded databases.
10.cEnable the existing Log Shipping backup, copy, and restore jobs that were previously disabled
during the upgrade window. Verify each job is working properly. Note that when the first
transaction log from the upgraded primary database is applied to the secondary database
server, it will upgrade the log shipped secondary database to SQL Server 2008 R2.
11.cVerify the database compatibility level of upgraded databases is 100.
12.cDirect all users and applications to the original primary database.

 " & ac  





§ 6
 ' 

 

There are two scenarios for a side-by-side upgrade from SQL Server 20053 new hardware for both the
primary and the secondary or new hardware only for the primary. Because secondaries can easily be
initialized, those steps are not covered here.

§  d        


1.c Install the new instances of SQL Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 160

2.c Take a full backup of the SQL Server 2005 primary database and restore two copies WITH
NORECOVERY3 one on the new primary and one on the new secondary.
3.c When you are ready for the upgrade, stop all traffic and kill all connections to the instance
containing the primary. This will ensure that the data cannot be updated during the upgrade.
4.c If transaction logs were made after the full backup was taken, copy and restore them WITH
NORECOVERY on both the primary and secondary.
5.c Back up the tail of the log on the primary.
6.c Copy the tail log backup to the new primary and restore WITH RECOVERY.
7.c Copy the tail log backup to the new secondary and restore WITH NORECOVERY.
8.c If necessary, synchronize any logins and ensure that all jobs and objects residing outside the
database are restored via scripts.
9.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded databases.
10.cSet the compatibility level of the primary database to 100.
11.cConfigure log shipping.
12.cRedirect all users and applications to the new SQL Server 2008 R2 instance containing the
principal.

§     6  


1.c Install the new SQL Server 2008 R2 instance that will be used for the primary.
2.c Take a full backup of the SQL Server 2005 primary database and restore it to the new SQL Server
2008 R2 instance WITH NORECOVERY.
3.c When you are ready for the upgrade, stop all traffic and kill all connections to the instance
containing the primary. This will ensure that the data cannot be updated during the upgrade.
4.c If transaction logs were made after the full backup was taken, copy and restore them WITH
NORECOVERY on the SQL Server 2008 R2 instance. Also ensure that the secondary is caught up
with its transaction log restores.
5.c Back up the tail of the log on the primary.
6.c Copy the tail log backup to the new primary and restore WITH RECOVERY.
7.c Copy the tail log backup to the secondary and restore WITH NORECOVERY.
8.c Upgrade the secondary to SQL Server 2008 R2.
9.c If necessary, synchronize any logins and ensure that all jobs and objects residing outside the
database are restored via scripts.
10.cIt is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded databases.
11.cSet the compatibility level of the primary database to 100.
12.cConfigure log shipping.
13.cRedirect all users and applications to the new SQL Server 2008 R2 instance containing the
principal.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 161


 c   
  
   
The log shipping functionality in both SQL Server 2000 and SQL Server 2005 log shipping functionality
allows you to configure multiple secondaries for a single primary, although this is not a common
configuration. Of course, having multiple secondaries will complicate the upgrade scenario. With more
than just the primary, secondary, and monitor involved in the configuration, you will need to consider
the order in which the instances will be upgraded. The two main log shipping upgrade scenariosͶwith a
role change or without a role changeͶstill apply. If you have multiple secondaries and perform a role
change, you will need to reinitialize every secondary; if the upgrade is performed without a role change,
the secondaries should be fine.


c x
        
For more information about upgrading log shipping, see the following topics in SQL Server 2008 R2
Books Online3

{c Migrating a SQL Server 2000 Log Shipping Configuration to SQL Server 2008
{c Upgrading SQL Server 2005 Log Shipping to SQL Server 2008c
{c How to3 Enable Log Shipping (SQL Server Management Studio)c
{c How to3 Enable Log Shipping (Transact-SQL)c
{c How to3 Add a Secondary Database (SQL Server Management Studio)c
{c How to3 Add a Secondary Database (Transact-SQL)c

For an up-to-date collection of additional references for upgrading log shipping, see the Microsoft SQL
Server 2008 R2 Upgrade page.

 c    


 
This section covers how to upgrade instances of SQL Server 2005 or SQL Server 2008 to SQL Server 2008
R2 where database mirroring is involved. This section does not apply to SQL Server 2000, which does not
include the database mirroring feature.

Database mirroring supports rolling upgrades and is the only scenario when you would have database
mirroring configured between two different versions of SQL Server. The order in which the instances of
SQL Server are upgraded depends on the mode of database mirroring being used3 high performance
(asynchronous) or high safety (synchronous). This is further complicated if there is a Witness server with
high-safety mode.

 ac 
 î       
  
Database mirroring works the way it did in SQL Server 2005 or SQL Server 2008 and still has a limit of
one principal to one mirror. The two biggest changes if you are coming from SQL Server 2005, which
were both added in SQL Server 2008, are compression of the log stream between the principal and
mirror and automatic page repair. Automatic page repair detects if either the principal or mirror has a
corrupt page and fixes it from the side that is not corrupted. These new features are automatic and do
not affect the upgrade process.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 162

 c      &     


To upgrade a high-performance mode configuration, you must first change it to high-safety mode
without a witness. This not only assures that quorum is not achieved during the upgrade, but it ensures
that all transactions are committed and there is no data loss in the switch. After the upgrade is
complete, you can switch the configuration back to high-performance mode. Below are the steps for an
in-place upgrade in a high-performance mode configuration.

1.c To change the mode from high performance to high safety, use SSMS or T-SQL and alter it on
the Mirroring page of the database properties. The T-SQL command to perform the same task is
as follows3


c 
c   c
c  
c
!c c
2.c Upgrade the instance containing the mirror first and wait for the mirroring session to
synchronize.
3.c Stop all traffic into the principal.
4.c On the principal, manually fail over to the upgraded mirror instance. At this point, the mirroring
session will be suspended and will not resume until the principal is upgraded.
5.c Synchronize any logins and ensure that all jobs and objects residing outside the database are
restored via scripts to make the mirror usable.
6.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded database.
7.c Configure administration such as backup jobs for the new principal database.
8.c Set the database compatibility level of upgraded database to 100.
9.c Redirect all users and applications to the new SQL Server 2008 R2 instance containing the new
principal (the old mirror). This will minimize an outage because the old principal (the new
mirror) will not be available during its upgrade.
10.cUpgrade the instance containing the old principal. Database mirroring will be re-established
because both the principal and mirror are now at the same version.
11.cTo change the mode from high-safety to high-performance use SSMS or T-SQL. The T-SQL
command to use is as follows3


c 
c"    c
c  
c
!cc

 c      &   


 
To upgrade a high-safety mode database mirroring configuration, the steps are similar to that of a high-
performance upgrade and are documented below.

1.c If a Witness is configured, remove it. This will prevent a failover during the upgrade because the
Principal will be unavailable during the upgrade of that instance.
2.c Upgrade the instance containing the Mirror first and wait for the mirroring session to
synchronize.
3.c Stop all traffic into the Principal.
4.c On the Principal, manually fail over to the upgraded Mirror instance. At this point the mirroring
session will be suspended and will not resume until the Principal is upgraded.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 163

5.c Synchronize any logins and ensure that all jobs and objects residing outside the database are
restored via scripts.
6.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded Principal database.
7.c Configure administration such as backup jobs for the database.
8.c Set the database compatibility level of upgraded databases to 100.
9.c Redirect all users and applications to the new SQL Server 2008 R2 instance containing the
Principal (the old Mirror). This will minimize an outage because the Principal will not be available
during its upgrade.
10.cUpgrade the instance containing the Principal. Database mirroring will be re-established
because both the Principal and Mirror are at the same version.
11.cFinally, add the Witness back if it was configured.

 c     


  
The following steps describe how to upgrade to SQL Server 2008 R2 when you have database mirroring
deployed and will be using a new server.

1.c Install the new SQL Server 2008 R2 instances for the principal and mirror.
2.c Take a full backup of the SQL Server 2005 principal database and restore two copies WITH
NORECOVERY3 one on the new principal and one on the new Mirror.
3.c When you are ready to upgrade, stop all traffic and end all connections to the instance
containing the principal. This will ensure that the data cannot be updated during the upgrade.
4.c If transaction logs were made after the full backup was taken, copy and restore them WITH
NORECOVERY on both the principal and mirror.
5.c Back up the tail of the log on the principal.
6.c Copy the tail log backup to the new principal and restore WITH RECOVERY.
7.c Copy the tail log backup to the new mirror and restore WITH NORECOVERY.
8.c If necessary, synchronize any logins and ensure that all jobs and objects residing outside the
database are restored via scripts.
9.c It is recommended that you run all the necessary health checks, including DBCC CHECKDB, at
this point to ensure the well-being of the newly upgraded database on the principal.
10.cConfigure administration such as backup jobs for the database.
11.cSet the database compatibility level of upgraded databases to 100.
12.cConfigure database mirroring from the principal to the mirror.
13.cTest the failover from the principal to the mirror and from the mirror back to the principal.
14.cRedirect all users and applications to the new SQL Server 2008 R2 instance containing the
principal.

 
c x
       
  
 
For more information about upgrading with mirrored databases, see the following SQL Server 2008 R2
Books Online topics3

{c How to3 Manually Fail Over a Database Mirroring Session (SQL Server Management Studio)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 164

{c How to3 Manually Fail Over a Database Mirroring Session (Transact-SQL)c


{c How to3 Minimize Downtime for Mirrored Databases When Upgrading Server Instancesc

For an up-to-date collection of additional references for upgrading with mirrored databases, see the
Microsoft SQL Server 2008 R2 Upgrade page.

 c   


 
 
This section covers upgrading databases and instances that are participating in replication. Unlike the
other availability features, replication is generally upgraded with little additional effort during the
upgrade of the instance to SQL Server 2008 R2. This section covers both general and specific
considerations for each form of replication.

 ac 
 î       

Upgrading replication may not be a straightforward process due to the replication topology. A simple
replication topology is always easier to upgrade than one that has multiple Distributors, multiple levels
of Publishers, and changes occurring at multiple locations. Using such capabilities as updating
subscribers and peer-to-peer replication is not recommended because they allow changes to occur
outside of the Publisher. When upgrading to SQL Server 2008 R2, it might be time to consider instituting
a ban on allowing anyone other than the Publisher to update data for a period of time. If this is not
done, the Subscribers must be treated as Publishers.

SQL Server 2008 R2 can use a SQL Server 2000 instance as part of its replication topology, but that
instance must be at a minimum of SQL Server 2000 SP3a. All versions of SQL Server 2005 can participate
in a replication topology with SQL Server 2008 R2.

The Distributor is the key to how much downtime will be encountered during the upgrade. If there are
multiple Distributors in the topology, there will be multiple outages. Where possible, assuming the
hardware is not out of date, performing an in-place upgrade is recommended over installing a new
instance of SQL Server and reconfiguring the Distributor. When upgrading in an environment that has
multiple Distributors, upgrade them in order of magnitude3 Do not upgrade the biggest and most
important Distributor first. Schedule the upgrades to have the least impact on the end users and
applications.

Ô  Always upgrade the Distributors first because they can push changes from a Publisher to a
Subscriber that are both down level from the SQL Server 2008 R2 Distributor. Ensure that the
Publishers and Subscribers are at the right SQL Server patch levels; otherwise, upgrading the
Distributor first will be pointless.
In general, performing in-place upgrade is preferred when it comes to all aspects of replication because
much like log shipping, reinitializing a Subscriber can be very costly from a time perspective as well as in
disk space, network bandwidth, and so on. If someone forgets to script out the replication or does not
update the script, starting from scratch is not a good option. Avoid this if at all possible.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 165

The Distributor's SQL Server version must be greater than or equal to the version of the Publisher. So if
the Publisher is a SQL Server 2008 R2 database, the Distributor must also be SQL Server 2008 R2. The
Publisher version can be lower than the Distributor version.

If there are SQL Server CE Subscribers, additional actions must be executed on the IIS server. SQL Server
2008 R2 client connectivity components must be installed along with SQL Server Compact components
(SQL Server Compact 3.5 Service Pack 1 Server Tools) on the IIS server. Sqlcesa30.dlll, sqlcerp30.dll, and
all the replication components on the IIS server must also be replaced.

SQL Server 2008 R2 introduced some new data types, which will need to be mapped to compatible old
data types if you will be replicating to or from earlier versions of SQL Server. For more information, see
"Mapping New Data Types for Earlier Versions" in Using Multiple Versions of SQL Server in a Replication
Topology in SQL Server 2008 R2 Books Online. Table 4-4 shows the mappings of old to new data types.

Ô + + Ô   

&"((( &"((- Ô  &"(()'" Ô 


 Ô 
Image Common Language Runtime (CLR) UDT (8000 bytes or less)
user-defined type (UDT)
Image Varbinary(max) UDT (8000 bytes or more)
Nvarchar(10) Nvarchar(10) Date
Nvarchar(27) Nvarchar(27) Datetime2
Nvarchar(34) Nvarchar(34) Datetimeoffset
Not supported Varbinary(max) FILESTREAM attribute
Image Varbinary(max) Geography and geometry
Image Varbinary(max) Hierarchyid
Ntext Nvarchar(max) Nvarchar(max)
Nvarchar(16) Nvarchar(16) Time
Text Varchar(max) Varchar(max)
Image Varbinary(max) Varbinary(max)
Ntext Xml Xml

If you are upgrading from SQL Server 2005, there are minor changes to replication from an upgrade
perspective. If upgrading from SQL Server 2000, to see all aspects of replication, you must account for
features that have been deprecated or discontinued as well as for breaking and behavior changes in SQL
Server 2008 R2. For comprehensive information about these changes, see Replication Backward
Compatibility in SQL Server 2008 R2 Books Online.

 2 a ac !   
  

SQL Server 2008 R2 deprecates the PublisherAddress, PublisherNetwork, DistributorNetwork, and


DistributorAddress parameters of the Distribution Agent. This applies to all forms of replication. We

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 166

recommend using an alias with the client protocols to map the IP address to server name and then use
the server name in the agents.

 2 a c $ '
 

SQL Server 2005 implemented a new security model for replication. If you are using SQL Server 2005,
you should already know about this change and have accounted for it. If you are upgrading from SQL
Server 2000, see "New Replication Agent Security Model" in Considerations for Upgrading Replicated
Databases in SQL Server 2008 R2 Books Online for information about the security model.

M   Before any upgrade, always script the existing replication configuration. You should
probably upgrade the scripts if they will be applied to SQL Server 2008 R2. You will see errors in the
execution of the scripts and, ultimately, failure if they are not upgraded and executed by anyone
other than a sysadmin.

 c   


This section covers the specifics of upgrading databases using snapshot replication to SQL Server 2008
R2.

 2  ac  

 
# 

()
 ' 
**+
#

When using row and/or page compression with a SQL Server 2008 R2 source, the Snapshot Agent will
generate a schema that uses compression on the table and the indexes, not one or the other.

 2  c 


()
 ' 
***

()
 ' 
**"

As noted earlier, performing an in-place upgrade is the least intrusive way of upgrading all servers
participating in snapshot replication.

1.c Generate scripts for the entire existing replication topology and store them in a safe place.
2.c If the Distribution Agent is configured on the Subscriber for a pull subscription, disable the SQL
Server Agent jobs related to the pull.
3.c Upgrade the Distributor to SQL Server 2008 R2. This may or may not be the same as the
Publisher. Before upgrading the Distributor, disable any SQL Server Agent jobs related to
replication, including any push subscriptions. Figure 4-19 shows an example of SQL Server Agent
jobs involved in snapshot replication.

ë+ !=Distributor with push subscriptions for snapshot replication

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 167

4.c Ensure that each Subscriber is at a version of SQL Server that is compatible with SQL Server 2008
R2 replication.
5.c Check to see that SQL Server Agent is started on the Distributor.
6.c If the Publisher is not the same as the Distributor and the Publisher or Subscriber will not be
upgraded in the same outage, enable all of the replication jobs at the newly upgraded
Distributor to allow replication to work until all components are upgraded. When the upgrade
process is initiated for either the Publisher or Subscriber, it is recommended that you disable all
SQL Server Agent jobs relating to distribution to ensure that no attempts to propagate data will
occur during the upgrade.
7.c At this point, as long as each Subscriber's version of SQL Server is compatible with SQL Server
2008 R2, you can upgrade the Publisher. To upgrade the Publisher3
a.c Stop all traffic and end any connections into the Publisher.
b.c Upgrade the Publisher to SQL Server 2008 R2.
c.c Ensure that SQL Server Agent is started.
d.c We recommend that you run all the necessary health checks, including DBCC CHECKDB,
at this point to ensure the well-being of the newly upgraded databases.
e.c Set the database compatibility level of upgraded databases to 100.
f.c If the Subscriber will not be upgraded at this time, enable all the SQL Server Agent jobs
related to the Publisher and Distributor.
8.c If there are multiple Subscribers, consider doing a phased upgrade and do selected ones each
outage. To upgrade the Subscriber, follow these steps3
a.c If the Subscriber is pulling the subscription, disable the SQL Server Agent jobs related to
the subscription. This will ensure that the Subscriber cannot be updated during the
upgrade process.
b.c Upgrade the instance containing the Subscriber to SQL Server 2008 R2.
c.c Run DBCC CHECKDB against all upgraded databases.
d.c Set the database compatibility level of upgraded databases to 100.
e.c Ensure that SQL Server Agent is started.
f.c After the Subscriber is upgraded, enable all the SQL Server Agent jobs for the
subscription and enable all SQL Server Agent jobs on the Distributor.
[ c Verify that the replication is working properly. The easiest way to do this is to manually kick off
the SQL Server Agent jobs involved in snapshot replication and view the status in the Replication
Monitor. They should reflect a successful execution.c
10.cGenerate new scripts for the upgraded replication architecture.
11.cThe newly upgraded SQL Server environment is now ready for use by applications and end
users.

 2  c  



§ 6
 ' 

 

Snapshot replication tends to be the easiest in terms of a non-in-place upgrade because it is the least
complex process.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 168

1.c In the replication topology, where an in-place upgrade of an existing instance to SQL Server
2008 R2 will not be done, install a new instance of SQL Server 2008 R2. This might be for a
Publisher, a Distributor, or a Subscriber.
2.c Generate scripts for the entire existing replication topology.
3.c Upgrade the scripts to SQL Server 2008 R2, and make sure that the instance names and
databases are updated to reflect their new locations. Before upgrading the scripts, make copies
so that the old environment can be restored if necessary.
4.c The Distributor must be SQL Server 2008 R2. Run the appropriate upgraded replication script at
the Distributor to create publication and distribution. At this point, the old replication topology
is still in use.
5.c To do the cutover, stop all traffic and kill any connections into the Publisher to ensure that no
one tries to access it during the upgrade.
6.c Assuming the Publisher is also going to be the main application database, upgrade it using one
of the methods described in "Methods for New Hardware and Side-by-Side Upgrades," above.
Just using a snapshot will not necessarily move the entire database. Also, ensure that moving
the database to a new instance follows whatever approved and supported procedures the
application vendor provides. Do not just move it.
7.c Run the appropriate upgraded script at the Publisher.
8.c Run the appropriate upgraded scripts at the Subscriber to connect it to the new replication
topology. If the Subscriber is not a new instance of SQL Server 2008 R2, make sure it is at a
version of SQL Server that can be supported in a SQL Server 2008 R2 replication topology. The
Subscriber will need to be completely initialized. Remember to script and migrate any objects
that are required by the database, but which are not accounted for by replication.
9.c Verify that the replication agents and jobs are started with no errors.
10.cVerify that transactional replication is working via the Replication Monitor.
11.cConfigure administration such as backup jobs for the database.
12.cGenerate new scripts for the upgraded replication architecture.
13.cTo ensure that no one will connect to the old environment, it is recommended that you stop the
services if possible on the original topology after it has been moved to the new instance. For
more guidance, see the section "Decommissioning and Uninstalling After a Side-by-Side or New
Hardware Upgrade" earlier in this chapter.
14.cThe newly upgraded SQL Server environment is now ready for use by applications and end
users. Point them to the new locations if necessary.

 c  



This section covers the specifics of upgrading merge replication to SQL Server 2008 R2.

 2  ac  

Merge replication uses the publication compatibility level to determine which features can be used. This
compatibility level is set as the @publication_compatibility_level of sp_addmergepublication on the
Subscriber Types page of the New Publication Wizard or on the General page of the Publication
Properties. Do not use any new SQL Server 2008-only features if there are down-level versions in the
topology. An example of this is data compression. For more information, see "Compatibility Level for

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 169

Merge Publications" in Using Multiple Versions of SQL Server in a Replication Topology in SQL Server
2008 R2 Books Online.

Table 4-5 lists the feature changes to merge replication and any recommended actions.

Ô + -&"(()'"'   


 

ë     '   


"No sync" subscriptions Deprecated A subscription is a "no sync" subscription if a value of
to merge publications none is specified for the @sync_type parameter of
sp_addmergesubscription or
sp_addmergepullsubscription. This type of
subscription is not recommended for merge
replication.

- Deprecated This parameter of the Merge Agent is used to


ParallelUploadDownload perform simultaneous upload and download of
parameter¹ changes in a merge replication session. This
parameter provides a performance gain, but it is
outweighed by the amount of metadata that must be
transferred over the network.

@allow_partition_ Deprecated This parameter is used to control the delete


realignment property in operations that must be sent to Subscribers if a row
sp_addmergepublication moves out of the Subscriber's partition.

-ExchangeType Deprecated This parameter is used to control whether the Merge


parameter Agent goes through the upload phase or the
download phase or both. This defaults to 3 to
perform both upload and download. We do not
recommend upload-only because it would not
replicate schema changes or initialization processes.
Download-only functionality can be achieved by using
@subscriber_upload_options for an article. For more
information, see sp_addmergearticle (Transact-SQL)
in SQL Server 2008 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 170

ë     '   


@delete_tracking Deprecated This property is used to stop tracking deletes when
property in deletes should be sent down to the Publisher or
sp_addmergearticle Subscriber. This can be implemented by using the
DeleteHandler in the BusinessLogicModule. For more
information, see Executing Business Logic During
Merge Synchronization in SQL Server 2008 Books
Online.

Logical Records Deprecated This feature is used to send a set of related rows in a
single transaction. In most cases, this feature adds
significant performance overhead to replication when
it is used. For more information, see Grouping
Changes to Related Rows with Logical Records in SQL
Server 2008 Books Online.

PublisherAddress , Deprecated To initialize a subscription from a backup in SQL


PublisherNetwork, Server 2005. Use alias at the client protocols to map
DistributorNetwork, and the IP address to server name and use the server
DistributorAddress name in the agent.
parameters in Merge
Agents
Initializing a Breaking change To initialize a subscription from a backup in SQL
transactional Server 2008, a user must be a member of the
subscription from a dbcreator server role. In SQL Server 2005,
backup membership in the db_owner database role was
sufficient. For more information about how to
initialize a subscription from a backup, see Initializing
a Transactional Subscription Without a Snapshot in
SQL Server 2008 Books Online.

 2  c 

()
 ' 
***

()
 ' 
**"

If upgrading from SQL Server 2000, after upgrading an instance and database to SQL Server 2008 R2, the
Snapshot Agent must be run for each merge replication publication. You do not need to do this for SQL
Server 2005 upgrades. Do not apply a new snapshot; running the Snapshot Agent will update publication
metadata because merge replication stores publication metadata in system tables. For more
information about running the Snapshot Agent, see the following SQL Server 2008 R2 Books Online
topics3

{c How to3 Create and Apply the Initial Snapshot (SQL Server Management Studio)
{c How to3 Start and Stop a Replication Agent (SQL Server Management Studio)
{c How to3 Create the Initial Snapshot (Replication Transact-SQL Programming)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 171

{c Replication Agent Executables Concepts

Besides running the Snapshot Agent, you must also run the Merge Agent because it will update
metadata stored for the subscriptions. For more information about running the Merge Agent, see the
following SQL Server 2008 R2 Books Online topics3

{c How to3 Synchronize a Pull Subscription (SQL Server Management Studio)


{c How to3 Synchronize a Push Subscription (SQL Server Management Studio)
{c How to3 Synchronize a Pull Subscription (Replication Programming)

 2  c 


1.c Generate scripts for the entire existing replication topology and store them in a safe place.
2.c If the Merge Agent is configured on the Subscriber for a pull subscription, disable the SQL Server
Agent jobs related to the pull.
3.c Upgrade the Distributor to SQL Server 2008 R2. The Distributor may or may not be the same as
the Publisher. Before upgrading the Distributor, disable any SQL Server Agent jobs related to
replication, including any push subscriptions. The jobs involved will be similar to the ones that
Figure 4-19, above, shows.
4.c Ensure that each Subscriber is at a version of SQL Server that is compatible with SQL Server 2008
R2 replication.
5.c Check to see that SQL Server Agent is started on the Distributor.
6.c If the Publisher is not the same as the Distributor and the Publisher or Subscriber will not be
upgraded in the same outage, enable all the replication jobs at the newly upgraded Distributor
to allow replication to work until all components are upgraded. When the upgrade process is
initiated for either the Publisher or Subscriber, either disable all SQL Server Agent jobs relating
to publication and distribution or disable networking to ensure that no attempts to propagate
data will occur during the upgrade. Disabling networking may be easier, but both are valid
options.

Having said the above, it is strongly recommended that you upgrade the Distributor and
Publisher during the same outage. Publishers and Subscribers can be upgraded in stages, and
data changes can happen on a Subscriber while the Publisher is being upgraded (and vice versa).
7.c To upgrade the Publisher, follow these steps3
a.c Stop all traffic and kill any connections into the Publisher and Subscriber because both
can update data. This should only be done on the instance or server being upgraded.
b.c Make sure that all existing transactions have been replicated and that no data is flowing
via replication. This will ensure that in the upgrade, no data changes.
c.c Upgrade the Publisher to SQL Server 2008 R2.
d.c Ensure that SQL Server Agent is started.
e.c We recommend that you run all the necessary health checks, including DBCC CHECKDB,
at this point to ensure the well-being of the newly upgraded databases.
f.c Set the database compatibility level of upgraded databases to 100.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 172

8.c Upgrading the Subscriber(s) can be done in a staged fashion. Ensure that the Publisher and
Distributor have been upgraded before the Subscriber.
9.c After the Subscriber is upgraded, enable all the SQL Server Agent jobs for the subscription and
enable all SQL Server Agent jobs on the Distributor.
10.cVerify that SQL Server Agent is started at the Publisher, Distributor, and Subscriber.
11.cVerify that the replication agents and jobs are started with no errors.
12.cVerify that merge replication is working via the Replication Monitor.
13.cGenerate new scripts for the upgraded replication architecture.
14.cThe newly upgraded SQL Server environment is now ready for use by applications and end
users.

 2  c  



§ 6
 ' 

 

When not upgrading merge replication in-place, the upgrade process complexity will depend on the
complexity of the replication topology and which components will be changed to SQL Server 2008 R2.
Tackle the switch to the new instances in logical groups, starting from the top down.

1.c In the replication topology, where an in-place upgrade of an existing instance to SQL Server
2008 R2 will not be performed, install a new instance of SQL Server 2008 R2. This may be for a
Publisher, a Distributor, or a Subscriber.
2.c Generate scripts for the entire existing replication topology.
3.c Upgrade the scripts to SQL Server 2008 R2 and make sure that the instance names and
databases are updated to reflect their new locations. Before upgrading the scripts, make copies
so that the old environment can be restored if necessary.
4.c Ensure that the existing Publisher is at a version that can participate in the replication topology
when SQL Server 2008 R2 is added.
5.c The Distributor must be SQL Server 2008 R2. Run the appropriate upgraded replication script at
the Distributor to create publication and distribution. At this point, the old replication topology
is still being used.
6.c If necessary, run the appropriate upgraded replication script at the Publisher. At this point, you
are still actively using the old replication topology.
7.c To upgrade one tier of merge replication, follow these steps3
a.c Initialize the new Publisher. Assuming the Publisher is going to be the main application
database as well, migrate it using one of the methods described in "Methods for New
Hardware and Side-by-Side Upgrades" earlier in this chapter. Just using a snapshot will
not necessarily capture the entire database in the same way a backup will. Also, ensure
that migrating the database to a new instance follows whatever approved and
supported procedures the application vendor or developers provide. Do not just move
it.
b.c Configure a new subscription from the old Publisher to the new Publisher.
c.c To do the cutover, stop all traffic and kill any connections into the Publisher to ensure
that no one tries to access it during the upgrade. Because both sides can update data,
no traffic or connections should be allowed at either side.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 173

d.c Make sure that no transactions are left to replicate.


e.c After all transactions have been replicated, delete the subscription from the old
Publisher to the new Publisher.
f.c Run the appropriate upgraded script at the Publisher to add it to the new replication
topology.
g.c Run the appropriate upgraded scripts at the Subscriber to connect it to the new
replication topology. If the Subscriber is not a new instance of SQL Server 2008 R2, make
sure it is at a version of SQL Server that can be supported in a SQL Server 2008 R2
replication topology. We recommend that you delete the old subscription to ensure a
clean configuration. This will mean a complete re-synchronization of the Subscriber.
h.c Verify that the replication agents and jobs are started with no errors.
i.c Verify that merge replication is working via the Replication Monitor. Also, insert some
"dummy" data and make sure it propagates to all Subscribers.
8.c Remember to script and migrate any objects required by the database that are not accounted
for by replication.
9.c Configure administration such as backup jobs for the database.
10.cGenerate new scripts for the upgraded replication architecture.
11.cTo ensure that no one will connect to the old environment, it is recommended that you stop the
services if possible on the original topology after it has been migrated to the new instance.For
more information, see the section "Decommissioning and Uninstalling After a Side-by-Side or
New Hardware Upgrade" earlier in this chapter.
12.cThe newly upgraded SQL Server environment is now ready for use by applications and end
users. Point applications and clients to the new locations if necessary.

 c Ô 
  

This section covers the specifics of upgrading databases using transactional replication to SQL Server
2008 R2.

 2  ac !   
  

Not much has changed in transactional replication since SQL Server 2005. To see what was deprecated
or discontinued as well as breaking or behavior changes, review Replication Backward Compatibility in
SQL Server 2008 R2 Books Online. Table 4-6 lists deprecated features in SQL Server 2008 R2
transactional replication.

Ô + 0  ë  &"(()Ô    '   


ë     '   
Updatable subscriptions, including immediate Deprecated Use peer-to-peer replication
updating and queued updating with snapshot
and transactional publications
Replicating to Oracle 8 subscribers and from Deprecated See Oracle Publishing Overview
Oracle 8 publishers¹ and Oracle Subscribers in SQL
Server 2008 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 174

 2  c $ '
 

When using row and/or page compression with a SQL Server 2008 R2 source, the Distribution Agent
does not check whether the Subscribers are a different version of SQL Server, so table creation will fail
with the compression options.

M  Do not enable data compression if SQL Server 2000 or SQL Server 2005 is part of the
replication topology.

 2  c 


As noted earlier, performing an in-place upgrade is probably the least intrusive way of upgrading all
servers participating in transactional replication.

$    6  1 Ô    '   %Upgrading when there is only one Publisher (or
Publisher and Republisher) is simpler than if the Subscribers are also Publishers.

1.c Generate scripts for the entire existing replication topology.


2.c If the Distribution Agent is configured on the Subscriber for a pull subscription, disable the SQL
Server Agent jobs related to the pull process.
3.c Upgrade the Distributor to SQL Server 2008 R2. The Distributor may or may not be the same as
the Publisher. Before upgrading the Distributor, disable any SQL Server Agent jobs related to
replication, including any push subscriptions. The jobs involved will be similar to the ones shown
in Figure 4-19 above.
4.c Ensure that each Subscriber is at a version of SQL Server that is compatible with SQL Server 2008
R2 replication.
5.c Check to see that SQL Server Agent is started on the Distributor.
6.c If the Publisher is not the same as the Distributor and the Publisher or Subscriber will not be
upgraded in the same outage, enable all the replication jobs at the newly upgraded Distributor
to allow replication to work until all components are upgraded. When the upgrade process is
initiated for either the Publisher or Subscriber, either disable all SQL Server Agent jobs relating
to publication and distribution or disable networking to ensure that no attempts to propagate
data will occur during the upgrade. Disabling networking may be easier, but both are valid
options.
Having said the above, it is strongly recommended that you upgrade the Distributor and
Publisher during the same outage. Publishers and Subscribers can be upgraded in stages, and
data changes can happen on a Subscriber while the Publisher is being upgraded (and vice versa).
7.c To upgrade the Publisher, follow these steps3
a.c Stop all traffic and kill any connections into the Publisher to ensure that no one tries to
access it during the upgrade. This should only be done on the server or instance being
upgraded.
b.c Although the Publisher can be upgraded even when not all transactions have been
replicated, it would be better to ensure that all existing transactions have been
replicated from the Publisher before upgrading. For transactional replication, run

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 175

sp_repltrans at the Publisher to get the outstanding transactions marked for


publication. Once the result set is empty, the upgrade can begin.
c.c Upgrade the Publisher to SQL Server 2008 R2.
d.c Ensure that SQL Server Agent is started.
e.c We recommend that you run all the necessary health checks, including DBCC CHECKDB,
at this point to ensure the well-being of the newly upgraded databases.
f.c Set the database compatibility level of upgraded databases to 100.
g.c After the Subscriber is upgraded, enable all the SQL Server Agent jobs for the
subscription and enable all SQL Server Agent jobs on the Distributor.
h.c Verify that the replication agents and jobs are started with no errors.
8.c To upgrade the Subscriber, follow these steps3
a.c You do not need to stop all traffic or kill connections into the Publisher during an
upgrade of the Subscriber. However, be aware that the Publisher will not be able to
flush transactions until the Subscriber is back online. It will also affect the Publisher's
ability to back up the transaction log.
b.c Upgrade the Subscriber to SQL Server 2008 R2.
c.c Ensure that SQL Server Agent is started.
d.c We recommend that you run all the necessary health checks, including DBCC CHECKDB,
at this point to ensure the well-being of the newly upgraded databases.
e.c Set the database compatibility level of upgraded databases to 100.
f.c After the Subscriber is upgraded, enable all the SQL Server Agent jobs for the
subscription and enable all SQL Server Agent jobs on the Distributor.
g.c Verify that the replication agents and jobs are started with no errors.
9.c Verify that transactional replication is working via the Replication Monitor. Also, insert some
"dummy" data and make sure it propagates to all Subscribers.
10.cGenerate new scripts for the upgraded replication architecture.
11.cArchive the original replication scripts for the old topology with the previous version of SQL
Server.
a cThe newly upgraded SQL Server environment is now ready for use by applications and end
users.c

$   d   Ô    '   $     %Upgrading


where bi-directional transactional replication or peer-to-peer is involved is similar to upgrading with
merge replication because both the Publisher and Subscriber can be updating data.

1.c Generate scripts for the entire existing replication topology.


2.c If the Distribution Agent is configured on the Subscriber for a pull subscription, disable the SQL
Server Agent jobs related to the pull process.
3.c Upgrade the Distributor to SQL Server 2008 R2. The Distributor may or may not be the same as
the Publisher. Before upgrading the Distributor, disable any SQL Server Agent jobs related to
replication, including any push subscriptions. The jobs involved will be similar to the ones shown
in Figure 4-19 above.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 176

4.c Ensure that each Subscriber is at a version of SQL Server that is compatible with SQL Server 2008
R2 replication.
5.c Check to see that SQL Server Agent is started on the Distributor.
6.c If the Publisher is not the same as the Distributor and the Publisher or Subscriber will not be
upgraded in the same outage, enable all the replication jobs at the newly upgraded Distributor
to allow replication to work until all components are upgraded. When the upgrade process is
initiated for either the Publisher or Subscriber, either disable all SQL Server Agent jobs relating
to publication and distribution or disable networking to ensure that no attempts to propagate
data will occur during the upgrade. Disabling networking may be easier, but both are valid
options.

Having said the above, it is strongly recommended that you upgrade the Distributor and
Publisher during the same outage. Publishers and Subscribers can be upgraded in stages, and
data changes can happen on a Subscriber while the Publisher is being upgraded (and vice versa).
7.c To upgrade the Publisher and Subscriber, follow these steps3
a.c Stop all traffic and kill any connections into the Publisher and Subscriber because both
can update data.
b.c Although the Publisher can be upgraded even when not all transactions have been
replicated, it is better to ensure that all existing transactions have been replicated from
the Publisher before upgrading. This will ensure that in the upgrade, no data changes.
For transactional replication, run sp_repltrans at the Publisher to get the outstanding
transactions marked for publication. Once the result set is empty, the upgrade can
begin.
c.c Upgrade the Publisher to SQL Server 2008 R2.
d.c Ensure that SQL Server Agent is started.
e.c We recommend that you run all the necessary health checks, including DBCC CHECKDB,
at this point to ensure the well-being of the newly upgraded databases.
f.c Set the database compatibility level of upgraded databases to 100.
g.c After the Subscriber is upgraded, enable all the SQL Server Agent jobs for the
subscription and enable all SQL Server Agent jobs on the Distributor.
8.c Verify that the replication agents and jobs are started with no errors.
9.c Verify that transactional replication is working via the Replication Monitor. Also, insert some
"dummy" data and make sure it propagates to all Subscribers.
10.cGenerate new scripts for the upgraded replication architecture.
11.cArchive the SQL Server 2000 or SQL Server 2005 replication scripts.
12.cThe newly upgraded SQL Server environment is now ready for use by applications and end
users.

  $    §


 %When transactional replication will not be upgraded
in-place, determine the complexity of the topology. Tackle the switch to the new instances in logical
groups, starting from the top down. The complexity of this form of upgrade will depend on which pieces
are going to be changed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 177

In the replication topology, where you are not doing an in-place upgrade of an existing instance to SQL
Server 2008 R2, install a new instance of SQL Server 2008 R2. This may be for a Publisher, a Distributor,
or a Subscriber.

1.c Generate scripts for the entire existing replication topology.


2.c Upgrade the scripts to SQL Server 2008 R2 and make sure that the instance names and
databases are updated to reflect their new locations. Before upgrading the scripts, make copies
so that the old environment can be restored if necessary.
3.c Ensure that the existing Publisher is at a version that can participate with SQL Server 2008 R2 in
the topology.
4.c The Distributor must be SQL Server 2008 R2. Run the appropriate upgraded replication script at
the Distributor to create publication and distribution. At this point, the old replication topology
is in use.
5.c If necessary, run the appropriate upgraded replication script at the Publisher. At this point, the
old replication topology is still being used.
6.c To upgrade one tier of transactional replication, follow these steps3
a.c Initialize the new Publisher. Assuming the Publisher is going to be the main application
database as well, migrate it using one of the methods described in "Methods for New
Hardware and Side-by-Side Upgrades" earlier in this chapter. Just using a snapshot will
not necessarily capture the entire database. Also, ensure that migrating the database to
a new instance follows whatever approved and supported procedures the application
vendor or developers provide. Do not just move it.
b.c Configure a new subscription from the old Publisher to the new Publisher.
c.c To do the cutover, stop all traffic and kill any connections into the Publisher to ensure
that no one tries to access it during the upgrade. If peer-to-peer, updating Subscribers,
and/or bi-directional transactional replication are being used, ensure that neither side
has any connections to the Publishers.
d.c Make sure that no transactions are left to replicate. Run sp_repltrans at the Publisher to
get a list of the outstanding transactions marked for publication.
e.c Once the result set is empty, delete the subscription from the old Publisher.
f.c Run the appropriate upgraded script at the Publisher to add it to the new replication
topology.
g.c Run the upgraded scripts at the Subscriber to connect it to the new replication topology.
If the Subscriber is not a new instance of SQL Server 2008 R2, make sure it is at a version
of SQL Server that can be supported in a SQL Server 2008 R2 replication topology. We
recommend that the old subscription be erased to ensure a clean configuration. This will
mean a complete re-synchronization of the Subscriber.
h.c Verify that the replication agents and jobs are started with no errors.
i.c Verify that transactional replication is working via the Replication Monitor. Also, insert
some "dummy" data and make sure it propagates to all Subscribers.
7.c Remember to script and migrate any objects required by the database that are not accounted
for by replication.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 178

8.c Configure administration such as backup jobs for the database.


9.c Generate new scripts for the upgraded replication architecture.
a.c To ensure that no one will connect to the old environment, it is recommended that you
stop the services if possible on the original topology after it has been migrated to the
new instance. For more guidance, see the section "Decommissioning and Uninstalling
After a Side-by-Side or New Hardware Upgrade" in this chapter.
b.c The newly upgraded SQL Server environment is now ready for use by applications and
end users. Point applications and clients to the new locations if necessary.

 
c x
  
    
 
 
See the following SQL Server 2008 R2 Books Online topics for more information about upgrading
replicated databases3

{c Behavior Changes in SQL Server Replication


{c Breaking Changes in SQL Server Replicationc
{c Considerations for Upgrading Replicated Databasesc
{c Deprecated Features in SQL Server Replicationc
{c Discontinued Functionality in SQL Server Replicationc
{c How to3 Enable Initialization with a Backup for Transactional Publication (SQL Server
Management Studio)c
{c How to3 Initialize Transactional Subscription from a Backup (Replication Transact-SQL
Programming)c
{c How to3 Initialize a Subscription Manually (SQL Server Management Studio)c
{c How to3 Initialize a Subscription Manually (Replication Transact-SQL Programming)c
{c How to3 Synchronize a Pull Subscription (SQL Server Management Studio)c
{c How to3 Synchronize a Pull Subscription (Replication Programming)c
{c How to3 Synchronize a Push Subscription (SQL Server Management Studio)c
{c How to3 Synchronize a Push Subscription (Replication Programming)c
{c How to3 Upgrade Replication Scripts (Replication Transact-SQL Programming)c
{c Considerations for Installing SQL Server Replicationc
{c Replication Backward Compatibilityc
{c Using Multiple Versions of SQL Server in a Replication Topologyc

For an up-to-date collection of additional references for upgrading replication, see the Microsoft SQL
Server 2008 R2 Upgrade page.

c î  


It is possible to deploy and upgrade to SQL Server 2008 R2 with minimal downtime. Although it is
impossible to completely avoid times when the databases will be unavailable, preparation and testing
will be the ultimate defenses against failures and extended outages. If you are using the high-availability
features of SQL Server 2000 or SQL Server 2005 and will be upgrading, each feature and version will

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 179

have different considerations and processes that you must take into account when upgrading to SQL
Server 2008 R2.

c x
   
For an up-to-date collection of additional SQL Server 2008 R2 high-availability references, see the
Microsoft SQL Server 2008 R2 Upgrade page.

Also see the following links3

{c SQL Server High Availability Web site


{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 180


c 
   



ac 


The number of security factors affecting the upgrade of the SQL Server relational engine from SQL
Server 2000 or SQL Server 2005 to SQL Server 2008 R2 is fairly small. For most systems, the changes will
be nearly invisible. Almost all existing SQL Server security configurations will upgrade automatically
without intervention by the database administrator (DBA). In this chapter, you will learn about any
security-related upgrade issues you need to consider for the Database Engine, including new and
enhanced features as well as security functionality that is no longer part of SQL Server.


c   
 

Security in SQL Server 2008 R2 has been enhanced and strengthened. But DBAs must remove any
blocking issues and follow up in newly upgraded environments to take advantage of these
enhancements. If you address any issues early on in the upgrade planning process, your upgrade
experience will be much smoother. For a comprehensive discussion of upgrading database security, see
Security Considerations for a SQL Server Installation in SQL Server 2008 R2 Books Online. Let's look at
how the new and enhanced security features in SQL Server 2008 R2 could affect your upgrade planning
and process.

Table 5-1 provides a summary of the new security features in SQL Server 2008 R2 and how they might
affect the upgrade process from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2.

Ô - !&"(()'" ë 


§&"(() d   1      $  
'" ë  
Services and Greater security at install Immediately after No for in-place
configurations time upgrade upgrade;
"off by default" yes for side-by-side
upgrade
Metadata visibility Less exposed surface area Immediately after Yes
configuration upgrade
Strong password Integrated Windows and Immediately after No
policies for SQL Server SQL Server behavior upgrade
authentication
All permissions Permissions easier to Immediately after No
grantable manage and more granular upgrade
User/schema No recording when staff Immediately after No
separation changes; separates dbo and upgrade
developers
Keys and encryption Compliance with privacy Minimal work to No
requirements, secure leverage
communications

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 181

§&"(() d   1      $  


'" ë  
Transparent Data Encrypts database files and Minimal work to No
Encryption backups without requiring leverage
changes to any application
Execution context, Principle of least privilege;, Design and No
signed procedures audit ability architect
Extensible Key Lets third-party vendors Design and No
Management register their devices in SQL architect
Server
SQL Server Audit Creates customized audits Design and No
of Database Engine events architect
to meet compliance
Service hardening via Isolation across services and Immediately after No
per-service SID defense in-depth on upgrade
Windows Vista and
Windows Server 2008

As you can see from this table, the new security features that might affect your upgrade arise from
having features and services "off by default" and from strengthened metadata visibility. The other
features are enhancements that you can take advantage of after your upgrade, but they will not block or
impede the upgrade process.


ac  î 
 Ô
Another security-related feature change you need to be aware of is that the Surface Area Configuration
(SAC) tool has been removed from SQL Server 2008 R2 and replaced by SQL Server Configuration
Manager and SQL Server Policy-Based Management. SQL Server Configuration Manager is a Microsoft
Management Console (MMC) snap-in that you can start through the Start menu or add to custom
Management Console displays. You use SQL Server Configuration Manager to set protocol, connection,
and startup options. For more information about this tool, see SQL Server Configuration Manager in SQL
Server 2008 R2 Books Online.

You use the new Policy-Based Management capability in SQL Server 2008 R2 to help set Database
Engine, Analysis Services, and Reporting Services configurations. You can import the best practice
policies that SQL Server 2008 R2 provides to evaluate the configurations for your instances, instance
objects, databases, and database objects.

§ 3 As in SQL Server 2005, you can also use sp_configure to set Database Engine features.


c î     î

SQL Server Configuration Manager lets you configure SQL Server 2008 R2 services and (when relevant)
remote connections. If you use an in-place upgrade, SQL Server 2008 R2 Setup preserves your source

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 182

SQL Server instance's service configurations, except for the new service for SQL Server 2008 R2 full-text
search. Even for an in-place upgrade, service setting for SQL Server 2005 full-text search will not be
preserved.

§ 3 If you are performing an in-place upgrade from SQL Server 2000, the new Browser service will
be installed with default settings, as Table 5-2 shows. For more information about the SQL Server
Browser service, see SQL Server Browser Servicein SQL Server 2008 R2 Books Online.
If you use a side-by-side upgrade method, you might need to adjust the default service settings for all
services. To change the service accounts, password, service startup type, or other properties of any SQL
Serverʹrelated service, use SQL Server Configuration Manager. In addition to changing service accounts,
SQL Server Configuration Manager changes other configurations such as permissions in the Windows
registry. Changing service accounts by using the Windows Service Control Manager is not supported. For
more information, see SQL Server Configuration Manager in SQL Server 2008 R2 Books Online.

Table 5-2 lists the SQL Server 2008 R2 services and their status after an initial installation.

Ô - "&"(()'"    M    


& 6       Ô 

SQL Server SQL Server Express3 Domain User, Local System, Automatic;
Network Service; manual in failover cluster
All other editions3 Domain User, Local System, installations
Network Service
SQL Server Agent Domain User, Local System, Network Service Manual;
disabled in SQL Server
Express and SQL Server
Express with Advanced
Services
Analysis Services Domain User, Network Service, Local Service, Local Automatic
System
Reporting Domain User, Local System, Network Service, Local Automatic
Services Service
Integration Domain User, Local System, Network Service, Local Automatic
Services Service
Full-text Filter Use an account different than the account for the Automatic
Daemon SQL Server service. The account will default to Local
Launcher Service on Windows Server 2008, Windows Vista,
and higher.
SQL Server Local Service Disabled;
Browser automatic in failover
cluster and named
instances installations

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 183

& 6       Ô 

SQL Server Local System, Network Service Disabled
Active Directory
Helper
SQL Writer Local System Automatic

If you upgrade from SQL Server 2000, you will find the following new services3 the SQL Server Browser
service (now separate from the SQL Server service), the Integration Services service, and SQL Writer.
SQL Server 2008 R2 now also includes an instance-specific Full-text Filter Daemon Launcher service and
no longer uses the MS Search service.

The Full-text Filter Daemon Launcher service replaces the instance-specific Full Text Search services in
SQL Server 2005. For more information about the Full-text Filter Daemon Launcher service, see Chapter
6, "Full-Text Search," in this guide.

Some of these services might be optional for your instance. You can enable and disable these services,
depending on the functionality your SQL Server instance requires, by using SQL Server Configuration
Manager. You should review these new service accounts and their security requirements before
attempting an upgrade to SQL Server 2008 R2. Use the principle that if a service is not needed, it should
be disabled. You can also enable and disable remote connections from many of the services.

For details about service accounts and services, see Setting Up Windows Service Accounts in SQL Server
2008 R2 Books Online.


c   x  
 

Unlike SQL Server 2000 service accounts, SQL Server 2005, SQL Server 2008, and SQL Server 2008 R2 do
not require local server administrative rights on the database server. You should assign domain accounts
to each SQL Server service instead of using the Local System or Network Service accounts.

§ 3 Although the Network Service account has low privileges, other services use it, and therefore
it violates isolation guarantees.
If you create the accounts ahead of time, the SQL Server 2008 R2 Setup program will grant the minimal
privileges to the accounts for the services to run properly.

For standalone instances, SQL Server Setup creates local security groups for the different services,
grants the needed privileges to these security groups, and adds the service accounts or per-service SIDs
available only on Windows Vista and Windows Server 2008 to these groups. Per-service SIDs are used to
enable service isolation when SQL Server 2008 R2 is installed on Windows Server 2008, Windows Vista,
or higher. When installing on Windows 2003 or Windows XP, the service accounts are used.

On failover cluster installations, you need to create domain groups before installing the instance on
Windows Server 2003 or Windows XP and then assign them to the services during setup. With

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 184

installations on Windows Server 2008 and higher, SQL Server Setup installation uses per-service SIDs. If
you perform an in-place upgrade, Setup preserves the existing domain groups and access control list
(ACL) configuration.

For more information about service account security, see Setting Up Windows Service Accounts in SQL
Server 2008 R2 Books Online.

For more information about per-service SIDs in Windows Server 2008, Windows Vista, and higher, see
the "Security improvements to Windows services" section in What's New for Operating System
Hardening and Integrity for Windows Server 2008 on MSDN.

For details about the SQL Server Full-text Filter Daemon Launcher services, see "Understanding the Filter
Daemon Process" in the SQL Server 2008 Full-Text Search3 Internals and Enhancements white paper,
which is also applicable to SQL Server 2008 R2.


c î  

Through the new Policy-Based Management capability in SQL Server 2008 R2, you can enable or disable
many Database Engine features as well as options for the Analysis Services and Reporting Services
components. You can also set options for the Database Engine by using the sp_configure stored
procedure.

All these options are off by default with a new installation, although the Windows Data Access
Components (DAC) on clusters will have remote use enabled by default. The purpose of having these
options off by default is to reduce the potential attack surface of a new installation. You can selectively
enable these options as required for your SQL Server 2008 R2 instance.

With an in-place upgrade, all feature configurations stay in their pre-upgrade state. But you can use
Policy-Based Management to disable features that you are not using anymore and reduce the attack
surface of the upgraded instance.

Here are the Database Engine configuration features that you can set through the Surface Area
Configuration facet of Policy-Based Management3

{c Ad hoc remote queries


{c Common Language Runtime (CLR) integration
{c DAC (remote use of the Dedicated Administrator Connection)
{c Database Mail
{c Native XML Web services (if HTTP endpoints are defined)
{c OLE automation
{c Service Broker
{c SOAP endpoints
{c SQL Mail
{c Web Assistant stored procedures
{c xp_cmdshell

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 185

You can find out-of-the-box security best practices policies, including Surface Area Configuration, in the
SQL Server 2008 R2 installation path in the 100 Tools Policies DatabaseEngine 1033 folder. You can
also download the policies as part of the Microsoft SQL Server 2008 R2 Feature Pack.

For more information about Policy-Based Management, see Administering Servers by Using Policy-Based
Management in SQL Server 2008 R2 Books Online.



c 

 

SQL Server 2008 R2, like SQL Server 2005, has an entirely new approach to metadata compared to SQL
Server 2000 and earlier releases. And although the new version has mechanisms to preserve backward
compatibility, there are some important behavioral changes you need to be aware of.

The most important change is the limitation on viewing metadata. Access to catalog views and system
metadata is no longer available by default to guest users or members of the PUBLIC role. This restriction
is also reflected in users' ability to inspect metadata using SQL Server Management Studio. You can see
SQL catalog metadata for objects you own or have some permission on, and you can see information in
dynamic management views (DMVs) if you have been granted the VIEW SERVER STATE permission.

In addition, in SQL Server 2008 R2, the base system tables are hidden. For backward compatibility, SQL
Server exposes legacy system base tables as views called 
 222 2À. These views expose the
same metadata as the legacy versions but are read-only. For example, in SQL Server 2000, sysindexes is
a table in each database, but in SQL Server 2005 and SQL Server 2008 R2, sys.sysindexes is a
compatibility view.

§ 3 Some SQL Server 2008 R2 compatibility views have behavioral changes that differ from the
legacy system tables. The rowmodctr column in the sys.sysindexes compatibility view, for example,
displays values somewhat differently from the way the sysindexes system table does in previous
versions of SQL Server. For more information about these changes, see sys.sysindexes (Transact-
SQL) in SQL Server 2008 R2 Books Online.
If you have code that refers to legacy system tables, note that some behavior will change. You cannot
update system base tables, and therefore, you cannot update compatibility views. If you have any code
that updates system base tables in a prior version of SQL Server, you need to remove it because the
code will fail in SQL Server 2005 and SQL Server 2008 R2.

In addition, some code will not work if it accesses undocumented tables or columns in system objects.
For example, the following security-related columns in compatibility views will return NULL or 0 in SQL
Server 2008 R23

{c sysremotelogins.status
{c sysoledbusers.rmtpassword

Therefore, you should change all code that accesses legacy system tables to access system views and
functions instead. For information about mapping legacy system tables to system views and functions in

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 186

SQL Server 2005 and SQL Server 2008 R2, see Mapping System Tables to System Views (Transact-SQL) in
SQL Server 2008 R2 Books Online.


c  
  
After you become familiar with the new features you need to prepare for in your upgrade plan and
process, you need to understand which features have been deprecated or discontinued in SQL Server
2008 R2 and review the changes that could block your upgrade or change the behavior of your
applications after the upgrade.


ac 
 

Some security-related features are deprecated in SQL Server 2008 R2. Although they continue to
operate in SQL Server 2008 R2, they will be removed in a future version of SQL Server. These deprecated
features have no immediate effect on your upgrade to SQL Server 2008 R2, but they will affect your
upgrade to a later version.

For comprehensive information about these features, see Deprecated Database Engine Features in SQL
Server 2008 R2 in SQL Server 2008 R2 Books Online. The Books Online lists of deprecated security
features consist primarily of system stored procedures that are now replaced by Transact-SQL (T-SQL)
commands. For example, sp_adduser and sp_dropuser are replaced by CREATE USER and DROP USER,
respectively, and SETUSER is replaced by EXECUTE AS. These procedures are deprecated because they
do not work with user/schema separation. As soon as you take advantage of new security commands
such as CREATE USER and CREATE SCHEMA, you should also switch from using compatibility views such
as sysobjects and use catalog views such as sys.objects instead.

Table 5-3 lists the deprecated security features in SQL Server 2008 R2 and their replacements.

Ô - #   ë 


  ë  '   
sp_addapprole CREATE APPLICATION ROLE
sp_dropapprole DROP APPLICATION ROLE
sp_addlogin CREATE LOGIN
sp_droplogin DROP LOGIN
sp_adduser CREATE USER
sp_dropuser DROP USER
sp_grantdbaccess CREATE USER
sp_revokedbaccess DROP USER
sp_addrole CREATE ROLE
sp_droprole DROP ROLE
sp_approlepassword ALTER APPLICATION ROLE
sp_password ALTER LOGIN
sp_changeobjectowner ALTER SCHEMA or ALTER AUTHORIZATION
sp_defaultdb ALTER LOGIN
sp_defaultlanguage

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 187

  ë  '   


sp_denylogin ALTER LOGIN DISABLE
sp_grantlogin CREATE LOGIN
sp_revokelogin DROP LOGIN
USER_ID DATABASE_PRINCIPAL_ID
xp_grantlogin CREATE LOGIN
xp_revokelogin DROP LOGIN
xp_loginConfig SERVERPROPERTY('IsIntegratedSecurityOnly')
sp_change_users_login ALTER USER
sp_srvrolepermission The output does not reflect changes to the permissions
sp_dbfixedrolepermission hierarchy implemented in SQL Server 2008 R2. For more
information, see Permissions of Fixed Server Roles (Database
Engine) in SQL Server 2008 R2 Books Online.
sp_addremotelogin Use linked servers instead of remote servers.
sp_addserver
sp_dropremotelogin
sp_helpremotelogin
sp_remoteoption
@@remserver Use linked servers instead of remote servers.
sp_dropalias Replaces aliases with a combination of database users and
roles. Remove aliases with sp_dropalias.
sys.database_principal_aliases Use roles instead of aliases.
GRANT ALL GRANT, DENY, and REVOKE specific permissions.
DENY ALL
REVOKE ALL
PERMISSIONS intrinsic function sys.fn_my_permissions
SETUSER EXECUTE AS

To fully understand these security upgrade issues, make sure you review SQL Server Database Engine
Backward Compatibility in SQL Server 2008 R2 Books Online.


c  
  

A number of security features are discontinued in SQL Server 2008 R2, and you need to adjust your
applications accordingly or they will not work properly. You can address many of these issues before the
upgrade process, but they will not block an upgrade. Table 5-4 lists currently documented security-
related features that are discontinued in SQL Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 188

Ô - +   ' ë 


  ë  5   4'   
Remote logins are no longer trusted. SQL Server 2005 and SQL Server 2008 R2 no
longer support setting remote logins as
trusted. Scripts using the sp_remotelogin
system stored procedure to mark remote
logins as trusted must be modified.
The following network libraries are no longer Change the network library for connections to
supported in SQL Server 2005 or SQL Server use TCP/IP (preferred) or named pipes. Data
2008 R23 Multiprotocol, Banyan VINES, transmission encryption can be accomplished
AppleTalk, and IPX/SPX (see note below). by using a certificate and SSL.
The following security-related system stored Remove references to security-related
procedures do not function in SQL Server 2005 undocumented system stored procedures.
or SQL Server 2008 R23
{c xp_eventlog
{c xp_GetAdminGroupName
{c xp_GetFileDetails
{c xp_GetLocalSystemAccountName
{c xp_IsNTAdmin
{c xp_MSLocalSystem
{c xp_MSnt2000
{c xp_SetSecurityc
The sysxlogins table is no longer supplied. Replace references to sysxlogins in SQL Server
2005 and SQL Server 2008 R2 with references
to the sys.server_principals catalog view or the
syslogins compatibility view.
Column-level permissions on system objects Remove statements from your application that
are not supported in SQL Server 2005 or SQL grant, deny, or revoke column-level
Server 2008 R2. permissions on system objects.
SQL Mail in SQL Server 2005 and SQL Server Use Database Mail for attachments.
2008 R2 no longer supports attachments.
Unconverted SQL Server 6.5 passwords are not SQL Server 6.5/7.0 logins that were upgraded
supported in SQL Server 2008 R2. but never activated on SQL Server 2000 or SQL
Server 2005 must have their passwords reset
to function on SQL Server 2008 R2.
Winsock Proxy configuration not supported. SQL Server 2005 and SQL Server 2008 R2
cannot configure Windows components.
sp_addalias SQL Server 2008 R2 replaces aliases with a
combination of database users and roles.
Remove aliases by using sp_dropalias.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 189

  ë  5   4'   


sp_addgroup Use roles instead of groups.
sp_changegroup
sp_dropgroup
sp_helpgroup
Surface Area Configuration tool Use SQL Server Configuration Manager and
Policy-Based Management features instead.
§  The SQL Server service will not start if it fails to listen on at least one network protocol or if
there are errors related to SSL communication. If such failures occur, SQL Server will log an error
message to the SQL Server error log indicating the problem.


c   î 
The SQL Server 2008 R2 Setup program can detect three security-related breaking changes that will
prevent an in-place upgrade from starting. In a side-by-side upgrade, these issues are still blockers, but
you can deal with them slightly differently. Table 5-5 lists these blocking security issues.

Ô - - MÔ 1d* $  


d* M   
User name of À À The database being upgraded cannot have a user with the name of
À À. The À À name is reserved in SQL Server 2008 R2, and any
database user with this name must be renamed before starting the
upgrade process.
Duplicate login SIDs SQL Server 2008 R2 does not allow duplicate SIDs. Database
administrators must remove one of the duplicate logins and its
associated users before starting the upgrade process.
Login name that is the same as Fixed server role names are reserved in SQL Server 2008 R2. You
a fixed server role must rename the login before starting the upgrade process.

In the case of a side-by-side upgrade, a user name of À À in a system database (master, model, or msdb)
will block the upgrade, and you must remove the user name before the upgrade process.

If you have a user named À À in a user database, the attach process will result in a suspect database. You
will have to bring the database online in single-user mode, transfer objects owned by that user name to
a new user name, and then drop the user name. For more details, see the "Rename user sys" topic in
the Upgrade Advisor Help file. You cannot create logins on a new SQL Server 2008 R2 instance that have
duplicate SIDs or that match fixed server role names.

You can find a full list of reserved keywords in Reserved Keywords (Transact-SQL) in SQL Server 2008 R2
Books Online. Although it is syntactically possible to use SQL Server reserved keywords as identifiers and
object names in T-SQL scripts, you can do this only by using delimited identifiers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 190


c   î 
After you address the new, deprecated, or discontinued security functionality and blocking issues in
your upgrade plan, you need to investigate the security-related features that might not cause an error
but that behave differently in SQL Server 2008 R2. You need to address these issues as well because the
behavior change might lead to application problems and user complaints. Table 5-6 lists these security-
related behavior changes.

Ô - 0 ' d 


  &"(()'"
d 
  5   
By default, system metadata is no By default, access to virtual tables and system metadata is
longer viewable by PUBLIC. no longer available to guest users or members of the
PUBLIC role. Scripts and processes that view system
metadata in virtual tables or system objects should be
modified accordingly or sufficient permissions granted to
the person or process running the scripts.
The ALL permission is deprecated. This option is deprecated and maintained only for
backward compatibility. It does not grant all possible
permissions. For a list of granted permissions, see GRANT
(Transact-SQL) in SQL Server 2008 R2 Books Online.
Case-sensitive passwords are required. Case-insensitive password comparisons are no longer
supported. You must modify users and applications that
use SQL Server authentication to use case-sensitive
password submissions.
Metadata visibility permission is SQL Server 2008 R2 requires users to have the VIEW
strengthened. SERVER STATE or VIEW DATABASE STATE permission to
access DMVs and the VIEW (ANY) DEFINITION permission
for system catalog metadata.
Application roles are constrained to a Application roles cannot read data from DMVs and cannot
given database. read server-level metadata in compatibility views.
Schema names are shown in SQL Server 2008 R2 schema names (not user names) are
INFORMATION_SCHEMA views. now returned in the schema column of
INFORMATION_SCHEMA views.
Additional permission is required for Users executing the sp_changeobjectowner system stored
sp_changeobjectowner. procedure must also have the CONTROL permission set for
target objects as well as membership in the db_ddladmin
and db_securityadmin fixed database roles.
Permission for running sp_addtype is Users must be a member of the db_ddladmin or the
strengthened. db_owner fixed database role to execute the sp_addtype
system stored procedure.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 191

d 
  5   
Permissions for BCP are strengthened. Users must have the ALTER permission in addition to the
INSERT and SELECT permissions to insert data into a table
if they disable CHECK constraints on the target table.
Disabling CHECK constraints is the default BCP behavior.
User ID range is expanded. SQL Server 2008 R2 allows higher user IDs than previous
versions of SQL Server. Modify any code that makes
assumptions about user ID numbers. Some compatibility
views might return error messages on databases with
more than 32767 users, groups, and roles. For more
information, see Compatibility Views (Transact-SQL) in SQL
Server 2008 R2 Books Online.

"   ac  
=
 

In addition, a number of behavior changes related to metadata visibility can affect your upgraded
applications and need to be addressed. Let's look at each in turn.

&        >3 % By default in SQL Server 2005 and SQL
Server 2008 R2, users do not have visibility to metadata about each other's objects. A given user cannot
see catalog view metadata about objects belonging to other users unless the user is privileged or has
explicit permissions granted, such as CONTROL, IMPERSONATE, ALTER, or VIEW DEFINITION. You can
write a data definition language (DDL) trigger to automatically grant those permissions to users when
they are newly created.

$    >  % A given least-privileged user cannot see the metadata of other
least-privileged users. For example, least-privileged user User1 cannot grant permissions to least-
privileged user User2 because the second user is not visible to User1 in the sys.database_principals
view. If you want to override this behavior, you can write a DDL trigger to automatically grant VIEW
DEFINITION permission on newly created users.

6            % Even if a user has permissions to execute a
stored procedure that inserts into another user's table, that user cannot view metadata about that table
from sys.sysobjects where xtype = 'U' or the sys.tables catalog view because ownership chaining does
not apply to metadata views.

For example, suppose you have a stored procedure that inserts data into a table and calls a metadata
view, as the following code shows3



c 

c c
c
cc
ccc
c#$ %c
cc&&c  c c
cc

c'c c c

c (
)cc (
)#** %c

 %c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 192

c
User1 owns schema S1 and creates table T in schema S1. User1 grants EXECUTE permission on the
procedure S1.P to User2. When User2 executes P, the INSERT will succeed, but the SELECT statement
will not return any rows because User2 by default does not have visibility to User1's metadata.
Ownership chaining does not apply to metadata views.

To work around this restriction, you can grant callers of the stored procedure VIEW DEFINITION
permission to the table or use a certificate-signed procedure and grant VIEW DEFINITION permission to
the certificate user. For example, suppose that User1 next executes the following code3

c
c
cc (
 cc 
%c
c
Now when User2 executes S1.P, the SELECT operation from sys.tables will return the expected row
because User2 has been granted visibility to the metadata for table S1.T.

d    2M1§7Ôd     $d&M


% Therefore, any user can
see a list of all databases from the sys.sysdatabases compatibility view or the sys.databases catalog
view. To make even the existence of a database invisible to users, revoke the VIEW ANY DATABASE
permission from PUBLIC and selectively grant it to users requiring it. A user can always see in
sys.databases the databases owned by that user, and members of the sysadmin server role can always
see all databases. In addition, the master and tempdb databases are always visible in sys.databases to all
users.

$                 
 % After you upgrade to SQL Server 2008 R2, users and schemas are no longer implicitly connected.
This can cause differences in metadata results if you start using the new user-schema features such as
the CREATE USER and CREATE SCHEMA DDL statements. Your upgraded applications will continue to
function correctly only as long as you continue using the old SQL Server 2000 APIs such as sp_adduser.
In SQL Server 2005 and SQL Server 2008 R2, a given user can own two tables with the same name that
exist in separate schemas belonging to that same userͶsomething not possible in SQL Server 2000 and
earlier. The catalog view sys.sysobjects will reflect that there are two tables for that user, whereas in
earlier versions of SQL Server, only one row would be returned. For example, suppose user Test owns
two schemas3 S1 and S2. User Test can create a table in each schema called T. User Test inspects
sysobjects for that table, using the following query3



c'c c©c

c cc**c  c cc 
)#** %c
c
In SQL Server 2000, this query could return only one row. Because user and schema were implicitly
connected, a user could own only one table named T. However, in SQL Server 2005 and SQL Server 2008
R2, the query returns two rows3 one for each schema (S1 and S2).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 193

"   c # ' 


 
=
)

If your application requires it, you can reverse the limitations on metadata visibility and restore behavior
similar to that of SQL Server 2000. You can increase the permissions for the PUBLIC role by executing the
following statements3

c
c!c
cc %c
c
c

c
cc %c
c
These statements will let any user see the compatibility views as well as all the new metadata available
through DMVs and dynamic management functions (DMFs).

"   c # ' 



#
# 

You can also expand the permissions available for an application role, if required, by using the trace flag
4616 or certificates and signed modules. For information about reversing application role restrictions,
see Troubleshooting Metadata Visibility in SQL Server 2008 R2 Books Online.



c     
 Ô 
The following is a suggested list of security-related tasks you should accomplish before upgrading the
relational engine to SQL Server 2008 R2. Make sure these tasks are incorporated into your upgrade plan.

!%c      % Start by assessing the security level of your current
system. Make an inventory of the security features for each legacy server, including3

{c Type of authentication (Windows only or Windows and SQL Server)


{c Vulnerability of passwords (for SQL Server Authentication)
{c Results of Microsoft Baseline Security Analyzer (MBSA) or equivalent privileges of service
accounts
{c Use of xp_cmdshell
{c Required auditing

SQL Server 2008 R2 has enhanced SQL Server login passwords. DBAs creating and maintaining
SQL Server logins now have the ability to apply the local Windows password policy to their SQL
Server logins. If possible, you should plan to incorporate stronger passwords and Windows-level
password policies in your SQL Server logins.
In addition, you should review applications and scripts that create new SQL Server logins to
determine whether the logic of those applications and scripts needs to be modified to account
for the new password security enhancements.
"%c d *   % No matter what upgrade method you use, you must make an initial backup
of your databases from the server you plan to upgrade. You should also verify the backup file or
tape. Apply the same security considerations to the backup you take before upgrading as you do
for any backup3 Apply a password to the backup, and store the backup media securely. If you
need to transport the media to a secure location, ensure that your method of transfer is also
secure and trusted.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 194

#%c '   &"(()'"$  % Be sure to run


Upgrade Advisor, address all blocking issues, and find solutions for all other issues. Many of the
issues might be security-related. You can find some of these security-related issues listed in
"Other Database Engine Upgrade Issues" in the Upgrade Advisor Help topic. Chapter 1,
"Upgrade Planning and Deployment," covers using Upgrade Advisor as well as the Best Practices
Analyzer for SQL Server.
+%c
      % Whenever possible, use Windows Authentication for user and
application connections to SQL Server. This might not be possible for third-party applications,
but for users and middle-tier servers, it just makes sense3 Why not let Windows manage the
passwords and password aging rather than SQL Server?

-%c      % As mentioned earlier in "Service Account Security," you do
not need to grant local administrator rights to SQL Server 2008 R2 service accounts. Before you
upgrade, you need to determine the rights those accounts will have or let SQL Server Setup do
that automatically for you. In either case, you must have the accounts already created.
0%c
    % Make sure that the upgrade method you choose will not
compromise your security. For example, you might determine that some data is so sensitive that
you do not want it to leave the server, but you also do not want to perform an in-place upgrade.
If you have enough resources on the server, you could perform a side-by-side upgrade on the
same server. For other security considerations for an in-place or side-by-side upgrade, see "In-
Place Upgrade" and "Side-by-Side Upgrade" below.
<%c
          % Good planning is the best method for preventing
errors. Not only should you document your upgrade plan, you should test the upgrade steps in a
test environment. If you must use production data, ensure that the test environment is at least
as secure as the production environment. For details about planning for an upgrade, see
Chapter 1, "Upgrade Planning and Deployment."


c  
    
Here are the key security considerations for an in-place or side-by-side upgrade.


ac     
In SQL Server 2008 R2, services and configuration settings are off by default unless required. During an
in-place upgrade, the SQL Server 2008 R2 Setup program will maintain the SQL Server 2008 R2 services
on until the upgrade is finished. Therefore, you are assured that the upgrade process will not fail for
those reasons.

Because an in-place upgrade occurs on the same database server, replacing the legacy SQL Server
instances with the new ones, your data remains as secure as the server. There might be a brief time
when the legacy SQL Server service has stopped before the SQL Server 2008 R2 Setup program can start
the new SQL Server 2008 R2 instance, and for that duration, your data files are not being exclusively
used by a SQL Server service. Ensure that your database server's files are secured from outside users
attempting to access those files during the upgrade process.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 195


c     
During a side-by-side upgrade, you install a new instance of SQL Server 2008 R2 on a new server or
alongside the legacy instance on your current server. In this case, you should ensure that services and
configuration options are set in such a way as to guarantee your successful upgrade. For example, the
following features are off by default in a new SQL Server 2008 R2 installation to help reduce the attack
surface of your new installation3 ad hoc distributed queries, OLE automation, SQL Mail, Web Assistant
stored procedures, named pipes, and xp_cmdshell.

If your new installation requires any of these, you need to enable them by using Policy-Based
Management features or sp_configure.

When you move your data from the old instance to the new, you must choose a transfer method such as
backup and restore, detach and attach, BCP, DTS, or the Copy Database Wizard. In the case of the first
two methods, you will be copying files over some distance, and you must ensure the security of the copy
process and the media used in the copy.

If you use the Copy Database Wizard, be aware that your SQL Server logins must be a member of the
sysadmin fixed server role on both the source legacy SQL Server instance and on the SQL Server 2008 R2
destination instance. For more information about using the Copy Database Wizard, see Using the Copy
Database Wizard in SQL Server 2008 R2 Books Online.

§ 3 If you are using a side-by-side upgrade method, you need to configure the SQL Server 2008 R2
services to match the settings of your source SQL Server instance. In an in-place upgrade, SQL Server
2008 R2 Setup will preserve the services settings of the SQL Server instance you are upgrading,
except for the new service for SQL Server 2008 R2 full-text search. Even for an in-place upgrade,
service setting for SQL Server 2005 full-text will not be preserved. In an upgrade from SQL Server
2000, you also need to configure the new SQL Server Browser service. For more information, see
"Configuring Services and Connections" earlier in this chapter.



c 
   
 Ô 
You will need to perform a number of security-related tasks after the upgrade. The following steps can
help ensure that your resulting upgraded instance is as secure as possible3

1.c '    % Ensure that you have enabled only the services that you need
on your upgraded SQL Server 2008 R2 instance. Use the SQL Server Configuration Manager tool
to verify the services and settings.
2.c '     % Verify that you have the correct configuration settings, including
those that are off by default. Enable only those that are necessary. Use the Policy-Based
Management features or sp_configure to set the correct configuration.
3.c 2    % Review the Windows privileges given to the service accounts on
your new SQL Server 2008 R2 instance, and ensure that they are the minimum required.
4.c '      % If possible, require Windows Authentication for all
connections to SQL Server.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 196

5.c $   % For SQL Server Authentication, require strong passwords for all logins.
Also require a strong password for the sa account, even if you are using Windows
Authentication. Finally, enable password policy checking.



ac 
   
 Ô

Your upgrade plan should include a post-upgrade test of your security settings for all databases where
data must be secure. There are primarily two ways you can test the security of your upgraded instance
of SQL Server3 manually or with automated tools.

{c      % A manual test is an inspection of all the various configuration settings while


logged into the server. You can use a checklist of hardening strategies and simply check off the
options as you verify them. Settings to look for in such a test would include all the options
mentioned in this chapter that affect services and configurations.
{c      % Another option is to run an automated tool or set of tools to help you probe
for vulnerabilities and determine fixes. For example, you can run your standard utilities for
assessing SQL Server security, such as the Microsoft Baseline Security Analyzer and the SQL
Server 2008 R2 Best Practices Analyzer.

You might find that a combination of manual and automated testing will give you the most confidence in
the security level of your upgraded SQL Server 2008 R2 system.


 c î  
SQL Server 2008 R2 delivers stronger security and new tools for easier security management. With
attention to the new, changed, and discontinued security features we looked at in this chapter, you will
be on your way to a smooth transition from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2.
Just be sure to plan well for the upgrade, make sure you have a secure backup strategy, and test
extensively before and after the upgrade to make sure your system is protected and able to take full
advantage of the new security capabilities.


 c x
   
For an up-to-date collection of additional references for upgrading database security, see the following
links3

{c SQL Server 2008 R2 Security


{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 197

c   Ô"
  

ac 


SQL Server 2008 R2 provides a new full-text architecture, fully integrated into the Database Engine so
that the full-text engine is located in the SQL Server process instead of in a different service as in earlier
versions. Integrating the full-text engine into the Database Engine component improves full-text
manageability, optimization of mixed queries, and overall performance. This architecture also provides
the flexibility to manage all full-text components, including other database objects; to work with the DLL
syntax; and to avoid modifications in external components.

Despite this change in architecture, the development team tried to maintain as much compatibility with
earlier versions as possible. In fact, although the full-text search engine was completely rewritten, there
are few changes in the query syntax model.

This chapter covers the different aspects that you should consider before, during, and after the upgrade
process from previous SQL Server versions to SQL Server 2008 R2.

For more information about the new full-text architecture, see Full-Text Search Overview in SQL Server
2008 R2 Books Online.

c  


  
You can upgrade a relational database that is enabled for full-text search by performing either an in-
place upgrade of the Database Engine and all its databases or by performing a side-by-side database
upgrade. With a side-by-side upgrade, you use either the backup/restore method or the detach/attach
method, which we cover later in this chapter. For information about choosing between an in-place
relational database upgrade and one of the side-by-side relational database upgrade methods, see
Chapter 1, "Upgrade Planning and Deployment."

Regardless of whether you choose an in-place upgrade or a side-by-side upgrade of a full-text-enabled


relational database, there are a range of potential issues that you might face. Here are the most
important full-text search upgrade issues as you move from SQL Server 2000 or SQL Server 2005 to SQL
Server 2008 R2. In addition, this chapter covers special steps that you have to take if you are upgrading
from SQL Server 2000.

For a complete list of deprecated features, discontinued functionality, breaking changes, and behavior
changes to full-text search in SQL Server 2008 R2, see Full-Text Search Backward Compatibility in SQL
Server 2008 R2 Books Online.

ac 
 

Although there are no full-text search features that will be discontinued in the next release of SQL
Server, there are some features that will be removed in a later version. Remember that you can use
traces or the new System Monitor object SQLServer3Deprecated Features to check which deprecated
features you are using in your applications. For more information, see SQL Server, Deprecated Features
Object in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 198

The most relevant deprecated features are as follows3

{c Replacement of the sp_fulltext_catalog procedure. Instead, you should use the new DDL
statements CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG, and DROP FULLTEXT
CATALOG.
{c Replacement of the sp_fulltext_column, sp_fulltext_database, and sp_fulltext_table procedures.
The new DDL statements to replace these deprecated stored procedures are CREATE FULLLTEXT
INDEX, ALTER FULLTEXT INDEX, and DROP FULLTEXT INDEX.

For a completed list of deprecated full-text search features, see Deprecated Full-Text Search Features in
SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

c  
   
 

Table 6-1 describes the most important functionality changes in SQL Server 2008 R2 full-text search that
might break custom applications, scripts, or reports. It also describes the replacement features or
corrective action that you need to take.

Ô 0 !  ë Ô5  ë    


  ë 4ë     '   ë 4
   
§ ʹ Since SQL Server 2008, full-text If you customized the noise word files in the earlier
search uses stopwords and stoplists instead of version of SQL Server and you want full-text search to
noise files as in earlier versions. continue using the customized files after upgrade, you
must create stoplists and add the stopwords manually.
 9 5 9   Use the following commands instead3
 9 5 9   ͶThese CREATE/ALTER/DROP FULLTEXT CATALOG
stored procedures were replaced. CREATE/ALTER/DROP FULLTEXT INDEX
ë 5  5     No corrective action is available.
   ͶFull-text indexes on
these system databases are not permitted in
SQL Server 2005 and SQL Server 2008 and are
deleted during an upgrade.
$        ͶThe To enable an instance to load a third-party filter after
Microsoft Full-Text Engine for SQL Server will upgrade, use the sp_fulltext_service stored procedure
not load components that are not signed by to set the service property 

À À
 À to 1 and
Microsoft. to set  2 À2    to 0 on that instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 199

  ë 4ë     '   ë 4


   
  4   5     In SQL Server 2000 and SQL Server 2005, running
    9 5 9  ͶIn SQL sp_fulltext_database 'enable' on a database that was
Server 2000, you can enable and disable full- already full-text enabled caused SQL Server to drop and
text functionality by using the re-create all the full-text catalogs in the database. By
sp_fulltext_database stored procedure. default, since SQL Server 2008 all databases have full-
text functionality enabled. Using the
sp_fulltext_database stored procedure with enable or
disable parameters will do nothing.
   5     ͶThe You should remove all references to these properties in
following properties were removed from SQL your stored procedures and scripts.
Server 20083
{c DataTimeout
{c ConnectTimeout
{c Clean_up
{c LogSize

c   î 


In SQL Server 2000, the MSSearch service was required to run as local system, whereas in SQL Server
2005 the service (known as MSFTSQL) can run under the account of the MSSQLSERVER service or you
can specify a different account. When you upgrade to SQL Server 2008 R2, the Microsoft Full-Text
Engine now runs under a new low-privilege account that you associate with a new specific security
group named SQLServerFDHostUser$<ServerName>$<InstanceName>. You must provide a name and
password for this new account at upgrade time.

For more information about breaking changes, see Breaking Changes to Full-Text Search in SQL Server
2008 R2 in SQL Server 2008 R2 Books Online.

c   î 


There are several behavior changes that might require corrective action after the upgrade is completed.
Table 6-2 lists the most important of these changes.

Ô 0 "d 


 Ô  ',
   
d 
    

1 *  ͶSQL Server 2008 and SQL Changes might require application
Server 2008 R2 have significantly modified word modification or instance-level word breakers
breakers and filters used by full-text search to achieve and filters. Semantic inconsistency could
improvements in functionality and reliability. In certain arise if full-text indexes are not repopulated,
cases, changes to the word breakers can affect how depending on the word breaker used.
some data is tokenized. Tokens created in SQL Server
2008 R2might differ from tokens created in SQL Server
2000 or SQL Server 2005.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 200

d 
    

ë 5    ͶThe path in the In SQL Server 2000, a full-text catalog͛s path
sysfulltextcatalogs view and the path returned by the points to its root directory, whereas in SQL
sp_help_fulltext_catalogs and the Server 2005 its path points to the catalog
sp_help_fulltext_catalogs_cursor system stored directory. In SQL Server 2008 R2, because
procedures have changed. the full-text catalogs are logical objects,
there is no file path associated with the full-
text search catalog.
§      ͶIn SQL Server Modify your application to correctly handle
2000, a query that uses a full-text search predicate or such a warning.
function containing a noise word returns an error. In SQL
Server 2005, SQL Server 2008, and SQL Server 2008 R2, a
similar query returns no rows and a warning is issued.
'   *(ͶIn SQL Server 2000, rows with a You might have to modify your applications
rank of 0 are not returned by full-text queries. In SQL to filter out rows with a rank of 0.
Server 2005, SQL Server 2008, and SQL Server 2008 R2,
rows with a rank of 0 are returned. This change can
affect the results of stored procedures and other
queries.
ë$&&Ô?Ô
Ô&68'6'Ô7M 
    Modify stored procedures and scripts to
 ͶIn SQL Server 2000, ItemCount returns the update checks based on the ItemCount
aggregate of the number of indexed rows in each full- property.
text indexed table in the full-text catalog, plus one for
every table in the catalog. In SQL Server 2005, this was
changed to accurately reflect the total number of
indexed rows in each full-text indexed table in the full-
text catalog.

In SQL Server 2008 R2, the ItemCount property was


further updated so that it no longer counts NULL rows or
BLOB rows with NULL extensions. With this
improvement, the final count of items in the full-text
catalog includes only the number of rows being
successfully aggregated.

For more information about behavior changes to full-text search, see Behavior Changes to Full-Text
Search in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.


c     x 
To obtain a report that identifies many of these potential issues before you start an upgrade, you should
run the SQL Server 2008 R2 Upgrade Advisor to analyze the relational database that you want to

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 201

upgrade. Figure 6-1 shows a sample Upgrade Advisor report. For information about how to install and
run this tool, see Chapter 1, "Upgrade Planning and Deployment."

ë0 ! Sample SQL Server 2008 R2 Upgrade Advisor report

Be aware that there is also a category of issues that either cannot be detected by Upgrade Advisor or
whose detection would result in too many false-positive results. For a complete list of full-text search
upgrade issues that Upgrade Advisor detects, review the "Full-Text Search Upgrade Issues" topic in the
Upgrade Advisor Help file.

Chapter 1 also covers running the SQL Server 2000, SQL Server 2005, and SQL Server 2008 versions of
Best Practices Analyzer to prepare for an upgrade.

 c       


Before you start an upgrade of a database that has full-text search enabled, take steps to make sure that
you can roll back a failed upgrade if it is necessary and that sufficient space exists in the database for the
upgrade to complete successfully. Although the in-place upgrade process was designed and tested to
handle most situations, unforeseen problems might occur and result in a failed upgrade. In extreme
cases, a failed upgrade can even result in an unusable SQL Server 2000, SQL Server 2005, or SQL Server
2008 installation. Therefore, planning for a failed upgrade process is important.

A side-by-side upgrade of an existing full-text enabled database to SQL Server 2008 R2 should not
encounter the same kinds of problems that can affect an in-place upgrade. However, you should follow
similar steps to ensure the ability to roll back if it is necessary.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 202

If a failed in-place upgrade occurs, frequently the easiest resolution is to reinstall SQL Server 2000 or SQL
Server 2005 and restore the installation to its state before the upgrade process began. To make sure
that all the data and configuration files that are needed to restore the existing installation are available,
complete the steps outlined in Chapter 3, "Relational Databases," in addition to the following steps
before the upgrade process starts3

1.c Review requirements to determine whether your hardware and software can support SQL
Server 2008 R2. For more information, see Hardware and Software Requirements for Installing
SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.
2.c Use System Configuration Checker (SCC) to scan the server for any conditions that might prevent
a successful installation of SQL Server 2008 R2. For more information, see Check Parameters for
the System Configuration Checkerin SQL Server 2008 R2 Books Online.
3.c Review security best practices and guidance for SQL Server. For more information, see Security
Considerations for a SQL Server Installation in SQL Server 2008 R2 Books Online.
4.c Run Upgrade Advisor on the server to determine any issues that might prevent you from
successfully upgrading. For more information, see Using Upgrade Advisor to Prepare for
Upgrades in SQL Server 2008 R2 Books Online.
5.c Make sure that the filegroup associated with the base table of a full-text index has sufficient
space to accommodate the additional space that is required by SQL Server 2008 R2 full-text
indexes.

 c x
   
 
       
If you plan to upgrade a SQL Server 2000 full-text-enabled database, you also have to perform the
following preparation tasks in addition to those we covered earlier3

1.c On a standalone computer, stop the Microsoft Search service (but leave it running on a
clustered SQL Server configuration).
2.c Back up the full-text catalogs, folders, and files in the Windows file system by using any
supported method for backing up file system files.
3.c Back up the full-text search registry entries. For more information, see How to Move, Copy, and
Back Up Full-Text Catalog Folders and Filesin the Microsoft Knowledge Base.

c     Ô"


  
 
You can choose between two options when you upgrade a full-text enabled database to SQL Server
2008 R23 in-place or side-by-side upgrade.

ac     
For an in-place upgrade, an instance of SQL Server 2008 R2 is set up side-by-side with the old version of
SQL Server 2000, SQL Server 2005, or SQL Server 2008, and data is moved to the new version. If the old
version of SQL Server had full-text search installed, a new version of full-text search is automatically
installed.

Side-by-side install means that the following components exist at the instance-level of SQL Server3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 203

{c 1 *   . Each instance now uses its own set of word breakers,
stemmers, and filters, instead of relying on the operating system version of these components.
These components are also easier to register and configure at a per-instance level. For more
information, see Word Breakers and Stemmers and Full-Text Search Filters in SQL Server 2008
R2 Books Online.
{c ë    . The full-text filter daemon hosts are processes that safely load and drive
third-party extensible components used for indexing and queryingͶsuch as word breakers,
stemmers, and filtersͶwithout compromising the integrity of the Full-Text Engine. A server
instance uses a multithreaded process for all multithreaded filters and a single-threaded process
for all single-threaded filters.

§ 3 SQL Server 2008 introduced a service account for the FDHOST Launcher service
(MSSQLFDLauncher). This service propagates the service account information to the filter daemon
host processes of a specific instance of SQL Server. For information about how to set the service
account, see How to3 Set the FDHOST Launcher (MSSQLFDLauncher) Service Account for Full-Text
Search (SQL Server Configuration Manager) in SQL Server 2008 R2 Books Online.

In SQL Server 2005 and earlier versions, each full-text index is located in a full-text catalog that belongs
to a filegroup, has a physical path, and is treated as a database file. In SQL Server 2008 R2, a full-text
catalog is a logical conceptͶa virtual objectͶthat refers to a group of full-text indexes. Therefore, a
new full-text catalog is not treated as a database file that has a physical path. However, during an
upgrade of any full-text catalog that contains data files, a new filegroup is created on the same disk. This
maintains the old disk I/O behavior after upgrade. Any full-text index from that catalog is put in the new
filegroup if the root path exists. If the old full-text catalog path is invalid, the upgrade keeps the full-text
index in the same filegroup as the base table or, for a partitioned table, in the primary filegroup.

&  a ac 


3 ;
 
! 
6
3
 c
By default, the full-text engine will not load components that are not signed by Microsoft. To perform an
in-place upgrade of full-text search databases with third-party filters, follow these steps3

1.c Use the sp_fulltext_service stored procedure to set the service property, 

À À
 À, for
the third-party filter.
2.c Turn off the Verify_signature option.
3.c Restart full-text population.

§ 3 For more information about this topic, see the "Discontinued Functionality" section earlier.

c     


For a side-by-side upgrade, an instance of SQL Server 2008 R2 is set up side-by-side with the old version
of SQL Server on the same or another server, and you move data to the new version.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 204

&   ac 3 ;

/ c
SQL Server 2008 R2 provides a new instance option, Full-Text Upgrade, which lets you control how SQL
Server manages full-text indexes in side-by-side upgrade scenarios. This full-text upgrade option has
three possible values3

{c M  % This is the default option after the setup of a SQL Server 2008 R2 instance and works
only for SQL Server 2005 databases. If this option is enabled, SQL Server 2008 R2 tries to import
the data in the full-text indexes without resetting or rebuilding them and only copies the data
from the old index structures to the new one. Import is the fastest option for an upgrade. But
for a set of specific new word breakers, Microsoft cannot guarantee that your queries will return
the same results as the SQL Server 2005 version (see the "Semantic Consistency" section later in
this topic). At import time, this option does not use SQL Server 2008 R2 new and improved word
breakers and stemmers. If you try to upgrade a SQL Server 2000 database that has the Import
upgrade option selected, SQL Server 2008 R2 will rebuild all full-text indexes.
{c '% With this option, SQL Server 2008 R2 will rebuild all full-text indexes, triggering a full
population and using the new and improved word breakers. This option can take significant time
and could be very CPU- and memory-intensive, depending on the number and size of your full-
text indexes. This option guarantees semantic consistency and, in some cases, specific internal
optimizations that can improve overall performance later.
{c ' % The Reset option gives you more control over the overall total upgrade time because no
full-text population or rebuilding will occur. When this option is enabled, SQL Server 2008 R2
deletes the existing full-text catalogs, full-text indexes are disabled for change tracking, and
crawls are not started automatically. You can change this option by using the sp_fulltext_service
stored procedure, as follows3

 
   $""7%%   % 7"8c

You can also change this option graphically from SQL Server Management Studio (SSMS)
through the instance properties on the Advanced tab.

&   c  
 c
When you import your existing full-text indexes into SQL Server 2008 R2, the data in these indexes is
obtained by using the old word breakers and stemmers. But when you query the new SQL Server 2008
R2 full-text index, the full-text engine will use new word breakers so that results of the queries could
change. This behavior is known as semantic consistency. But SQL Server 2008 R2 does not improve all
word breakers. Table 6-3 shows the word breakers that have not changed from the earlier version so
that semantic inconsistency does not apply to them.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 205

Ô 0 #1d *Ô   ; 


 
Chinese (Hong Kong SAR, PRC)
Chinese (Macau SAR)
Chinese (Singapore)
Danish
English
English (United Kingdom)
Korean
Polish
Simplified Chinese
Thai
Traditional Chinese
Turkish

For more information about semantic consistency, review the "Upgrade Option3 Semantic Consistency"
section of the SQL Server 2008 Full-Text Search3 Internals and Enhancements white paper, which is also
applicable to SQL Server 2008 R2.

&   c  





3 ;

/ c
When choosing the appropriate strategy for an upgrade of full-text search, consider the following
questions3

{c   *@ The SQL Server 2008 R2 full-text search service includes new
word breakers and stemmers. These might change the results of full-text queries from previous
releases for a specific text pattern or scenario. Therefore, how you use word breakers is
important when you choose a suitable upgrade option3
©c If the word breakers of the full-text language that you use did not change in SQL Server
2008 R2, or if recall accuracy is not important to you, using the Import option is suitable.
Later, if you experience any recall issues, you can upgrade to the new word breakers by
rebuilding your full-text catalogs.
©c If you care about recall accuracy and you use one of the word breakers that were
improved in SQL Server 2008, the Rebuild option is suitable.
{c 1  5  5    5 *  @ Rebuilding performs internal
optimizations that improve the query performance of the upgraded full-text index in some
cases. Specifically, if you have full-text catalogs that contain full-text indexes for which the full-
text key column of the base table is an integer data type, rebuilding achieves ideal performance
of full-text queries after upgrade. In this case, we highly recommend that you use the Rebuild
option.
{c 1           @ Importing or rebuilding during
upgrade takes a lot of CPU resources, which delays getting the rest of the server instance
upgraded and online. If bringing the server instance online as soon as possible is important and
if you are willing to run a manual population after the upgrade, the Reset option is suitable.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 206

&   c $%

# 
 c
The first option for doing a side-by-side upgrade is to perform a restore of a SQL Server 2000 or SQL
Server 2005 full-text-enabled database in a SQL Server 2008 instance. The main difference between SQL
Server 2000 and SQL Server 2005 backups is the content of the backups. A SQL Server 2000 database
backup does not contain the full-text index data, but this is not an issue for a restore in SQL Server 2008
R2. Remember that the Import upgrade option is not supported in SQL Server 2000 so that you cannot
import or copy the contents of a SQL Server 2000 full-text index into a SQL Server 2008 R2 full-text
index.

When you restore the database on SQL Server 2008 R2, a new database file will be created for the full-
text catalog. The default name of this file is ftrow_catalog-name.ndf. For example, if your catalog name
is cat1, the default name of the SQL Server 2008 R2 database file would be ftrow_cat1.ndf. If the default
name is already being used in the target directory, the new database file would be named
ftrow_catalog-name{GUID}.ndf, where GUID is the globally unique identifier of the new file.

After the catalogs are imported, sys.database_files and sys.master_files are updated to remove the
catalog entries, and the path column in sys.fulltext_catalogs is set to NULL.

&   "c ! 




 c
When you attach a full-text-enabled database to SQL Server 2008 R2, catalog files are attached from
their previous locations together with the other database files. If SQL Server 2008 R2 cannot find a full-
text catalog file or if the full-text file was moved during the attach operation without someone
specifying a new location, the behavior depends on the selected full-text upgrade option. If the full-text
upgrade option is Import or Rebuild, the attached full-text catalog is rebuilt. If the full-text upgrade
option is Reset, the attached full-text catalog is reset.

The state of each attached full-text catalog on SQL Server 2008 R2 is the same as when the database
was detached from SQL Server 2005. If any full-text index population was suspended by the detach
operation, the population is resumed on SQL Server 2008 R2 even if the full-text upgrade option is
configured as Import.

§  If you attach SQL Server 2000 database files to a SQL Server 2008 R2 instance, there is no full-
text catalog data in these files. As described in the "Backup and Restore Method" section earlier,
you must populate full-text indexes in SQL Server 2008 R2.

&   &c  



6
3
 c
By default, the full-text engine will not load components that are not signed by Microsoft. If you are
performing a side-by-side upgrade of a full-text enabled database that has third-party filters, perform
the following additional steps3

1.c Install the third-party filter in the SQL Server 2008 R2 server.
2.c Use the sp_fulltext_service stored procedure to set the service property, 

À À
 À, for
the third-party filter.
3.c Turn off the Verify_signature option.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 207

4.c Start the upgrade by using the selected side-by-side upgrade method.

c 
  Ô 
It is a good practice to check the crawl log right after you upgrade to make sure that the crawl is running
without a problem and that the full-text population is complete. Here are some post-upgrade tasks
related to custom noise words that you might have to perform.

ac  î
           
SQL Server noise words were replaced by SQL Server 2008 R2 stopwords. When you upgrade a database
from a previous release of SQL Server to SQL Server 2008 R2, the noise-word files are no longer used in
SQL Server 2008 R2. However, the old noise-word files are stored in the FTDATA FTNoiseThresaurusBak
folder, and you can use them later when you update or build corresponding SQL Server 2008 R2
stoplists.

After the upgrade3

{c If you never added, modified, or deleted any noise-word files in your installation of SQL Server
2000 or SQL Server 2005, the system stoplist should meet your needs.
{c If you modified your noise-word files in the previous SQL Server version, those modifications are
lost during upgrade. To re-create those updates, you must manually re-create those
modifications in the corresponding SQL Server 2008 R2 stoplist.
{c If you do not want to apply any stopwords to your full-text indexes (for example, if you deleted
or erased your noise-word files in the earlier version installation), you must turn off the stoplist
for each upgraded full-text index.

Be aware that SQL Server 2008 R2 does not create stoplists to implement noise-word files in any
upgrade scenario, so you have to create them manually. For more information, see Stopwords and
Stoplists in SQL Server 2008 R2 Books Online.


c î  
Full-text search is now fully integrated in the SQL Server 2008 R2 Database Engine, and you upgrade full-
text indexes by using the same process as for the base database. SQL Server 2008 R2 also provides a
new Full-Text Upgrade option that lets you control how the full-text engine should work with the
indexes. By using this option, you can choose the best approach for each scenario, maximizing the
performance of the upgrade process in addition to uptime.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 208

 c x
     
For an up-to-date collection of additional references for upgrading Service Broker to SQL Server 2008 R2,
see the following links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server Tech Center

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 209

c   

ac 


SQL Server 2005 introduced Service Broker, a technology that helps database developers build secure,
reliable, and scalable applications. Because Service Broker is part of the Database Engine, administration
of these applications is part of the routine administration of the database.

Service Broker provides queuing and reliable messaging for SQL Server by implementing a transaction-
oriented queue directly within the database. You can use Service Broker for applications that use a
single instance of SQL Server and for those that distribute work across multiple instances.Within a single
instance of SQL Server, Service Broker provides a robust, asynchronous programming model. Database
applications typically use asynchronous programming to shorten interactive response time and increase
overall application throughput. And for applications that work across multiple instances of SQL Server,
Service Broker provides reliable messaging between the instances and helps developers compose
applications from independent, self-contained components ("services"). Applications that require the
functionality that is available in these services use messages to interact with the services. Service Broker
uses TCP/IP to exchange messages between instances and includes features to help prevent
unauthorized access from the network and to encrypt messages sent across the network.

Service Broker in SQL Server 2008 R2 retains all the features and functionality from SQL Server 2005, and
there are no behavior changes that would affect an upgrade. However, SQL Server 2008 R2 adds some
new features that you should know about, and there are a few things to keep in mind for a smooth
upgrade. This chapter describes the key Service Broker considerations for upgrading from SQL Server
2005 to SQL Server 2008 R2.

c 
 î 
The major new features for Service Broker in SQL Server 2008 R2 (which were actually introduced in SQL
Server 2008) are as follows3

{c The introduction of conversation priority


{c A new diagnostic tool
{c More detailed support in SQL Server Management Studio (SSMS)
{c New Windows System Monitor objects and counters
{c New tutorials to help you get started with Service Broker
{c More flexible activation options

This guide is focused on upgrade. Therefore, exploring these new features is not discussed here. In the
"Post-Upgrade Tasks" section later in this chapter, we discuss some conversation priority changes you
might want to make after your upgrade.

For information about architecting effective SQL Server 2008 R2 Service Broker solutions, see Planning
and Architecture (Service Broker) in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 210

c  


  
Because Service Broker is part of the SQL Server Database Engine component, you have the same
upgrade options available3 in-place or side-by-side. For more information about these options, see
Chapter 1, "Upgrade Planning and Deployment," We look at each of these upgrade methods as they
relate to Service Broker later in this chapter, but if you decide to perform an in-place upgrade, consider
preparing for the move by processing all the data in existing queues before the upgrade. You do not
have to process the data in existing queues, but doing so might reduce the resource requirements
during the upgrade.

ac       



As part of the Service Broker conversation priority feature, when upgrading from SQL Server 2005, SQL
Server 2008 R2 Setup must upgrade the service queue to rebuild the clustered index on the queue
internal table. Rebuilding the index on each queue requires space that depends on the volume of data
(messages) in the queue. BecauseSetup upgrades all the queues in a single transaction, Setup needs as
much free disk space as the sum of the clustered index sizes on all the queues in the database. If the
transaction fails because of a lack of disk space, the database might become unusable.

Before you performan in-place upgrade,back up the database, and run the followingqueries to obtain
the required space to upgrade Service Broker3

c'c+
©c
)c&&c 
cc©+c
c
©,
cc
)  c" c+
©c ©c
 c

c   Ô


You can use several tools to help you prepare for a successful upgrade. SQL Server 2008 R2 Upgrade
Advisor helps you find and fix issues that could prevent an upgrade and identifies items to modify after
your move to SQL Server 2008 R2. And SQL Server Best Practices Analyzer (BPA) helps ensure that you
are using best practices on your current system so that you have fewer changes to make when you
upgrade to SQL Server 2008 R2.

2   ac #

'

SQL Server 2008 R2 Upgrade Advisor helps you prepare for upgrades to SQL Server 2008 R2. Upgrade
Advisor analyzes installed components from earlier versions of SQL Server, and then generates a report
that identifies issues to fix either before or after you upgrade. For more information, see Chapter 1,
"Upgrade Planning and Deployment."

From the Upgrade Advisor Home screen, you can run the following tools3

{c Upgrade Advisor Analysis Wizard


{c Upgrade Advisor Report Viewer
{c Upgrade Advisor Help

The first time you use Upgrade Advisor, run the Upgrade Advisor Analysis Wizard to analyze SQL Server
components. When the wizard finishes its analysis, view the resulting reports in the Upgrade Advisor

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 211

Report Viewer. Each report provides links to information in Upgrade Advisor Help that will help you fix
or reduce the effect of the known issues.

Upgrade Advisor analyzes the following SQL Server components3

{c Database Engine
{c Analysis Services
{c Reporting Services
{c Integration Services
{c Data Transformation Services

You can download Upgrade Advisor at Microsoft SQL Server 2008 R2 Feature Pack.

2   c #
$ 
 
, 

Before upgrading your system, we recommend that you use best practices for your existing system by
running SQL Server Best Practices Analyzer (BPA). BPA is available for SQL Server 2000 and for SQL
Server 2005. SQL Server 2005 BPA gathers data from Windows and SQL Server configuration settings,
using a predefined list of SQL Server 2005 recommendations and best practices to determine if there are
potential issues in the database environment. Running BPA before upgrading gives you the opportunity
to fix any problems and helps ensure that you are using best practices before you go to the new system.
You can download the SQL Server 2005 BPA at the Microsoft Download Center.

Once you have upgraded to SQL Server 2008 R2, you can use the SQL Server 2008 R2 Best Practices
Analyzer to further refine your systems. You can download the SQL Server 2008 R2 BPA at the Microsoft
Download Center.

c  
î 

Table 7-1 shows the supported architectures for SQL Server 2008 R2 Service Broker.

Ô < !     &"(()'"d*


  c   
X86 (32 bit) Yes
X64 Yes
IA64 Yes

c      



There are a few Service Broker-related items to keep in mind during your upgrade from SQL Server 2005
to SQL Server 2008 R2.

ac     
Service Broker operations do not change when a database or an instance of the Database Engine is
upgraded from SQL Server 2005 to SQL Server 2008 R2. The Service Broker features available in SQL
Server 2005 have the same behavior in SQL Server 2008 R2.

SQL Server 2005 databases are upgraded to SQL Server 2008 R2 when the following are true3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 212

{c They are attached to an instance of the SQL Server 2008 R2 Database Engine after they are
detached from an instance of the SQL Server 2005 Database Engine.
{c The instance of the Database Engine they are in is upgraded from SQL Server 2005 to SQL Server
2008 R2.

You do not have to process existing data/messages in the queues before upgrade. However, doing so
might reduce the disk space required for the upgrade, as noted in the earlier "Preparing to Upgrade"
section. You can upgrade servers in any order.

c     

2   ac #

Although there are typically no special requirements related to Service Broker in addition to those
required for SQL Server itself, if you are performing a side-by-side upgrade and have server instance
name changes or service name changes, you must plan to resolve any service routing issues as part of
the upgrade. If name changes will relate to messages or conversations already in progress, you must
consider how and when those messages will be processed. For more information, see Service Broker
Routing and Networking in SQL Server 2008 R2 Books Online.

2   c /0 
§ 



Service Broker is designed to let services and applications in instances with different collation
configurations communicate easily and efficiently. The database that hosts a service sending a message
might not use the same collation as the database that hosts the service receiving the message.
Therefore, Service Broker uses a consistent collation for names, regardless of the collation of the
database that hosts the service. To remove collation information from the communication process,
Service Broker uses a byte-by-byte comparison to match service names, contract names, and message
type names. By matching names as sequences of bytes, Service Broker makes it simple for services to
exchange messages correctly without the extra overhead of exchanging collation information.

Therefore, it is important that when you perform an upgrade of Service Broker that requires objects to
be recreated via scripts, you should maintain the exact same object names in a byte-by-byte
comparison. For more information, see Understanding Collation and Service Broker in SQL Server 2008
R2 Books Online.

2   c   '
  

In a side-by-side upgrade, you detach databases from SQL Server 2005 and attach them to SQL Server
2008 R2. The result is that Service Broker is disabled, meaning that the following bits are set to 0 and
you must note which ones are 1 before detaching3
{c is_broker_enabled
{c is_honor_broker_priority_on
{c is_trustworthy_on

You can see these setting for all databases by running the following query3



c'c c   c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 213


c 
  Ô 
After the upgrade to SQL Server 2008 R2, consider performing the following Service Broker-related
tasks.


ac 
 


You will have to restore the following settings after the upgrade3

{c is_broker_enabled
{c is_honor_broker_priority_on
{c is_trustworthy_on

You can restore the settings by using the ALTER DATABASE command.


c 
 î 
If name changes are part of the upgrade process, you will probably have to change Service Broker
routing configurations after the upgrade.


c   
 î
 

SQL Server 2008 introduced conversation priorities, a set of user-defined rules that specifies priority
levels and the criteria for determining which Service Broker conversations to assign to each priority
level. Typically, messages from conversations that have high priority levels are sent or received before
messages from conversations with low priority levels.

When a SQL Server 2005 database is upgraded to SQL Server 2008 R2, conversations continue to
operate as they did in SQL Server 2005, but the system objects are built to support conversation
priorities, as follows3

{c The upgrade process builds the new system objects that are required to support conversation
priorities. It adds conversation priority columns to existing system tables, views, trace events,
and performance counters.
{c By default, the HONOR_BROKER_PRIORITY database option is OFF.
{c All existing messages in service queues have their priority level set to 10. This means they will be
the first messages retrieved by RECEIVE statements.
{c By default, all conversation endpoints in the upgraded database are assigned the conversation
priority of 5.

You can start to use conversation priorities in an upgraded database by doing the following3

1.c Use the ALTER DATABASE statement to set the HONOR_BROKER_PRIORITY database option to
ON.
2.c Use the CREATE BROKER PRIORITY statement to define a set of conversation priorities in the
database.

For more information, see Conversation Priorities in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 214

 c î  
Upgrading SQL Server 2005 Service Broker to SQL Server 2008 R2 Service Broker can be a
straightforward process. But first, you must ensure that sufficient disk space is available and consider
the routing of existing messages or conversations. You can implement conversation priorities after the
upgrade is complete.

 c x
   
For an up-to-date collection of additional references for upgrading Service Broker to SQL Server 2008 R2,
see the following links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server Tech Center

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 215

c Ô 
  
ac 


A significant but often overlooked component of every upgrade process is upgrading queries and scripts.
And although most database administrators (DBAs) expect the normal upgrade process to upgrade their
stored procedures, they fail to realize that new releases of SQL Server contain both subtle and dramatic
changes that will affect most query-intensive environments. This chapter covers changes in SQL Server
2008 R2 that might affect your stored procedures, queries, scripts, and applications.

Whether you choose to perform an in-place upgrade or a side-by-side upgrade to the new SQL Server
release, the stored procedures in your database will remain in the database after you upgrade it.
However, unlike other components in SQL Server, stored procedures will not automatically be upgraded
to new functionality when you execute them or when the database is upgraded. You will have to rewrite
them to take advantage of new Transact-SQL (T-SQL) features in SQL Server. The same is true for
upgrading queries embedded in your applications.

In this chapter, we look at the key query-related issues that could prevent an upgrade as well as other
changes that might affect how your stored procedures, queries, scripts, and applications behave after an
upgrade. You must manually review stored procedures, ad hoc queries, and scripts used against the
database for any upgrade issues before you begin the upgrade process. However, you can significantly
reduce the amount of manual review you need to perform by executing the Microsoft SQL Server 2008
R2 Upgrade Advisor. You can download this tool as part of the Microsoft SQL Server 2008 R2 Feature
Pack.

c  


  
Preparation is the key to a successful upgrade of your stored procedures, ad hoc queries, and
administrative scripts. Having a backup and rollback plan is critical, and you need to know which
features have been deprecated or discontinued in SQL Server 2008 R2 as well as which features could
derail an upgrade or cause problematic changes in behavior after your upgrade. In this section, we
discuss the key T-SQL changes you need to understand for a smooth transition to SQL Server 2008 R2
and the tools that can help you identify and resolve possible problems.

ac       
Before any upgrade, it is essential that you back up your existing databases to allow for a quick and easy
rollback in the event of complications. Furthermore, before upgrading a production system, make sure
to perform all upgrade steps in a development-type environment first to help identify and address
upgrade issues before attempting a production upgrade.

In addition to performing a backup, you should also run DBCC CHECKDB on the database before
upgrading to ensure that the database you are upgrading is not damaged.

c 
 

Deprecated features are those that SQL Server 2008 R2 still supports but that will be removed in the
next version of SQL Server. Although you do not have to remove these features from your

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 216

implementation to complete an upgrade, you need to address them to make sure you avoid problems in
the future. Microsoft has deprecated several T-SQL features in SQL Server 2008 R2, including system
tables and the UPDATETEXT function. The version also includes a new System Monitor counter to help
you identify deprecated features on your upgraded system.

+   ac  
3 

SQL Server 2000 system tables have been deprecated and replaced by system views and dynamic
management views (DMVs) in SQL Server 2005 and SQL Server 2008 R2. For a complete mapping of
legacy system tables to system views and DMVs, see Mapping System Tables to System Views (Transact-
SQL) in SQL Server 2008 R2 Books Online.

+   c ! 3:3:@3

The UPDATETEXT function is deprecated in SQL Server 2008 R2. Future versions of SQL Server will no
longer support UPDATETEXT. You should modify all UPDATETEXT references to use the .WRITE clause of
the UPDATE statement to prevent any future problems. For detailed information about UPDATETEXT,
see UPDATE (Transact-SQL) in SQL Server 2008 R2 Books Online.

+   c () ' -!   


  
/0 

After you have upgraded to SQL Server 2008 R2, you might want to identify deprecated features still in
use so that you can address those issues and replace them with the newer SQL Server 2008 R2
counterparts. SQL Server 2008 R2 introduces a new System Monitor object called SQLServer3Deprecated
Features. This object enumerates a number of deprecated features and how frequently they are used on
your SQL Server system. You can view this information either via System Monitor or by using the DMV
sys.dm_os_performance_counters. For more information about this object, see SQL Server, Deprecated
Features Object in SQL Server 2008 R2 Books Online.

Table 8-1 lists deprecated features, which will not be available after SQL Server 2008 R2.

Ô ) !ë §     §5 2 &



    ë  '   
Backup and BACKUP { DATABASE | LOG } WITH None
restore PASSWORD
Backup and BACKUP { DATABASE | LOG } WITH None
restore MEDIAPASSWORD
Backup and RESTORE { DATABASE | LOG } ͙ WITH RESTORE { DATABASE | LOG } ͙ ͙ WITH
restore DBO_ONLY RESTRICTED_USER
Backup and RESTORE { DATABASE | LOG } WITH None
restore PASSWORD
Backup and RESTORE { DATABASE | LOG } WITH None
restore MEDIAPASSWORD

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 217


    ë  '   
Compatibility 80 compatibility level and upgrade Compatibility levels are available only for
levels from version 80 the last two versions. For more information
about compatibility levels, seeALTER
DATABASE Compatibility Level (Transact-
SQL) in SQL Server 2008 R2 Books Online.
Memory x   
 x  !"  
   
management  that   
 memory
   

Metadata DATABASEPROPERTY DATABASEPROPERTYEX
Database WITH APPEND clause on triggers Recreate the whole trigger.
objects
Instance options Default setting of disallow results Default setting of disallow results from
from triggers option = 0 triggers option = 1
Database sp_dboption ALTER DATABASE
options
Query hints FASTFIRSTROW hint OPTION (FAST n)
Remote servers sp_addremotelogin Replace remote servers by using linked
sp_addserver servers.
sp_dropremotelogin
sp_helpremotelogin
sp_remoteoption
Remote servers @@remserver Replace remote servers with linked servers.
Remote servers SET REMOTE_PROC_TRANSACTIONS Replace remote servers with linked servers.
Security sp_dropalias Replace aliases with a combination of user
accounts and database roles. Use
sp_dropalias to remove aliases in upgraded
databases.
SET options SET DISABLE_DEF_CNST_CHK None; option has no effect.
SET options SET ROWCOUNT for INSERT, UPDATE, TOP keyword.
and DELETE statements
T-SQL syntax Use of *= and =* Use ANSI join syntax. For more information,
see FROM (Transact-SQL) in SQL Server 2008
R2 Books Online.
T-SQL syntax COMPUTE / COMPUTE BY Use ROLLUP.
System tables sys.database_principal_aliases Use roles instead of aliases.
Tools Sqlmaint Utility Use the SQL Server maintenance plan
feature.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 218


    ë  '   
T-SQL The RAISERROR (Format3 RAISERROR Rewrite the statement using the current
integer string) syntax RAISERROR syntax.
Other DB-Library Although the Database Engine still supports
Embedded SQL for C connections from existing applications that
use the DB-Library and Embedded SQL APIs,
it does not include the files or
documentation required to do programming
on applications that use these APIs. A future
version of the SQL Server Database Engine
will drop support for connections from DB-
Library or Embedded SQL applications. Do
not use DB-Library or Embedded SQL to
develop new applications. Remove any
dependencies on either DB-Library or
Embedded SQL when you are modifying
existing applications. Instead of these APIs,
use the SQLClient namespace or an API such
as OLE DB or ODBC. SQL Server 2008 R2
does not include the DB-Library DLL required
to run these applications. To run DB-Library
or Embedded SQL applications, you must
have available the DB-Library DLL from SQL
Server 6.5, SQL Server 7.0, or SQL Server
2000.
Programmability  #$ %
   #%
 &' %&c
&'  $%&

For a comprehensive list of deprecated functionality in SQL Server 2005 and SQL Server 2008 R2, see the
following topics in SQL Server Books Online3

{c Deprecated Database Engine Features in SQL Server 2005


{c Deprecated Database Engine Features in SQL Server 2008 R2c

c  
   
 

SQL Server 2008 R2 has discontinued some stored procedure and T-SQL command functionality from
previous versions of SQL Server, including the syslocks virtual table.

+   ac %
=
3

The syslocks virtual table has been discontinued as of SQL Server 2005. All references to this object
should be modified to use the new sys.dm_tran_locks DMV. For a complete list of deprecated or

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 219

discontinued system views and their replacements, see Mapping System Tables to System Views
(Transact-SQL) in SQL Server 2008 R2 Books Online.

Table 8-2 lists the commands that have been discontinued in SQL Server 2008 R2. You should change
references to these commands in all stored procedures, ad hoc queries, and scripts.

Ô ) "  ë    


    ë  '   
Aliases sp_addalias Replace aliases with a combination of user accounts and
database roles. For details, see CREATE USER (Transact-SQL)
and CREATE ROLE (Transact-SQL) in SQL Server 2008 R2 Books
Online. Remove aliases in upgraded databases by using
sp_dropalias.
APIs Registered Servers API Replaced by a new registered servers API that supports new
SQL Server 2008 R2 features.
APIs SQL Namespace API (SQL- None
NS)
APIs SQL-DMOʹbased WMI For details, see Microsoft.SqlServer.Management.Smo.Wmi
provider Namespace.
Backup and BACKUP LOG WITH None. The transaction log is automatically truncated when the
restore NO_LOG database is using the Simple recovery model. If you must
remove the log backup chain from a database, switch to the
Simple recovery model.
Backup and BACKUP LOG WITH None. The transaction log is automatically truncated when the
restore TRUNCATE_ONLY database is using the Simple recovery model. If you must
remove the log backup chain from a database, switch to the
Simple recovery model.
Backup and BACKUP TRANSACTION Use BACKUP LOG.
restore
Backup and DUMP statement BACKUP
restore
Backup and LOAD statement RESTORE
restore
Backup and Named pipe backup Disk or tape devices
restore devices
Command- isql utility sqlcmd utility
prompt
utilities
Compatibility 60, 65, and 70 Databases must be set to at least compatibility level 80.
level compatibility levels

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 220


    ë  '   
Configuration 'allow updates' option of Option is present, but direct updates to system tables are not
options sp_configure supported.
Configuration 'open objects' option of Option is present, but its functionality has been deactivated. In
options sp_configure SQL Server 2005, the number of open database objects is
managed dynamically and is limited only by available memory.
The 'open objects' option has been left in sp_configure to
ensure backward compatibility with existing scripts.
Configuration 'set working set size' Option is present, but its functionality has been deactivated.
options option of sp_configure
Database DISK INIT Legacy behavior from SQL Server 6.x.
creation DISK RESIZE

Database FOR LOAD option of RESTORE operations can create a database.


creation CREATE DATABASE
DBCC DBCC None
CONCURRENCYVIOLATION
DBCC DBCC DBREPAIR Use DROP DATABASE to remove a damaged database.
DBCC DBCC NEWALLOC DBCC CHECKALLOC
DBCC DBCC PINTABLE, DBCC None
UNPINTABLE
DBCC DBCC ROWLOCK Row-level locking is automatic.

DBCC DBCC TEXTALL DBCC CHECKDB

DBCC DBCC TEXTALLOC DBCC CHECKTABLE


Extended Use of SRV_PWD field in None
store the SRV_PFIELD structure
procedure when there has been an
programming impersonation context
switch from the original
login
Groups sp_addgroup Use roles.
Groups sp_changegroup Use roles.
Groups sp_dropgroup Use roles.
Groups sp_helpgroup Use roles.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 221


    ë  '   
Network The following protocols3 Configure your application and the instance of the Database
protocols NWLink IPX/SPX, Engine to use one of the supported protocols3 TCP/IP sockets,
AppleTalk, Banyan Vines, named pipes, VIA, or shared memory.
Multiprotocol
Rebuild Rebuildm.exe Use the REBUILDDATABASE option in Setup.exe.
master
Sample Northwind and pubs Use AdventureWorks; however, Northwind and pubs are
databases available as downloads or can be copied from a previous
installation of SQL Server.
Setup.exe Remote Setup3 The Use a remote connection to run the SQL Server Setup program
TARGETCOMPUTER in user interface mode or from the command prompt.
parameter
Tools Surface Area The Surface Area Configuration Tool is discontinued for SQL
Configuration Tool Server 2008 R2. For more information, see SQL Server
Backward Compatibility in SQL Server 2008 R2 Books Online.
T-SQL *= and =* outer join Use the JOIN syntax of the FROM clause.
operators
Virtual tables syslocks sys.dm_tran_locks
Web sp_makewebtask We recommend that you use SQL Server Reporting Services
Assistant sp_dropwebtask instead.
sp_runwebtask
sp_enumcodepages

For a comprehensive list of discontinued functionality in SQL Server 2005 and SQL Server 2008 R2, see
the following topics in SQL Server Books Online3

{c Discontinued Database Engine Functionality in SQL Server 2005


{c Discontinued Database Engine Functionality in SQL Server 2008 R2c

c   î 


Although Microsoft has worked hard to minimize the impact of upgrading, there are a few breaking
changes in SQL Server 2008 R2 that could cause your upgrade to fail.

+   ac 

SQL Server 2008 R2 introduces 80 new collations to bring SQL Server inline with the collations that
Windows Server 2008 offers. If you use one of these new collations, clients with older drivers might
throw exceptions.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 222

+   c §:3
 6%

SQL Server 2008 R2 installs .NET Framework 3.5 Service Pack 1 (SP1). If there is a new type in this
version of the .NET Framework that has the same name as a user-defined type, SQL Server will mark
your database "suspect." In addition, assemblies in the Global Assembly Cache (GAC) will be updated to
version 3.5 SP1. If you have assemblies registered in your database that are no longer supported, your
application will fail. To check for the existence of any unsupported assemblies in your database, you can
run the following query3



c
c  c
 c
c  c


c
c 
) c
c*-,©,.++/+  . $-*c

+   c !
  
= 6

A few DMVs have been updated in SQL Server 2008 R2. Table 8-3 lists the modifications, which might
cause upgrade problems if you are not prepared for them.

Ô ) #
     2
2   
sys.dm_os_sys_info Removed the cpu_ticks_in_ms and
sqlserver_start_time_cpu_ticks
columns.
sys.dm_exec_query_resource_semaphoressys.dm_exec_query_m The resource_semaphore_id
emory_grants column is not a unique ID in SQL
Server 2008 R2. This change can
affect troubleshooting query
execution. For more information,
see
sys.dm_exec_query_resource_sem
aphores (Transact-SQL) in SQL
Server 2008 R2 Books Online.

+   c 3()

There are a number of T-SQL breaking changes in SQL Server 2008 R2, as Table 8-4 describes.

Ô ) +d * 
  Ô &
ë    
ALTER_AUTHORIZATION_ In SQL Server 2005, when the DDL event
DATABASE data definition ALTER_AUTHORIZATION_DATABASE fires, the value 'object' is returned in
language (DDL) event the ObjectType element of the EVENTDATA XML for this event when the
entity type of the securable in the DDL operation is an object. In SQL Server
2008 R2, the actual type (for example, 'table' or 'function') is returned.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 223

ë    
CONVERT If an invalid style is passed to the CONVERT function, an error is returned
when the type of conversion is binary to character or character to binary.
In earlier versions of SQL Server, the invalid style is set to the default style
for binary-to-character and character-to-binary conversions.
GRANT/DENY/REVOKE EXECUTE permission cannot be granted, denied, or revoked to assemblies.
EXECUTE on assemblies This permission has no affect and now causes an error. Grant, deny, or
revoke EXECUTE permission on the stored procedures or functions that
reference the assembly method instead.
GRANT/DENY/REVOKE Permissions cannot be granted, denied, or revoked to system types. In
permissions on system earlier versions of SQL Server, these statements succeed but have no
types effect. In SQL Server 2008 R2, an error is returned.
OUTPUT clause To prevent nondeterministic behavior, the OUTPUT clause cannot
reference a column from a view or inline table-valued function when that
column is defined by one of the following methods3
{c A subquery
{c A user-defined function that performs user- or system-data access,
or is assumed to perform such access
{c A computed column that contains in its definition a user-defined
function that performs user- or system-data access
When SQL Server detects such a column in the OUTPUT clause, error 4186
is raised. For more information, see MSSQLSERVER_4186.
OUTPUT INTO clause The target table of the OUTPUT INTO clause cannot have any enabled
triggers.
READPAST table hint The READPAST table hint cannot be specified when the
READ_COMMITTED_SNAPSHOT database option is set to ON and either of
the following conditions are true3
{c The transaction isolation level of the session is READ COMMITTED.
{c The READCOMMITTED table hint is also specified in the query.
To specify the READPAST hint in these cases, remove the
READCOMMITTED table hint if present and include the
READCOMMITTEDLOCK table hint in the query.
sp_helpuser The following column names that are returned in the result set of the
sp_helpuser stored procedure have changed3
Previous Column Name  New Column Name 
Group_name Role_name
Group_id Role_id
Users_in_group Users_in_role

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 224

ë    
Transparent data TDE is performed at the I/O level. The page structure is unencrypted in
encryption (TDE) memory and is encrypted only when the page is written to disk. Both the
database files and log files are encrypted. Third-party applications that
bypass the regular SQL Server mechanism for accessing pages (for
example, by scanning the data or log files directly) will fail when a database
uses TDE because the data is encrypted in the files. Such applications can
leverage the Window Cryptographic API to develop a solution for
decrypting the data outside of SQL Server.

For a complete list of breaking changes in SQL Server 2005 and SQL Server 2008 R2, see the following
SQL Server Books Online topics3

{c Breaking Changes to Database Engine Features in SQL Server 2005


{c Breaking Changes to Database Engine Features in SQL Server 2008 R2c


c   î 
SQL Server 2008 R2 changes the behavior of a number of features that your stored procedures, queries,
and scripts might use. These changes likely will not prevent an upgrade to SQL Server 2008 R2, but they
might affect how your query-intensive system works after the upgrade. Be sure to review your code for
the changes covered in this section to make sure that it works correctly after your upgrade.

For a complete list of behavior changes in SQL Server 2005 and SQL Server 2008 R2, see the following
SQL Server Books Online topics3

{c Behavior Changes to Database Engine Features in SQL Server 2005


{c Behavior Changes to Database Engine Features in SQL Server 2008 R2c

+  " ac ( 
 
 

Queries on partitioned tables and indexes are handled differently in SQL Server 2008 R2. Specifically,
queries that use the USE PLAN hint might contain an invalid plan. For details about this change, see
Chapter 3, "Relational Databases," or Query Processing Enhancements on Partitioned Tables and
Indexes in SQL Server 2008 R2 Books Online.

+  " c #:) :


In prior versions of SQL Server, trailing spaces are removed from the input passed to the REPLACE
function. SQL Server 2008 R2 keeps the spaces.

+  " c ÈÈ=:#/§

The @@VERSION function returns additional detail in SQL Server 2008 R2. You need to modify any
scripts that execute this function to account for the new format3 major.minor.build.incremental-build.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 225

+  " c !
 

If you find that you cannot support certain behavior changes immediately, you have the option of
modifying the database compatibility level to limit or allow certain functionality depending on the level
you select.

During the upgrade process to SQL Server 2008 R2, a database will retain its existing compatibility level
if the database compatibility level is greater than or equal to 80; otherwise, Setup will automatically set
the compatibility level to 80.

Here are the compatibility levels and their corresponding SQL Server version3

{c 65 = SQL Server 6.5


{c 70 = SQL Server 7.0
{c 80 = SQL Server 2000
{c 90 = SQL Server 2005
{c 100 = SQL Server 2008 R2

Note that compatibility levels 60 and 65 are deprecated and will be removed in a future SQL Server
release. SQL Server Management Studio (SSMS) and SQL Server Management Objects (SMO) do not
support compatibility level 60 and might produce errors if you try to use them against a database with
this compatibility level.

You can determine the compatibility level of your databases either by right-clicking the database in
SSMS and selecting Properties and then Options, or by executing the following script3



c $c© )c c   c
c
The compatibility level of a database governs the ability of database administrators and developers to
use some of the new features in SQL Server 2008 R2 as well as their ability to retain some legacy
behaviors. If you want to use all the features available in the new release of SQL Server, you should
resolve any upgrade issues before changing the compatibility level of a database to 100.

To change the compatibility level of a database, right-click the database in SSMS and select Properties
and then Options. In the Compatibility Level drop-down list, select the desired compatibility level. You
can also change the compatibility level by issuing the following ALTER DATABASE command3


c 
c"   c  c
c  !)

ccc

§  You can change the compatibility level of the model database so that you can create a new
database with a non-default compatibility level. The default compatibility level for new SQL Server
2008 R2 installations is 100.

For more information about changing compatibility levels, see ALTER DATABASE Compatibility Level
(Transact-SQL) in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 226

+  " "c §/# 3/§ 5:


= 6

SQL Server 2005 and SQL Server 2008 R2 introduce several changes to INFORMATION_SCHEMA views.
Database administrators and developers should review their stored procedures, ad hoc scripts, and
administrative scripts to determine whether the changes that Table 8-5 lists will affect their scripts.

Ô ) -
  M§ë6'ÔM6§9
2
2
 
All INFORMATION_SCHEMA columns Now return the schema and not the user.
that return the schema of an object
SCHEMATA Now returns all schemas in a database instead of all databases
in an instance.
COLUMNS This view's ORDINAL_POSITION column has been changed
from smallint to int.
PARAMETERS This view's ORDINAL_POSITION column has been changed
from smallint to int.
REFERENTIAL_CONSTRAINTS This view's MATCH_OPTION column has been changed from
varchar(4) to varchar(7); the default value has changed from
'NONE' to 'SIMPLE'.
Also, this view's UPDATE_RULE and DELETE_RULE columns
have been changed from varchar(9) to varchar(11).
ROUTINE_COLUMNS This view's ORDINAL_POSITION column has been changed
from smallint to int.

+  " &c  


3 

SQL Server 2008 R2 includes many changes to system tables, so you need to review your stored
procedures, ad hoc queries, and administrative scripts to determine whether the changes will affect
your code. Table 8-6 lists some of the key changes.

Ô ) 0  Ô 


  &"(()'"
  Ô 
 
Syslockinfo Returns a value of 0 for the rsc_objid and rsc_indid columns instead of the
object id and index id, respectively.
Sysaltfiles The name column has been changed from nchar(128) to sysname, and the
filename column has been changed from nchar(260) to nvarchar(260).
Sysconfigures The config column has been changed from smallint to int.
Syscursorcolumns The data_type_sql column has been changed from smallint to int.
Sysfiles The name column has been changed from nchar(128) to sysname, and the
filename column has been changed from nchar(260) to nvarchar(260).
Sysmessages The severity column has been changed from smallint to tinyint.
Sysperfinfo The cntr_value column has been changed from int to bigint.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 227

  Ô 
 
Sysprocesses The waittime column has been changed from int to bigint, the hostprocess
column has been changed from nchar(8) to nchar(10), and the request_id
column has been added.
Sysprotects The columns column has been changed from varbinary(4000) to
varbinary(8000).
Sysservers The srvcollation column has been changed from int to sysname, the
nonsqlsub column has been added, and the topologyx column now returns a
0.
Sysoledbusers The rmtpassword column now returns a NULL.
Sysindexes The keys column and the statblob column now return a NULL.
Syscomments The compressed column now returns a 0.
Sysdevices The size column now returns a 0.
Sysobjects The schema_ver column now returns a 0.
Sysremotelogins The status column now returns a 0.

For a complete list of the changes to system tables, see Behavior Changes to Database Engine Features
in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

+  " 2c  
 
  

The new release of SQL Server has also introduced several changes to system stored procedures. Be sure
to review your stored procedures, ad hoc queries, and administrative scripts to determine whether the
changes listed in Table 8-7 will affect your code.

Ô ) <   


  &"(()'"
   
 
sp_lock Returns a value of 0 for the objid and indid columns instead of the object
id and index id, respectively.
sp_bindefault The @objname parameter has been changed from nvarchar(517) to
nvarchar(776).
sp_bindrule The @objname parameter has been changed from nvarchar(517) to
nvarchar(776).
sp_changeobjectowner The @objname parameter has been changed from nvarchar(517) to
nvarchar(776).
sp_detach_db The @keepfulltextindexfile parameter has been changed from
nvarchar(517) to nvarchar(776).
sp_fulltext_service The @action parameter has been changed from varchar(20) to
nvarchar(100), and the @keepfulltextindexfile parameter has been
changed from an int to sql_variant.
sp_getapplock Has added the @DbPrincipal parameter.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 228

   
 
sp_releaseapplock Has added the @DbPrincipal parameter.
sp_setapprole Has added the @fCreateCookie and @cookie parameters.
sp_settriggerorder Has added the @namespace parameter, and the @stmttype parameter
has been changed from varchar(10) to varchar(50).
sp_sproc_columns Has added the @fUsePattern parameter.
sp_stored_procedures Has added the @fUsePattern parameter.
sp_table_privileges Has added the @fUsePattern parameter.
sp_table_privileges_ex Has added the @fUsePattern parameter.
sp_tables Has added the @fUsePattern parameter.
sp_tables_ex Has added the @fUsePattern parameter.
sp_addtype The permission has changed from any user being able to execute this
stored procedure to users must be members of the db_ddladmin or
db_owner database role to execute sp_addtype.
sp_altermessage No longer specifies whether or not a system message is written to the
Windows Application log.
sp_changedbowner The permission has changed3 Members who execute this system stored
procedure under the security context of the db_ddladmin or
db_securityadmin fixed database role must also be granted CONTROL
permission on the securable.
sp_help Now returns two result sets for functions instead of the previous one
result set.
xp_cmdshell If an error occurs during the execution of this extended stored procedure,
it will not raise an error message and will terminate the execution of the
extended stored procedure.

For a full list of system stored procedure changes, see Behavior Changes to Database Engine Features in
SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

+  " +c  

Security created and maintained through T-SQL statements has undergone some changes in SQL Server
2008 R2. Database administrators and developers should review their stored procedures, ad hoc
queries, and administrative scripts to determine whether any of the security behavior changes listed in
Table 8-8 will affect their scripts.

Ô ) )
   ' Ô &  
 ë 
 
GRANT ALL Granting ALL permissions has been deprecated in SQL Server 2005. GRANT
ALL will grant only permissions that were grantable in SQL Server 2000. The
system will display an informational message stating the deprecation.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 229

 ë 


 
Password Comparisons SQL Server 2005 changed the behavior of password comparisons. Now,
precise case is checked for password comparisons.
DROP LOGIN SQL Server 2005 lets you drop logins even if database users are mapped to
the login.
System Metadata System metadata is no longer viewable through the public role. Users will see
metadata only for objects they own or have some permissions on, either
directly or through a role.
Virtual Table Access Users need the VIEW SERVER STATE and SELECT permissions to access system
virtual tables.

For a full list of security-related T-SQL changes, see Behavior Changes to Database Engine Features in
SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

Chapter 5, "Database Security," covers other security issues involved in upgrading to SQL Server 2008
R2.

+  " <c 

SQL Server 2008 R2 has changed the behavior of referencing built-in functions. In the new SQL Server
release, each reference to a built-in function produces a different result because it is evaluated one time
for each outer query reference. Multiple references to such columns in a subquery will not cause the
function to be evaluated multiple times, and you can reuse the value produced by these functions in the
subquery. Review your code to make sure it accounts for the changes to function behavior that Table 8-
9 lists.

Ô ) =
  d  ë   
ë   
 
fn_servershareddrives The permission to execute these functions has been changed; the functions
fn_virtualfilestats now require the VIEW SERVER STATE permission on the server.
fn_virtualservernodes
HOST_ID Now returns a char(10) instead of a char(8).
SERVERPROPERTY The ProductVersion property has been changed from varchar to nvarchar.
UPDATE() Now detects changes to timestamp columns, and returns TRUE if checked
inside a trigger.

§  In SQL Server 2005 and SQL Server 2008 R2, user-defined functions can include most
nondeterministic built-in system functions.

+  " a*c #  ' 


G 6

One possible issue you might face when upgrading a database and changing the compatibility level of
that database involves keywords marked as reserved. SQL Server uses reserved keywords for defining,

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 230

manipulating, and accessing databases. Reserved keywords are part of the grammar of the T-SQL
language that SQL Server uses to parse and understand T-SQL statements and batches.

Although you can use T-SQL reserved keywords as identifiers or names of databases or database objects
(such as tables, columns, views, and so on), you can do this only by using either quoted identifiers or
delimited identifiers. Using reserved keywords as the names of variables and stored procedure
parameters is not restricted. For more information, see Using Identifiers as Object Names in SQL Server
2008 R2 Books Online.

SQL Server 2008 R2 Upgrade Advisor (which we discuss in a moment) will flag stored procedures for
usage of new reserved keywords. But make sure to perform a manual review of T-SQL code embedded
in application code and other external sources. Table 8-10 lists SQL Server 2008 R2 reserved keywords.

Ô ) !(&"(()'"'A 


ADD EXISTS PRECISION
ALL EXIT PRIMARY
ALTER EXTERNAL PRINT
AND FETCH PROC
ANY FILE PROCEDURE
AS FILLFACTOR PUBLIC
ASC FOR RAISERROR
AUTHORIZATION FOREIGN READ
BACKUP FREETEXT READTEXT
BEGIN FREETEXTTABLE RECONFIGURE
BETWEEN FROM REFERENCES
BREAK FULL REPLICATION
BROWSE FUNCTION RESTORE
BULK GOTO RESTRICT
BY GRANT RETURN
CASCADE GROUP REVERT
CASE HAVING REVOKE
CHECK HOLDLOCK RIGHT
CHECKPOINT IDENTITY ROLLBACK
CLOSE IDENTITY_INSERT ROWCOUNT
CLUSTERED IDENTITYCOL ROWGUIDCOL
COALESCE IF RULE
COLLATE IN SAVE
COLUMN INDEX SCHEMA
COMMIT INNER SECURITYAUDIT
COMPUTE INSERT SELECT
CONSTRAINT INTERSECT SESSION_USER

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 231

CONTAINS INTO SET


CONTAINSTABLE IS SETUSER
CONTINUE JOIN SHUTDOWN
CONVERT KEY SOME
CREATE KILL STATISTICS
CROSS LEFT SYSTEM_USER
CURRENT LIKE TABLE
CURRENT_DATE LINENO TABLESAMPLE
CURRENT_TIME LOAD TEXTSIZE
CURRENT_TIMESTAMP MERGE THEN
CURRENT_USER NATIONAL TO
CURSOR NOCHECK TOP
DATABASE NONCLUSTERED TRAN
DBCC NOT TRANSACTION
DEALLOCATE NULL TRIGGER
DECLARE NULLIF TRUNCATE
DEFAULT OF TSEQUAL
DELETE OFF UNION
DENY OFFSETS UNIQUE
DESC ON UNPIVOT
DISK OPEN UPDATE
DISTINCT OPENDATASOURCE UPDATETEXT
DISTRIBUTED OPENQUERY USE
DOUBLE OPENROWSET USER
DROP OPENXML VALUES
DUMP OPTION VARYING
ELSE OR VIEW
END ORDER WAITFOR
ERRLVL OUTER WHEN
ESCAPE OVER WHERE
EXCEPT PERCENT WHILE
EXEC PIVOT WITH
EXECUTE PLAN WRITETEXT

In addition, the ISO standard defines a list of reserved keywords. Avoid using ISO reserved keywords for
object names and identifiers. The ODBC reserved keyword list, shown in the next table, is the same as
the ISO reserved keyword list.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 232

§  The ISO standard reserved keywords list sometimes can be more restrictive than SQL Server
and at other times less restrictive. For example, the ISO reserved keywords list contains INT. SQL
Server does not distinguish this as a reserved keyword.

+  " aac /!$


#  ' 
G 6

ODBC features keywords reserved for use in ODBC function calls. These words do not constrain the
minimum SQL grammar; however, to ensure compatibility with drivers that support the core SQL
grammar, applications should avoid using these keywords. Table 8-11 lists the SQL Server 2008 R2 ODBC
reserved keywords.

Ô ) !!6d
'A 
ABSOLUTE EXEC OVERLAPS
ACTION EXECUTE PAD
ADA EXISTS PARTIAL
ADD EXTERNAL PASCAL
ALL EXTRACT POSITION
ALLOCATE FALSE PRECISION
ALTER FETCH PREPARE
AND FIRST PRESERVE
ANY FLOAT PRIMARY
ARE FOR PRIOR
AS FOREIGN PRIVILEGES
ASC FORTRAN PROCEDURE
ASSERTION FOUND PUBLIC
AT FROM READ
AUTHORIZATION FULL REAL
AVG GET REFERENCES
BEGIN GLOBAL RELATIVE
BETWEEN GO RESTRICT
BIT GOTO REVOKE
BIT_LENGTH GRANT RIGHT
BOTH GROUP ROLLBACK
BY HAVING ROWS
CASCADE HOUR SCHEMA
CASCADED IDENTITY SCROLL
CASE IMMEDIATE SECOND
CAST IN SECTION
CATALOG INCLUDE SELECT
CHAR INDEX SESSION
CHAR_LENGTH INDICATOR SESSION_USER

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 233

CHARACTER INITIALLY SET


CHARACTER_LENGTH INNER SIZE
CHECK INPUT SMALLINT
CLOSE INSENSITIVE SOME
COALESCE INSERT SPACE
COLLATE INT SQL
COLLATION INTEGER SQLCA
COLUMN INTERSECT SQLCODE
COMMIT INTERVAL SQLERROR
CONNECT INTO SQLSTATE
CONNECTION IS SQLWARNING
CONSTRAINT ISOLATION SUBSTRING
CONSTRAINTS JOIN SUM
CONTINUE KEY SYSTEM_USER
CONVERT LANGUAGE TABLE
CORRESPONDING LAST TEMPORARY
COUNT LEADING THEN
CREATE LEFT TIME
CROSS LEVEL TIMESTAMP
CURRENT LIKE TIMEZONE_HOUR
CURRENT_DATE LOCAL TIMEZONE_MINUTE
CURRENT_TIME LOWER TO
CURRENT_TIMESTAMP MATCH TRAILING
CURRENT_USER MAX TRANSACTION
CURSOR MIN TRANSLATE
DATE MINUTE TRANSLATION
DAY MODULE TRIM
DEALLOCATE MONTH TRUE
DEC NAMES UNION
DECIMAL NATIONAL UNIQUE
DECLARE NATURAL UNKNOWN
DEFAULT NCHAR UPDATE
DEFERRABLE NEXT UPPER
DEFERRED NO USAGE
DELETE NONE USER
DESC NOT USING
DESCRIBE NULL VALUE
DESCRIPTOR NULLIF VALUES
DIAGNOSTICS NUMERIC VARCHAR

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 234

DISCONNECT OCTET_LENGTH VARYING


DISTINCT OF VIEW
DOMAIN ON WHEN
DOUBLE ONLY WHENEVER
DROP OPEN WHERE
ELSE OPTION WITH
END OR WORK
END-EXEC ORDER WRITE
ESCAPE OUTER YEAR
EXCEPT OUTPUT ZONE
EXCEPTION

+  " ac 


G 6

Microsoft has announced keywords that could be reserved in future releases of SQL Server as new
features are implemented. Consider avoiding the use of these words as identifiers. Database
administrators and developers who determine that their stored procedures, queries, or scripts use these
new keywords need to either modify the keyword or enclose the keyword in quotation marks or
brackets. Table 8-12 lists keywords that could be reserved in future SQL Server releases.

Ô ) !"ë A 


ABSOLUTE FREE PRESERVE
ACTION FULLTEXTTABLE PRIOR
ADMIN GENERAL PRIVILEGES
AFTER GET READS
AGGREGATE GLOBAL REAL
ALIAS GO RECURSIVE
ALLOCATE GROUPING REF
ARE HOST REFERENCING
ARRAY HOUR RELATIVE
ASSERTION IGNORE RESULT
AT IMMEDIATE RETURNS
BEFORE INDICATOR ROLE
BINARY INITIALIZE ROLLUP
BIT INITIALLY ROUTINE
BLOB INOUT ROW
BOOLEAN INPUT ROWS
BOTH INT SAVEPOINT
BREADTH INTEGER SCROLL
CALL INTERVAL SCOPE
CASCADED ISOLATION SEARCH

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 235

CAST ITERATE SECOND


CATALOG LANGUAGE SECTION
CHAR LARGE SEQUENCE
CHARACTER LAST SESSION
CLASS LATERAL SETS
CLOB LEADING SIZE
COLLATION LESS SMALLINT
COMPLETION LEVEL SPACE
CONNECT LIMIT SPECIFIC
CONNECTION LOCAL SPECIFICTYPE
CONSTRAINTS LOCALTIME SQL
CONSTRUCTOR LOCALTIMESTAMP SQLEXCEPTION
CORRESPONDING LOCATOR SQLSTATE
CUBE MAP SQLWARNING
CURRENT_PATH MATCH START
CURRENT_ROLE MINUTE STATE
CYCLE MODIFIES STATEMENT
DATA MODIFY STATIC
DATE MODULE STRUCTURE
DAY MONTH TEMPORARY
DEC NAMES TERMINATE
DECIMAL NATURAL THAN
DEFERRABLE NCHAR TIME
DEFERRED NCLOB TIMESTAMP
DEPTH NEW TIMEZONE_HOUR
DEREF NEXT TIMEZONE_MINUTE
DESCRIBE NO TRAILING
DESCRIPTOR NONE TRANSLATION
DESTROY NUMERIC TREAT
DESTRUCTOR OBJECT TRUE
DETERMINISTIC OLD UNDER
DICTIONARY ONLY UNKNOWN
DIAGNOSTICS OPERATION UNNEST
DISCONNECT ORDINALITY USAGE
DOMAIN OUT USING
DYNAMIC OUTPUT VALUE
EACH PAD VARCHAR
END-EXEC PARAMETER VARIABLE
EQUALS PARAMETERS WHENEVER

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 236

EVERY PARTIAL WITHOUT


EXCEPTION PATH WORK
FALSE POSTFIX WRITE
FIRST PREFIX YEAR
FLOAT PREORDER ZONE
FOUND PREPARE c

For the most recent reserved keyword list, see Reserved Keywords (Transact-SQL) in SQL Server 2008 R2
Books Online.

 c   Ô


There are two main tools available to help identify potential problems before you upgrade to SQL Server
2008 R23 the SQL Server 2008 R2 Upgrade Advisor and the Best Practices Analyzer (BPA). For details
about using these upgrade tools, see Chapter 1, "Upgrade Planning and Deployment."

+  & ac ()
 ' 
**+

'

Perhaps the most useful upgrade tool is the SQL Server 2008 R2 Upgrade Advisor, available for
download as part of the Microsoft SQL Server 2008 R2 Feature Pack. This tool quickly identifies blocking
issues and many other known potential problems so that you can address them before or during the
upgrade process. You should always run this tool on your SQL Server 2000 or SQL Server 2005 instances,
including T-SQL database code and external scripts, before upgrading.

+  & c $ 
 
, 

In addition, you can use BPA to help identify bad practices in your T-SQL database code and T-SQL
scripts. You should always run BPA on your T-SQL code before an upgrade because you might identify
practices that you need to change. The upgrade process could be the opportunity you need to
implement these changes. There are various versions of this tool so make sure you get the one designed
especially for SQL Server 2008 R2. You can download the SQL Server 2008 R2 Best Practices Analyzer
from the Microsoft Download Center.

 c  
î 

T-SQL queries are completely compatible between 32-bit and 64-bit editions of SQL Server 2008 R2.

c G      


This section helps you focus on some key T-SQL-related known issues regarding upgrading from SQL
Server 2000 or SQL Server 2005 to SQL Server 2008 R2 and their solutions. As part of your upgrade
preparation, review these issues and make sure you resolve any of them in your implementation before
upgrading.

+  + ac 3/ ! 3: 3 33

To make sure that database statistics are updated as part of your upgradeͶand that your queries get
optimal query plansͶset the AUTO_UPDATE_STATISTICS configuration option to ON before you
upgrade any databases to SQL Server 2008 R2. When you set AUTO_UPDATE_STATISTICS to ON, SQL

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 237

Server updates all statistics when they are first referenced, ensuring that the system is using the most
up-to-date information to try to create the best plans for your queries.

You can use the following statement to enable AUTO_UPDATE_STATISTICS3


c 
c"   c  c
c ) 
)cc

You can then use either the sp_updatestats stored procedure or the UPDATE STATISTICS command to
update statistics immediately to ensure optimal performance.

+  + c  
/0 
§



Earlier releases of SQL Server match system object names against the collation of the master database.
SQL Server 2008 R2 matches system object names against the collation of the current database. You
need to review your stored procedures, ad hoc queries, and scripts to determine whether matching
against the collation of the current database will cause a system object name search to fail.

+  + c ( 
5

With a few exceptions, SQL Server 2008 R2 requires the WITH keyword when you use a table hint in the
FROM clause of a query. You need to review your stored procedures, ad hoc queries, and administrative
scripts for table hint usage and modify the table hint syntax to include the WITH keyword. For
information about which hints do not require the WITH keyword, see FROM (Transact-SQL) in SQL
Server 2008 R2 Books Online. Other FROM clause changes include the following3

{c The FROM clause supports the SQL-92-SQL syntax for joined tables and derived tables. SQL-92
syntax provides the INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, and CROSS join operators.
{c The outer join operators (*= and =*) are not supported when the compatibility level of the
database is set to 90.

+  + c :;  
 
  

If your database environment uses extended stored procedures, you might need to reregister them as
extended stored procedures. Extended stored procedures that were registered without the full path for
the DLL might not work after an upgrade because of changes in the directory structure of SQL Server
2008 R2. These directory structure changes might leave SQL Server unable to locate the DLL for the
stored procedure.

You can use the sp_dropextendedproc and the sp_addextendedproc system stored procedures to
reregister your extended stored procedures.

If your database environment uses custom extended stored procedures, you need to review those
extended stored procedures for use of the SRV_PWD field in the SRV_PFIELD structure when there has
been an impersonation context switch from the original login; this functionality has been discontinued.

§  Extended stored procedures will be removed in a future version of SQL Server. Avoid using
this feature in new development work, and plan to modify applications that currently use this
feature to use Common Language Runtime (CLR) integration instead.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 238

+  + "c 3
 

Many DBAs use trace flags to manage the behavior of their SQL Server instance. Trace flag behavior can
change between SQL Server releases, so you need to review any use of trace flags in stored procedures,
queries, scripts, and SQL Server startup parameters. Microsoft recommends that you disable these trace
flags during the upgrade process and re-enable them only after testing the functionality of the trace flag
under the 100 compatibility level.

In SQL Server 2008 R2, one change in trace flag behavior concerns trace flags that you issue in query
sessions. In previous releases of SQL Server, trace flags set in one query session did not affect the
behavior of already established sessions. However, trace flags set in SQL Server 2008 R2 query sessions
will immediately affect other concurrent sessions.

Additionally, DBCC TRACEON syntax has changed in the new release3 If you do not specify the second
argument of DBCC TRACEON, the trace flag is valid only for the current (local) connection. In SQL Server
2000, the default behavior of this second parameter is to set the trace flag for all connections (global).

+  + &c 3 

In SQL Server 2008 R2, the ability to use DDL statements on inserted and deleted tables inside of data-
manipulation language (DML) triggers has been discontinued. Before you begin your upgrade, be sure to
review your DML trigger-creation scripts and modify them to remove any DDL statements.

+  + 2c  ; 
= 6

You need to be aware of a couple of known issues related to indexed views in SQL Server 2008 R2. The
first concerns function determinism, and the second involves the IGNORE_DUP_KEY option.

ë     %DBAs wanting to set the compatibility level of an upgraded database to 100
should review the index-creation scripts for their indexed views because the following function
expressions are now considered nondeterministic in SQL Server 2005 and SQL Server 2008 R2. These
functions might interfere with indexed view creation as follows3

{c Implicit conversion of non-Unicode character data between collations


{c References to string literals that are implicitly converted to datetime and smalldatetimec

You should modify your index-creation scripts by explicitly converting the literal to the preferred date
data type, using a deterministic date format style.

M8§6'9$9A7%The IGNORE_DUP_KEY option must be set to OFF in SQL Server 2008 R2 when you
create a unique clustered index on a view; this is the default setting. Setting this option to ON could lead
to index view corruption, which would require you to rebuild the index on the view with this option
removed or set to OFF. Make sure you review index-creation scripts for indexed views to determine
whether IGNORE_DUP_KEY has been turned ON during the index creation.

+  + +c $%

# 
 

DBAs should review database backup and restore scripts and modify named pipe usage for backup
devices.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 239

+  + <c § 6%
6

Standalone named and default instances support the following network protocols3

{c Shared memory
{c Named pipes
{c TCP/IP
{c VIA

§ Shared memory is not supported on failover clusters. For more information about clusters,
see Chapter 4, "High Availability."

SQL Server does not support the Banyan VINES Sequenced Packet Protocol (SPP), Multiprotocol,
AppleTalk, or NWLink IPX/SPX network protocols. Clients previously connecting through these protocols
must select a different protocol to connect to SQL Server.

Network software requirements for the 64-bit versions of SQL Server are the same as the requirements
for the 32-bit versions.

+  + a*c  


/ 

SQL Server 2008 R2 has changed several options of the sp_configure system stored procedure. The
following options remain present, but their functionality is deactivated3

{c allow updates
{c open objects
{c set working set size

In addition, direct system table manipulation is no longer allowed, even if the 
 À option is
enabled. You should check all stored procedures, scripts, and embedded code to see whether any of
these options exist in your code.

To check within a given database for stored procedures or other objects that update system tables, you
can use the following query3



cc
c  (
)
# cc 
$c
c  (
)
#  ccc
 c
c ©  c


c
c  (
 
!#  $c* * ccc
c c
c
©ccc
c

You still must manually review ad hoc queries, scripts, and embedded code to look for system table
updates because they exist outside the scope of the above query.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 240

+  + aac !
 
;

SQL Server 2008 R2 includes several changes to the syntax for creating databases that could affect your
current database-creation scripts. Remember to review your administrative scripts for the discontinued
options that Table 8-13 lists and modify the code before executing the scripts against a SQL Server 2008
R2 installation.

Ô ) !#    


   5
   5   
DISK INIT SQL Server 6.x legacy behavior with no replacement.
DISK RESIZE SQL Server 6.x legacy behavior with no replacement.
FOR LOAD option of CREATE Modify code to create the database during the RESTORE operation.
DATABASE statement

+  + ac ) 
 

Before beginning your upgrade process, be sure to review stored procedures, ad hoc queries, and
administrative scripts containing login creation to determine whether logins are being created with the
following names; these names are now reserved in SQL Server 2008 R23

{c sysadmin
{c serveradmin
{c setupadmin
{c securityadmin
{c processadmin
{c dbcreator
{c diskadmin
{c bulkadmin

For the most recent reserved keyword list, review Reserved Keywords (Transact-SQL) in SQL Server 2008
R2 Books Online.

+  + ac J
;

Under the 90 and 100 database-compatibility levels, SQL Server 2008 R2 has discontinued the older join
syntax X and X. If you are running under this compatibility level, you need to modify any stored
procedures, ad hoc queries, and administrative scripts that use the old syntax to join tables so that they
use the JOIN syntax of the FROM clause.

+  + ac  
/0 
# '

Beginning with SQL Server 2005, all system objects are in a read-only Resource database, which means
you can no longer drop system objects. Before upgrading from SQL Server 2000, make sure you review
stored procedures, ad hoc queries, and administrative scripts to determine whether those scripts try to
drop system objects. If they do try to drop system objects, you need to modify the code by removing the
DROP statement call.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 241

+  + a"c     
 
 
 

The sp_helptrigger system stored procedure adds an additional column to the end of its return set in
SQL Server 2005 and SQL Server 2008 R2. This additional column (trigger_schema) needs to be
accounted for in upgraded stored procedures, ad hoc queries, and administrative scripts. Be sure to
review your code for calls to this system stored procedure and modify the handling of the result set to
account for the additional column.

+  + a&c ( 
A' 

)

SQL Server 2008 R2 changes how the database system does query cost modeling. Thus, if you apply SET
GOVERNOR_QUERY_COST_LIMIT or the D 


À 22 option of sp_configure, queries that
ran fine in an earlier version of SQL Server might not run in SQL Server 2008 R2. Make sure you set the
connection or server instance's query governor cost-limit settings to an appropriate value or to 0, which
specifies no limit on how long a query can run. To read more about the query governor cost limit, see
query governor cost limit Option in SQL Server 2008 R2 Books Online.

c          

During the upgrade process, T-SQL code objects are essentially passive. Whether you choose an in-place
upgrade or a side-by-side upgrade, the end result will be the same as far as your T-SQL code is
concerned.

ac     
The T-SQL code in database objects will remain unchanged by a direct, in-place upgrade. Any changes
you must make to the scripts should be applied after the upgrade (see "Post-Upgrade Tasks" below). In
addition, external scripts on disk will be unaffected.

c     


In a side-by-side upgrade, any T-SQL objects stored in the database will be automatically moved to the
new server, but their T-SQL code will remain unchanged. You will need to ALTER or recreate the objects
directly to update them as required.

In addition, you might need to move any T-SQL external scripts to a new server or correct references
within your database to those scripts.

c 
  Ô 
After upgrading to SQL Server 2008 R2, work through the following checklist to ensure optimum
performance3

1.c Execute DBCC CHECKDB WITH DATA_PURITY to check the database for column values that are
not valid or are out of range. After you have successfully run DBCC CHECKDB WITH
DATA_PURITY against an upgraded database, you do not need to specify the DATA_PURITY
option again because SQL Server will automatically maintain "data purity." This is the only DBCC
CHECKDB check that you need to run as a post-upgrade task.
2.c Run DBCC UPDATEUSAGE to correct any incorrect page or row counts.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 242

3.c Update statistics by using the sp_updatestats stored procedure to ensure that all statistics are
up-to-date.
4.c Update revised database T-SQL objects such as stored procedures and functions.
5.c Update external T-SQL scripts.
6.c Run a set of test scripts against the new database, and validate the results.

After the upgrade, you will want to analyze how your new SQL Server 2008 R2 instance performs
compared with your original SQL Server 2000 or SQL Server 2005 instance. See RML Utilities for SQL
Server (x86) for a suite of tools for load testing, workload replay, and performance analysis.

For additional post-upgrade details, see Chapter 3, "Relational Databases."


c î  
Although SQL Server 2008 R2 introduces a number of great new features, Microsoft has worked hard to
minimize the impact on upgrading existing code. With a good understanding of how the changes to T-
SQL features might affect your stored procedures, ad hoc queries, and administrative scripts, you can
make needed fixes before the upgrade. In addition, the Upgrade Advisor and BPA can help ease your
transition from SQL Server 2000 or SQL Server 2005 to SQL Server 2008 R2.

 c x
   
For an up-to-date collection of additional references for upgrading T-SQL queries to SQL Server 2008 R2,
see the following links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 243

c 

  

ac 


SQL Server 2008 R2 does not include Notification Services; SQL Server 2005 is the last version of
Notification Services. However, you can get the latest SQL Server 2005 Notification Services Components
Package, which has been updated to allow Notification Services to work with a SQL Server 2005, SQL
Server 2008, or SQL Server 2008 R2 database instance. The "Feature Changes" section that follows
describes the Components Package in more detail.
SQL Server Notification Services provides a robust platform for developing and hosting notification
applications. A Notification Services application lets subscribers select information that is important to
them and then automatically receive notifications when an event occurs that matches their criteria.

Notification Services is based on SQL Server, XML, and the .NET Framework and offers a rapid
development platform for creating notification applications. It has built-in capabilities to handle real-
time and scheduled notifications; multiple languages and time zones; extensible event, content
formatting, and delivery channel options; and flexible deployment scenarios.

This chapter describes the steps you need to take to use Notification Services in SQL Server 2008 R2.

c  


  
The Components Package includes the necessary server and client components to create and host
Notification Services applications. It does not provide integration with SQL Server Management Studio
(SSMS), so there is no SQL Server 2008 R2 client tools support for Notification Services. Instead, you
must use the command-line utility NSControl.exe to create, register, enable, and update Notification
Services instances in SQL Server 2008 R2. For more information, see nscontrol Utility in SQL Server 2005
Books Online.
You can download the SQL Server 2005 Notification Services Components Package as part of the SQL
Server 2005 Feature Pack from the Microsoft Download Center.

Before you upgrade Notification Services to work with SQL Server 2008 R2, you should take
precautionary steps that will help you recover from an unsuccessful upgrade attempt, if it is necessary.
These steps include stopping all Notification Services instances and backing up all relevant data and
configuration files.

ac 

 

   
 
Before you start the upgrade, you should stop and disable each instance of Notification Services that is
on the target server. The following commands, which you issue through the Notification Services
command prompt, demonstrate this process by using an instance named ABCPressu Be sure to run these
commands on each server in a scale-out deployment scenario3


c c0 
c
©
©c  c1 c 
c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 244

For more information, see nscontrol disable Command in SQL Server 2005 Books Online.

When you use the side-by-side upgrade scenario to upgrade, you should also unregister the instance of
Notification Services on the existing server that is running SQL Server 2005. To do this, use the
NSControl unregister command as follows3

©
©c
 
c1 c 
c

For more information about the NSControlunregister command, see nscontrol register Commandin SQL
Server 2005 Books Online.
§  Do not run NSControl deleteu This command will delete the instance and application
databases for the instance of Notification Services.

c  
 
  

It is good practice to back up all user and system databases before anupgrade. By default, instances of
Notification Services instances and Notification Services applications create databases with the following
naming conventions3 ;M À  NSMain and ;M À  ;x2 2
, respectively.
Keep in mind that SQL Server 2005 lets you create Notification Services database objects in a user-
defined database. As a precaution, you should also back up those databases before upgrading.

Additionally, you should back up the source code and Instance Configuration File (ICF) and Application
Definition File (ADF) files for all instances, applications, and custom components. These backups give
you a means for full recovery if the upgrade fails.

c 

   

The SQL Server 2005 Notification Services Components Package installation requires the target
computer to meet the same minimum hardware and software requirements as the edition of the SQL
Server instance that will host the Notification Services instances. For complete installation requirements
for SQL Server 2005, see Hardware and Software Requirements for Installing SQL Server 2005in SQL
Server 2005 Books Online. For information about SQL Server 2008 R2 installation requirements, see
Hardware and Software Requirements for Installing SQL Server 2008 R2 in SQL Server 2008 R2 Books
Online.

New installations of the SQL Server 2005 Notification Services Components Package require that the
following components be installed on the target computer. You can install these components from the
latest release of the Feature Pack for SQL Server 2005, available for download from the Microsoft
Download Center.

{c Microsoft SQL Server 2005 Management Objects (SMO) Collection


{c Microsoft SQL Server Native Client
{c SQL Server XML
§  SQL Server XML is required only for installations that use the built-in FileSystemWatcher Event
Provider to submit XML events to the application.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 245

c 

 

   î 

Before you upgrade to SQL Server 2008 R2, download and install the SQL Server 2005 Notification
Services Components Package.

<   ac = 

§
 ' 
:

When you install the SQL Server 2005 Notification Services Components Package RC1 on a server that
already has an edition of SQL Server installed on it (for example, Express), an incorrect edition might be
recorded in the server͛s registry. This inconsistency will prevent the instance of Notification Services
from starting.
After you install the Components Package, ensure that the correct edition appears in the server͛s
registry. Use the regedit utility to locate the correct registry key3
{c For 32-bit versions of Windows3
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Microsoft SQL Server 90 NS Setup
{c For 64-bit versions of Windows3
HKEY_LOCAL_MACHINE SOFTWARE Wow6432Node Microsoft Microsoft SQL
Server 90 NS Setup
Add a new string value named RedistEdition. Set the new key͛s value to the edition that corresponds to
your license by using one of the following values3
{c Standard Edition
{c Developer Edition
{c Enterprise Evaluation Edition
{c Enterprise Edition
For more information about editing the registry, see the SQL Server 2005 Notification Services
Components Package RC1 Readme file.

c      


SQL Server 2005 Notification Services introduced substantial enhancements compared to SQL Server
2000 Notification Services, including better performance, subscriber-defined conditions, a management
API, and new views to manage subscribers and subscriptions.
These enhancements require certain modifications to an instance of SQL Server 2000 Notification
Services. These modifications are beyond the scope of this document. However, the SQL Server 2005
Upgrade Technical Reference Guide describes the required changes to the ICF, the ADF, and any custom
components you created to extend the built-in capabilities of Notification Services.
To upgrade an instance of SQL Server 2000 Notification Services to SQL Server 2008 R2, the instance and
application must first adhere to the changes that are required by a SQL Server 2005 upgrade. After those
are completed, the upgrade process is similar to an upgrade from SQL Server 2005 to SQL Server 2008
R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 246

c      



Although Microsoft has upgraded the Notification Services 2005 components to work with SQL Server
2008 R2, it has made no additional changes or enhancements to Notification Services. Thus, upgrading a
SQL Server 2005 Notification Services instance to SQL Server 2008 R2 is a straightforward process.

ac     
You can upgrade a SQL Server 2005 Notification Services instance to work with the SQL Server 2008 R2
Database Engine by using an in-place upgrade method. When you upgrade SQL Server 2005 to SQL
Server 2008 R2, the Notification Services components, if installed, are left on the server. The Database
Engine and other components are upgraded to SQL Server 2008 R2. When you no longer need the
Notification Services components, you can remove them by using Add/Remove Programs in Control
Panel. For more information about the steps required to ensure a working Notification Services
environment, see the "Preparing to Upgrade" section later in this chapter.
After running the SQL Server 2008 R2 upgrade, if you need to continue using SQL Server 2005
Notification Services, install SQL Server 2005 SP3. The changes available in the Components Package are
also included in SQL Server 2005 SP3. Applying it will allow existing Notification Services applications to
use the SQL Server 2008 R2 Database Engine.

<  a ac 

!
: 

Your first step is to upgrade the SQL Server 2005 Database Engine to SQL Server 2008 R2. For detailed
descriptions of this process, see Chapter 1, "Upgrade Planning and Deployment," and Chapter 3,
"Relational Databases," in this guide.
After you upgrade SQL Server 2005 to SQL Server 2008 R2, you cannot manage your Notification Services
instances by using the SSMS graphical interface. Instead, you must use the NSControl command-line
utility to manage Notification Services for the upgraded Database Engine.
After upgrading the Database Engine to SQL Server 2008 R2, you must install SQL Server 2005 SP3 or the
Components Package on the existing instance of SQL Server 2005 Notification Services.

<  a c :





After you have upgraded the Database Engine to SQL Server 2008 R2 and applied SQL Server 2005 SP3 or
the Components Package, you must enable the instance by using the NSControl enable command, as the
following command shows3

©
©c c& c 
c
c
(For more information, see nscontrol enable Commandin SQL Server 2005 Books Online.) When you are
ready, you can use the following command to start the Notification Services Windows service3

c
c0 
c

You can also start the service in Control Panel under Services.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 247

c     


Alternatively, you can use a side-by-side method to upgrade SQL Server 2005 Notification Services to use
the SQL Server 2008 R2 Database Engine. To use this technique, you install a separate instance of SQL
Server 2008 R2. Detach the instance of Notification Services and application databases from the existing
instance of SQL Server 2005, and then attach them to the newly installed instance of SQL Server 2008
R2. For more information, see How to3 Upgrade a Database Using Detach and Attach (Transact-SQL) in
SQL Server 2008 R2 Books Online.
Create and configure the required user accounts and permissions in the SQL Server 2008 R2 Database
Engine to allow the Notification Services service to connect to and use the instance of SQL Server.
§  If the SQL Server instance name is hard-coded in your configuration files, you might need to
update the ICF and ADF files to reflect the new name.

<   ac 

 

After the instance and application databases are attached to the instance of SQL Server 2008 R2, use the
NSControl repair command to create the appropriate metadata entries in the msdb database for the
instance of Notification Services.
The following command, which you issue from the SQL Server 2005 Notification Services command
prompt, creates the appropriate metadata entries in the msdb database for the ABCPress instance3

©
©c
 
c& c 
c&   c 
 c
&2 c ©c&

c

 c
c
After you run the NSControl repair command, you will see the two new tables that the command
created in the NS90 schema of the msdb database3 NS90.NSApplicationInfo and NS90.NSInstanceInfo.
For more information about NSControl repair, see nscontrol repair Command in SQL Server 2005 Books
Online.

<   c #   7


: 7





After you update the metadata in the msdb database, you must register the instance of Notification
Services by using the NSControl register command. This creates the appropriate registry entries and adds
the Notification Services performance counters to the server. Optionally, registering the instance will
create the Windows service for Notification Services.
The following example demonstrates the NSControlregister command syntax for an instance of
Notification Services named ABCPress3

©
©c
 
c& c 
c&

cc&
c
&

 ccc&
 ©
c ©
c&
 ccc)c&
 ©
c ©
c
c
For more information about the NSControlregister command, see nscontrol register Command in SQL
Server 2005 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 248

After the instance is registered, you can enable the instance by using the NSControlenable command, as
the following command shows3

©
©c c& c 
c
c
For more information about the NSControlenable command, see nscontrol enable Command in SQL
Server 2005 Books Online.

When you are ready, you can use the following command to start the Windows service3

c
c0 
c

You can also start the service by using the Services Control Panel applet, as shown in Figure 9-1.c


ë= ! The Notification Services service in the Services Control Panel applet

c 
  Ô 
After the upgrade has completed, you can verify the status of the Notification Services instance by using
the NSControl status command, as the following example shows3

©
©c c& c 
c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 249

For details about the NSControl status command, see nscontrol status Commandin SQL Server 2005
Books Online.

 c î  
Although Notification Services has been deprecated and is not included as part of SQL Server 2008 R2,
you can use the SQL Server 2008 R2 Database Engine in conjunction with SQL Server 2005 Notification
Services components to develop and host Notification Services applications.

 c x
   
For an up-to-date collection of additional references for running Notification Services with SQL Server
2008 R2, see the following links3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 250

ac  "

aac


SQL Server 2008 R2 Express is a free version of SQL Server 2008 R2. Because it comes with SQL Server
Management Studio Basic, SQL Server Express can be used in the following ways3

{c As a local data store


{c Embedded with an application
{c As a lightweight database server

SQL Server Express is also tightly integrated with Visual Studio 2010. Thisfacilitates the design and
development of database applications.

SQL Server 2008 R2 Express is the ideal upgrade from either the Microsoft SQL Server 2000 Desktop
Engine (MSDE) or SQL Server 2005 Express. It includes many new features that make it a compelling
upgrade proposition from either of these previous versions.

Although an upgrade from SQL Server 2005 Express is straightforward, MSDE and SQL Server Express
have important differences that you must understand before you create an upgrade plan from MSDE.

SQL Server Express removes the workload governor, which limited the number of concurrent operations
that MSDE could perform, and has a maximum database size limit of 10 GB as compared to 2 GB for
MSDE. Combined with native 64-bit support and new SQL Server 2008 R2 database features, most MSDE
applications can be upgraded to SQL Server Express and perform more robustly.

Let͛s look at the MSDE and SQL Server Express differences you must consider before you create an
MSDE upgrade plan.

ac
 î 
SQL Server 2008 R2Express supports all the core database functionality thatboth MSDE and SQL Server
2005 Express provide. This lets almost all existing database applications work without modifications.
This functionality includes support for most of the new SQL Server 2005 and SQL Server 2008 R2
features, including Common Language Runtime (CLR) support, XQuery, dynamic management views, and
user-schema separation.

In addition, SQL Server Express has a new set of management tools. SQL Server Express uses the new
SQL Server Computer Manager to start and stop database services. You can use the new SQL Server
Configuration Manager tool to limit potential security risks by controlling network connections and
shutting down unused services. You can also manage SQL Server Express by using SQL Server
Management Studio Basic, which is included in SQL Server 2008 R2 Express with Tools and SQL Server
2008 R2 Express with Advanced Services. You can use SQL Server Management Studio Basic to manage
all editions of SQL Server starting with SQL Server 2000 to SQL Server 2008 R2.

You can download SQL Server 2008 R2 Express from the Microsoft SQL Server 2008 R2 Express Web site.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 251

ac 
  
Table 10-1 shows the upgrade paths that Microsoft supports to SQL Server 2008 R2 Express.

Ô !( !$    &"(()'"5 

$     $   


SQL Server 2000 (32-bit) MSDE SP4 SQL Server 2008 R2 Express
SQL Server 2005 (32-bit) Express SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2005 (32-bit) Express with SQL Server 2008 R2 Express with Advanced Services
Advanced Services
SQL Server 2008 Express SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise
SQL Server 2008 Express with Tools SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise
SQL Server 2008 Express with SQL Server 2008 R2 Express with Advanced Services
Advanced Services SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise
SQL Server 2008 Express x64 (64-bit) SQL Server 2008 R2 Express x64 (64-bit)
SQL Server 2008 R2 Express with Tools (64-bit)
SQL Server 2008 R2 Express with Advanced Services x64
(64-bit)
SQL Server 2008 Express with SQL Server 2008 R2 Express with Advanced Services x64
Advanced Service x64 (64-bit) (64-bit)
SQL Server 2008 R2 Standard x64 (64-bit)
SQL Server 2008 R2 Enterprise x64 (64-bit)
SQL Server 2008 R2 Express SQL Server 2008 R2 Express
SQL Server 2008 R2 Express with Tools
SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise
SQL Server 2008 R2 Express with Tools SQL Server 2008 R2 Express with Advanced Services
SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 252

$     $   


SQL Server 2008 R2 Express with SQL Server 2008 R2 Express with Advanced Services
Advanced Services SQL Server 2008 R2 Standard
SQL Server 2008 R2 Enterprise
SQL Server 2008 R2 Express x64 (64-bit) SQL Server 2008 R2 Express x64 (64-bit)
SQL Server 2008 R2 Express with Tools (64-bit)
SQL Server 2008 R2 Express with Advanced Services x64
(64-bit)
SQL Server 2008 R2 Express with SQL Server 2008 R2 Express with Advanced Services x64
Advanced Service x64 (64-bit) (64-bit)
SQL Server 2008 R2 Standard x64 (64-bit)
SQL Server 2008 R2 Enterprise x64 (64-bit)

When you are upgrading an existing 32-bit instance to a 32-bit instance, both in-place and side-by-side
upgrades are supported. In all other cases, side-by-side upgrades are required.

English SQL Server can be upgraded to any localized SQL Server. And a localized SQL Server can be
upgraded to a localized version of the same language. However, localized-to-English upgrades are not
supported, nor are upgrades of a localized SQL Server to different languages.

Table 10-2 shows the three types of packages available for SQL Server Express.

Ô !( "&5  * 


ë  &"(()'" &"(()'" &"(()'"
5  5  Ô 5   

  
PowerShell Integration Yes (Separate Yes Yes
installation)*
Policy-Based Yes (manual only)** Yes (manual only)* Yes (manual only)**
Management
Management Studio No Yes Yes
Basic
&  
Integrated Full-Text No No Yes
Search
Merge and Upsert Yes Yes Yes
§    
Filestream support Yes Yes Yes
New Date and Time data Yes Yes Yes
types

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 253

ë  &"(()'" &"(()'" &"(()'"


5  5  Ô 5   

Geodetic data types Yes Yes Yes
Advanced spatial libraries Yes Yes Yes
Support for spatial Yes Yes Yes
standards
§ 
Import/Export Wizard Yes Yes Yes
'   
Change tracking Yes Yes Yes
Synchronization Services Yes (Separate Yes (Separate Yes
installation)*** installation)***
'   
Increase RS Memory No No Yes
Limit
RS Word/Rich Text Export No No Yes
IIS Agnostic Report No No Yes
Deployment
Enhanced Gauges and No No Yes
Charting
Business Intelligence No No Yes
Development Studio
XD
 2 

  2 


    ÀÀ 2 À 2  2 
À
 
u 
2 À 2 
    ÀÀu
XX
22À   2 
    ÀÀ     u 2À
À


 

2 À’   u
XXX 
2 2
 2ÀÀ
2 
    ÀÀ D2 À  
2 À  

 
À   
 
   „   u

aac   "    




Table 10-3 lists the limits that have been set for MSDE and SQL Server Express databases.

Ô !( #&5  & 


&   &  &5 & 
Concurrent workload governor Yes No
(throttle)
Database size limitation 2 GB 10 GB
RAM support 2 GB 1 GB
SMP support 2 (or 1 if MSDE is run on Windows 98 or 1
Windows Millennium Edition)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 254

MSDE includes a workload governor that could affect performance. SQL Server Express does not include
such a workload governor.

ac   "   


  

Table 10-4 lists the changes in feature support between SQL Server Express and MSDE.

Ô !( +&5  ë   


ë     @    &5 @
Merge Replication Yes Yes, as a Subscriber only
Transactional Replication Yes, as a Subscriber only Yes, as a Subscriber only
Snapshot Replication Yes Yes, as a Subscriber only
SQL Server Profiler No SQL Server Profiler is not installed with
SQL Server Express. However, if another
version of SQL Server is installed on the
system, the Profiler application that is
installed with the other version can be
used with SQL Server Express.
Database Engine Tuning Wizard No No
SQL Server Agent Yes No
Active Directory registration No Yes

ac 
 

All the deprecated features discussed in other chapters that apply to other SQL Server editions also
apply to SQL Server 2008 R2 Express. For details about deprecated features, see the following SQL
Server 2008 R2 Books Online topics3

{c Deprecated SQL Server Features in SQL Server 2008 R2


{c Deprecated Features in SQL Server Reporting Services

ac  
   
 

All the discontinued features discussed in other chapters that apply to other SQL Server editions also
apply to SQL Server 2008 R2 Express. For details about discontinued functionality, see the following SQL
Server 2008 R2 Books Online topics3

{c Discontinued SQL Server Features in SQL Server 2008 R2


{c Discontinued Functionality in SQL Server Reporting Services

a
c   î 
Many of the changes discussed in other chapters that could potentially break applications also apply to
SQL Server 2008 R2 Express. For details about breaking changes, see the following SQL Server 2008 R2
Books Online topics3

{c Breaking Changes to SQL Server Features in SQL Server 2008 R2


{c Breaking Changes in SQL Server Reporting Services

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 255

a c   î 


Many of the behavior changes discussed in other chapters that apply to other SQL Server editions also
apply to SQL Server 2008 R2 Express. For more details about behavior changes that you need to watch
out for, see the following SQL Server 2008 R2 Books Online topics3

{c Behavior Changes to SQL Server Features in SQL Server 2008 R2


{c Behavior Changes in SQL Server Reporting Services

a c   Ô

a*  2 ac #

'

SQL Server 2008 R2 Upgrade Advisor helps you prepare for upgrades to SQL Server 2008 R2. Upgrade
Advisor analyzes installed components from earlier versions of SQL Server and then generates a report
that identifies issues to fix either before or after you upgrade. Chapter 1, "Upgrade Planning and
Deployment," describes how to use Upgrade Advisor.

When you run Upgrade Advisor, the Upgrade Advisor Home page appears. From the Home page, you
can run the following tools3

{c Upgrade Advisor Analysis Wizard


{c Upgrade Advisor Report Viewer
{c Upgrade Advisor Help

The first time you use Upgrade Advisor, run the Upgrade Advisor Analysis Wizard to analyze SQL Server
components. When the wizard finishes the analysis, view the resulting reports in the Upgrade Advisor
Report Viewer. Each report provides links to information in Upgrade Advisor Help that will help you fix
or reduce the effect of the known issues.

You can download Upgrade Advisor as part of the Microsoft SQL Server 2008 R2 Feature Pack.

a*  2 c #
$ 
 
, 

Before upgrading your system, we recommend that you use best practices for your existing system by
running SQL Server Best Practices Analyzer (BPA). BPA is available for SQL Server 2000 and for SQL
Server 2005. SQL Server 2005 BPA gathers data from Windows and SQL Server configuration settings,
using a predefined list of SQL Server 2005 recommendations and best practices to determine if there are
potential issues in the database environment. Running BPA before upgrading gives you the opportunity
to fix any problems and helps ensure that you are using best practices before you go to the new system.
You can download the SQL Server 2005 BPA at the Microsoft Download Center.

Once you have upgraded to SQL Server 2008 R2, you can use the SQL Server 2008 R2 Best Practices
Analyzer to further refine your systems. You can download the SQL Server 2008 R2 BPA at the Microsoft
Download Center.

ac  
î 

Table 10-5 shows the supported 64-bit architectures for SQL Server 2008 R2 Express.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 256

Ô !( -0+ d      &"(()'"5 


     
X86 (32 bit) Yes
X64 Yes
IA64 No

Table 10-6 lists the SQL Server Express packages that are available.

Ô !( 0  &"(()'"5  * 


 * §   
SQLEXPR32_x86_ENU.exe 32-bit only ʹ core installation
SQLEXPR_x86_ENU.exe 32-bit native or 32-bit WOW on 64-bit systems ʹ core installation
SQLEXPR_x64_ENU.exe 64-bit only ʹ core installation
SQLEXPRWT_x86_ENU.exe 32-bit native or 32-bit WOW on 64-bit systems ʹ with Tools
SQLEXPRWT_x64_ENU.exe 64-bit only ʹ with Tools
SQLEXPRADV_x86_ENU.exe 32-bit native or 32-bit WOW on 64-bit systems ʹ with Advanced Services
SQLEXPRADV_x64_ENU.exe 64-bit only ʹ with Advanced Services

Note that in the table, ENU refers to the English-language version. Other language versions are also
available.

ac 
   
     "
SQL Server 2008 R2 Express will run on the same hardware as MSDE. Table 10-7 shows the system
requirements for SQL Server Express (32-bit), taken from Hardware and Software Requirements for
Installing SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

Ô !( <&"(()'"5   ', 



    ', 
Processor1 Processor type3 Pentium III-compatible processor or faster
Processor speed3 Minimum3 1.0 GHz
Recommended3 2.0 GHz or faster
Framework SQL Server Setup installs the following software components required by the product3
{c .NET Framework 3.5 SP1
{c SQL Server Native Client
{c SQL Server Setup support files

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 257


    ', 
Operating Windows XP SP3 Professional
System Windows XP SP3 Tablet
Windows XP SP3 Media Center 2002
Windows XP SP3 Media Center 2004
Windows XP SP3 Media Center 2005
Windows XP Professional SP3 Reduced Media
Windows XP Home Edition SP3 Reduced Media
Windows Server 2003 SP2 Datacenter
Windows Server 2003 2003 SP2 Enterprise
Windows Server 2003 SP2 Standard
Windows Server 2003 SP2 Web Edition
Windows Server 2003 SP2 64-bit x64 Datacenter
Windows Server 2003 SP2 64-bit x64 Enterprise
Windows Server 2003 SP2 64-bit x64 Standard
Windows Server 2003 SP2 Small Business Server R2 Premium
Windows Server 2003 R2 SP2 Datacenter
Windows Server 2003 R2 SP2 Enterprise
Windows Server 2003 R2 SP2 Standard
Windows Server 2003 R2 SP2 Web Edition
Windows Server 2003 R2 SP2 64-bit x64 Datacenter
Windows Server 2003 R2 SP2 64-bit x64 Enterprise
Windows Server 2003 R2 SP2 64-bit x64 Standard
Windows Vista SP2 Ultimate
Windows Vista SP2 Home Premium
Windows Vista SP2 Home Basic
Windows Vista SP2 Enterprise
Windows Vista SP2 Business
Windows Vista SP2 Ultimate 64-bit x643
Windows Vista SP2 Home Premium 64-bit x643
Windows Vista SP2 Home Basic 64-bit x643
Windows Vista SP2 Enterprise 64-bit x643
Windows Vista SP2 Business 64-bit x643
Windows Server 2008 SP2 Datacenter
Windows Server 2008 SP2 Datacenter without Hyper-V
Windows Server 2008 SP2 Enterprise
Windows Server 2008 SP2 Enterprise without Hyper-V
Windows Server 2008 SP2 Standard Server
Windows Server 2008 SP2 Standard Server without Hyper-V
Windows Server 2008 SP2 Web Edition
And more at Hardware and Software Requirements for Installing SQL Server 2008 R2

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 258


    ', 
Software SQL Server Setup requires Windows Installer 4.5 or later and Microsoft Data Access
Components (MDAC) 2.8 SP1 or later. After installing required components, SQL Server
Setup will verify that the computer SQL Server will be installed on also meets all other
requirements for a successful installation. For more information, see Check Parameters
for the System Configuration Checker.
Network Network software requirements for the 64-bit versions of SQL Server are the same as the
Software requirements for the 32-bit versions.Supported operating systems have built-in network
software.

§  SQL Server does not support the Banyan VINES Sequenced Packet protocol (SPP),
Multiprotocol, AppleTalk, or NWLink IPX/SPX network protocols. Clients previously
connecting with these protocols must select a different protocol to connect to SQL
Server.

Standalone named and default instances support the following network protocols3
{c Shared memory
{c Named pipes
{c TCP/IP
{c VIA
§ Shared memory is not supported on failover clusters.
Internet Microsoft Internet Explorer (IE) 6 SP1 or later is required for all installations of SQL
Software Server. IE 6 SP1 or later is required for Microsoft Management Console (MMC), SQL
Server Management Studio, Business Intelligence Development Studio, the Report
Designer component of Reporting Services, and HTML Help.
Memory2 RAM3 Minimum3 512 MB
Recommended3 More than 1 GB
Maximum3 SQL Server 2008 R2 Express will use at most 1 GB of memory, regardless of
how much is installed on the operating system. For best operating system performance,
more than 1 GB of memory installed in the system is recommended.
Hard Disk Disk space requirements will vary with the SQL Server components you install.
Drive A CD or DVD drive, as appropriate, is required for installation from disk.
Display SQL Server graphical tools require VGA or higher resolution3 at least 1,024x768 pixel
resolution.
Other Pointing device3 A Microsoft mouse or compatible pointing device is required.
Devices

1
The System Configuration Checker (SCC) will block Setup if the requirement for processor type is not
met. The SCC will warn the user but will not block Setup if the minimum or recommended processor
speed check is not met. No warning will appear on multiprocessor computers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 259

2
The SCC will warn the user but will not block Setup if the minimum or recommended RAM check is not
met. Memory requirements are for this release only and do not reflect additional memory requirements
of the operating system. The SCC verifies the memory available when Setup starts.

aac G      

a*  a* ac 
  

You might receive a message when you first install SQL Server 2008 R2 Express that says .NET
Framework 2.0 SP2 must be installed first. Although technically correct, the message is misleading
because there is no installation package for this version. The correct version is .NET Framework 3.5 SP1.

For the Windows Installer, the SQL Server Express installation looks for the minimum version of
4.5.6001.22159. You can see the minimum version on your computer by checking the product version of
msiexec.exe.

When you install SQL Server 2008 R2 Express with Tools, you might be confused by some of the
installation screens that say Express with Advanced Services. You can safely ignore those labels.

a*  a* c :
 

If you upgrade SQL Server 2008 R2 Express to SQL Server 2008 R2 Express with Tools or SQL Server 2008
R2 Express with Advanced Services, you will need to run the installation program twice. The feature
selections provided when you run the installation program are those that relate to the version currently
installed. After you update the version by running the installation program once, you will then have the
option to choose additional features the next time you run the installation program.

ac       '


Although database administrators must contend with just a small number of issues when upgrading
MSDE to SQL Server 2008 R2 Express, you must make sure to review and understand the following
upgrade issues and account for them in any MSDE upgrade plan3

{c Number of instances of MSDE


{c MSDE install method
{c MSDE language

aac   
   
The computer on which you intend to perform a database upgrade from MSDE to SQL Server 2008 R2
Express might have multiple instances of MSDE running and also might have instances from other
editions of SQL Server 2000. Each instance must be upgraded separately, and each instance might have
a different set of upgrade requirements. For example, the different instances might use different
languages or collation orders or be installed using a different installation method.

The first step in upgrading from MSDE to SQL Server 2008 R2 Express is determining the instances of
MSDE that are installed. Up to 50 instances of MSDE can be installed on a single system. To determine
the number of installed MSDE instances on your system, review the following registry key3
HKEY_LOCAL_MACHINE Software Microsoft Microsoft SQL Server InstalledInstances.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 260

ac  

 

The methodology used to install an MSDE instance affects the available upgrade method for the
instance of MSDE that is being upgraded.

{c   % If an MSDE instance was installed by using the MSDE setup program (such as an MSI
setup or the MSDE2000A.exe setup program), the SQL Server Express installation program will
detect the instance, and you will be able to perform the upgrade using the in-place upgrade
method.
{c % If an MSDE instance was installed by using an MSDE legacy installation
technology known as Merge Modules, the SQL Server Express installation program will not
detect the instance, and you will not be able to perform the upgrade using the in-place upgrade
method. When MSDE is installed using Merge Modules, MSDE is actually installed as part of
another application that uses MSDE and not installed using the MSDE standalone installer.

To determine if an MSDE instance has been installed with an MSI setup, go to Add or Remove
Programs in Control Panel. If the instance appears in the listing, it was installed with an MSI
setup. If it does not appear in the listing, it was installed as part of an application and should be
removed by that application͛s installer program.

M   Although an instance of MSDE installed using Merge Modules cannot be upgraded in-
place, its user databases can be upgraded individually.

ac    
The language of the MSDE installation determines the language of the SQL Server 2008 R2 edition you
are upgrading to. If you are performing an in-place upgrade by installing SQL Server Express on top of an
existing MSDE installation, the language of SQL Server Express must be the same as the language of the
MSDE installation or it must be set to English. SQL Server Express supports the same 12 languages that
MSDE does.

§  You can detach a user database from an MSDE instance and attach it to a SQL Server Express
instance installed with any language.

ac     
For MSDE installations that were installed by using the MSDE setup program (which creates an MSDE
entry in the Add/Remove Programs list), performing an in-place upgrade is the recommended upgrade
procedure. The in-place upgrade will automatically replace all the MSDE components and will also
automatically upgrade all user databases.

a*   ac 

 

To perform an in-place upgrade from MSDE to SQL Server 2008 R2 Express, use the following steps3

1.c      1 M  +%-% Windows Installer 4.5 is required by SQL Server
2008 R2 Express. You can download Windows Installer 4.5 from the Microsoft Download Center.
After you have downloaded and installed it, you will likely need to perform a system reboot.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 261

2.c      %§Ôë *#%-!%The .NET Framework 3.5 SP1, available for
download from the Microsoft Download Center, is a prerequisite forSQL Server 2008 R2 Express.
After downloading .NET Framework 3.5 SP1, install it by running the dotnetfx.exe program.
3.c    &"(()'"         ,   % SQL Server
Express is installed by running the executable (i.e., .exe) program for the package type you are
installing. The prerequisite Microsoft SQL Native Client and Microsoft SQL Server 2008 R2 Setup
Support files are installed, and the Setup program copies and installs all supporting files on the
target system.
4.c       *% The Setup program runs the system configuration
checks before the actual setup begins to verify that the system meets the minimum criteria for
installation and detects any pending reboot requirements.If your system fails the configuration
tests, click the failed link for more information and then take the required corrective action.
5.c         ë    %By default, several features are
turned off, so you must explicitly choose the components you want to install.
6.c             M  §  %The Setup program will
detect all instances of MSDE that were installed by using the MSI installation method, and by
default, Setup will select the default instance. If you want to upgrade an instance of MSDE that is
not the default instance, click Installed Instance and select the MSDE instance you want to
upgrade.
7.c                      
   % Generally, you will leave the default option of Windows Authentication.
8.c             (generally accept all defaults), and then click Install
on the Ready to Install dialog box. This will upgrade the specified instance of MSDE to SQL Server
2008 R2 Express.

a
c     
Although an in-place upgrade is the easiest method for upgrading from MSDE to SQL Server 2008 R2
Express, there are situations where performing an in-place upgrade is not possible. You cannot perform
an in-place upgrade when MSDE has been installed by using Merge Modules or if you want to change
languages or collation. In these cases, you must use a side-by-side upgrade method in which SQL Server
2008 R2 Express is installed at the same time as MSDE or in which the MSDE databases are detached,
the MSDE instance is uninstalled, a new copy of SQL Server 2008 R2 is installed, and the databases are
reattached to the new instance. This guide takes the second approach to show you how to move from
MSDE to SQL Server 2008 R2 Express.

Another important reason for performing a side-by-side upgrade is to enable you to fully test the
upgraded database without overwriting your current working database instance.

a*  " ac  



 

To upgrade from MSDE to SQL Server 2008 R2 Express when you cannot or do not want to perform an
in-place upgrade, use the following steps3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 262

1.c Log in to the SQL Server 2000 MSDE system as an administrator, and verify that the instance of
MSDE or SQL Server Express that you want to upgrade is running.
2.c Open a command prompt, and use sqlcmd/osql to connect to the instance you want to upgrade.
To connect to the local, default instance of MSDE using Windows Authentication, use the
following command3
c
©c&

cc1
c

To connect to a named instance, use the ʹS switch and specify the instance name, as shown in
the following command, to connect to the desired named instance3
c
©c&
c&c

   c

3.c List all the databases on the instance of MSDE by using the following commands at the osql
prompt3

c
 c

c c c 
 ©   c

c c c3c
 c c

This lists all the user databases on the instance of MSDE.


4.c Detach each of the user databases on the instance of MSDE by entering the following command
at the osql command prompt3
c

 c
4
c)  2) c*   ) *c
 c c

This takes each of the user databases offline. Replace the value of  À  with the
name of the databases that you want to move from MSDE to SQL Server Express. The databases
will later be attached to the new instance of SQL Server 2008 R2.
5.c Exit the osql utility by entering the following command at the osql command prompt3
c
 cc
6.c Shut down MSDE by opening the SQL Server Service Manager on the System Tray, and then in
the Services drop-down list, select the SQL Server service, click Stop, and then click Yes.

§  You can also use the Services application or the NET STOP command to stop the SQL
instance.

7.c Repeat Step 6 for the Distributed Transaction Coordinator and the SQL Server Agent services (if
they are running).
8.c Remove MSDE by using the Add/Remove Programs applet from the system͛s Control Panel,
selecting the entry named Microsoft SQL Server Desktop Engine, and clicking Remove.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 263

M   If MSDE was installed as part of another application, there will be no entry in the
Add/Remove programs list. In this case, remove MSDE using that application͛s installation
program.

§  This step can be skipped until a later time if you are installing SQL Server 2008 R2 to a
different instance name than the instance of MSDE being upgraded.

9.c Download and install Windows Installer 4.5, which is required by SQL Server Express. You can
download Windows Installer 4.5 from the Microsoft Download Center. After you have
downloaded and installed Windows Installer 4.5, you will likely require a system reboot.
10.cDownload and install .NET Framework 3.5 SP1, which is a prerequisite for SQL Server Express.
You can download it from the Microsoft Download Center. After downloading .NET Framework
3.5 SP1, install it by running the dotnetfx.exe program.
11.cInstall SQL Server Express by running the SQL Server Express executable program. Select the
appropriate installation options for the new instance you are installing, including the instance
name if you want to specify a name other than SQLEXPRESS, although the use of this name is
recommended.

M   The Setup program will change the name of a default instance to SQLEXPRESS rather
than the MSDE default of the host computer name. If you want the instance name to be the
name of the host computer, you must specify that name as the named instance name.

12.cAfter SQL Server Express is installed, start sqlcmd by opening a command prompt, typing the
following command, and then pressing Enter3

 c&
cc

This connects you to the local, default instance of SQL Server Express using Windows
Authentication. If you want to connect to a named instance, use the ʹS switch and specify the
instance name, as shown below, to connect to the desired named instance3

 c&
c&c

   c

13.cAttach each of the user databases that were detached from the MSDE instance by entering the
following command at the sqlcmd command prompt3

 c
4
c)  2) c*   *c$c* 
©
c
©©+cc


     )  )+  +*$c* 
©
c

©©+cc

     )© )+ *c
 c ©c

Replace the values of  À 2  and  À


2  with the names of
the database files from the user database that was detached from your previous MSDE
installation. This example shows the default installation path that was used by MSDE and likely
where your databases will have been located. If your installation used a custom path, you can
substitute the correct path value. Repeat for each detached user database.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 264

14.cExit the sqlcmd utility by typing  2 and pressing Enter.


15.cEnable any needed protocols.

The default installation for SQL Server Express enables shared memory, which enables local access only;
the named pipes and TCP/IP protocols are disabled. If your database installation requires network
access, open SQL Server Configuration Manager, open the SQL Server 2008 R2 Network Configuration
node, select Protocols for MSSQLSERVER, and then enable the required protocols by right-clicking the
protocol and selecting the Enable option from the context menu.

a c    


  
The previous sections in this chapter showed you how to upgrade MSDE to SQL Server 2008 R2 Express
by using the interactive setup program. The setup program is fine for upgrading a few systems, but using
the interactive upgrade process is not the most effective means of upgrading a large MSDE installation
base like you might find in an enterprise environment. To accommodate installing and upgrading large
numbers of systems, the SQL Server Express setup process is entirely scriptable. You can run
SQLEXPR_x86_ENU.EXE (or the version you have downloaded) from the command line, as part of a
command shell script, or from another program to perform new installations of SQL Server Express or to
upgrade existing MSDE installations.

Table 10-8 shows the common parameters that might be passed to the setup program.

Ô !( )
          
Parameter Usage
/q Quiet install
/ACTION=Upgrade Install, Upgrade, or Uninstall
/FEATURES=SQL,Tools Select the features that need to be installed.
/INSTANCENAME=MSSQLSERVER Select the instance name to be upgraded.
/SECURITYMODE=SQL Is SQL Authentication to be enabled?
/SAPWD="StrongPassword" If sa is to be enabled, it should have a strong
password.
/SQLSVCACCOUNT="DomainName UserName" Which account will SQL Server run as?
/SQLSVCPASSWORD="StrongPassword" What password is needed for that account?

For more information about how to set up SQL Server Express from the command line, see How to3
Install SQL Server 2008 R2 from the Command Promptin SQL Server 2008 R2 Books Online.

a
c      
"
a
ac     
To perform an in-place upgrade from SQL Server 2005 Express to SQL Server 2008 R2 Express, take the
following steps3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 265

1.c      1 M  +%-% Windows Installer 4.5 is required by SQL Server
2008 R2 Express and can be downloaded from the Microsoft Download Center. After you have
downloaded and installed it, you will likely need to perform a system reboot.
2.c      %§Ôë *#%-!, which is a prerequisite forSQL Server 2008 R2
Express. You can download it from the Microsoft Download Center and then install it by running
the dotnetfx.exe program.
3.c    &"(()'"         ,   %SQL Server
2008 R2 Express is installed by running the executable (i.e., .exe) program for the package type
you are installing.
4.c             (generally accept all defaults), and then click Install
on the Ready to Install dialog box. This will upgrade the specified instance of SQL Server 2005
Express to SQL Server 2008 R2 Express.

a
c     
To upgrade from SQL Server 2005 Express when you cannot or do not want to perform an in-place
upgrade, use the following steps if you have the SQL Server Express Management Tools installed;
otherwise, perform the detach/attach operations as per the MSDE upgrade instructions described
earlier in this chapter.

1.c Log in to the SQL Server 2005 Express system as an administrator, and verify that the instance of
SQL Server Express that you want to upgrade is running.
2.c Connect to the SQL Server 2005 Express system by using SQL Server Management Studio
(SSMS), Express, or other edition.
3.c Detach each of the user databases by right-clicking the name of the database and selecting the
Detach option. (Note that you could also have done this via a backup and restore option instead,
but detach/attach is generally easier.)
4.c Shut down SQL Server 2005 Express by opening the SQL Server Configuration Manager and
stopping the SQL Server services.
5.c Repeat Step 4 for the Distributed Transaction Coordinator and the SQL Server Agent services (if
they are running).
6.c Remove SQL Server Express by using the Add/Remove Programs applet from the system͛s
Control Panel. Note that you can skip this step until later if you are installing SQL Server 2008 R2
to a different instance name than the instance of SQL Server 2005 Express being upgraded.
7.c Download and install Windows Installer 4.5, which is required by SQL Server 2008 R2 Express.
You can download it from the Microsoft Download Center. After you have downloaded and
installed Windows Installer 4.5, you will likely need to reboot your system.
8.c Download and install .NET Framework 3.5 SP1, which is also a prerequisite for SQL Server 2008
R2 Express. You can also download it from the Microsoft Download Center. After
downloading.NET Framework 3.5 SP1, install it by running the dotnetfx.exe program.
9.c Install SQL Server 2008 R2 Express by running the SQL Server Express executable program.Select
the appropriate installation options for the new instance you are installing, including the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 266

instance name if you want to specify a name other than SQLEXPRESS, although the use of this
name is recommended.

M   The Setup program will change the name of a default instance to SQLEXPRESSrather
than the MSDE default of the host computer name. If you want the instance name to be the
name of the host computer, you must specify that name as the named instance name.

10.cAfter SQL Server 2008 R2 Express is installed, connect to it using SSMS (Express or other
edition).
11.cAttach each of the user databases that were detached from the SQL Server 2005 Express
instance by right-clicking the Databases node in Object Explorer and choosing the Attach
Database option. (As noted earlier, you could alternatively restore the databases at this point if
you used the backup/restore option instead of detach/attach.)
12.cEnable any needed protocols.

The default installation for SQL Server 2008 R2 Express enables shared memory, which enables local
access only; the named pipes and TCP/IP protocols are disabled. If your database installation requires
network access, open SQL Server Configuration Manager, open the SQL Server 2008 R2 Network
Configuration node, select Protocols for MSSQLSERVER, and then enable the required protocols by right-
clicking the protocol and selecting the Enable option from the context menu.

a c
  Ô 
You should verify the SQL Server 2008 R2 Express installation by performing the following post-upgrade
steps3

1.c Use Configuration Manager to verify that the upgraded instance is running. To start
Configuration Manager, double-click SQL Server Configuration Manager under Configuration
Tools in the Microsoft SQL Server 2008 R2 program group.
2.c Within SQL Server Configuration Manager, open the SQL Server 2008 R2 Services node and
check for an upgraded instance entry to verify that it has a status of running. If the SQL Server
service is not running, you can manually attempt to start it by right-clicking the entry and
selecting Start from the context menu. If the service will not start, the installation was not
successful and will need to be redone.

§  When you are upgrading instances of SQL Server 2005 Express that support connections from
networked users, it is important to know that SQL Server 2008 R2 Express, by default, disables all
remote connections. If you need to enable remote connections to SQL Server Express, open SQL
Server Configuration Manager, expand the SQL Server 2008 R2 Network Configuration node, select
Protocols for MSSQLSERVER, and then enable the required protocols by right-clicking the protocol
and selecting the Enable option from the context menu.

a c  


 $
 
     
Although the core database capabilities of MSDE and SQL Server 2008 R2 Express are similar, the feature
sets and limitations are different. These differences or projected requirements for features outside the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 267

SQL Server 2008 R2 Express feature set could cause you to select a different edition of SQL Server 2008
R2 to upgrade to.

Table 10-9 compares features between MSDE and the SQL Server 2008 R2 Express, Workgroup, and
Standard editions.

Ô !( =
   &"(()'"5 1*      
ë   &"(() &"(() &"(()
'"5  '"1*  '"  
 5§ 16 16 16 16
M  
 5§ 2 1 2 4

 5' 2 GB 1 GB 3 GB No Limit
 5  6 2 GB 10 GB No Limit No Limit
1* 8  Yes No No No
?
    No Yes Yes Yes
&  Yes No Yes Yes
Ô'  Yes Yes (Web Yes (Web Yes
download) download)
'     Yes No Yes Yes
   ë  No No No Yes
.    

   /
dMë  No No No Yes
.  M   
/
'   No Yes Yes Yes
d* No Client-only Yes Yes
ë Ô5   No Yes Yes Yes

a ac  


      
Upgrading to SQL Server 2008 R2 Workgroup might be a compelling option for the following three
scenarios.

a* 2 a ac # 
# 4  
$ 

) ' 
  

()
 ' 
**+
#
:;  

MSDE supports up to 2 GB of RAM and two processors, while SQL Server Express supports only 1 GB of
RAM and a single processor. Although rare, some MSDE applications need more that 1 GB of RAM. If this
is your case, you should consider upgrading to SQL Server 2008 R2 Workgroup.

To quickly check MSDE RAM usage, follow these steps3

1.c Press Ctl-Alt-Del.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 268

2.c Open Task Manager.


3.c Check the Mem Usage column for the sqlservr.exe process.

a* 2 a c  
# 4  
$ 

) ' 
  

()
 ' 
**+
#
:;  

Although MSDE supports two processors compared to SQL Server Express͛s single processor, it is
unlikely that this would necessitate a move to SQL Server 2008 R2 Workgroup. In most cases, it would
be more cost-effective to upgrade to a higher performance processor. SQL Server Express supports
multicore processors and can be installed on any server, but each installation of SQL Server Express can
access only one physical processor.

a* 2 a c i
# 4
()
 ' 









# 
 

Application requirements for SQL Server Agent or for the instance to act as a replication Publisher might
affect your decision about which edition of SQL Server 2008 R2 to upgrade to.

{c  ʹ Supplies SQL Server Agent. An instance of MSDE can act as a replication Publisher.
{c &5  ʹ Does not supply SQL Server Agent. An instance of SQL Server Express can
act only as a replication Subscriber.

If your application requires SQL Server Agent, you can use the Windows Task Scheduler to schedule jobs
and database tasks. You might also consider upgrading to SQL Server 2008 R2 Workgroup.

SQL Server 2008 R2 Express does not support using your SQL Server Express instance as a replication
Publisher to other SQL Server Express databases. You would need to consider upgrading to SQL Server
2008 R2 Workgroup.

a c  


     
  

The primary reason you would consider upgrading from MSDE to SQL Server 2008 R2 Standard is that
you predict your future application requirements will exceed the capabilities or feature set available in
SQL Server Express or Workgroup. This upgrade scenario would be based on projections that your future
database requirements could exceed 3 GB of RAM, that you will need a database size larger than 4 GB,
or that you need the high availability or business intelligence (BI) features in SQL Server 2008 R2
Standard.

§ If you need enterprise features such as data compression, Resource Governor, or table
partitioning, you will need to upgrade to SQL Server 2008 R2 Enterprise.

acî  
SQL Server 2008 R2 Express is the ideal upgrade path for most existing SQL Server 2000 MSDE and SQL
Server 2005 Express database management systems. The upgrade from SQL Server 2005 Express is
straightforward, and there are only a few issues to review and prepare for before upgrading from MSDE.
But make sure you understand these upgrade issues before making your move to ensure a smooth and
successful upgrade.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 269

acx
   
For an up-to-date collection of additional references for upgrading to SQL Server 2008 R2 Express, see
the following links3
{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 270

aacx    

aaac


SQL Server Analysis Services (SSAS) provides a powerful multidimensional Database Engine for building
sophisticated OLAP and data mining solutions. Its ability to handle various data warehouse designs,
efficiently store and index large amounts of data, quickly perform complex calculations, and
economically manage data caching structures gives it power beyond most other multidimensional
solutions on the market today. Because SSAS is included with SQL Server and is covered by the same
license, many organizations have implemented SSAS to resolve their multidimensional and OLAP
reporting challenges.

With SSAS 2000, Microsoft introduced many new features and capabilities to increase the functionality
of its first release (OLAP Services 7.0). Features such as distinct count measures, parent/child
dimensions, improved aggregation design, and data mining capabilities increased the value of SSAS 2000
and made its adoption rate among organizations higher than any other multidimensional Database
Engine.

With SSAS 2005, Microsoft worked hard to further increase the value of SSAS by adding breakthrough
capabilities to expand the number and kinds of solutions the platform could be used to develop and
support. Changes in the underlying architecture of the product provided increased scalability, a unified
model for supporting OLAP and traditional reporting needs, significant improvements in the
development and administration of a given solution, and new Key Performance Indicator (KPI) and data
mining features.

The release of SSAS 2008 expanded the value of SSAS again by adding capabilities to cover even more
business scenarios, such as improved time series forecasts, and to guide OLAP developers toward
producing more efficient and effective solutions. Developer guidance comes in the form of significantly
reworked wizards that streamline and simplify how to create objects while enforcing best practices
learned from customer implementations of SQL Server 2005. The design tools present real-time
feedback to notify the developer of deviations from best practices. New in SSAS 2008 are graphical tools
to help developers build attribute relationships and examine, create, modify, and remove aggregations.
New capabilities in this release include improved query performance in many cases and additional data
mining models.

Although SQL Server 2008 R2 is considered a business intelligence (BI) releaseͶwith the introduction of
PowerPivot, StreamInsight, Master Data Services, and Parallel Data WarehouseͶthe focus is not on
SSAS specifically. Thus, there are not a lot of new SSAS features in SQL Server 2008 R2 compared to SQL
Server 2008. In this chapter, we cover upgrade paths for the SSAS Unified Dimensional Model (UDM)
from SSAS 2000 and SSAS 2005 to SSAS 2008 R2.

For information about how to upgrade data mining models, see Chapter 12, ͞Data Mining.͟

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 271

aac 
  
aaac            
You can upgrade SSAS 2000 to SSAS 2008 R2 in one of two ways3 by an in-place upgrade or a side-by-
side upgrade. For SSAS 2005, only an in-place upgrade is supported. Let͛s look at each of these in turn.

aa  a ac 


With an in-place upgrade, the SSAS 2000 engine and associated tools are removed and replaced by SSAS
2008 R2. During the upgrade process, the SSAS 2000 database metadata is moved to SSAS 2008 R2, and
the upgraded databases must be fully reprocessed to populate them with data. But for updates from
SSAS 2005, no database reprocessing is required. Because of functionality and feature changes with
SSAS 2008 R2, databases upgraded from SSAS 2000 might require modification before users can access
the BI data through the upgraded database, although this is not the case for SSAS 2005 databases.

After the in-place upgrade is complete, only SSAS 2008 R2 will remain.An in-place upgrade is an all-or-
nothing approach; if an in-place upgrade fails, you must roll back to an earlier version (there is a go/no-
go point in the Setup program before which you can cancel the upgrade). To roll back to SSAS 2000 after
an upgrade to SSAS 2008 R2 is complete, you can reinstall SSAS 2000 and restore the SSAS databases. To
roll back to SSAS 2005 after an upgrade to SSAS, you have to uninstall SSAS 2008 R2, restart, reinstall
SSAS 2005, and restore the SSAS databases. Downtime because of upgrade problems can be significant
and backups of the SSAS 2000 or SSAS 2005 databases are critical.

aa  a c  


With a side-by-side upgrade, you install an instance of SSAS 2008 R2 alongside SSAS 2000, which
remains until uninstalled. During the upgrade process, users can continue to access the databases in
SSAS 2000, which is unaffected by the upgrade process. After a side-by-side upgrade is complete, both
SSAS 2000 and SSAS 2008 R2 are installed. You can move and test database metadata without affecting
the SSAS 2000 installation. After SSAS 2008 R2 is fully tested, SSAS 2000 can be uninstalled.

§ With a side-by-side upgrade, you can either use the existing server environment for the
new installation or install SSAS 2008 R2 on a new server.
M  The side-by-side upgrade option provides for greater availability during the upgrade
process, simplifies rollback (should that be required), and results in simpler testing scenarios
because both versions are available at the same time.

Both upgrade options will result in SSAS 2008 R2 versions of the databases from a given instance of SSAS
2000 or SSAS 2005. However, considering the new features and advances that SSAS 2008 R2 provides,
you should consider redesigning SSAS 2000 databases to take advantage of the new platform.

aac 
    
 

     
Regardless of whether you decide to perform an in-place upgrade or a side-by-side upgrade of SSAS
2000 or SSAS 2005 to SSAS 2008 R2, there are a range of potential issues that you might face during an
upgrade. To obtain a report that identifies many of these potential issues before you start an upgrade,

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 272

you should run the Microsoft SQL Server 2008 R2 Upgrade Advisor to analyze the databases on an
existing instance of SSAS 2000 or SSAS 2005.

The Upgrade Advisor helps you determine whether you will encounter any of these issues during an
upgrade. If the Upgrade Advisor reports any of these issues, follow its recommendations and guidance
for possible mitigation options and strategies. For more information about how to install and run this
tool, see Chapter 1, ͞Upgrade Planning and Deployment.͟ There is also a category of issues that either
cannot be detected by the Upgrade Advisor or whose detection would result in too many false-positive
results.

The following sections discuss the most important upgrade issues, whether detected by the Upgrade
Advisor or not. For a complete list of backward-compatibility issues, breaking changes, and behavior
changes to SSAS 2008 R2, seeSQL Server Analysis Services Backward Compatibilityin SQL Server 2008R2
Books Online.

aac   
   
Generally, invalid objects in a database will prevent it from being upgraded. Note, however, that the
problem of invalid objects applies only to SSAS 2000 because no objects were invalidated between SSAS
2005 and SSAS 2008 R2. Therefore, before you start an upgrade process, ensure that all the objects in
each database on a server are valid and can be processed and queried.

aac 
 

Table 11-1 describes the most common SSAS objects and settings that are deprecated in SQL Server
2008 R2, which means that they will not be supported in future releases of SQL Server.

Ô !! !  63    


  ë 4ë    
 
InsertInto (Connection string property) Original connection string syntax for populating local cubes.
CreateCube (Connection string property) Original connection string syntax for populating local cubes.
Not supported in ADOMD.NET.
SQL Server 2000 Predictive Model This feature was replaced with standard PMML.
Markup Language (PMML)
Create Action Extended syntax is supported, but English statements
cannot create new kinds of actions. DDL should be used
instead.
CalculationPassValue
CalculationCurrentPass
NON_EMPTY_BEHAVIOR query optimizer By default, the NON_EMPTY_BEHAVIOR query optimizer
hint turned on by default hint will be turned off in a future release. It is an MDX
optimization hint that can produce incorrect results when it
is not used correctly.
CELL_EVALUATION_LIST intrinsic cell Blank in SSAS.
property

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 273

  ë 4ë    


 
COM assemblies COM assemblies might pose a security risk.

For more information about deprecated features in SSAS 2008 R2, see Deprecated Analysis Services
Functionality in SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

aa
c  
   
 

Some objects and settings in an SSAS 2000 database cannot be directly upgraded to SSAS 2008 R2,
although SSAS 2005 does not have this problem. The SSAS 2000 issues are typically due to architectural
changes or feature changes that prevent a direct mapping of objects and settings to the new version of
the platform. In some cases, these objects and settings are upgraded to replacement features that
accomplish the same result; in other cases, replacement objects and features can be added to the
resulting databases after an upgrade is complete. Before you start an upgrade process, develop a
strategy for handling these kinds of issues.

Table 11-2 describes the most common objects and settings that cannot be upgraded to SSAS 2008 R2
because of discontinued or changed functionality.

Ô !! "  63    


  ë 4ë     5   4'   ë 4
   
Connection string properties3 Mining Accepted for backward compatibility, but is ignored. Execution is
Execution Location always on the server.
Connection string properties3 Mining
Location
Connection string properties3 Log The Log File feature is replaced by the Trace feature.
File
Connection string properties3
Execution location
Connection string properties3
Distinct Measures by Key
Connection string properties3 Large
Level Threshold
Aggregated providers This feature is replaced by plug-in algorithms.
Linked cubes This feature is replaced by linked measure groups.
Custom level formulas This feature is replaced by MDX scripts.
Cube and database role commands No longer supported.
CreateVirtualDimension
CreatePropertySet
Ignore In SSAS 2000, this function was reserved for future use.
Active Directory registration

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 274

  ë 4ë     5   4'   ë 4


   
Skipped levels in parent-child The SkippedLevelsColumn property, which indicates how many
hierarchies levels to skip when you create a member under a parent in a
parent-child hierarchy, is no longer supported.
Surface Area Configuration Tool

For more information about discontinued features in SSAS 2008 R2, see Discontinued Analysis Services
Functionality in SQL Server 2008 R2in SQL Server 2008R2 Books Online.

aa c   î 


There are many changes between SSAS 2000 and SSAS 2008 R2 that are significant and result in breaking
changes. These changes were actually introduced in SSAS 2005, and SSAS 2008 R2 merely behaves in the
same manner. Table 11-3 covers these changes.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 275

Ô !! #d * 
 d  "((( "(()'"
d * 
    4'   
An object that depends on a Linked cubes and linked dimensions are not upgraded by the Upgrade
linked object is not Advisor in SSAS 2008 R2. Therefore, objects that refer to a linked cube or
upgraded. a linked dimension cannot be upgraded because the linked object on
which the object is based cannot be upgraded. For example, an OLAP
mining model that is based on a linked cube cannot be upgraded
because the linked cube on which the mining model is based cannot be
upgraded.
Autoexist can produce When multiple hierarchies or virtual dimensions are upgraded from SSAS
different query results when 2000 into the same SSAS 2008 R2 dimension, querying the upgraded
multiple hierarchies are hierarchies that the dimension contains might produce different results
upgraded into the same than querying the same hierarchies in SSAS 2000. This is because
dimension. autoexist functionality automatically removes tuples that do not exist in
the dimension from any cross-join of sets that contains members from
the upgraded hierarchies. To resolve this issue, you should review
calculations that involve multiple hierarchies in the same dimension.
Browsing experience is Since SSAS 2005, hidden or disabled levels in hierarchies are no longer
different when disabled supported. Hidden or disabled levels are upgraded as visible levels.
levels are used. Calculations that involve hierarchies that contain such levels might
return unexpected results. After you upgrade, review and verify
calculations that involve hierarchies that previously contained hidden or
disabled levels.
Bucketing might be different Since SSAS 2005, automatic grouping might return a different set of
for grouping levels. member groups. Calculations that rely on these member groups might
return unexpected results. After you upgrade, review and verify
calculations that rely on member groups.
Conversion from neutral In SSAS 2000 and earlier versions, SSAS used only neutral language
language to specific identifiers, also known as primary language identifiersͶfor example,
language might produce LANG_ENGLISH (0x09) for English and LANG_CHINESE (0x04) for Chinese.
unexpected results. To support translation and collation options, SSAS now uses specific
language identifiers, which are a combination of a primary language
identifier and a sublanguage identifier for a specific culture. For example,
the combination of the primary language identifier LANG_ENGLISH
(0x09) and the sublanguage identifier SUBLANG_ENGLISH_AUS (0x03)
describes Australian English.
Upgrading from neutral to specific language identifiers can change the
expected translation and collation behavior and can produce unexpected
results. After you upgrade, review and validate objects such as
dimensions, hierarchies, and members for which the language identifier
has changed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 276

d * 
    4'   
Cube role commands are not SSAS 2008 R2 does not support command objects on cube roles and will
supported. not upgrade commands from earlier versions.
Custom level formulas If a cube contains a dimension with custom level formulas, and also
aggregate differently. contains dimensions both before and after the dimension with custom
member formulas or unary operators, the cube might return different
results than earlier versions of SSAS. This occurs because calculation
precedence rules have changed.
Custom member formulas In earlier SSAS versions, the following properties are supported on
and custom rollup formulas dimensions and levels3 custom rollup formulas, custom member
are upgraded into formulas, all member formulas, and custom level formulas. In SSAS 2005,
Multidimensional these properties were replaced by functionality supported in MDX scripts
Expressions (MDX) script. and are upgraded to MDX scripts during the upgrade process.
Custom aggregations are not Aggregations that were manually generated in earlier versions of SSAS
upgraded. are not upgraded in SSAS 2008 R2. Only aggregations generated by the
Storage Design Wizard are upgraded. To resolve this issue, manually
create the aggregations by using XML for Analysis (XMLA) scripts.
Data members always exist Earlier versions of SSAS gave you the option of excluding data members
in parent-child dimensions. in parent-child dimensions. The DataMembers property of a dimension
in earlier versions of SSAS supported three options3 None, Hidden, or
Visible. The None option is not available in SSAS 2005, SSAS 2008, or
SSAS 2008 R2. Data members are always included in parent attributes.
To hide the data members in parent-child dimensions, you can set the
DataMembers property of a dimension to Hidden. The
MembersWithData property for the parent attribute supports only two
options3 NonLeafDataHidden or NonLeafDataVisible.
Database role commands SSAS 2008 R2 does not support command objects on database roles and
are not supported. will not upgrade commands from earlier versions of SSAS.
DefaultMember is upgraded In earlier versions of SSAS, the default member of a dimension is
into MDX script. specified by an MDX expression, which is contained in the
DefaultMember property of the dimension. In SSAS 2005, this property
was replaced by functionality supported in MDX scripts, and the property
is upgraded to an MDX script.
Dimension and hierarchy Dimension hierarchies in SSAS 2000 are internally represented as
renaming by the upgrade separate dimensions, and a naming convention is used to identify them.
process might cause Upgrading to SSAS 2008 R2 might create a separate dimension with a
different query results. new name for each dimension hierarchy instead of combining the
dimension hierarchies together under the parent dimension because
auto-exist results in different security rules than would apply in earlier
versions of SSAS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 277

d * 
    4'   
Drillthrough report settings Although drillthrough reports exist in SSAS 2008 R2, drillthrough report
are not upgraded. settings are not upgraded from earlier versions of SSAS.
Linked cubes are not Earlier versions of SSAS supported linked cubes. In SSAS 2005, this
upgraded. feature was replaced by linked dimensions and linked measure groups.
Member unique names SSAS tries to preserve the unique names of members during the
might change during upgrade, but there are certain circumstances in which the unique name
upgrade. for a member is changed. If member unique names change, client
applications, MDX expressions, and other properties that depend on
member unique names might produce unexpected results.
ODBC data sources are not Earlier versions of SSAS let you use ODBC data sources, but this
supported. functionality is no longer supported.
Remote partitions are not Remote partitions are not upgraded from SSAS 2000 to SSAS 2008 R2.
upgraded. Upgrade the server to SSAS 2008 R2, and then manually create the
remote partitions.
Some mining model Earlier SSAS versions support using the MINIMUM_LEAF_CASES
algorithm parameters are parameter with the Microsoft Decision Trees algorithm, and the
not supported. MINIMUM_CLUSTER_CASES parameter with the Microsoft Clustering
algorithm. Beginning with SSAS 2005, both parameters were renamed to
MINIMUM_SUPPORT. If these parameters were used in mining models
that were created by using earlier SSAS versions, the parameters are not
upgraded.
The CREATE KPI command A new keyword, KPI, was introduced to the CREATE KPI command. If
introduces a new keyword. existing objects have the name KPI, the new keyword will conflict with
them.
Top Level for dimension In earlier SSAS versions, you could specify dimension security so that a
security is not supported. user saw a top level that was different from the top level of the
hierarchy. However, members that are secured using the Top Level
setting will be visible after the upgrade.

Microsoft tried to avoid breaking changes between SSAS 2005 and SSAS 2008/2008 R2. However, there
are a few issues that cause breaking changes between the two versions. Table 11-4 lists these changes.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 278

Ô !! +d * 
 d  "((- "(()'"
d * 
    
ë 4ë    
Visual Basic for Applications In SSAS 2005, VBA functions return 0 or an empty string when either null
(VBA) functions handle null values or empty values are used as arguments. In SSAS 2008 R2, they
values and empty values return null.
differently than in SSAS
2005.
The Analysis Services By default, SSAS 2008 R2 does not install the DSO backward-
Migration Wizard will fail compatibility component. The backward-compatibility package is
because Decision Support installed by default, but the DSO component of the package will be
Objects (DSO) is not installed disabled. Because the SSAS Migration Wizard relies on this component, it
by default. will fail unless the component is installed. To install the DSO component,
do the following3
{c Open Control Panel.
{c In Windows XP or Windows Server 2003, select Add or Remove
Programs. In Windows Vista and Windows Server 2008, select
Programs and Features.
{c Right-click Microsoft SQL Server 2005 Backward Compatibility
and select Change.
{c In the Backward Compatibility Setup wizard, click Next.
{c On the Program Maintenance page, select Modify, and then click
Next.
{c On the Feature Selection page, if DSO is not available, click the
down arrow and select 2À  22 À 

 
 2. Click Next.
{c On the Ready to Modify the Program page, click Install.
{c When installation is complete, click Finish.
You can remove DSO after the upgrade is complete by following the
previous steps and changing the option for DSO to 2À  2

2.

If the backward-compatibility package is not installed, you can download


it from the Feature Pack for Microsoft SQL Server 2005 ʹ November 2005
site. Be aware that there is apackage version for each target architecture
(that is, x86, x64, and IA-64).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 279

d * 
    
ë 4ë    
We do not recommend that The server manages the Data folder and creates or drops folders as
you put the partition objects are created, deleted, and altered. Therefore, specifying a
location in the Data folder. partition storage location inside the Data folder is strongly discouraged,
especially in the subfolders for databases, cubes, and dimensions.
Although the server lets you do this with CREATE or ALTER, it will display
a warning. When you upgrade databases from SSAS 2005 to SSAS 2008
R2 that have partition storage locations in the Data folder, it will work.
You might get unexpected ProClarity Analytics Server and PPS 2007 use the EXISTING keyword in
results for queries that use MDX incorrectly in certain scenarios. Because of changes in SSAS 2008
the EXISTING MDX keyword R2, these queries might return unexpected results.
in ProClarity Analytics Server
and Microsoft Office
PerformancePoint Server
2007 (PPS).

For more information about breaking changes in SSAS 2008 R2, see Breaking Changes to Analysis
Services Features in SQL Server 2008 R2 in SQL Server 2008R2 Books Online.

aa c   î 


In some cases, upgraded databases will behave differently in SSAS 2008 R2 than they did in SSAS 2000.
This is typically due to architectural changes or feature changes in the new version of the platform. In
some cases, these behavioral changes will not cause problems when querying the databases. If query
problems do arise, the behavioral changes can usually be resolved by making changes to the design of
the upgraded databases. Before you start an upgrade process, understand what implications, if any,
these issues might have on databases involved in the upgrade.Table 11-5 discusses the most important
of these changes.

Ô !! -d 


 d  "((( "(()'"
"(((d  "(()'"d 
Function3 CreateVirtualDimension Expression will return Error.
Function3 CreatePropertySet Expression will return Error.
Supports the option to specify dimension Top Level for dimension security is not supported.
security so that a user can view a top level that Members that are secured by using the Top Level
differs from the top level of the hierarchy. setting will be visible after the upgrade.
AutoCommit and AutoRollback in update Tries to commit a non-existing transaction. In SSAS
2000, the UPDATE statement created its own
transaction. In SSAS 2008 R2, it does not.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 280

For more information about breaking changes in SSAS 2008 R2, see Behavior Changes to Analysis
Services Features in SQL Server 2008 R2 in SQL Server 2008R2 Books Online.

aac  
î 

SSAS 2005, SSAS 2008, and SSAS 2008 R2 are available for 64-bit and 32-bit hardware platforms. You
should perform an in-place upgrade using the same platform edition you already have installed.
Therefore, the 64-bit edition of SSAS 2005 for the Itanium platform should be upgraded to the same
edition of SSAS 2008 R2.

SSAS 2000 is available in 64-bit only on the IA-64 platform. When you perform a side-by-side upgrade
using two servers, you can upgrade from one hardware platform edition to another. For example, you
can upgrade the 64-bit edition of SSAS 2000 for the Itanium platform to the 64-bit edition of SSAS 2008
R2 for the x64 platform. Because there is no version of Decision Support Objects (DSO) on IA-64, you
should run the Migration Wizard from a 32-bit computer to upgrade the databases.

If you want to upgrade from the 32-bit edition of SSAS 2000 or SSAS 2005 to the 64-bit edition of SSAS
2008 R2 for the Itanium platform, be aware that Business Intelligence Development Studio (BIDS) is not
available for the Itanium platform. Therefore, all development tasks related to SSAS 2008 R2 for the
Itanium platform must be done from another client or server that has BIDS loaded.

aac      


It is important to realize that the upgrade from SSAS 2000 to SSAS 2008 R2 is almost identical to the
upgrade from SSAS 2000 to SSAS 2005 or SSAS 2008. Therefore, this section covers the basics of the
upgrade and highlights any differences between upgrading to SSAS 2005 versus SSAS 2008 R2. You can
find more information about this process in the SQL Server 2005 Upgrade Technical Reference Guide
and SQL Server 2008 Upgrade Technical Reference Guide.

As with any upgrade, one of the most important steps in the process is effective preparation. Preparing
for an upgrade should include two important steps3 checking for possible upgrade issues and planning
for a failed upgrade. The tables in the ͞Preparing to Upgrade͟ section earlier in this chapter list the
known issues that might affect a given upgrade process. Although most of these issues will not prevent a
given upgrade from completing, some might require design changes after the upgrade to provide the
same user experience. Before you attempt an upgrade, review these tables, and determine whether any
of the listed issues will affect the upgrade results.

As stressed throughout this guide, run the Upgrade Advisor to analyze the instance of SSAS, and then
review the generated report to verify that you have addressed all issues that must be resolved before
the upgrade and that you understand the upgrade issues that you must resolve after Setup is complete.
Chapter 1, ͞Upgrade Planning and Deployment,͟ also covers running other tools to help with an
upgrade͛s preparation and post-upgrade tasks, including the Best Practices Analyzer (BPA).

Before you start an in-place upgrade, ensure that a failed upgrade can be rolled back. Although the in-
place upgrade process should handle most situations, unforeseen problems might occur and result in a

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 281

failed upgrade. In extreme cases, a failed upgrade could even result in an unusable SSAS 2000
installation. Therefore, planning for a failed upgrade process is important.

M  3 With an in-place upgrade for SQL Server 2005, the upgrade process handles all aspects of
the upgrade, automatically upgrading the metadata for each database found inSSAS 2005. However
for SQL Server 2000, the upgrade process will not automatically reprocess the upgraded databases.
Each database must be fully processed after the upgrade to ensure users can access the data that is
contained in each database.
If a failed upgrade occurs, frequently the easiest resolution is to reinstall SSAS 2000 and restore the
installation to its state before the upgrade process was started. To ensure that all the data and
configuration information that is needed to restore the existing installation is available, follow these
steps before the upgrade process starts3

1.c Back up the registry information related to SSAS 2000. Using Registry Editor, export the
following registry key to a file3
My Computer HKEY_LOCAL_MACHINE SOFTWARE Microsoft OLAP Server
2.c Back up all databases by using the archive command in Analysis Manager. Open Analysis
Manager, right-click each OLAP database listed, and then click Archive Database. Provide a
unique filename for each .cab file that is created.
3.c Back up the SSAS 2000 repository. This is either an Access database named msmdrep.mdb and
located in Program Files OLAP Services Bin or a SQL Server database.
We recommend that you put all files that are generated by the previous steps in a single directory on a
network share for safe-keeping during the upgrade process.

aaac     
To start an upgrade, start the Setup application for SQL Server 2008 R2. Select Installation and then
› 

   
   

   . The Setup program will run a
system configuration check, collect system information, and prompt for a product key. After it installs
some prerequisites, the Setup application will then prompt for the kind of installation to be performed.

§  If you plan to keep the Foodmart 2000 cube after an upgrade, see the ͞About the Foodmart
Sample Database͟ section in this chapter before you start the upgrade.
After you decide to upgrade from SQL Server 2000 or SQL Server 2005, the Setup program asks for a
product key, prompts for the acceptance of the license file, and then installs setup support files. After
the setup support files are finished, the setup support rules are checked. The next screen prompts you
to select the instance to be upgraded, as shown inFigure 11-1.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 282

ë!! !Select the instance of SQL Server 2000/2005/2008 to upgrade

Next is the Feature Selection page, which lets you select the features that you want to install. Frequently
when you run Setup and perform an upgrade, you see that all components are selected and no changes
can be made.

If you cannot select different options, you will need to run Setup again to add features. For example, if
Business Intelligence Development Studio is not already installed on the server but will be needed in the
future, a second run of the Setup application will be required. After you select the components to install,
the Setup application prompts for an instance name for the newly installed SQL Server 2008 R2
components. To upgrade an existing installation of SSAS 2000, leave the InstanceID the same and
continue. The Setup application should detect any running services based on which components were
selected for installation. Ensure that the existing installation of SSAS 2000 is selected and continue.

The next screen, Disk Space Requirement, confirms that sufficient disk space exists on the target drives
to install the selected components.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 283

The Setup application will automatically install a new service called the SQL Server Browser service. The
SQL Server Browser service listens for incoming requests for SQL Server resources and provides
information about SQL Server instances installed on a server.

By default, the Setup application will try to use an account that has minimal permissions for the SQL
Server Browser service. On some older versions of Windows, the wizard will prompt for what credentials
to use for the newly installed service. The credentials can be specified by using a built-in system account
or a domain user account. The setting should be based on what security policies are defined for
standard Windows services in your organization; if no standard security policies are defined, the service
account credentials should be set using either the Local Service built-in account or a domain user
account.

The newly installed SSAS 2008 R2 service will be configured to use the same service account credentials
the existing SSAS 2000 service is currently using. If the credentials need to be changed, you can use the
SQL Server Configuration Manager to do this after the upgrade process is complete.

The Setup application will prompt the user to turn on Error and Usage Reporting. These are optional
settings and are off by default. Enabling them means the server might try to send data to Microsoft on
an as-needed basis.

The Setup application then checks a series of upgrade rules. You should examine any failures in the rules
and address as necessary. Figure 11-2 shows the results of these rules, and because there are no
failures, installation can continue.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 284

ë!! " Upgrade rules


When the Setup application is ready to continue with the upgrade, it will display a summary of actions
that it will take. Ensure that the action to be taken is ͞upgrade,͟ and then continue.

Clicking the Upgrade button will start the upgrade. During the upgrade, an Upgrade Progress status
screen will show status information about the various steps taken by the Setup application. When the
upgrade process is complete, you will see a screen that shows the steps taken together with a success or
failure message. A final screen will provide a summary of the installation along with any notes that are
relevant to the upgrade process.

After the upgrade has finished, you should perform a short set of post-installation tasks to ensure the
upgrade completed successfully. For more information, see ͞Post-Upgrade Tasks͟ later in this chapter.

aa  a ac 3 

 


Should the in-place upgrade fail, the best course of action is to review the setup logs that the Setup
application created.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 285

{c Review the Summary.txt file that is located in the %Program Files% Microsoft SQL
Server 100 Setup Bootstrap Log directory. If any error messages are listed, take whatever
actions are required to correct the situation, and try the upgrade process again.
{c If no error messages are included in the summary, review the
Summary_ î
  _   2.log file in the %Program Files% Microsoft SQL
Server 100 Setup Bootstrap Log   2 directory. When you reviewthe file, search for
any instances of ͞Failed͟ for a Status (which indicates a setup error). If any error messages are
listed, take whatever actions are required to correct the situation, and try the upgrade process
again.

aa  a c  
3%

After you have completed the upgrade of an SSAS 2000 server to SSAS 2008 R2, you need to perform a
series of post-installation tasks before the upgraded databases will be available to users. In addition, you
should perform other post-installation tasks to ensure that each database is working correctly and can
be modified in the future if necessary.

'    %Each database upgraded by the SQL Server 2008 R2 Setup application
should be reviewed to ensure the upgrade process completed successfully. Using SQL Server
Management Studio (SSMS), connect to SSAS on the upgraded server. If the workstation components
were installed as part of the upgrade, SSMS should be available on the upgraded server; otherwise, you
will need to start SSMS on another server or workstation that has the workstation components for SQL
Server 2008 R2 installed.

After a connection to SSAS on the upgraded server is established, expand the Databases folder in the
Object Explorer window. If the Object Explorer window is not visible, open the View menu and select
Object Explorer. The Auto Hide button, represented by a pushpin in the upper-right corner of the Object
Explorer window, can be used to ͞pin͟ the window so that it stays open.

In the Databases folder, review the structure of each database that was upgraded. In particular, review
the list of dimensions and cubes to see whether the structure of the database is generally the same as it
was before the upgrade process was completed. Browsing the dimensions and cubes will not be possible
until the next step, processing the databases, is complete.

    %To browse the dimensions and cubes in each upgraded database, each
database must be processed. You can do this by using SSMS. Right-click each database listed in the
Databases folder and select Process.

After you have selected the Process menu option, SSMS will display a Process Database dialog box.
Ensure that the database selected is listed in the Object Name text box (in the Object List grid) and
Process Full is listed in the Process Options text box. Click OK, and SSMS will process the selected
database. Repeat the processing action for each databaselisted in the Databases folder.

In some cases, issues with an upgraded database might prevent it from processing. Most of these issues
should be reported by the Upgrade Advisor. If any such issues exist, you might have to create a BIDS

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 286

project so that you can change the database and redeploy it for processing. See ͞Create Development
Projects for Upgraded Databases͟ later in this chapter for information about how to create BIDS projects
for upgraded databases.

aa  a c 


 
!

SSAS 2000 includes a sample OLAP database named Foodmart, which is automatically created when you
install SSAS 2000. Therefore, unless it was explicitly deleted, the database will likely exist when a server
is upgraded to SSAS 2008 R2. In most cases, the Foodmart database is no longer needed; SSAS 2008
R2includes samplesfor thefictional AdventureWorkscompany. These new samplesinclude a database to
support an OLTP application, a data warehouse, a lightweight (simplified) version of the databases, and
an Analysis Services project for Enterprise and Standard editions. The SQL Server 2008 R2 samples are
available at CodePlex. Therefore, the Foodmart database can be safely deleted from SSAS either before
or after the upgrade is complete. However, if you must keep the Foodmart database (for testing or
training purposes, for example), you need to follow a few steps before and after an in-place upgrade
process is complete.

Before you perform an in-place upgrade, you need to save to a backup directory the Microsoft Access
database that serves as the source for the Foodmart database becausethe upgrade process deletes the
Microsoft Access database file. Therefore, unless it is saved, the database file will not be available for
use by the upgraded Foodmart database. By default, you can find the Microsoft Access database file at
%Program Files% Microsoft Analysis Services Samples foodmart 2000.mdb.

After the database file is saved to a backup directory, you can perform an in-place upgrade. After an in-
place upgrade is complete, the upgraded Foodmart database must be modified to process cleanly. Take
the following steps3

1.c Create a BIDS project that reflects the design of the upgraded Foodmart database. For information
about how to do this, see ͞Create Development Projects for Upgraded Databases͟ later in this
chapter.
2.c After the BIDS project is created and open, update the data source for the database. SSAS 2008 R2
does not support ODBC data sources by using native ODBC drivers or OLE DB Provider for ODBC.
Therefore, the data source (known as Foodmart.ds in the BIDS project) must be updated to use the
Microsoft Jet 4.0 OLE DB Provider. When you edit the data source, provide the full path and
filename of the saved copy of the Microsoft Access database file.
3.c After you update the data source, update the primary data source view (DSV), which is named
Foodmart.dsv. Specifically, update the three calculated columns defined in the DSV to remove the
double quotation marks that are included in the calculation, as Table 11-6 describes.
Ô !! 0$   
 
 
Ô 
 
  $     
Customer Column1 Fname+' '+lname
sales_fact_1997 Column1 store_sales-store_cost
Inventory_fact_1997 Column1 warehouse_sales-warehouse_cost

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 287

4.c Finally, update the Warehouse cube (named Warehouse.cube). Specifically, update the two
partitions defined in the cube so that their source queries do not contain double quotation marks.
Table 11-7 shows updated versions of the source queries used.
Ô !! <$  2 
1   


    
Warehouse SELECT inventory_fact_1997.store_invoice,
inventory_fact_1997.supply_time, inventory_fact_1997.warehouse_cost,
inventory_fact_1997.warehouse_sales, inventory_fact_1997.units_shipped,
inventory_fact_1997.units_ordered, warehouse_sales-warehouse_Cost AS
Column1, inventory_fact_1997.product_id,
inventory_fact_1997.warehouse_id, inventory_fact_1997.store_id,
inventory_fact_1997.time_id FROM inventory_fact_1997, time_by_day
WHERE inventory_fact_1997.time_id=time_by_day.time_id AND
time_by_day.the_year=1997
warehouse SELECT inventory_fact_1997.store_invoice,
98 inventory_fact_1997.supply_time, inventory_fact_1997.warehouse_cost,
inventory_fact_1997.warehouse_sales, inventory_fact_1997.units_shipped,
inventory_fact_1997.units_ordered, warehouse_sales-warehouse_Cost AS
Column1, inventory_fact_1997.product_id,
inventory_fact_1997.warehouse_id, inventory_fact_1997.store_id,
inventory_fact_1997.time_id FROM inventory_fact_1997, time_by_day
WHERE inventory_fact_1997.time_id=time_by_day.time_id AND
time_by_day.the_year=1998

After you have made these changes, the BIDS project can be deployed and processed successfully. The
cubes in the resulting Foodmart database can then be browsed and used as expected. They show the
same results as the pre-upgraded version of the database.

After a database is processed, you can use SSMS to browse its dimensions and cubes. To start, expand a
database in the Object Explorer window in SSMS to display a list of folders under each database. Then,
expand the Dimensions and Cubes folders, right-click a given dimension or cube, and select Browse.

aa  a c  
! '   
0 

 
! 

SSAS 2008 R2 uses a different paradigm for developing and managing databases. Although SSMS is used
for management tasks (such as processing a database or objects, changing certain management
properties for objects, and handling backup and restore operations), development tasks are now
handled through the new BIDS application. BIDS takes advantage of the Visual Studio 2008 IDE by using
specific project and design features for SSAS databases. Therefore, if you want to change the design of a

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 288

given database, a BIDS project must exist with the ͞source code͟ for the database (in the form of
dimension, cube, and other object definitions).

For new SSAS 2008 R2 databases, you can use BIDS to create a new project to house the dimensions,
cubes, and other objects in the database. For databases created as the result of an upgrade process, you
can use BIDS to reverse-engineer a database into a BIDS project. To support future development
changes to the databases that were involved in the upgrade, you should create a BIDS project for each
database.

In the BIDS application, create a new project by using the File menu, selecting New, and then
selectingProject.

BIDS will display a New Project dialog box that shows the differentkinds of projects that Visual Studio
2008 R2 can create. Ensure that Business Intelligence Projects is selected as the Project Type on the left
side and that Import Analysis Services Database is selected as the Template on the right side. Give the
project to be created a new name and location using the Name and Location options, and then click OK.
Figure 11-3 shows the New Project dialog box.

ë!! # New Project dialog box


To create the new project, BIDS starts the Import Analysis Services Database Wizard. This wizard handles
the import process after the database is selected.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 289

After a given database is imported into a BIDS project, close the project by using the File menu and
selecting Close Project. Then repeat the process for each upgraded database to ensure a development
project is available for any changes an upgraded project might require.

aa  a "c # '

 

As previously noted, certain features that are available in SSAS 2000 are not upgraded, and other
features behave differently in SSAS 2008 R2. For example, drillthrough report settings in a given cube or
partition will not be upgraded. Therefore, it is important to thoroughly review each BIDS project that is
created for upgraded databases to determine whether any features in the original database must be
recreated or modified. If any changes are made in a BIDS project, the database should be redeployed
and reprocessed (by using the Build menu, and selecting Deploy) to make the changes available to users.

aac     


Frequently, customers will not want to immediately upgrade all databases on a given server to SSAS
2008 R2 in a single upgrade action and completely overwrite the SSAS 2000 instance before the SSAS
2008 R2 installation is tested and ready for production. In these cases, a side-by-side upgrade process
can be used to upgrade databases in a more methodical and orderly manner. Side-by-side upgrades can
be done on a single server (the existing SSAS 2000 server) or by using two servers (to take advantage of
new hardware, for example).

{c When the upgrade is performed on a single server, a new instance of SSAS 2008 R2 is installed
alongside the existing SSAS 2000 instance, and the SSAS 2000 databases are upgraded to the
new instance as needed.
{c If the upgrade is performed by using two servers, SSAS 2008 R2 is installed on the new server (as
the default instance or as a named instance), and the same upgrade of databases is then
performed.
Whether upgrading databases using a single server or two servers, the side-by-side upgrade process
enables the databases to remain available in SSAS 2000 while they are tested (and possibly updated to
resolve issues) in SSAS 2008 R2. When all databases are upgraded, SSAS 2000 can be uninstalled.
Optionally, when you use a single server for the upgrade, the new instance of SSAS 2008 R2 can then be
renamed as the default instance so that users can connect to it by using only the server name (as is done
with SSAS 2000).

aa   ac  


 


A side-by-side upgrade to SSAS 2008 R2 should not adversely affect an existing installation of SSAS 2000,
even if a database upgrade effort fails. However, even with a side-by-side upgrade on a single server, we
recommend that you take the same preparation steps as for an in-place upgrade, as follows3

1.c Back up the registry information related to SSAS 2000. Using Registry Editor, export the following
registry key to a file3
c©

!))


©©+ c

c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 290

2.c Back up all existing databases using the archive command in Analysis Manager. Open Analysis
Manager, right-click each database listed, and select Archive Database. Provide a unique filename
for each .cab file that is created.
3.c Back up the SSAS 2000 repository. This is either an Access database named msmdrep.mdb and
located in %Program Files% OLAP Services Bin or a SQL Server database.
We recommend that you put all files that are generated by these steps in a single directory on a network
share for safe-keeping during the upgrade process.

aa   c 

§ 6


After the planning process is complete, the first step in a side-by-side upgrade is to install a new instance
of SSAS 2008 R2. This new instance will be created by using the Setup application for SQL Server 2008
R2.

To start the upgrade process, start the Setup application for SQL Server 2008 R2. After it starts, the
Setup application will install a set of prerequisites to the installation of SQL Server 2008 R2 components.
From the SQL Server Installation Center, select 
  À  
2 À  2

  À

  2À 2 2 À  2
. The Setup program will run a system configuration check, collect system
information, and prompt for a product key.

After it installs setup support files and checks the support rules, the Setup application will check the
product key. Then you need to agree with the license terms. The next screen asks you for the setup role3
Do you want to install SQL Server 2008 R2 features (regular installation), install PowerPivot for
SharePoint, or simply install all features with defaults. The Setup application then provides options for
selecting components to install. Select the Analysis Services option. If any of the SQL Server 2008 R2
workstation components will be needed on the server, include the correct mix of Management Tools ʹ
Basic, Management Tools ʹ Complete, and Business Intelligence Development Studio options when you
select components. Figure 11-4 shows what the Feature Selection screen looks like.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 291

ë!! + The Feature Selection screen for a single-server side-by-side upgrade


The Setup application will then prompt for an instance name for the new SQL Server 2008 R2
components3

{c For a single-server side-by-side upgrade, enter a new instance name for SSAS 2008 R2 and
continue. By default, the Setup application selects Named Instance, so a new instance name
must be entered in order to continue.
{c For a two-server side-by-side upgrade, you can install SSAS 2008 R2 as the default instance or as
a named instance.
After checking for disk space, the Setup application will prompt for service account information for the
new instance of SSAS and for the new SQL Server Browser service. As mentioned earlier in the ͞In-Place
Upgrade͟ section, the correct settings should be based on the security policies that are defined for
standard Windows services in your organization; if no standard security policies are defined, the service
account credentials should likely be set using either the Local Service built-in account or a domain user
account. Figure 11-5 shows the screen you use during Setup to specify the service account credentials
for the two new services.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 292

ë!! - Service account settings for new services


The Setup application will now ask for Analysis Services Configuration information. This screen has two
tabs. The first tab asks for account provisioning, which lets users be added as administrators to SSAS. Be
careful adding users as administrators3 Any user you add as an SSAS administrator will have full access to
all objects and data, and no security will be applied. Figure 11-6 shows this screen with the local server
administrator added as an SSAS administrator.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 293

ë!! 0The Analysis Services Configuration screen lets you add SSAS administrators
The second tab that you can see in Figure 11-6 is called Data Directories and lets you change the physical
location of the data directories. The next screen gives you the option to turn on error reporting and
usage reporting. Finally, installation rules are checked, a summary status screen is shown, and
installation starts. A new instance of SSAS 2008 R2, ready for the upgrade, will be installed and then
available for use.

aa   c '
! 


§ 6


After a new instance of SSAS 2008 R2 is installed, you can move one or more databases from SSAS 2000
to the new instance by using the Analysis Services Migration Wizard, included with SSAS 2008 R2.

§  The Migration Wizard tool will not run unless the steps are followed as outlined in the
͞Breaking Changes͟ section of this chapter.
You can start the Migration Wizard in one of two ways3

{c Open SSMS and connect to the new instance of SSAS 2008 R2; after youare connected, right-
click the instance name in the Object Explorer window, and select Migrate Database.
{c Run the MigrationWizard.exe executable.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 294

When the Migration Wizard starts, it requests the name of a source server (running SSAS 2000) and a
destination server (using the server instance format for named instances of SSAS 2008 R2). To move
databases in a side-by-side upgrade scenario, enter the name of the source server and the newly
installed SSAS 2008 R2 instance as the destination. The wizard will then display a list of databases found
on the source server. One or more of the databases listed can be selected for migration. Figure 11-7
shows the source and destination specified for the Migration Wizard.

ë!! < Source and destination for the Analysis Services Migration Wizard
After you have selected one or more databases, the Migration Wizard will validate the structure of each
database. The wizard will display the results of the validation effort and provide a log of the results that
can be viewed or saved before the migration process is started. After validating each database, the
Migration Wizard will then migrate the structure and metadata for each database to the SSAS 2008 R2
instance.

You can run the Migration Wizard as many times as needed to migrate one or more databases at
different times. Therefore, a methodical migrate-test-deploy cycle can be used to move databases (and
users) to the new instance of SSAS 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 295

aa   c  
3%

After one or more SSAS 2000 databases have moved to the new instance of SSAS 2008 R2, you should
complete the same set of post-installation tasks as described previously in the ͞Post-Upgrade Tasks͟
topic of the͞In-Place Upgrade͟section.

aa   "c # '
 
***

If all the databases on a given server are moved to a new instance of SSAS 2008 R2, SSAS 2000 might not
be needed any longer on the server. In this case, SSAS 2000 can be uninstalled by using Add or Remove
Programs. After the earlier version is removed, the new instance of SSAS 2008 R2 can be renamed so
that it is recognized as the default instance on the server. You can do this by using the Instance Rename
tool that is available for SSAS 2008 R2. You can start the Instance Rename tool by executing
ASInstanceRename.exe from the %Program Files% Microsoft SQL
Server 100 Tools Binn VSShell Common7 IDE directory.

When the Instance Rename tool is started, it displays a single Rename Instance dialog box for selecting
and renaming a given instance of SSAS 2008 R2. Use the M À  
  drop-down list to select the
named instance. If the instance should act as the default instance for the server, leave the 2 À  
 textbox blank and then click Rename. Figure 11-8 shows the Instance Rename tool.

ë!! )Rename Instance dialog box


TheInstance Rename tool will update the SSAS 2008 R2 instance and restart its service to complete the
process. If an instance is renamed as the default instance, client tools can connect to SSAS 2008 R2 by
using the server name without any instance name.

aac   


   x  
Although upgrading to SSAS 2008 R2 and migrating SSAS 2000 databases to SSAS 2008 R2 provide great
options for quickly moving databases to the new platform, many customers might decide to redesign
databases to take advantage of specific new features and architecture changes included in the new
version. Although developing new databases for SSAS 2008 R2 will not be discussed in detail in this

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 296

guide, some general ideas and thoughts related to redesigning the Foodmart 2000 database are
included here as an example of the possibilities.

aa   ac !

= 6

Every SSAS 2008 R2 solution is based on a DSV that encapsulates schema metadata based on the data
sources included in the BIDS project. When a database is upgraded, the DSV that is generated for the
database might include generically named Named Calculations, such as Column1, Column2, and so on.
For example, the DSV for an upgraded Foodmart 2000 database contains a series of Named Calculations
that are generically named and then used for different dimension and cube designs.

Although this works fine and does not affect users (because client applications do not directly access a
DSV), it is not intuitive from a development and support perspective. A better DSV design would include
correctly named Named Calculations and could include other DSV options such as Named Queries and
Diagrams.

aa   c ! 

SSAS 2008 R2 includes many significant changes to support new features and functionality related to
dimensions. Attributes and their relationships (versus levels in a dimension͛s hierarchy) are now the
primary design element in a dimension. Hierarchies in a dimension define navigation paths through a
series of attributes, such as country, state/province, and city. A new feature of dimensions called
 2 2  2À exposes individual attributes to query applications. This lets users select any
combination of attributes for reporting and analysis, beyond the hierarchies that may be defined as part
of the dimension.

When a database is upgraded to SSAS 2008 R2, the resulting dimension designs contain only those
dimension attributes that are required to reproduce the hierarchies that are defined in the dimension.
In addition, no attribute hierarchies are made visible even for the attributes included in the design of the
dimension design. Also, in some cases, dimension attributes are renamed based on rules that are used
during an upgrade (typically in an attempt to create attribute names that do not duplicate other objects
such as dimensions or hierarchies).

aa   c  

As with dimensions, SSAS 2008 R2 contains significant changes to the features and functionality related
to cubes. The most significant change when you compare the new version to SSAS 2000 is how cubes
use measure groups and perspectives. In SSAS 2000, a cube could contain only a single fact table and its
related dimensions. If measures from two or more fact tables needed to be combined for reporting or
analysis purposes, a virtual cube was used to join two or more cubes based on one or more common
dimensions.

In SSAS 2008 R2, a cube can contain measures from multiple fact tables. Measures from a given fact
table are grouped together using measure groups, and the relationships between dimensions in the
database and each measure group are defined as part of the cube definition. Perspectives are then used
to provide subsets of a cube͛s dimensions, measure groups, measures, and calculations.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 297

When a database is upgraded to SSAS 2008 R2, the database will contain a separate cube for each basic
and virtual cube found in the original database. Given the new features and architecture available in
SSAS 2008 R2, separate cubes can frequently be redesigned as a single cube with multiple measure
groups and perspectives. Using this design provides better flexibility and performance. For example, the
Foodmart 2000 database contains six separate cubes as defined in SSAS 2000. Each of these becomes a
separate cube in the upgraded version of the database in SSAS 2008 R2.

In addition to the flexibility improvements provided by new cube designs, SSAS 2008 R2 also provides
new features such as Key Performance Indicator (KPI) definitions, SQL Server Reporting Services (SSRS)
actions, proactive caching storage mechanisms, and translation definitions. A redesigned Foodmart 2000
cube could take advantage of each of these new features, none of which are used by default in an
upgraded database.

As you can see, there are potentially many reasons why a redesigned database might be better than an
upgraded database. As stated before, although an upgrade process might provide a quick mechanism
for moving to SSAS 2008 R2, redesigning each database to take advantage of the new platform͛s
architecture, features, and design paradigms could prove helpful in the end.

aac      



Upgrading to SSAS 2008 R2 from SSAS 2005 is much easier, and carries less risk, than an upgrade from
SSAS 2000. Although one of the goals of the SSAS 2008 R2 team was to avoid any breaking changes for
upgrading from SSAS 2005 to SSAS 2008 R2, check the list of changes in this chapter to ensure that no
changes will adversely affect an upgraded database. If your SSAS 2005 databases are using some of
those features, they might require design changes after the upgrade to provide the same user
experience.

Before you try an upgrade, review the behavior changes and determine whether any of the listed issues
will affect the query results after an upgrade. In addition, run the Upgrade Advisor to analyze the SSAS
instance, and then review the generated report to verify that you have addressed all issues that must be
resolved before the upgrade and that you understand the upgrade issues that you must resolve after
Setup is complete. Also take advantage of such tools as the Best Practices Analyzer for SQL Server 2005
to aid in upgrade preparation. For more information about these upgrade tools, see Chapter 1,
͞Upgrade Planning and Deployment.͟

Before you start an in-place upgrade, take steps to ensure that a failed upgrade can be rolled back.
Although the in-place upgrade process should handle most situations, unforeseen problems might occur
and result in a failed upgrade.

M  3 With an in-place upgrade, the upgrade process handles all aspects of the upgrade,
automatically upgrading the metadata for each database found inSSAS 2005.
If a failed upgrade occurs, frequently the easiest resolution is to reinstall SSAS 2005 and restore the
installation to its state before the upgrade process was started. Back up all databases by using the Back
Up command in SSMS. To do this, open SSMS, right-click each database that is listed, and select Back Up.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 298

Provide a unique file name for each .abf file that is created, optionally choosing to also encrypt them
with a password.

We recommend that you put all the files that are generated by the previous steps in a single directory
on a network share for safe-keeping during the upgrade process.

aaac     
To start the in-place upgrade, start the Setup application for SQL Server 2008 R2, selecting Installation
and then › 

   
   

   . The Setup program will
run a system configuration check, collect system information, and prompt for a product key. After it
installs any prerequisites, the Setup application will then prompt for the kind of installation to be
performed.

After you decideon the type of upgrade, the Setup program asks for a product key, prompts for the
acceptance of the license file, and then installs setup support files. After the setup support files are
finished, the setup support rules are checked. The next screen, which Figure 11-9 shows, asks for the
instance to be upgraded.

ë!! =Select the instance of SSAS 2005 to upgrade

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 299

The next screen shows the features to be installed. In some cases, all the components are selected and
no changes can be made. This is because the server was set up only with SSAS 2005 and the workstation
components. If it is impossible to select different options, you will need to run Setup again to add
features. For example, if BIDS is not already installed on the server but is needed in the future, a second
run of the Setup application will be required.

After you have selected the components to install, the Setup application will prompt for an instance
name for the newly installed SQL Server 2008 R2 components. To upgrade an existing installation of
SSAS 2005, leave the InstanceID the same. The Setup application should detect any running services
based on which components were selected for installation. Ensure that the existing installation of SSAS
2005 is selected, and continue.

After you select the instance name, Setup will check for the necessary disk space. The Setup application
will then prompt the user to turn on Error and Usage Reporting. These are optional settings and are off
by default. Enabling them means the server might try to send data to Microsoft on an as-needed basis.

The Setup application next checks a series of upgrade rules. You should examine any failures in the rules
and address them as necessary.Figure 11-10 shows the results of these rules, and because there are no
failures, installation can continue.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 300

ë!! !(Upgrade rules are checked to ensure installation can continue


When the Setup application is ready to continue with the upgrade, it will display a summary of actions
that will be taken. Ensure that the action to be taken is ͞upgrade,͟ and then continue.

Clicking the Upgrade button starts the upgrade process. During the upgrade, an Upgrade Progress status
screen will show status information about the various steps taken by the Setup application. When Setup
is complete, a screen that displays the upgrade steps together with a success or failure message will be
shown. A final screen will provide a summary of the installation along with any notes that are relevant to
the upgrade process.

After the upgrade process is finished, you should perform a short set of post-installation tasks to ensure
that the upgrade completed successfully. See the ͞Post-Upgrade Tasks͟ topic later in this section for
information about these tasks.

aa  a ac 3 

 


Should the in-place upgrade process fail, the best strategy is to review the setup logs that were created
by the Setup application.

{c Review the Summary.txt file that is located in the %Program Files% Microsoft SQL
Server 100 Setup Bootstrap Log directory. If any error messages are listed, take whatever
actions are required to correct the situation, and try the upgrade process again.
{c If no error messages are included in the summary, review the
Summary_ î
  _   2.log file in the %Program Files% Microsoft SQL
Server 100 Setup Bootstrap Log   2 directory. When you review the file, search for
any instances of ͞Failed͟ for a Status (which indicates a setup error). If any error messages are
listed, take whatever actions are required to correct the situation, and try the upgrade process
again.

aa  a c  
3%

After the upgrade of an SSAS 2005 server to SSAS 2008 R2 is complete, you must complete a series of
post-installation tasks before the upgraded databases will be available to users. In addition, you should
perform other post-installation tasks to ensure that each database is working correctly and can be
modified in the future if necessary.

'    %Each database that was upgraded by the SQL Server 2008 R2 Setup
application should be reviewed to ensure that the upgrade process completed successfully. Using SSMS,
connect to SSAS on the upgraded server. If the workstation components were installed as part of the
upgrade, SSMS should be available on the upgraded server; otherwise, SSMS will have to be started on
another server or workstation that has the workstation components for SQL Server 2008 R2 installed.

After a connection to SSAS on the upgraded server is established, expand the Databases folder in the
Object Explorer window. If the Object Explorer window is not visible, open the View menu and select
Object Explorer. The Auto Hide button, represented by a pushpin in the upper-right corner of the Object
Explorer window, can be used to ͞pin͟ the window so that it stays open.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 301

Unlike an upgrade from SSAS 2000, the cubes that are upgraded from SSAS 2005 do not have to be
processed to be browsed. Also, projects from BIDS 2005 can be opened in BIDS 2008 R2 without
modifications, so we strongly recommend that you back up the BIDS 2005 projects if they need to be
opened in BIDS 2005. Projects that were created in BIDS 2005 and opened and saved in BIDS 2008 R2
cannot then be opened in BIDS 2005.

aa
c  
  Ô 
After you have upgraded one or more databases to the new instance of SSAS 2008 R2, you have to
complete a last set of post-upgrade tasks. (If you upgraded from SSAS 2000, you should follow these
steps after those listed in the ͞Post-Upgrade Tasks͟ topic of the ͞In-Place Upgrade͟ section for
͞Upgrading from SSAS 2000.͟) These tasks include the following3

1.c Review each updated database by using SSMS to ensure that its contents (specifically, dimensions
and cubes) are consistent with its SSAS2000 or SSAS 2005 counterpart.
2.c Process each upgraded database by using the Process command in SSMS.
3.c Browse each upgraded database͛s dimensions and cubes to ensure a consistent query experience
compared to the database͛s SSAS2000 or SSAS2005 counterpart.
4.c Generate a new development project by using BIDS for each migrated database.
5.c Resolve any migration issues in a given database, updating its dimension and cube designs as
needed.
6.c Review and possibly combine any upgraded data mining models that are included in each database.
7.c Review the details related to each of these tasks in the previous sections to ensure a smooth and
complete upgrade process.

aa cî  


Upgrading to SSAS 2008 R2 provides a wealth of new capabilities and features. Upgrading to SSAS 2008
R2 can be accomplished by using either an in-place upgrade or a side-by-side upgrade. The in-place
upgrade is a bit more risky because it replaces the earlier version of SSAS. Before you do an in-place
upgrade, it is important to make backups of all the SSAS databases. The side-by-side upgrade lets two
versions of SSAS run at the same time, with SSAS 2008 R2 being a named instance. When the earlier
version of SSAS is removed, the SSAS 2008 R2 version can be changed to the default instance on the
server.

Moving from SSAS 2005 provides performance and scalability improvements, together with a better set
of developer tools for creating and managing SSAS databases. Although there are some functionality
changes, a full redesign is not necessary.

Organizations upgrading from SSAS 2005 will find a smooth transition. There are improved tools for
creating attribute relationships and aggregations, together with improved wizards for creating
dimensions and cubes. The engine also contains some performance and scalability improvements. The
good news is that the number of breaking changes is very small, and the overall design of cubes,
dimensions, and the like has not changed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 302

SSAS 2000 databases can be upgraded to SSAS 2008 R2, but the two products are very different. As you
have seen in this chapter, there are several breaking changes between SSAS 2000 and SSAS 2008 R2.
Therefore, although an upgrade usually works, a partial or full redesign is frequently the best path to
ensuring optimal performance and usability.

Customers upgrading from SSAS 2000 will discover that SSAS 2008 R2 includes a brand-new design
paradigm that uses BIDS. They will also discover a new way to think about cube design that uses
attribute hierarchies, multiple fact tables per cube, MDX scripts, KPIs, and much more. The additional
features that are provided by SSAS 2008 R2 over SSAS 2000 can seem intimidating, but these new
features open up new options for analyzing and mining data.

aa cx
   
For an up-to-date collection of additional references for upgrading SQL Server 2008 R2, see the
following links3

{c SQL Server 2008 R2 Analysis Services site


{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 303

acî 
 a 


aac


Data mining is one of the most powerful analytical tools in the SQL Server Business Intelligence (BI)
suite. Data mining was first introduced as part of SQL Server 2000 Analysis Services (SSAS), the database
platform͛s OLAP and BI component. Although it was SQL Server͛s first foray into advanced data mining
analysis, SSAS 2000 supported two of the most popular algorithms3 Decision Trees and Clustering. In SQL
Server 2005, Microsoft completely rewrote the BI suite. With the debut of the Unified Dimensional
Model (UDM) for OLAP, data mining in SSAS 2005 entered the enterprise-level analytical market. In SQL
Server 2005, data mining is a mature product, featuring all the popular algorithms. One of the most
important advantages of data mining with SSAS 2005 is ease of use and integration with other parts of
the BI suite and business applications. With the introduction of the Microsoft Office 2007 Data Mining
Add-Ins, SQL Server͛s data mining functionality reached from developers, database professionals, and
advanced business analysts to end users.

The data mining success story continues in SSAS 2008 and SSAS 2008 R2. Using the foundation that SSAS
2005 laid, Microsoft has enhanced data mining in SSAS 2008, adding new features and improving
existing functionality. For the 2008 R2 release, Microsoft focused on other parts of the BI suite, soyou
will find the same data mining features as in SSAS 2008.

There are behavioral and even breaking changes that you need to consider before upgrading SQL Server
2000 or SQL Server 2005 to SQL Server 2008 or SQL Server 2008 R2. In addition to covering those
changes, this chapter discusses the key steps you must take to prepare for and perform a successful
upgradeͶas well as important post-upgrade tasks. We have also collected references to the most
essential data-mining upgrade resources, including the following3

{c For details about data mining functionality in SSAS 2008 R2, see SQL Server Analysis ServicesͶ
Data Mining in SQL Server 2008 R2 Books Online.
{c For additional SQL Server data mining information, see the SQL Server Data Mining community
site, maintained by the Microsoft SQL Server Data Mining team.
{c For other useful data mining content, see the MSDN blog by Bogdan Crivat.

ac
 
     
    
Before you start upgrading, make it a priority to review the data mining features supported by the
different editions of each version of SQL Server. Two tables in this section show this feature information
in condensed format. Note the following abbreviations for editions for all versions3

{c DC = Datacenter Edition, available in SQL Server 2008 R2


{c EE = Enterprise Edition, available in SQL Server 2000, 2005, 2008, and 2008 R2
{c SE = Standard Edition, available in SQL Server 2000, 2005, 2008, and 2008 R2
{c PE = Personal Edition, available in SQL Server 2000
{c MSDE = MS Desktop Engine, available in SQL Server 2000 and replaced with SSE and SSEA in SQL
Server 2005, 2008, and 2008 R2

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 304

{c WG = Workgroup Edition, available in SQL Server 2005, 2008, and 2008 R2


{c WE = Web Edition, available in SQL Server 2008 and 2008 R2
{c SSE = SQL Server Express Edition and Express with Tools, available in SQL Server 2005, 2008, and
2008 R2
{c SSEA = SQL Server Express Edition with Advanced Services, available in SQL Server 2005, 2008,
and 2008 R2

In addition to the editions mentioned above, Microsoft also offers the Developer Edition and the
Enterprise Evaluation Edition; they have the same functionality as the Enterprise Edition but the
licensing is different. Table 12-1 shows which SQL Server 2000 editions support data mining features.

Ô !" !       &"(((  


Feature/Edition DC EE SE PE MSDE
Data Mining N/A Yes Yes Yes No

As you can see, in SQL Server 2000, data mining support is all or nothing; if it is supported by an edition,
it is supported completely. For complete details about feature support in SQL Server 2000͛s various
editions, see Features Supported by the Editions of SQL Server 2000in SQL Server 2000 Books Online.

Data mining features are supported on a more granular level in SQL Server 2005, 2008, and 2008 R2, as
Table 12-2 shows (cells with a light gray background show editions and features available in SQL Server
2008 and SQL Server 2008 R2 only).

Ô "   ë  &"(()'"  


ë 4   
   18 1  
Standard data mining algorithms Yes Yes Yes No No No No
Data mining tools3 wizards, editors, Yes Yes Yes No No No No
query builders
Algorithm viewers Yes Yes Yes No No No No
Enhanced integrated OLAP and data Yes Yes Yes No No No No
mining functionality (MDX
prediction function, DM dimensions)
Reporting integration with DM Yes Yes Yes No No No No
prediction queries
Parallelism for model processing Yes Yes No No No No No
Parallelism for model prediction Yes Yes No No No No No
Text-Mining Term Extraction Yes Yes No No No No No
transformation (SSIS)
Text-Mining Term Lookup Yes Yes No No No No No
transformation (SSIS)
Data Mining Query transformation Yes Yes No No No No No
(SSIS)

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 305

Data Mining processing destination Yes Yes No No No No No


(SSIS)
Algorithm plug-in API Yes Yes No No No No No
Advanced configuration and tuning Yes Yes No No No No No
options for data mining algorithms
Unlimited concurrent data mining Yes Yes No No No No No
queries
Unlimited attributes for association Yes Yes No No No No No
rules
Multiple prediction targets for Naïve Yes Yes No No No No No
Bayes, Neural Network, and Logistic
Regression
Cross validation Yes Yes No No No No No
Models on filtered subsets of mining Yes Yes No No No No No
structure data
Time series3 custom blending Yes Yes No No No No No
between ARTXP and ARIMA models
Time series3 prediction with new Yes Yes No No No No No
data
Time series3 cross-series prediction Yes Yes No No No No No
Sequence prediction Yes Yes No No No No No

As you can see, many features are supported in Enterprise and Datacenter Edition only, and beside
those two editions, Standard is the only edition that supports data mining. You might think that
compared to SQL Server 2000, except for the Datacenter and Enterprise Editions, there is a degradation
of data mining features supported in SQL Server versions 2005, 2008, and 2008 R2; however, note that
even in Standard Edition, data mining is much more powerfulthan it was in SQL Server 2000. Therefore,
if you plan to downgrade the edition while upgrading from SQL Server 2000 to 2008 R2Ͷfor example,
moving from Enterprise Edition to Standard EditionͶyou are not going to lose any data mining
functionality. However, this is not a supported in-place upgrade path, so you would have to migrate
your mining models using other means, as we describe later in this chapter. Because SQL Server 2008 R2
brings so many data mining enhancements compared to SQL Server 2000, rebuilding your data mining
models is probably the best strategy.

ac 
  
After you select the SQL Server 2008 R2 edition that suits your needs, you need to investigate which
features are deprecated in SQL Server 2008 R2. These features will not affect your upgrade, but you will
need to update your models to stop using them before your next upgrade. You also need to know what
functionality cannot be upgraded because is it discontinued or because it has changed in SQL Server

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 306

2008 R2. In addition, you should be aware of some behavioral changes between data mining in SQL
Server 2000 or 2005 and SQL Server 2008 and 2008 R2; otherwise, you could get unexpected results.

Let͛s look at each of these categories of changes. This section also notes potential issues with data
mining models. For a complete reference of SSAS changes in SQL Server 2008 R2, see SQL Server
Analysis Services Backward Compatibilityin SQL Server 2008 R2 Books Online.

aac 
 

SSAS 2000 supports the XML markup language called Predictive Model Markup Language (PMML)
version 1.0. PMML is a standard language to describe data mining models. However, the language is
incomplete from the standards point of view, although some specific extensions have been added. In
contrast, SSAS 2008 R2 supports standard PMML and deprecates SSAS 2000 PMML extensions, meaning
that you should not use them.

Note that this is probably not a big issue because you use PMML directly only if you export your SSAS
2000 mining models to PMML. You can create a mining model in SSAS 2008 R2 from PMML and store it
in an SSAS 2008 R2 database; if you export it from SSAS 2008 R2, standard PMML will be generated.
Some of the most important SQL Server 2000 extensions to PMML 1.0 include3

{c Support for nested tables.


{c The Discretized, Ordered, and Cyclical model variables, in addition to the simple Categorical and
Continuous ones.
{c Support for Key columns in nested tables.
{c Support for Relation type columns as "hierarchy parents."
{c All model variables can have a missing state described, even ones with a continuous domain.

For a complete specification of SQL Server 2000 Data Mining functionality and extensions, see OLE DB
for Data Mining Specification 1.0.

For a complete list of deprecated features in SSAS 2008 R2, see Deprecated Analysis Services
Functionality in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

ac  
   
 

There͛s only a short list of discontinued data mining functionality from SSAS 2005 to SSAS 2008 and SSAS
2008 R23

{c Mining Execution Location connection string property


{c Mining Location connection string property

In SSAS 2008 R2, the AS2008 R2 OLE DB provider does not support the Mining Execution Location and
Mining Location properties. Although you can specify the Mining Execution Location property in a
connection string, SSAS 2008 R2 ignores the setting.

To upgrade local mining models from SQL Server 2000 to SQL Server 2008 R2, connect using the AS2005
OLE DB provider (MSOLAP.3) and set the Mining Location connection string property to the name of the

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 307

folder containing your local mining models. The local mining model service will read all the .dmm files in
the directory and import them into a .cub file. All access to models in that folder will then be from this
file and not the files created by SQL Server 2000 data mining. The original files will be left on your hard
drive untouched.

Also note that in SSAS 2000, you can create local mining models by using the PivotTable service.
However, beginning with SSAS 2005, only server models are supported.

You can find the complete list of SSAS 2008 R2 discontinued functionality atDiscontinued Analysis
Services Functionality in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

ac   î 


If you upgrade your data mining models from SSAS 2005 to SSAS 2008 R2, the following issues could
prevent successful upgrade, force you to update your SSAS databases after the upgrade, or change the
results of your mining models3

{c ODBC data sources are not supported in SSASS 2008 R2. If you are using ODBC data sources, you
need to change them to OLE DB providers.
{c Decision Support Objects (DSO) are not installed by default when you install SQL Server 2008 R2.
Although the backward-compatibility package is installed, the DSO component of the package is
disabled. The SQL Server Analysis Services Migration Wizard relies on this component and will
fail unless the component is installed.
{c You can use Visual Basic for Applications (VBA) functions in your Data Mining Extensions (DMX)
statements. However, VBA functions handle NULL values differently in SSAS 2008 R2. In SSAS
2005, VBA functions return 0 or an empty string when NULL or empty values are used as
arguments. In SQL Server 2008 R2, VBA functions return NULL.

If you are upgrading from SSAS 2000 to SSAS 2008 R2, you can experience the following additional issue3

{c In SSAS 2000, the Decision Trees algorithm uses the MINIMUM_LEAF_CASES parameter, and
Clustering uses the MINIMUM_CLUSTER_CASES parameter. In SSAS 2005, both of these
parameters have been renamed to MINIMUM_SUPPORT. If you use these two parameters in an
SSAS 2000 model, they will be migrated, and SSAS 2008 R2 uses them when processing a model.
However, they are not standard SSAS 2008 R2 parameters, and you should delete them and
change to the MINIMUM_SUPPORT parameter as appropriate.

For information about some of these breaking changes, see Breaking Changes to Analysis Services
Features in SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

ac   î 


There are no specific behavior changes in your mining models when you upgrade them from SSAS 2005
to SSAS 2008 R2. And when upgrading from SSAS 2000, you can expect better results, such as better
predictions, because of algorithm improvements. In addition, you should have an enhanced browsing
experience because as of SSAS 2005, Microsoft added a new set of mining model browsers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 308

a
c     x 
Fortunately, you do not have to check all the potential upgrade issues manually. The SQL Server 2008 R2
Upgrade Advisor can help you detect potential issues. However, be aware that Upgrade Advisor does
not report all possible issues; it reports blocking issues only. You will soon see that some breaking
changes are not reported.

Chapter 1, ͞Upgrade Planning and Deployment,͟ in this guide covers how to install and use Upgrade
Advisor, so we won͛t repeat that information here. But to illustrate some upgrade issues related to data
mining models, we created a simple SSAS database on both SSAS 2000 and SSAS 2005 that contains only
a couple of mining models and other necessary objects, without OLAP dimensions and cubes. For our
examples, we use the SSAS 2000 FoodMart sample database and the SSAS 2005 AdventureWorksDW
sample database. Let͛s look at the issues our demonstration found.

§  If you are performing an in-place upgrade, remember that the Microsoft Access FoodMart
sample database will be deleted during the upgrade process. Create a copy before upgrading!

Let͛s look at an example of running Upgrade Advisor against a sample SSAS 2000 database. The sample
database contains two mining models based on the Customers table in the FoodMart database. One
model uses the Decision Trees algorithm to predict member card type based on demographic data, and
the other one uses the Clustering algorithm to find clusters of customers based on demographic and
card membership data. The Analysis Manager screen in Figure 12-1 shows the data source object and
two mining models.

ë!" ! SSAS 2000 database with two mining models

For the Decision Trees model, the MINIMUM_LEAF_CASES parameter is set to 1000. Because the model
has only 10.281 cases, such a large value for this parameter leads to a shallow tree, with only a few
nodes. Figure 12-2 shows the tree and highlighted parameter.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 309

ë!" " SSAS 2000 Decision Trees model

Now, let͛s start Upgrade Advisor to get an analysis of possible upgrade issues. On the first screen, click
the Launch Upgrade Advisor Analysis Wizard link. Select only the Analysis Services component of your
SSAS 2000 instance, and run the wizard. After the wizard finishes its analysis, launch the Report Viewer.

As you can see in Figure 12-3, Upgrade Advisor has properly detected that the instance uses the ODBC
data source. However, it did not detect the MINIMUM_LEAF_CASES parameter, which has the same
behavior in SSAS 2008 R2 as it does in SSAS 2000 but has been renamed in SSAS 2005, SSAS 2008, and
SSAS 2008 R2. Neither of these two issues will prevent the upgrade, but you need to resolve them after
the upgrade.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 310

ë!" # Upgrade Advisor report on SSAS 2000 mining models

ac      


In Chapter 1, you learned how to start the SQL Server 2008 R2 Setup program and perform an in-place
and side-by-side upgrade. This section assumes that you have already installed SQL Server 2008 R2, so
we will not describe that process here. Instead, we will focus only on data mining issues you might face
in your upgrade from SSAS 2000 to SSAS 2008 R2. As you will see, the in-place upgrade is somewhat
simpler, but the side-by-side upgrade strategy gives you more options for migrating mining models.

aac     
After the upgrade, the following objects are created in the SSAS 2008 R2 database, assuming you have
mining models and data sources only in SSAS 20003

{c Data sources
{c A data source view for each mining model
{c A mining structure for each mining model
{c A mining model inside each structure

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 311

In SSAS 2008 R2, multiple models can share the same structure. The mining structure defines which
columns from the source are used for the whole set of models in the same structure. You can easily
compare the performance of models that share the same structure.

But before dealing with model performance, you need to resolve some other issues. First, in SQL Server
2000, Analysis Manager is both an administrative and development tool. If you are doing an in-place
upgrade, the Setup program by default installs only the SQL Server 2008 R2 management tools (see
Chapter 2, ͞Management Tools,͟ for details).

You can change the data source connection string property and process mining models in SQL Server
Management Studio (SSMS). However, to continue development, change existing objects, or add new
objects to an upgraded SSAS database, you must use the Business Intelligence Development Studio
(BIDS) development tool.

If you want to continue development on the same machine where your SSAS server is installed, install
BIDS there, or install it on a client machine. You can do some development with SSMS as well by
scripting the model, changing the XMLA script manually, and then executing it. However, it is much
easier and more intuitive to develop data mining models in BIDS. To make sure BIDS is installed as part
of your in-place upgrade, rerun SQL Server 2008 R2 Setup, and from the Feature Selection screen, select
BIDS, as Figure 12-4 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 312

ë!" + Adding BIDS to in-place upgraded SQL Server 2000

As noted, you do not need BIDS if you want to continue using existing models without changes.
However, if you use ODBC data sources in SSAS 2000, you must change them to OLE DB providers and
then process the models.

In our example, we are using the ODBC driver in SSAS 2000 to connect to the FoodMart sample
database. We copied the database (the .mdb file) to the backup folder. To change the ODBC data
sources, in SSMS, right-click the data source you want to change, and select Properties. Change the
Connection String property, and change the provider to the appropriate OLE DB provider, pointing to the
database that is the source for your mining models. Figure 12-5 shows the connection string settings for
the FoodMart sample database3 The provider is now the Microsoft Jet 4.0 OLE DB Provider, and the
 À2  text box points to the backup of the FoodMart database we created before
upgrading.

ë!" - Modified connection string properties for the FoodMart demo database

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 313

ac     


Even if you choose to perform a side-by-side upgrade, the recommended best practice is still to first run
Upgrade Advisor to check for potential issues before you install SQL Server 2008 R2 and start migrating
mining models. You can install SQL Server 2008 R2 on the same box where you are running SQL Server
2000 or on a different computer. SSAS 2008 R2 supports named instances like the Database Engine
does. Assuming you have installed SSAS 2008 R2, the management and development tools are already
installed, and you can start migrating your mining models from SSAS 2000 to SSAS 2008 R2.

You use the Analysis Services Migration Wizard to migrate SSAS 2000 databases, as the following steps
describe3

1.c Start the Migration Wizard by right-clicking the SSAS 2008 R2 instance in Object Explorer in
SSMS and selecting the Migrate Database option from the menu. Alternatively, you can run the
wizard from a command prompt by starting the MigrationWizard.exe application.
2.c On the Welcome page, click Next.
3.c On the Specify Source and Destination page, select the source (SSAS 2000) and destination (SSAS
2008 R2) servers. Instead of creating a database on the destination server, you can create an
XMLA script. You can then execute the script in SSMS or through the Analysis Services Execute
DDL task in SQL Server Integration Services (SSIS).
4.c On the Select Databases to Migrate page, select the databases you want to migrate. You can
rename the destination database on this page as well.
5.c On the Validating Databases page, you can check for any issues that could prevent successful
migration. Using the Ñ2
drop-down list, you can choose to display all messages or errors,
warnings, or successes only. If there are no errors, click Next.
6.c On the Migrating Databases page, you can follow the migration progress. When it is finished,
click Next.
7.c On the Completing the Wizard page, review the migration report. Click Finish to complete the
wizard.

As with an in-place upgrade, you need to reprocess migrated databases. Of course, if you use ODBC
drivers, you need to change the data sources to use OLE DB providers. However, with a side-by-side
installation, the FoodMart sample database is not deleted during the setup process. Consider using BIDS
to create a project from your migrated database. If you want to generate the project, use the Import
Analysis Services Database template when you create a new project in BIDS.

ac 
  Ô 
As we noted earlier, you need to replace some SSAS 2000 mining model parameters with the
appropriate SSAS 2008 R2 parameters after your upgrade or migration. As we saw in our earlier
example, the SSAS 2000 Decision Trees model used a value of 1000 for the MINIMUM_LEAF_CASES
parameter to create a shallower tree with fewer nodes. After the migration, SSAS 2008 R2 still considers
the parameter during processing, and you get the same tree you had in SSAS 2000. Nevertheless,
Microsoft recommends that you use the standard MINIMUM_SUPPORT SSAS 2008 R2 parameter. If you

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 314

used BIDS to create a project from the upgraded database, you can use the Data Mining Designer to
change the parameters, as these steps describe3

1.c Double-click the mining structure with the models you need to change to open the Data Mining
Designer.
2.c Navigate to the Mining Models tab.
3.c Right-click the model you need to change and select the Set Algorithm Parameters option.
4.c Change the MINIMUM_SUPPORT parameter to the value of the SSAS 2000
MINIMUM_LEAF_CASES parameter, as Figure 12-6 shows, and remove the SSAS 2000
parameter. Click OK.
5.c Save and deploy the project, and then view the model. You should get the same tree as in SSAS
2000.

ë!" 0 Replace the SSAS 2000 MINIMUM_LEAF_CASES parameter with the SSAS 2008 R2
MINIMUM_SUPPORT parameter

You likely will want to modify more than just the parameters after the upgrade. For example, SSAS 2008
R2 supports many more data mining algorithms than SSAS 2000. So you should consider building
additional models on the same structure (i.e., on the same data), using different algorithms with
different parameters.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 315

In SSAS 2008 R2, you can easily compare the performance of the models, so you might decide to use a
completely different model in production. For predictive models, such as Decision Trees, you should put
approximately 30% of your data aside as a test set and use the other 70% of the data as a training set
(i.e., data used to process the models). Then, you try to perform predictions on the test set. Because you
already know the outcome of the predicted variables in the test set, you can easily compare which
model gives you the most accurate predictions. In SSAS 2008 R2, you can use a Lift Chart, Profit Chart,
and Classification Matrix to see the accuracy of the models.

It is important to randomly split your data into training and test sets; you do not want to build a new
pattern in your data by using a non-random split. You can split your data by using SSIS Percentage
Sampling and Row Sampling transformations. In addition, SSAS 2008 R2 can split the data randomly for
you while processing the mining structure. You just have to set the HoldoutMaxPercent mining structure
property to the percent of data used for the test set. Use the Properties window in BIDS to specify the
mining structure you want to set for this property. Figure 12-7 shows this property set to 30 for our
example MemberCard_DecisionTrees structure.

ë!" < Setting the percentage of holdout data for the test set

Using the same structure as the two Decision Trees models in our example, let͛s create three additional
models to show how you would add models to your upgraded structure. One model uses the Neural

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 316

Network algorithm, one uses the Naïve Bayes algorithm, and the other uses the Clustering algorithm.
Note that in SSAS 2008 R2, you can also use the Clustering algorithm for predictions.

To add a mining model that shares the same structure as an existing model, follow these steps3

1.c In BIDS, in the Data Mining Designer, navigate to the Mining Models tab.
2.c Right-click an existing model and select the New Mining Model option.
3.c Define the model name, and select the algorithm you want to use.
4.c Refine the new model by setting the algorithm parameters.
5.c Save the project, and then deploy and process it.

Figure 12-8 shows all four models, the upgraded one and the three added after the upgrade, built using
the same structure.

ë!" ) Multiple models with different algorithms but sharing the same mining structure

After your models are deployed and processed, you can use the new data mining viewers to gain a lot of
additional information not available in SSAS 2000. For example, you can use the Dependency Network
view in the Microsoft Tree Viewer and the Microsoft Naïve Bayes Viewer to quickly determine which
attributes have the most influence on the predictive attribute. You can use the Attribute Discrimination

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 317

view in the Microsoft Naïve Bayes Viewer and the Microsoft Neural Network Viewer to find which input
attributes favor specific states of a predictable attribute.

For more information about data mining viewers in SQL Server 2008 R2, see Viewing a Data Mining
Modelin SQL Server 2008 R2 Books Online.

Figure 12-9 shows the Dependency Network view of the Naïve Bayes Viewer, highlighting three
attributes with the highest influence on the Member Card attribute.

ë!" = Dependency Network view showing the three attributes with the highest influence on a
predictable attribute

After using the SSAS 2008 R2 data mining views to review the original and new models, you might
decide to deploy in production a different model than the one you deployed in SSAS 2000. However, you
should not make this decision yet; you need to check the accuracy of the models first. Remember in the
example, we used 30% of the data for a test set. In addition to accuracy, you should also verify the
robustness of your models using cross-validation. You will learn more about checking accuracy and
robustness in the next part of this chapter, which covers upgrading data mining models from SQL Server
2005 to SQL Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 318

a
c      

You have the same two methods for upgrading your SQL Server 2005 data mining models to SQL Server
2008 R23 in-place and side-by-side.

To demonstrate upgrading data mining models from SQL Server 2005 to SQL Server 2008 R2, let͛s
consider a sample SSAS 2005 database that has a data source from the SQL Server 2005
AdventureWorksDW demo database, a data source view with all necessary database views included
(vTargetMail, vTimeSeries, vAssocSeqOrders, and vAssocSeqLineItems), and seven data mining models
in four data mining structures.

Four predictive models use the same structure, based on vTargetMail; the models try to predict whether
a customer is likely to buy a bike or not based on demographic data and using the following algorithms3
Decision Trees, Naïve Bayes, Neural Network, and Clustering. The Time Series mining model has its own
structure, based on the vTimeSeries view, for forecasting the sales quantity and amount of bike models
in different regions. And the Association Rules algorithm model is based on vAssocSeqOrders and
vAssocSeqLineItems database views, trying to find out which products are sold together. Although the
Sequence Clustering algorithm uses the same source database views, it has its own structure, with the
keys defined differently than in the structure for the Association Rules model. Sequence Clustering tries
to find not only which products are sold together, but also the order of products in a transaction. Figure
12-10 shows all the objects in the database to be upgraded.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 319

ë!" !( SSAS 2005 database

a
ac     
You start an in-place upgrade from SSAS 2005 to SSAS 2008 R2 similarly to how you start an in-place
upgrade from SSAS 2000. The first step is to run Upgrade Advisor. As you can see in Figure 12-11,
Upgrade Advisor did not find any issues with the SSAS 2005 database.

ë!" !! Upgrade Advisor did not find any issues with the SSAS 2005 database

When upgrading from SSAS 2005 to SSAS 2008 R2, BIDS is automatically installed. Therefore, you do not
have to run Setup again to install it, as you have to when you upgrade from SSAS 2000.

The upgrade process is also painless for the data mining models. Your SSAS databases are automatically
upgraded, and you can continue using your mining models the same way you used them in SSAS 2005.
In addition, you can use your SSAS 2005 mining projects in BIDS 2008 R2 to continue with development.

When you open the SSAS 2005 data mining project in BIDS 2008 R2 for the first time, the Visual Studio
Conversion Wizard is launched automatically, and your project is converted to version 2008 R2. You also
get a backup of your project automatically. However, if you want more detailed control over versions,

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 320

consider using a version control system to maintain previous versions or back up the project manually
before you convert it to BIDS 2008 R2. After you have converted a project to BIDS 2008 R2, you cannot
open it in BIDS 2005 anymore.

You will also need to perform some important data-mining tasks after your in-place upgrade from SSAS
2005 to SSAS 2008 R2. There are many valuable improvements and new features in SSAS 2008 R2 data
mining that can lead you to deploy a different predictive model in production, consolidate mining
structures, or refine forecasting models. We will discuss these important considerations in the Post-
Upgrade Tasks topic section later in this section.

a
c     
Although the Analysis Services Migration Wizard works only with upgrades from SQL Server 2000 to SQL
Server 2008 R2, you have plenty of options for migrating your mining models from SSAS 2005 to SSAS
2008 R23

{c You can back up the SSAS 2005 database and restore it on SSAS 2008 R2.
{c With SSMS, you can create an XMLA script for creating the complete database or any object in
the database and then execute the script on SSAS 2008 R2.
{c You can open the SSAS 2005 project in BIDS 2008 R2 and deploy it on SSAS 2008 R2.
{c You can reverse-engineer an SSAS 2005 database in BIDS 2008 R2 to create a 2008 R2 project
and then deploy the project on SSAS 2008 R2.

You can also quickly import SSAS 2005 data mining models to an SSAS 2008 R2 database by using the
EXPORT and IMPORT DMX commands.

Chapter 11, ͞Analysis Services,͟ covers the options for migrating a complete SSAS database. So in this
section, we focus on the data-miningʹspecific migration options.

With the EXPORT DMX command, you can export a complete mining structure, one or more mining
models, or a model or a structure with dependencies. Exporting with dependencies means that all
objects needed to process the structure, such as the data source and the data source view, are included
in the backup (.abf) file. Here are some examples of EXPORT commands executed on our sample SSAS
2005 database3

&&c
©
 c©c

c

4  c c 
cc
ccccc* ) 
)

 +*%c
&&c
©
 c c c© c

4  c c
c)c
ccccc* ) 
)©  +*%c
&&c
©
 c c© c2c  c

4  c c
c c
ccccc* ) 
 )© )  +*c
c



%c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 321

In SSAS 2008 R2, you can use SSMS to create an empty database. You can then use the IMPORT DMX
command, as follows, to import a mining model or a structure with all the objects required for
processing as long as you exported the model or the structure with dependencies, as in the third
EXPORT statement above.

&&c©
 c c© c2c  c
  c
cc c* ) 
 )© )  +*%c

If you already have the destination SSAS 2008 R2 database and you need to import only a mining
structure, import it from the backup file with the complete structure, as follows3

&&c©
 c©c

c
  c
cc c* ) 
)

 +*%c

Note that if you import from a file with only the mining model, the associated structure is created as
well. Therefore, you cannot have a structure with the same name in the destination SSAS database. The
following command shows an example of importing a mining model3

&&c©
 c c c© c
  c
cc c* ) 
)©  +*%c

This command imports from the file to which you exported the TM_DT model. And as we just noted, the
TM structure cannot exist in the destination database because it is recreated there during the import.
After the import, the TM structure contains only one model3 TM_DT.

Finally, for backward compatibility with SSAS 2000, the Decision Trees and Clustering algorithms support
the PMML presentation of a model. You can access this presentation format by using the DMX SELECT
FROM PMML command3

&&c c
 ©c


c'c
cc c) %c

In this query͛s result, you find the PMML presentation in the MODEL_PMML column. You can use the
CREATE MINING MODEL DMX command, copying the XML string from the MODEL_PMML column into
this command, to create a mining model and structure in SSAS 2008 R2 (for the sake of brevity, the
actual PMML is shortened in the following example)3



c c
c)c c c
*" c
©c2 èè  ©
è &)cc
5c
"è  *%c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 322

a
c 
  Ô 
As mentioned as part of the post-upgrade tasks for SSAS 2000, after your upgrade from SSAS 2005 to
SSAS 2008 R2, you should check the accuracy and the robustness of your predictive models before
deciding which one to deploy in production.

a "  ac )


A Lift Chart is the most popular way to view the accuracy of predictive models. For a Lift Chart, you need
to split your data into training and test sets.You use the training set to train the models and then try to
predict the target variable in the test set. Because you know the real value of the target variable in your
test set, you can measure how many times the predictions were accurate and compare the accuracy of
different models.The Lift Chart provides a standard way to graphically present this comparison.

Figure 12-12shows a Lift Chart for the predictive models we created in the sample SSAS 2005 database
for the value 1 (buyers) of the predicted variable (Bike Buyer).

ë!" !" Lift Chart for predicting a single value

From this chart, you can easily see the performance of different models. As you can see in Figure 12-12,
the chart shows six curves and lines. The four curves show the predictive models, and the two lines
represent the Ideal Model and the Random Guess. The X axis represents the percentage of the overall
population (all cases), and the Y axis represents the percentage of the target population (bike buyers).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 323

From the Ideal Model line (the topmost line), you can see that approximately 50 percent of Adventure
Works customers buy bikes. If you could predict with 100 percent probability which customer is going to
buy a bike and which is not, you would need to target only 50 percent of the population to get all bike
buyers. The lower line is the Random Guess line. If you would pick out cases of the population randomly,
you would need 100 percent of the cases for 100 percent of bike buyers. Likewise, you would need 80
percent of the population for 80 percent of bike buyers, 60 percent of the population for 60 percent of
bike buyers, and so on.

Data mining models give better results in terms of percentage of bike buyers than the Random Guess
line but worse results than the Ideal Model line. From the Lift Chart, you can measure the 2 of the
mining models from the Random Guess line, which is where the name Lift Chart comes from. Of course,
a model predicts the outcome with less than 100 percent probability in all ranges of the population;
therefore, to get 100 percent of bike buyers, you still need 100 percent of the population.

Data mining models give you interesting results somewhere between zero and 100 percent of the
population. For example, if you take the highest curve, the one right below the Ideal Model line, you can
see that if you select 70 percent of the population based on this model, you would get nearly 90 percent
of bike buyers. From the Mining Legend window, you can see that this is the Decision Trees curve. In
terms of accuracy of predictions from the demo data used for analysis, the Decision Trees algorithm
generates the best predictions, the Neural Network algorithm generates the second best, the Naïve
Bayes algorithm generates the third best, and the Clustering algorithm generates the fourth best. In this
example, if you checked the Lift Chart in SSAS 2005, you would probably decide to deploy the Decision
Trees model into production.

a "  c =

What you cannot see from the Lift Chart is how reliable your predictive models are. You do not know
whether they behave the same using different dataͶthat is, how robust the predictions are with
different data sets. In SSAS 2008 R2, you can test the reliability of predictive models by using cross-
validations.

With cross-validation, you partition your training data set into many smaller sections. SSAS creates
multiple models on the cross-sectionsͶusingone section at a time as test data and other sections as
training dataͶandthen trains the models and creates many different accuracy measures across
partitions. If the measures across various partitions differ a lot, the model is not robust on different
training/test set combinations.

Figure 12-13 shows the cross-validation settings you can specify as well as the cross-validation results of
predictive models.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 324

ë!" !# Cross-validation of predictive models

You can define the following cross-validation settings3

{c ë
 % With this setting, you define how many partitions you want to create in your
training data. In Figure 12-13, three partitions are created. When partition 1 is used as the test
data, the model is trained on partitions 2 and 3; when partition 2 is used as the test data, the
model is trained on partitions 1 and 3; and when partition 3 is used as the test data, the model is
trained on partitions 1 and 2.
{c  5
% You can define the maximum number of cases to use for cross-validation. Cases are
taken randomly from each partition. Our example uses 9,000 cases, which means that each
partition will hold 1,000 cases.
{c Ô    % This is the variable you are predicting.
{c Ô   % You can check overall predictions by leaving this field empty, or you can check
predictions for a single state that you are interested in. In our example, we are interested in bike
buyers (state 1).
{c Ô  Ô% You use this parameter to set the accuracy bar for the predictions. If the
predict probability exceeds your accuracy bar, the prediction is considered correct; if not, the
prediction is considered incorrect.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 325

The cross-validation report below the settings shows many different measures to help you check the
reliability of your models. For example, the classifications True Positive, False Positive, True Negative,
and False Negative count cases in the partition where predict probability is greater than your accuracy
threshold and predicted state matches target state.

You can see in Figure 12-13 that the True Positive classification of Decision Trees gives you very
consistent results across partitions. The True Positive classification counts cases predicted as positive
(bike buyers, in the example) that are actually positive. In addition, the standard deviation of this
measure is not too high.

However, when checking the Neural Network model, you can see that it is even more consistent for the
True Positive classification, which means that this model is more robust on different data sets than the
Decision Trees one. From the cross-validation results, it seems that you should deploy the Neural
Network model in production3 Although the accuracy of the Neural Network model is slightly lower than
that of the Decision Trees model, the reliability is higher.

Of course, in production, you should perform many additional accuracy and reliability tests before
deciding which model to deploy. But testing the reliability of predictive models is one of the most
important post-upgrade tasks when you upgrade to SSAS 2008 R2. To learn more about cross-validation,
see Cross-Validation (Analysis Services ʹ Data Mining)in SQL Server 2008 R2 Books Online.

a "  c  
 

In SSAS 2000 and SSAS 2005, you have to create a different mining structure if you want to use just a
subset of data for an additional mining model. In SSAS 2008 and SSAS 2008 R2, you can filter a specific
model to use only a subset of data for training.

For example, using the same structure, you can create a model trained on the complete training set,
another one trained only on the female population subset, and the third one trained only on the male
population subset. You can then compare the performance of the models trained on the complete
population with those trained on the various subsets. If you used different structures for subsets of
training data in SSAS 2000 and SSAS 2005, you should consider consolidating those structures into one
structure in SSAS 2008 R2 so that you can compare the performance of the models in a single Lift Chart
or with a single cross-validation.

To learn more about model filtering, see Creating Filters for Mining Models (Analysis ServicesͶData
Mining)in SQL Server 2008 R2 Books Online.

a "  c  
(

3
  
 

How can you measure the quality of forecasted values with the Time Series algorithm when you do not
have the actual data yet? Waiting until the data is available is likely not practical because by that time,
you might already have made wrong decisions based on your forecasting model. There is a better way to
measure the performance of the Time Series model. Using a specific number of periods from the past,
you can try to forecast present values. If the model performs well for forecasting present values,
probability is good that it will perform well for forecasting future values.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 326

You control the creation of historical models by using two algorithm parameters3
HISTORICAL_MODEL_COUNT and HISTORICAL_MODEL_GAP. The first one controls the number of
historical models that will be built, and the second one controls the number of time slices between
historical models. Figure 12-14 uses SSAS 2005 to show historical forecasts (the dotted lines before the
current point in time) for the R-250 model for sales quantity and amount in Europe. What you can see is
that the forecasts are very unstable and, thus, not very reliable. You can also see that the forecasts (the
dotted lines after the current time point) stop after a future time point, about 20 points in the future in
this example).

ë!" !+ Historical and future forecasts in SSAS 2005

The reason for this instability is that SSAS 2005 Time Series uses a single algorithm3 Auto-Regression
Trees with Cross-Prediction (ARTxp). This algorithm provides good short-term forecasts only. SSAS notes
this instability in long-term forecasts and simply stops forecasting.

In SSAS 2008 R2, you can use a blend of two different Time Series algorithms for forecasting. Besides
ART, SSAS 2008 R2 provides the Auto-Regressive Integrated Moving Average (ARIMA) algorithm, which
is much better for long-term forecasts. After you upgrade your Time Series models to SSAS 2008 R2, you
should refine the blend of ART and ARIMA in your models by changing the FORECAST_METHOD and
PREDICTION_SMOOTHING algorithm parameters. The first parameter uses an automatic method to

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 327

determine the mixture of the algorithms, and the second one (available only in Enterprise Edition) lets
you define the blend manually.

As you can see in Figure 12-15, the upgraded version of the Time Series algorithm uses a MIXED forecast
method. Therefore, ART is used for short-term forecasts and ARIMA for long-term forecasts.

ë!" !- Time Series algorithm parameters in SSAS 2008 R2

To learn more about Time Series algorithm parameters, see Microsoft Time Series Algorithm Technical
Referencein SQL Server 2008 R2 Books Online.

a cî  


There are many good reasons to upgrade your data mining models to SQL Server 2008 R2. If you are
using SSAS 2000, SSAS 2008 R2 gives you a complete set of modern algorithms, and you can create
additional models based on the same structure to find the best-performing one for deployment in
production. If you are using SSAS 2005, you probably already measure the accuracy of your predictive
models, but you might decide to deploy a different model based on reliability. In addition, you can get
much better long-term forecasting with the Time Series algorithm in SSAS 2008 R2. Finally, you can

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 328

consolidate multiple mining structures into one if you need to compare mining models trained on only a
subset of the structure data.

For upgrading your data mining models, a side-by-side migration is preferred to an in-place upgrade. The
most important reason is that with a side-by-side installation, you leave your original models intact.
However, if you do not have enough hardware power, you can perform an in-place upgrade; and with
thorough testing and planning, your upgrade can go smoothly whether your mining models are in SSAS
2000 or SSAS 2005.

a cx
   
For an up-to-date collection of additional references for upgrading to SQL Server 2008 R2 data mining,
see the following links3

{c SQL Server 2008 R2 Data Mining site


{c SQL Server 2008 R2 Analysis Services site
{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 329

ac

  

aac


This chapter is addressed to existing SQL Server customers who have developed extraction,
transformation, and loading (ETL) solutions with SQL Server 2000 and SQL Server 2005 and want to
upgrade these to SQL Server 2008 R2. Before we dive into this topic, we should review the history of ETL
functionality in SQL Server.

SQL Server 2000, which included Data Transformation Services (DTS), was the first major database
vendor product release to include ETL functionality in the core product. This resulted in DTS being
widely adopted by customers. However, DTS lacked various features and functionality that were
available in other enterprise ETL products.

SQL Server 2005 introduced SQL Server Integration Services (SSIS), which was architected from the
ground up to support customers͛ scalable enterprise ETL needs. Because SSIS and DTS were different
code bases, Microsoft provided add-ons for running and editing existing DTS packages, as well as a
Package Migration Wizard, which converted DTS packages to SSIS.

SQL Server 2008 R2 extends the capabilities of SSIS and includes new relational engine capabilities, such
as MERGE and Change Data Capture, which you can use in ETL applications. To learn more about these
and other SSIS features, see What͛s New (Integration Services)in SQL Server 2008 R2 Books Online.

This chapter will lead you through both the DTS and SSIS upgrade process and is organized into the
following sections3 preparing to upgrade, installing SSIS 2008 R2 and add-ons for DTS support, migrating
DTS packages, and upgrading SSIS packages.

ac 
  
   
Customers upgrading to SSIS 2008 R2 from either SSIS 2005 or DTS 2000 have multiple installation
options available, including upgrading in-place, performing a side-by-side installation, and performing a
new installation.

Putting all of these options aside for now (we will cover them later), the key to planning an upgrade to
SSIS 2008 R2 is to view the upgrade as a three-step process3

1.c       4   % First, determine what files and directories are
created (and removed for upgrades) as well as what system data gets moved or converted to
the SQL Server 2008 R2 format for upgrades. In addition, you need to know what other
component installs are required if you want DTS compatibility.
2.c '   Ô *      * $  6 % You run these wizards
to migrate existing DTS and SSIS packages, respectively, to SSIS 2008 R2.
3.c        % This step includes performing any tasks that should occur after
the wizards have produced SSIS 2008 R2 packages.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 330

To learn more about Step 1, see Considerations for Upgrading Integration Services and Considerations
for Upgrading Data Transformation Servicesin SQL Server 2008 R2 Books Online. Steps 2 and 3 are the
primary focus of this chapter.

It takes less effort to upgrade existing SSIS packages than DTS packages, given that SSIS 2008 R2 is more
about enhancing existing functionality and performance and less about introducing broad, sweeping
changes. However, you still need to do some planning for SSIS upgrades. You will need to convert
existing SSIS 2005 packages to the SSIS 2008 R2 package format, and you might need to make some
changes to the packages after the upgrade.

Whether you have DTS packages or SSIS 2005 packages, you should run the SQL Server 2008 R2 Upgrade
Advisor to find upgrade issues and resolve them. These issues are covered in more detail in the
͞Upgrade Advisor͟ and ͞Backward Compatibility͟ sections later in this chapter.

aac  


    Ô
Existing DTS customers have the following options for upgrading DTS packages to SSIS 2008 R23

{c Use the Migration Wizard to convert DTS packages to SSIS (with some restrictions)
{c Rewrite the DTS packages to fully leverage SSIS capabilities
{c Use a third-party tool (such as DTS xChange from Pragmatic Works Software)
{c Continue to run and modify existing DTS packages (with some restrictions)

§  DTS is a deprecated feature in SQL Server 2008 R2. This means that the next SQL Server
release might not include support for DTS. To prepare for this, customers should have a migration
strategy in place for each of their existing DTS packages. This also applies to all programs and scripts
that call the DTS object model.

You should start planning your approach in preparation for the day when DTS is no longer supported.
The following is one approach that you can take for your existing DTS packages3
1.c Run Upgrade Advisor before installing SQL Server 2008 R2 to better understand how your DTS
packages will migrate to SSIS 2008 R2.
2.c Move DTS packages to your SQL Server 2008 R2 environment and continue to run them as DTS
packages.
3.c Use SSIS to build any new packages you need.
4.c Create an inventory of your existing DTS packages and assign them a priority and order for
migration. Do not forget applications that use the DTS object model.
5.c Use the DTS Migration Wizard as a starting point for moving strategic packages to SSIS.
a.c Review any DTS tasks that were successfully migrated. You can leverage these in SSIS.
b.c Replace DTS code that was not successfully migrated with new SSIS code.
6.c Plan for a rolling strategy to rework all packages, leveraging the complete SSIS feature set in
the redesign.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 331

For more information, see Considerations for Upgrading Data Transformation Servicesin SQL Server
2008 R2 Books Online.

a  a ac  
!3
% 

The DTS Package Migration Wizard is included in SQL Server 2008 R2 and uses a ͞best effort͟ strategy to
generate new SSIS packages that replicate each DTS package͛s functionality. This means that DTS
functionality that cannot be migrated is encapsulated into a DTS 2000 Execute Package task, which is
supported by SSIS 2008 R2. Given this, the primary consideration for DTS package migration is the
existing DTS functionality, which we discuss in more detail in the ͞Comparing DTS and Integration
Services Functionality͟ section later in this chapter.

A second consideration is that the DTS Package Migration Wizard does not support reading DTS
packages stored in the SQL Server 2000 Meta Data Services repository. Therefore, you must first open
DTS packages stored in the SQL Server 2000 Meta Data Services repository and then save the DTS
package to a supported package store, namely the Windows file system (.dts) or the msdb database.

a  a c # 6
!3
% 

SSIS has many functional enhancements over DTS, including data flows, looping constructs, event
handlers, robust variables, logging, configurations, and performance enhancements. This means that
many existing DTS applications could better leverage SSIS features and performance enhancements if
they were rewritten to use SSIS instead.

One example is SSIS data flows and their ability to apply robust, high-performance transformations to
the data pipeline as it passes from source to destination. DTS data pumps did not have these
capabilities, so a migration of existing DTS packages could never take full advantage of the SSIS Data
Flow component.

Note that rewriting DTS applications is beyond the scope of this chapter, but the links in the ͞Additional
References͟ section at the end of this chapter point you to online best practices and guidance for
rewriting DTS applications to SSIS.

a  a c !3
;

DTS xChange is an enterprise solution offered by a Microsoft partner, Pragmatic Works Software. This
solution migrates DTS packages to SSIS packages while applying a series of best-practice rules to the
packages. The solution has three parts3

{c  ʹ DTS xChange Profiler feature lets you profile how much of a migration effort, in hours
and dollars, it will take to migrate to SSIS. The process lets you specify how long you believe
each type of task will take to migrate, whether you choose to use DTS xChange or manually re-
engineer the package. The result is a report showing the migration cost in hours and dollars for
each package, as well as the total cost for all packages.
{c
  ʹ DTS xChange will migrate your packages, applying rules to each DTS package during
the process to enforce best practices.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 332

{c    ʹ The SSIS Performance Warehouse is a software development kit (SDK) to help you get
the most out of your new SSIS environment. It contains a series of reports and a data warehouse
to monitor your SSIS package execution.

a  a c ()
 ' 
**+
#
 

!3
% 

SSIS 2008 R2 supports the execution, development, and management of DTS packages. Before
continuing, let͛s briefly review this DTS support.

DTS package execution is supported through the SSIS Execute DTS 2000 Package task, which Figure 13-1
shows.

ë!# !Execute DTS 2000 Package Task


This SSIS 2008 R2 task provides the same functionality as the DTS Execute Package task, with some
enhancements, as Figure 13-2 shows. These enhancements include the ability to store the DTS package
in the task itself, as opposed to a separate package store. The DTS Migration Wizard leverages this
capability when it encapsulates DTS code that cannot be migrated to SSIS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 333

ë!# "Execute DTS 2000 Package Task Editor


For more information, see Execute DTS 2000 Package Taskin SQL Server 2008 R2 Books Online.

You can also manage and migrate existing DTS packages from SQL Server 2008 R2 Management Studio
(SSMS). You can access this functionality in the Data Transformation Services folder͛s right-click context
menu, under Management, Legacy in Object Explorer, as Figure 13-3 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 334

ë!# #Managing DTS 2000 packages


For more information about migrating DTS to SSIS, see Support for Data Transformation Services (DTS)
in SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

As you prepare for your upgrade, you need to consider SQL Server 2008 R2 backward-compatibility
issues, including deprecated features, discontinued features, changes that might require package
modifications, and changes that might affect package behavior. Let͛s look at each of these items.

ac 
 

This topic describes the SSIS features that are still available in SQL Server 2008 R2 but that are scheduled
to be removed in the next release or a subsequent release of SQL Server.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 335

a   ac !3
/0 
 

The DTS object model is deprecated in SQL Server 2008 R2. You should plan to remove dependencies on
this object model in anticipation of future releases of SQL Server. The DTS object model will continue to
be supported in SQL Server 2000, SQL Server 2005, and SQL Server 2008 R2 releases. However, the
ability to migrate DTS packages might not be supported in the next release.

The deprecated DTS functionality includes the DTS API, the DTS Package Migration Wizard, support for
DTS package maintenance in SSMS, and the Execute DTS 2000 Package task.

For information about how to migrate DTS packages to the SSIS package format, see Migrating Data
Transformation Services Packagesin SQL Server 2008 R2 Books Online.

a   c ' @
 
3%

The ActiveX Script task in SQL Server 2008 R2 is provided only for backward compatibility with DTS and
will be removed in the next release of SQL Server. Use the Integration Services Script task for all new
scripting tasks, and migrate your existing ActiveX scripts to Integration Services Script tasks or use SSIS
capabilities such as expressions to recreate the ActiveX scripts͛ functionality.

For more information about deprecated features, see Deprecated Integration Services Features in SQL
Server 2008 R2in SQL Server 2008 R2 Books Online.

ac  
   
 

This topic describes the SSIS features that are no longer available in SQL Server 2008 R2.

a   ac =




In SQL Server 2008 R2, Microsoft Visual Studio Tools for Applications has replaced Visual Studio for
Applications as the scripting environment for the Script task and Script component. Although this
change does not require you to rewrite scripts, it does require you to convert Script tasks and
transformations that contain Visual Studio for Applications scripts to Visual Studio Tools for Applications
when you upgrade existing SSIS 2005 packages to SQL Server 2008 R2.

The SQL Server 2008 R2 Package Upgrade Wizard will convert Visual Studio for Applications scripts
(contained in Script tasks or transformations) to Visual Studio Tools for Applications before SSIS runs the
scripts. Microsoft no longer supports Visual Studio for Applications for Script tasks or transformations
that contain Visual Studio for Applications scripts.

For more information about discontinued functionality, see Discontinued Integration Services
Functionality in SQL Server 2008 R2in SQL Server 2008 R2 Books Online.

ac   î 


The following are changes from SSIS 2005 to SSIS 2008 R2 that you should be aware of when upgrading3

{c
     % Connection strings have changed for some key providers. Examples include
the native SQL Server Native Client provider (SQLNCLI.1 to SQLNCLI10.1) and Analysis Services
(MSOLAP.3 to MSOLAP.4).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 336

{c Ô     % Existing third-party components will need to be recompiled to support


SSIS 2008 R2͛s new programming API.

For more information, see Breaking Changes to Integration Services Features in SQL Server 2008 R2in
SQL Server 2008 R2 Books Online.

a
c   î 
The following are changes that might affect existing SSIS packages when they are upgraded to SSIS 2008
R23

{c Different values are returned to package variables from an Execute SQL task.
{c You use different tools for developing scripts in the Script task and data flow Script component.
Visual Studio Tools for Applications is used for scripting in SSIS 2008 R2, whereas Visual Studio
for Applications was used for scripting in SSIS 2005.
{c The data flow Lookup component has been enhanced. Developers should open, review, and
possibly revise all Lookup component settings in SSIS data flows.
{c The SQL Server 2008 R2 SQL Server Agent SSIS Package job step now invokes DTEXEC.EXE, as
compared to the SQL Server 2005 SSIS Package job step, which invoked DTEXECUI.EXE.

For more information, see Behavior Changes to Integration Services Features in SQL Server 2008 R2in
SQL Server 2008 R2 Books Online.

After taking these changes into consideration, you are now ready to run Upgrade Advisor.

a c   Ô

a  & ac ()
 ' 
**+
#

'

Upgrade Advisor can examine both DTS and SSIS 2005 packages to locate package tasks and data flow
transformations that need to be migrated and/or modified.

For details about Upgrade Advisor general installation and execution, see Chapter 1, ͞Upgrade Planning
and Deployment,͟ and Using Upgrade Advisor to Prepare for Upgradesin SQL Server 2008 R2 Books
Online.

The following are prerequisites for running Upgrade Advisor for DTS packages3

{c SQL Server 2000 Client components are required to scan SQL Server 2000 DTS packages.
{c SQL Server 2005 Backward Compatibility Components are required to scan SQL Server 2005 DTS
packages that were migrated from SQL Server 2000.

See the ͞Installing DTS Support͟ section in this chapter to learn about installing these components.

Upgrade Advisor gives you the option of analyzing both DTS packages and SSIS 2005 packages. Figure
13-4 shows an example where we have selected both components for analysis.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 337

ë!# +Selecting the DTS and Integration Services components to analyze


Figure 13-5 shows the next Upgrade Advisor screen, which prompts the user for the SQL Server 2000 or
SQL Server 2005 database instance name. Note that this screen cannot be skipped, even if all of your
existing DTS and SSIS packages are stored outside SQL Server as files in the Windows file system.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 338

ë!# -Connecting to a SQL Server database


Next, you select the location of your DTS packages. You need to specify a Windows folder path if you
have selected the x    2À option shown in Figure 13-6. If you select the x  
  À
  option, you do not need to provide additional parameters.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 339

ë!# 0Specifying the DTS package location


After clicking Next, you will be prompted for the password for encrypted packages, as Figure 13-7
shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 340

ë!# <Specifying the SSIS package location


§  The Upgrade Advisor Wizard prompts for only one password. Installations that contain
encrypted packages with different passwords will need to run Upgrade Advisor once for each
password, modify the packages to be unencrypted, or modify the packages to use only one
password. See Figure 13-8 for the message that is displayed in the report when this condition
occurs.
After you click Next, a Confirm Upgrade Advisor Settings window allows you to check your settings
before running Upgrade Advisor. Click Run to initiate the process. Upgrade Advisor will then examine all
selected packages and provide a high-level status, as Figure 13-8 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 341

ë!# )Analysis complete


Click Launch Report to see Upgrade Advisor͛s findings. Figure 13-9 shows an example of an Upgrade
Advisor report.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 342

ë!# =Upgrade Advisor DTS report


In this example, Upgrade Advisor found instances of the Dynamic Properties task in the DTS packages.
Clicking the plus sign for this entry provides details about this warning and a link to which DTS packages
contain the Dynamic Properties task.

You can then select Integration Services from the M À  




 drop-down list. Figure 13-10
shows the Upgrade Advisor report on the SSIS packages that were examined.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 343

ë!# !(Upgrade Advisor SSIS report


In this example, Upgrade Advisor found the following problems3

{c     % This will need to be recompiled with SSIS 2008 R2 before it can be used.
{c
     % These will need to be modified to reflect the latest provider name.
{c   *    % Visual Studio for Applications script tasks and script
transformations will be upgraded to Visual Studio Tools for Applications.

Note that Upgrade Advisor was unable to open an encrypted package with the password provided in the
SSIS Parameters screen. Figure 13-11 shows the message detail.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 344

ë!# !!Unable to scan package error


The example above shows only a subset of DTS issues that Upgrade Advisor detects. For more
information, see Known DTS Package Migration Issuesin SQL Server 2008 R2 Books Online.

The one issue that Upgrade Advisor does not detect that you should be aware of is the need to delete
and recreate ODBC connections after package migration.

a c î"
  
   
The bottom line for SSIS 2008 R2 coexistence with DTS and SSIS 2005 is that existing support for
developing, managing, and executing existing DTS packages will be unchanged if an existing instance of
the SQL Server 2000 or SQL Server 2005 relational engine remains on the server after the installation of
SQL Server 2008 R2Ͷthat is, in a side-by-side installation.

SSIS 2008 R2 also provides support for SSIS 2005. Because the SSIS package format has changed in SQL
Server 2008 R2, remember the following3

{c SSIS 2005 does not support the new SQL Server 2008 R2 package format.
{c SSIS 2008 R2 supports the SQL Server 2005 package format by first converting it to the SQL
Server 2008 R2 package format. This support includes the SQL Server 2008 R2dtexec utility,
which converts the SQL Server 2005 package into the SQL Server 2008 R2 format in memory
before running the package.

§  The package will not run if issues are encountered during the conversion of the SQL Server
2005 package format to the SQL Server 2008 R2 package format. To avoid this problem, first
upgrade your existing SSIS packages to SQL Server 2008 R2 before running them in SQL Server 2008
R2.

Because SQL Server 2000, SQL Server 2005, and SQL Server 2008 R2 each has its own particular package
format,each one requires its own development tool for editing and maintaining packages3

{c For SQL Server 2000 databases and DTS, use SQL Server 2000 Enterprise Manager.
{c For SSIS 2005 packages, use Business Intelligence Development Studio (BIDS) 2005 and SSMS
2005.
{c For SSIS 2008 R2 packages, use BIDS 2008 R2 and SSMS2008 R2.

Note that SQL Server 2008 R2 installations or installations that upgrade in-place will require SQL Server
2008 R2 support for DTS, which we cover later in this chapter͛s Installation section.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 345

In addition, see the ͞64-bit Considerations͟ section below for information about DTS limitations in a 64-
bit environment.

For more information about coexistence, see Interoperability and Coexistence (Integration Services)in
SQL Server 2008 R2 Books Online.

ac  
î 

In general, you will want to run SSIS in 64-bit mode to take advantage of the additional memory space.
However, in the following scenarios you might want to run packages in 32-bit mode even if you have an
x64-bit system3

{c To run uncompiled scripts


{c To run SQL Server 2000 DTS packages
{c To use a managed .NET Framework data provider or native OLE DB provider that is not available
in a 64-bit version

All available 32-bit and 64-bit design-time and run-time SSIS features are installed when you select both
the Integration Services and Business Intelligence Development Studio installation options. Installing
Integration Services also installs 32-bit run-time support for SQL Server 2000 DTS packages.

64-bit features are installed in the Program Files directory, and 32-bit features are installed separately in
the Program Files (x86) directory. (This behavior is not specific to SSIS or to SQL Server.)

The 64-bit editions of SQL Server support SSIS, with some restrictions. Some SSIS features are available
only in 32-bit versions, some have limitations on 64-bit computers, and some are not supported on
Itanium-based operating systems. Table 13-1 lists SSIS tool and feature support by environment.

Ô !# !Më    0+   


ë  ?0+#"   ?0+ M 0+
Dtexec.exe Yes Yes Yes
Dtutil.exe Yes Yes Yes
Dtswizard.exe Yes Yes Yes
SQL Server Agent SSIS support Yes Yes Yes
Dtexecui.exe Yes § §
DTS (design time) Yes § §
DTS (run time) Yes § §
BIDS 2008 R2 Yes § §

a  + ac 
)

The following are important considerations for Itanium-based systems3

{c BIDS, the 32-bit development environment for SSIS packages, is not supported on the Itanium
64-bit operating sytem and is not installed on Itanium-based computers.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 346

{c DTS support is not included in Itanium. Therefore, you cannot create, view, modify, or run DTS
packages on Itanium-based operating systems.

a  + c &
)

The following are DTS limitations that you must consider for x64 systems3

{c  5%5% This 32-bit tool runs packages in 32-bit mode. You should use the 64-bit version
of the dtexec utility to test the commands in 64-bit mode before installing your package(s) on
production servers.
{c Ô   % SQL Server 2000 DTS run-time support is available only in 32-bit mode on
x64 systems.
{c Ô   %There is 32-bit design-time support for DTS packages.

For DTS support details, see Support for Data Transformation Services (DTS) in SQL Server 2008 R2in SQL
Server 2008 R2 Books Online.

For more information about 64-bit considerations, see 64-bit Considerations for Integration Servicesin
SQL Server 2008 R2 Books Online.

a  + c &
!
' 
 

The primary consideration for data providers is whether there is a 64-bit version of the driver. Some
.NET Framework data providers and native OLE DB providers are not available in 64-bit versions, such as
the Microsoft OLE DB Provider for Jet, which connects to Access databases and Excel spreadsheets, and
the SQL Server Compact Provider. (See the KB Article, The Microsoft OLE DB Provider for Jet and the
Microsoft Access ODBC driver are available in 32-bit versions only.) Additional considerations exist for
both design time and run time.

ÔM    , #"    %You must install the 32-bit version
of the provider for all 64-bit providers on the development computer. Note that even though the
designer is a 32-bit application, you can still run the package from the designer in 64-bit mode by setting
the Run64BitRuntime project property to True (the default setting), as Figure 13-12 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 347

ë!# !"Setting the 64-bit runtime option for Design mode


This setting applies only to the execution within your design-time session.
The SSIS runtime will select the appropriate version of the provider to use depending on whether it is
running in 32-bit or 64-bit mode (both versions of the data provider have the same ID).

a  + c ()
 ' 


%
:; 
/ 

A SQL Server 2008 R2 SQL Server Agent job with a job step type of SQL Server Integration Services
Package will invoke the dtexec utility. This is new behavior in SQL Server 2008 R2; the SQL Server 2005
Agent always invokes the 32-bit dtexeui.exe utility.

The version of the dtexec utility that the job invokes depends on what versions of SQL Server and SQL
Server Agent have been installed and are running on the 64-bit computer along with the options you set
for the job step.

The SSIS package specified in the SQL Server Integration Services Packagejob step will

{c Always run in 32-bit mode on systems where the 32-bit versions of SQL Server and SQL Server
Agent have been installed and are running.
{c Run in 64-bit mode by default on systems where the 64-bit versions of SQL Server and SQL
Server Agent have been installed and are running.
{c Run in 32-bit mode (on 64-bit systems) when the ›À2   2 option is selected (as Figure
13-13 shows).

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 348

ë!# !#The SSIS 2008 R2 Package Job step 32-bit runtime option
In addition, you can invoke the 32-bit version of the dtexec utility from either a command line or a
batch. In these cases, the Execute Package Utility (dtexecui.exe) command-line option is a useful feature
for building the dtexec command-line syntax.

ac 

A key architecture question for SSIS is often which data provider to use when there are multiple
providers available (for example, when accessing an Oracle database). This document does not attempt
to provide an answer to this question for each possible data source. But you can find useful information
at the following links3

{c Matt Masson͛s blog entry New Connectivity Options in 2008 (also applicable to SQL Server 2008
R2) discusses the SQL connection pack, which provides enhanced support for Oracle, SAP, and
Teradata.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 349

{c The Integration Services wikiprovides a lot of useful content. Note that because this is a
community resource, Microsoft cannot take responsibility for any content on this sitec

See the ͞Additional References͟ section at the end of this chapter for more information about these
links.

aac   î

The SQL Server 2008 R2 Integration Services service is not a Windows failover cluster or cluster-aware
service. Therefore, Microsoft does not recommend that you install SSIS on clustered systems. However,
administrators can manually configure SSIS in a clustered environment.

Note that architects might want to install databases that do not require a clustered environment on the
same server as SSIS 2008 R2 for performance reasons. This includes staging and working databases as
well as some reporting databases.

For more information about SSIS and clustering, see Configuring Integration Services in a Clusterin SQL
Server 2008 R2 Books Online. For more information about upgrading failover clusters, see Chapter 4,
͞High Availability.͟

aaac G      

a  aa ac 
**+
#

/ 

Administrators can choose from the following options when installing SSIS 2008 R23

{c §    % Install Integration Services and/or the Database Engine on a server without a
previous version of SQL Server.
{c     % Install a new instance of SQL Server 2008 R2 on a server that has an
existing instance of SQL Server.
{c M    % Upgrade to SQL Server 2008 R2 from an existing instance of SQL Server.

The impact of your upgrade decision on existing ETL processes, for both DTS and SSIS, depends on
whether your goal is to3

{c Keep existing SQL Server 2000 and SQL Server 2005 instances in place to manage and run
existing DTS and SSIS packages (side-by-side installation)
{c Upgrade and migrate all DTS and SSIS packages to SSIS 2008 R2
{c Install or upgrade to SQL Server 2008 R2 while still supporting DTS applications

You will need to understand the options available to you in the SQL Server Installation Setup procedure
if your goal is any approach other than keeping existing management tools in place (that is, side-by-side
installation). These options were discussed in the ͞Coexistence with Other Versions͟ section earlier in
this chapter.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 350

a  aa c #
()
 ' 
**+
#
 



SSIS is installed using the SQL Server 2008 R2 unified Setup application. The features that you select
depend on whether you want your target system to serve as an SSIS run-time and/or development
system. In addition, you will select additional options for DTS run-time and design-time support.

Note that installing the Integration Services component will not affect the current DTS installation or
existing development and management tools, such as SQL Server 2000 Enterprise Manager or SSMS
2005.

Figure 13-14 shows the component selection screen used by the Setup application, with Integration
Services (as well as the workstation components) selected for installation.

ë!# !+Select components during SQL Server 2008 R2 setup


The recommended feature selection options for Integration Services are Business Intelligence
Development Studio (BIDS), Client Tools Connectivity, Integration Services, Client Tools SDK, SQL Server
Books Online, and Management Tools ʹ Complete.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 351

Selecting the Client Tools Backwards Compatibility option will install the Data Transformation Services
2000 Execute Package Task.

Review these installation notes3

{c Although Integration Services components can be installed without other SQL Server
components, it is recommended that you install the Database Engine along with Integration
Services. This will let you store packages in the msdb database as well as use SQL Server for
working and staging tables.
{c Installing the SQL Server 2008 R2 Integration Services components would allow packages to be
stored and executed, but not developed, on a server.
{c The workstation components can be installed without installing the SQL Server 2008 R2
Integration Services components. In this scenario, packages can be developed and tested in the
BIDS 2008 R2 environment but cannot be executed locally outside the BIDS environment.
{c The Client Tools Backwards Compatibility option installs the Execute DTS 2000 Package Task.
However, this alone does not provide complete support for DTS. See the ͞Installing DTS
Support͟ section below for more information about installing components for DTS supportc

Before you upgrade to SSIS 2008 R2, carefully review Considerations for Installing Integration Servicesin
SQL Server 2008 R2 Books Online.

a  aa c 
!3
 

Options available in the SQL Server 2008 R2 installation do not include full support for DTS. You have to
additionally install the following components for SSIS 2008 R2 DTS design and run-time support.c

{c The SQL Server 2000 DTS Designer Component installer package for DTS design support
{c The SQL Server 2005 Backward Compatibility installer package for DTS run-time supportc

Note that the order of installation is important to enable support for DTS design capabilities. The SQL
Server 2005 Backward Compatibility installer package must run after the SQL Server 2000 DTS Designer
Components have been installed. You can also rerun the SQL Server 2005 Backward Compatibility
installer and choose 2 if it was installed before the installation of the SQL Server 2000 DTS Designer
Components.

You can find the SQL Server 2005 Backward Compatibility install file in the following locations3c

{c On the SQL Server 2008 R2 installation CD (SQLServer2005_BC.msi). Make sure you use the
correct directory (such as x86, x64, ia64) for your target system.c
{c From the SQL Server 2008 Feature Pack page (also applicable to SQL Server 2008 R2). Make sure
you download the correct version for your platform (such as SQLServer2005_BC.msi,
SQLServer2005_BC_x64.msi, or SQLServer2005_BC_ia64.msi).

Invoking the SQL Server 2005 Backward Compatibility installation will install the Data Transformation
Services 2000 runtime by default, as Figure 13-15 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 352

ë!# !-SQL Server 2005 Backward compatibility Setup3 Feature Selection page
The SQL Server 2000 DTS Designer Component MSI can be downloaded from the Feature Pack for
Microsoft SQL Server 2005 page.

Note that a more recent version of the DTS Designer will be included in SQL Server 2005 SP3.

The SQL Server 2000 DTS Designer Components Setup has no feature selection options and will install
after you click Next, as Figure 13-16 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 353

ë!# !0DTS Designer Components Setup


As previously stated, you must run or rerun the SQL Server 2005 Backward Compatibility installation if it
ran before you installed the SQL Server 2000 DTS Designer Components.

There is one last step required to enable the DTS Designer after the DTS Designer and Backward
Compatibility components have been installed in the correct order. If this step is not executed, you will
receive an error when attempting to open a package, as Figure 13-17 shows.

ë!# !<DTS Designer error


You have two options for implementing this last step.

{c The first option moves DLL and RLL files from the SQL Server 2000 (80) directory to the SQL
Server 2008 R2 (100) directory. For more information, see How to3 Install Support for Data
Transformation Services Packagesin SQL Server 2008 R2 Books Online.
{c The second option is to modify the PATH environment variable to put the SQL Server 2000 tools
binn directory before the SQL Server 2008 R2 tools binn directory. The PATH environment

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 354

variable can be modified in the Control Panel, System, Advanced tab, on the Environment
Variables, Edit System Variable screen, as Figure 13-18 shows.

ë!# !)Modifying the PATH environment variable

The following is an example of the PATH variable after SQL Server 2008 R2 and SQL Server DTS 2000
Designer Components have been installed3

- ©©-.%- ©©-%- ©©-.%c


-!
 -. © ©
2% 
©
c
©©+cc


©© % 
©
c
©©+cc


 % 
©
c
©©+cc


©© 2©©/
% 
©
c
©©+c c
 ©c6©©/

 ù
9: .%":4%  $ ;0
7:<=:( ":2%:c

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 355

Copy the directory in bold and paste it in front of the SQL Server 2008 R2 tools directory path, as
follows3

- ©©-.%- ©©-%- ©©-.%c


-!
 -. © ©
2ù
9: .%":4%  $ ;0
7:<=:( ":2%:% 
©
c
©©+cc


©© % 
©
c
©©+cc


 % 
©
c
©©+cc


©© 2©©/
% 
©
c
©©+c c
 ©c6©©/

 c

Note that you will need to restart SQL Server for this PATH variable to take effect.

ac      


The DTS Migration Wizard, available from both BIDS 2008 R2 and SSMS 2008 R2, is the tool you will use
for the migration of your existing DTS packages to SSIS 2008 R2. In this section, we will lead you through
the DTS Migration Wizard using three examples that map to common DTS package patterns.

aac 
 Ô   
 
Note that some DTS features cannot be migrated directly to SSIS, even though SSIS provides a superset
of DTS functionality. Therefore, it is important that customers who plan to migrate their DTS packages
understand how their existing DTS packages͛ tasks and functionality map to SSIS.

One example is the DTS Dynamic Properties task. SSIS configurations and expressions provide
developers with greater functionality, but the wizard is unable to migrate this task because there is no
single task in SSIS that implements this capability.

In addition, some features are migrated to their SSIS equivalents only when the Copy Column
transformation is used. For example, the DTS Transfer Data (DataPump) task cannot be migrated to its
SSIS equivalent, the Data Flow task, if a transformation other than Copy Column was used.

The wizard will use a partial migration strategy when it cannot directly migrate an existing DTS task to an
SSIS task. This partial migration strategy involves encapsulating these tasks in DTS packages, which in
turn can be run by the SSIS Data Transformation Services 2000 Execute Package task.

For more information about how to migrate DTS packages, see Migrating Data Transformation Services
Packagesin SQL Server 2008 R2 Books Online.

ac î   Ô    


 

This section provides more information about existing DTS tasks and features and whether they map
one-to-one to an SSIS equivalent.
{c Table 13-2 lists DTS tasks and features that are migrated to their SSIS equivalent. Note that DTS
features followed by an asterisk (*) have variants that are not directly migrated to SSIS. These
variants are covered in either Table 13-3 or Table 13-4.
{c Table 13-3 lists DTS tasks that are partially migrated.
{c Table 13-4 lists DTS tasks and features that cannot be mapped to an SSIS equivalent.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 356

Ô !# "ÔÔ * ë    

Ôë  &"(()'"M,  

ActiveX Script task ActiveX Script task (deprecated in SQL Server 2008 R2)

Bulk Insert task Bulk Insert task

Copy SQL Server Objects task Transfer SQL Server Objects task

Data Mining Prediction task Data Mining Query task

Execute Package task Execute DTS 2000 Package task

Execute Process task Execute Process task

Execute SQL task Execute SQL task

File Transfer Protocol task FTP task

Message Queue task Message Queue task

Send Mail task Send Mail task

Transfer Data (Data Pump) task* Data Flow task

Transfer Databases task Transfer Database task

Transfer Error Messages task Transfer Error Messages task

Transfer Jobs task Transfer Jobs task

Transfer Logins task Transfer Logins task

Transfer Master Stored Procedures task Transfer Master Stored Procedures task

Connection objects Connection managers

Global variables Package variables

Precedent constraints* Precedent constraints

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 357

Ô !# #ÔÔ *       


Ôë    M   

Custom tasks Encapsulated in a DTS 2000 Execute Package task.

Data Driven Query Encapsulated in a DTS 2000 Execute Package task.

Parallel Data Pump task Encapsulated in a DTS 2000 Execute Package task.

Transfer Data (Data Encapsulated in a DTS 2000 Execute Package task when one or more non-
Pump) task Copy transforms are used.
Later in this chapter, we provide an example of how to recreate non-Copy
transform logic in SSIS 2008 R2.

Ô !# +ÔÔ * ë   §  


This table lists the DTS features that do not have a direct SSIS equivalent. Each feature is listed along
with some additional information about what post-migration steps should occur.

Ôë    M   

Analysis Services The SSIS 2008 R2 Analysis Services Processing task and Execute DDL Query
Processing task task are not compatible with SQL Server Analysis Services (SSAS) 2000.
These differences prohibit direct migration from a DTS task to an SSIS task.

Dynamic Properties task SSIS does not have a direct task equivalent, although SSIS Configurations
and Expressions provide a superset of the functionality supported by the
Dynamic Properties task.
This task is a special case where the wizard creates a Script task that
documents (but does not implement) the Dynamic Property task
operations.
We show an example of a migrated Dynamic Properties task later in this
chapter.

Error handling There is no direct conversion from DTS error handling to SSIS. Note that
SSIS Event Handling capabilities support far more robust error handling
than in DTS.
For more information, see Integration Services Event Handlersin SQL
Server 2008 R2 Books Online.
Package logging There is no direct conversion from DTS package logging to SSIS logging,
although SSIS logging is far more robust than DTS logging.
For more information, see Logging Package Executionin SQL Server 2008
R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 358

Ôë    M   

Package passwords SSIS includes new encryption features for protecting sensitive data, but
DTS package passwords are not migrated.
The Migration Wizard will display a Package Authentication screen where
you will need to enter the DTS package password to open the password-
protected DTS package.

Precedence constraints DTS precedence constraints (success, failure, and completion) are migrated
(workflow properties) to corresponding constraints within SSIS. However, any additional
workflow properties are not migrated.
Advanced workflow capabilities can be recreated using SSIS precedence
constraints, which include the ability to add expressions.
For more information, see Precedence Constraintsin SQL Server 2008 R2
Books Online.

Text annotations There is no direct conversion from DTS text annotations to SSIS
annotations. SSIS annotations can be added after the DTS package has
been migrated to the SSIS package.

Examples of the DTS Migration Wizard͛s behavior are provided in the next section, where we cover DTS
package migration in more detail.

ac  
 Ô 
  
This section guides you through the actual migration process. We cover how you start the DTS Migration
Wizard, walk through the wizard͛s screens, and then show how our DTS package examples migrate to
SSIS.

a   ac 

!3
 
1,

The DTS Migration Wizard can be started in one of two ways in an Integration Services project. First, you
can select the Migrate DTS 2000 Package menu option on the Project menu in BIDS 2008 R2, as Figure
13-19 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 359

ë!# !=Starting the DTS Migration Wizard from the Project menu
Alternatively, you can right-click the context menu of the SSIS Packages folder in Solution Explorer, as
Figure 13-20 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 360

ë!# "(Starting the Package Migration Wizard from the SSIS Packages folder in BIDS
In both cases, the DTS Migration Wizard will automatically add the migrated packages to the current
Integration Services project when it completes.

The wizard can also be started from the Data Transformation Services folder͛s right-click context menu,
as we saw earlier. Or, you can start the Package Migration Wizard from a command prompt by typing
DTSMigrationWizard from the SQL Server 2008 R2 installation folder (typically in the
%PROGRAMFILES% Microsoft SQL Server 100 DTS binn subdirectory).

a   c #

!3
 
1,

When the Package Migration Wizard starts, it initially displays a welcome screen, as Figure 13-21 shows.
Note that in this example, we are running the Package Migration Wizard from SSMS 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 361

ë!# "!Package Migration Wizard welcome screen


Click Next to start the wizard. The wizard will prompt for the DTS package͛s storage location. Your
options are a SQL Server 2000 or SQL Server 2005 msdb database or a .dts file. These options are shown
in Figure 13-22 and Figure 13-23, respectively.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 362

ë!# ""Package Migration Wizard Choose MSDB Source Location page

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 363

ë!# "#Package Migration Wizard Choose File Source Location page


Click Next to continue to the Choose Destination Location page, where you specify the storage location
for SSIS packages generated by the wizard. The location should be either a SQL Server 2008 R2 database
instance that contains the msdb database or a Windows file system folder.

Figure 13-24 shows the file folder destination option.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 364

ë!# "+Package Migration Wizard Choose Destination Location page


Clicking Next moves you to the List Packages page. By default, the most recent version of each DTS
package will be migrated. However, the wizard lets you select a previous version of a package by clicking
the Creation Date drop-down list, as Figure 13-25 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 365

ë!# "-Selecting DTS packages and versions for migration


Note that the msdb option will present you with multiple packages, while the file option will prompt for
one file at a time. To proceed, select which packages should be migrated and specify prior versions as
needed. Note that if a prior version of a DTS package is selected for migration, the resulting SSIS package
name will have the version ID appended to its name. The resulting SSIS packages can be renamed as
desired after the wizard completes.

The wizard prompts for password information if the DTS package contains passwords. Clicking Next
brings you to the Choose Log File screen, which Figure 13-26 shows. Simply specify a directory and log
file name, and then click Next to proceed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 366

ë!# "0Specifying a migration log file


Before proceeding with the migration, the wizard will display a summary of the selections made. Review
the summary to ensure that all the information is correct, and then click Finish to proceed. Figure 13-27
shows the summary information for a migration effort that specifies SQL Server as the source location,
the Windows file system as the destination location, and the set of three packages that we selected for
migration.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 367

ë!# "<Package Migration Wizard options summary


When the wizard begins migrating packages, a progress window will show which packages have been
migrated and the status of each. Figure 13-28 shows this screen after the wizard completes its
migration.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 368

ë!# ")Package Migration status


After the process is complete, click Report to obtain more detail about the migration or click Close to
shut down the Package Migration Wizard.

a   c  
 

After the migration process finishes, review every migrated package to determine what additional work
needs to be accomplished before the packages can be used. For example3

{c Look for partial migrations (that is, SSIS packages that have DTS 2000 Execute Package tasks in
their workflow)
{c Review ActiveX Script tasks to ensure that the functionality provided by the script will continue
to work

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 369

{c Review Dynamic Properties tasks, which are converted to Script tasks, and make any changes to
the package needed to recreate the functionality provided by the Dynamic Properties tasks

In the next section, we look at three sample DTS packages and the resulting SSIS packages generated by
the DTS Migration Wizard. In addition, we include some post-migration tasks required to duplicate the
original DTS package functionality.

ac Ô 


 " 
As we walk through how to run the DTS Migration Wizard, let͛s look at the following three examples of
DTS packages before and after migration3

{c   Ô  * % This package represents many existing DTS packages and
contains an Execute SQL task and a simple Data Flow.
{c  Ô  * % This package is identical to the Simple Data Transform package except
that we have added an Uppercase transformation.
{c   Ô * * % This package contains two commonly used support tasks used in DTS3 an
ActiveX Script task and the Dynamic Properties task.

These examples contain one case in which the DTS Migration Wizard migrates all tasks and two cases
where the DTS Migration Wizard implements a partial migration.

a   ac :; 
a-
 
!
3
%

The first example presents a common pattern used for loading staging databases. The package deletes
all records in a destination table before loading the table with source data of a similar structure from
another database, typically on another server.

This functionality is implemented by first using an Execute SQL task to delete all records in the
destination table and then branching to a DTS Data Transform task to load a destination table with
source data, as Figure 13-29 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 370

ë!# "=Example 1ͶDTS workflow


In this example, both the AdventureWorksDW and Destination connections are OLE DB Provider for SQL
Server connections.

Figure 13-30 shows the Connection Properties editor for the AdventureWorksDW connection.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 371

ë!# #(AdventureWorksDW Connection Properties window


Figure 13-31 shows the Execute SQL Task Properties window for the DeleteRecords task.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 372

ë!# #!DeleteRecords Execute SQL Task Properties window


Figure 13-32 shows the Transform Data Task Properties Source tab. Note that we use an SQL SELECT
statement to define our Source data set.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 373

ë!# #"Transform Data Task Properties, Source tab


Figure 13-33 shows the Transformations tab, in which six Copy Column transformations have been
defined. Each Copy Column transformation populates one destination column with one source column
of the same name and data type.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 374

ë!# ##Transform Data Task Properties, Transformations tab


Note that the DTS Migration Wizard will successfully migrate all combinations of the Copy Column
transformations, whether it is one transformation per column or one transformation for all columns, as
Figure 13-34 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 375

ë!# #+Transform Data task will successfully migrate all combinations of the Copy Column
transformation
Figure 13-35 shows the Options tab for the Transform Data task. (We will skip the Destination tab, which
simply shows the destination table structure.) For this example, the options are set to the default values
supplied by the DTS Transform Data task.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 376

ë!# #-Transform Data Task Properties, Options tab


Note that many DTS packages have changed these default values (such as,   À2 and M À 
 À2) for increased performance.

Example one is now successfully migrated, and Figure 13-36 shows the resulting SSIS package.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 377

ë!# #0The SSIS package from Example 1


Note that the wizard has migrated the DTS connections to SSIS connections, which are displayed in the
Connection Managers tab. Figure 13-37 shows the Connection Manager Properties window for the
AdventureWorksDW connection.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 378

ë!# #<AdventureWorksDW connection properties editor


The DeletedRecords DTS Execute SQL task was successfully migrated, as Figure 13-38 shows. Note that
in this simple case, the DTS and SSIS tasks look very similar. However, SSIS supports advanced
capabilities, including the Result Set, which lets you choose where and how you want to store the results
of a SELECT statement into SSIS variables.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 379

ë!# #)SSIS Execute SQL Task Editor


Next, let͛s look at the SSIS Data Flow task to which the DTS Data Transform task was successfully
migrated, as Figure 13-39 shows. The Data Flow task defines how data moves and how it is transformed
between a source and a destination. In this case, columns in a table in the OLE DB source are simply
mapped to similar columns in the OLE DB destination.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 380

ë!# #=Example 1ͶSSIS Data Flow Task Editor


Notice the partial list of Data Flow transformations in the Toolbox to the left. Compare this to the DTS
Transform task transformations, and you will start to see the huge jump in functional capabilities
between DTS Data Transforms and SSIS Data Flows. We will be using a transformation later for our
second example.

The DTS Data Transform Source tab migrates to a Data Flow source in the Data Flow workflow, which
Figure 13-40 shows. Notice how the SQL query was successfully migrated from DTS to SSIS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 381

ë!# +(Example 1ͶOLE DB Source Editor


The DTS Data Transform Destination, the Transformation Destination mapping, and the Options tab
were migrated to the SSIS OLE DB Data Flow Destination component, as Figure 13-41 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 382

ë!# +!Example 1ͶOLE DB Destination Editor


Notice in the OLE DB Destination Editor how information from the DTS Transform Options tab was
migrated to the Connection Manager screen. The Transformations tab was migrated to the Mappings
screen, as Figure 13-42 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 383

ë!# +"Example 1ͶDestination Mappings tab


As noted above, one area in which SSIS provides far more capabilities than DTS is in the transformations
and work flow that can occur between sources and destinations. For more information about the Data
Flow task, see Working with Data in Data Flowsin SQL Server 2008 R2 Books Online.

a   c :; 
-


B§ C
3

The second example is identical to the first except that instead of using the Copy Column
transformation, we are using the Uppercase String transformation for the First Name, Middle Name, and
Last Name columns, as Figure 13-43 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 384

ë!# +#Adding an Uppercase transformation


Note that this one change results in a partial migration because the DTS Migration Wizard does not
support DTS transformations other than the Copy Transform. Figure 13-44 shows the resulting SSIS
package.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 385

ë!# ++ Example 2ͶMigration result


The Transform Data task has been preserved by the DTS Migration Wizard by encapsulating it in a DTS
2000 package. Figure 13-45 shows the Execute DTS 2000 Package Task Editor window.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 386

ë!# +-Example 2ͶExecute DTS 2000 Package Task Editor containing the Transform Data Flow
Clicking the Edit Package option in the Execute DTS 2000 Package Task Editor displays the non-migrated
portion of the DTS example, which Figure 13-45 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 387

ë!# +-Example 2ͶData Transform


Note that the original DTS Data Transform was preserved after the DTS Migration Wizard determined
that it could not migrate the Uppercase transformation to equivalent SSIS functionality. In such cases,
you must rewrite the code to leverage SSIS functionality.

Two approaches that you can use to accomplish this are3

{c Document the DTS Data Transform source to destination mappings and build the SSIS Data Flow
from scratch.
{c Take a screen shot of the DTS Data Transform task and then modify the transformations to all
use ͞Copy column.͟ This way, the DTS Migration Wizard will migrate the task, which then lets
you open the Data Flow task and add the required functionality.

Figure 13-46 shows the Data Flow task with the Uppercase transformation implemented by using the
SSIS Character Map transform.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 388

ë!# +0Example 2ͶConverted to SSIS functionality


Notice how we also changed the generic component descriptions to more meaningful names. This
highlights one benefit of an ETL tool such as SSISͶnamely, the visual work flow is easier to understand
and maintain than a series of stored procedures and/or Transact-SQL (T-SQL) scripts.

The Character Map transformation is one of the many transformations available to an SSIS developer.
Figure 13-47 shows how we use the Character Map transform to duplicate the Uppercase functionality
implemented in the DTS Transform Data task.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 389

ë!# +<Example 2ͶCharacter Map Transformation Editor


Notice how we have the option of choosing whether we want this transformation to populate a new
column or to overwrite the existing column (that is, make an ͞In-place change͟). This starts to highlight
the additional capabilities of SSIS, in which you have a data pipeline that is operated on by a series of
transformations. You have the ability to add columns, remove columns, multicast to multiple
destinations, merge multiple pipelines into one, and so on.

Something to consider when migrating DTS packages to SSIS is that the Data Flow task͛s enhanced
capabilities over the DTS Data Transform task might be a strong reason to rewrite the DTS package to
take full advantage of SSIS capabilities. For example, many intermediate data-staging areas can be
eliminated now that developers can implement complex and varied transformations in one SSIS data
flow task.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 390

a   c :; 

>
 

!3
5  
3%

As we stated earlier, the wizard follows a ͞best effort͟ migration process. The Dynamic Properties task is
one example of a DTS feature that cannot be directly migrated by the Package Migration Wizard to
equivalent SSIS functionality.

The Dynamic Properties task was commonly used by DTS developers to dynamically set DTS connection
and global variables at runtime, thus enabling one package to run in multiple environments (such as,
development, test, QA, and production) without code changes.

Note that SSIS has enhanced the Dynamic Properties functionality by integrating robust configuration
support as well as introducing expressions, which provide unlimited flexibility for developers. However,
given this different approach, it is not possible for the wizard to migrate the old functionality to the new.
Instead, the wizard creates a Script task ͞placeholder,͟ which can be used to implement the
functionality in SSIS.

Figure 13-48 shows our third example, which contains a Dynamic Properties task that sets a DTS global
variable followed by an ActiveX script that calls Msgbox to display this variable͛s value.

ë!# +)Example 3ͶDTS common helper task package


Figure 13-49 shows that we are dynamically setting the global variable gSampleGlobalVariable with the
operating system Environment Variable. Note that the Dynamic Property Task3 PackageProperties Editor
is invoked by selecting Edit in the Dynamic Properties Task Properties Editor.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 391

ë!# +=Dynamic Properties Task Editor windows


Figure 13-50 shows the second task, an ActiveX Script that displays the value of this global variable by
using the Msgbox function. This represents another common DTS pattern3 DTS ActiveX Script tasks that
interface with DTS global variables.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 392

ë!# -(Example 3ͶActiveX Script Task Editor


Figure 13-51 shows the SSIS package created by the Migration Wizard.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 393

ë!# -! Example 3ͶMigrated to SSIS


Notice how the Migration Wizard successfully migrated the DTS global variables as well as the ActiveX
Script task. Also notice how the Dynamic Properties task was migrated to a Script task. Figure 13-52
shows the Script Task Editor window.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 394

ë!# -"Example 3ͶScript Task Editor


Clicking Edit Script will open the Script Task Editor and let you view the migrated results. The code
created by the wizard that documents the Dynamic Property operation follows3

 cc # c
c c *c©
ccc.cc
c c *c

©c
 cc 

c
*c ©cc* © c

 *%* ©
 *%*
©
*%* *c
c c *c'''''''''''''''''''''''''''''''''''''''''''''''''''c
c c  , cc
 c
c
 cc

Note how the wizard͛s output is not functional; its purpose is to document the behavior of the DTS
Dynamic Properties task.

The next step is to use this information to implement the functionality by using SSIS package
configurations. Figure 13-53 shows how to access this capability in SSIS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 395

ë!# -#Example 3ͶAccessing Package Configurations


Selecting Package Configurations will bring you to the Package Configurations Organizer, which Figure
13-54 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 396

ë!# -+Package Configurations Organizer


Clicking Add will start the Package Configuration Wizard. Figure 13-55 shows the wizard͛s second screen.
We start by selecting the configuration source, which in our example is the COMPUTERNAME
Environment variable.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 397

ë!# --Package Configuration Wizard3 Select Configuration Type screen


Next, we specify the destination to receive this value, which in our example is the gComputerName
variable͛s value property, as Figure 13-56 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 398

ë!# -0Package Configurations3 Selecting the target property


We then give this configuration a name and click Finish to complete the process, as Figure 13-57 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 399

ë!# -<Completing the Package Configuration Wizard


Now our SSIS package has the same functional capabilities as our DTS package.

In review, we have covered three DTS package examples that represent common patterns used in DTS.
Highlighting all combinations of the wizard͛s handling of existing DTS packages is beyond the scope of
this chapter. But remember that the DTS Migration Wizard͛s ͞best-case͟ migration approach means that
you must review every SSIS package to ensure that the package functionality is the same after
migration.

Note that SSIS by default validates a package when it is opened with the Integration Services Designer.
This means that any package that dynamically creates tables in the workflow or initializes Connection
Manager values at run time will throw an error because the table has not yet been created or the
Connection Manager͛s connection properties have not been initialized.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 400

You can resolve cases such as these by setting the DelayValidation property to true on the task or other
container object, or by setting the ValidateExternalMetadata property tofalse on the affected data flow
component.

For more information, see Migrating Data Transformation Services Packagesin SQL Server 2008 R2 Books
Online.

Also keep in mind the issue noted earlier in the ͞Upgrade Advisor͟ section3 You will need to delete and
recreate ODBC connections after package migration. As mentioned above, this issue has been corrected
and will be fixed in SQL Server 2008 R2 SP1.

For more information about DTS package migration issues, see Known DTS Package Migration Issuesin
SQL Server 2008 R2 Books Online.

ac      



Upgrading SSIS 2005 packages to SSIS 2008 R2 is a far simpler process than DTS package migration. It
mainly requires you to convert your existing packages from the SSIS 2005 package format (version 2) to
the SSIS 2008 R2 format (version 3).

The SSIS 2008 R2 package format, like the SSIS 2005 package format, is an XML representation of the
package definition that can be stored either in SQL Server (the msdb database) or in the Window file
system (as a .dtsx file).

SSIS 2005 packages can be upgraded using the following methods3

{c In BIDS 2008 R2, right-click an SSIS project͛s SSIS Packages folder and select Upgrade All
Packages.
{c Run the Upgrade Packages option from the SSMS Integration Services right-click context menu.
{c Run ssisupgrade.exe from the command line

Note that the wizard will also run automatically when you open an SSIS project in BIDS 2008 R2 and one
or more SSIS 2005 packages are detected in the project͛s directory.

The rest of this section takes you through the Package Upgrade Wizard process for these options. We
will use one sample SSIS 2005 package during this walk-through to highlight the areas where SQL Server
2005 and SQL Server 2008 R2 differ.

Our sample package reads data from a flat file and loads it into a database. The package includes tasks
that will be flagged by the SSIS 2008 R2 upgrade process, including a script task, a data flow component
script, and a SQL Server Native Client connection.

One thing missing from this package is a third-party task. Third-party tasks will need to be recompiled
with SSIS 2008 R2 before they can run successfully. Note that only a small percentage of existing SSIS
packages includes third-party tasks.

Figure 13-58 shows the SSIS_Package1 task flow, and Figure 13-59 shows the data flow.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 401

ë!# -)SSIS Example 3 task flow

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 402

ë!# -=SSIS Example 3 data flow

a  a ac 

% 


$!
**+
#

BIDS 2008 R2 will start the Visual Studio Conversion Wizard when it first opens a solution created in BIDS
2005. After it converts the solution to BIDS 2008 R2, the wizard starts the SSIS Package Upgrade Wizard
when it detects an SSIS project, defined in the .dtproj file, in the solution. The wizard first prompts you
for the packages in the solution that you are ready to upgrade, as Figure 13-60 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 403

ë!# 0( SQL Server 2008 R2 SSIS Package Upgrade Wizard3 Select Packages screen
Note that you will need to enter a password for each SSIS package that is encrypted. Clicking Next
moves you to the Select Package Management Options page, which is shown in Figure 13-61.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 404

ë!# 0!The Select Package Management Options screen


These options, when selected, will result in the following actions3

$       . New provider names will be substituted for connection strings if the new
name is known to the Upgrade Wizard (for example, SQLCLI.1 becomes SQLCLI10.1).

Note that these changes will also have to be made in the data source (.ds) files when the SSIS
Connection is created using the New Connection From Data Source option. Otherwise, the upgraded
connection strings in the DTSX package files will be overwritten by the non-updated versions in the data
source file when the package is opened.

Changing connection strings in data source files is discussed below in the ͞Post-Upgrade Tasks͟ section.

2     * % When set, this option will trigger package validation during the upgrade.
The package will not be upgraded if any validation errors occur. This is the same package validation that

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 405

occurs when you open an SSIS package (with the DelayValidation property set to False) in BIDS 2005 and
BIDS 2008 R2.

Note that this validation process is optional because it can slow down the upgrade, especially when
external servers are defined in Connection Manager connections. Validation of metadata involves
querying all data source and destination metadata.


   * M% This creates a new GUID for the package. This GUID is accessible through the
System33PackageID variable.


        *  % When this option is set, the upgrade process will
continue when a package upgrade fails. See the ͞Post-Upgrade Tasks͟ section below for information
about what can cause package upgrade failures.

d *   * %This option appears when you are using the same source and destination
locations. It will create a backup folder in the source directory (SSISBackupFolder) and copy the original
packages into it to prevent them from being overwritten.

Clicking Next will move you to a review page, which lets you recheck your options before continuing
with the upgrade, as Figure 13-62 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 406

ë!# 0"Package Upgrade Wizard review screen


Clicking Finish will start the upgrade process. After the wizard finishes the upgrade, it provides an
upgrade status per package, as Figure 13-63 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 407

ë!# 0#Package Upgrade Wizard status screen


You can either click the Messages link or click the Report button to obtain a report of the informational,
warning, and error messages by package that occured during the upgrade. Figure 13-64 shows the
message for our example.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 408

ë!# 0+ Package Upgrade Wizard upgrade report


This example includes most of the features and functionality that the Package Upgrade Wizard will
detect and change when you are upgrading from SQL Server 2005 to SQL Server 2008 R2.

For more information about upgrading SSIS packages, see Upgrading Integration Services Packagesin
SQL Server 2008 R2 Books Online.

a  a c #

%

1,
! 

Running the Package Upgrade Wizard outside of BIDS requires you to first specify the location of your
SSIS 2005 packages. This is true whether you run ssisupgrade.exe from a command prompt or you
invoke the wizard from SSMS. Figure 13-65 shows the Select Package Location screen that follows the
optional welcome screen.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 409

ë!# 0- Package Upgrade Wizard3 Select Source Location screen


The available SSIS package source options are the file system, the SSIS Package Store, and the Microsoft
SQL Server database. Note that the SSIS Package Store is a predefined directory created during SQL
Server installation. The default path for the SQL Server 2005 SSIS Package Store is the
%PROGRAMFILES% Microsoft SQL Server 90 DTS Packages folder.c

Specifying a File System Folder and clicking Next will result in the wizard retrieving all SSIS packages from
the specified folder and its sub-folders, as Figure 13-66 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 410

ë!# 00 Package Upgrade Wizard3 Select Packages screen


Clicking Next brings you to the Select Package Management Options screen, shown earlier in Figure 13-
61. Once there, you follow the same steps as if you invoked the wizard from BIDS.

a
c
  Ô 
There are still some steps remaining after your packages have been migrated from DTS or upgraded
from SSIS 2005.

a
ac Ô 

 Ô 
As we discussed earlier, it is a best practice to review (and run) every SSIS package produced by the DTS
Migration Wizard to check that the migration process was successful. This section lists specific areas
requiring further review and, in some cases, changes to the SSIS package.

In addition, please review the DTS migration examples 2 and 3 presented above for guidance and
examples for post-migration steps given common DTS package patterns.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 411

    *% You will need to re-implement these tasks using the SSIS task
equivalentsͶthat is, the Analysis Services Processing task and the Analysis Services Execute DDL task.
Note that neither of these tasks supports SSAS 2000, which means that you will need to upgrade to a
newer version of SSAS.

   % You will need to recreate all DTS annotations as SSIS annotations after the packages have
been migrated.

 ?  *% Every migrated ActiveX Script task should be reviewed and tested to ensure that it
is functioning properly. In addition, analysis to determine the effort to migrate this task to an SSIS Script
task will prepare you for the day when this feature is not supported in newer versions of SQL Server.

 ë  
   %This partially migrated task is core to ETL processing and should
be considered separately because it is at the core of most DTS packages. For such cases, consider the
approach used in ͞Example 2ʹ Adding a non-Copy Transformation͟ above. In this example, we removed
all non-Copy transforms (which allowed the task to migrate) and then added these capabilities to the
migrated SSIS 2008 R2 Data Flow task.

    *% You will need to re-implement every Dynamic Properties task, using the SSIS
Script task produced during the migration as a guide. This is necessary because the Script task produced
by the DTS Migration Wizard does not contain code; rather it documents the Dynamic Properties task͛s
destination property along with the source used to populate it.

See the ͞Example 3 ʹ Migrating Common DTS Helper Tasks͟ section above for an example of how to use
SSIS Package Configurations and Expressions to recreate this task͛s functionality.

§   % SSIS provides improvements over DTS for core ETL capabilities such as error
handling, logging, and workflow precedence. ETL developers will need to recreate these capabilities by
using the new and improved SSIS features.

 *  % SSIS has improved upon DTS security. Developers will need to recreate all package
security by using the SSIS security features.

      *% Any task that is partially migrated will still run in the Execute DTS 2000 Package
task. However, you should start preparing for the day when DTS will no longer be supported by newer
versions of SQL Server. Note that the amount of rework depends on the task; some will take longer than
others.

a
c  

  Ô 
The following is your task list after the Upgrade Wizard has converted your SSIS 2005 packages to the
new SSIS 2008 R2 packages format.

a "  ac 
!


!
' 
§ 

The Upgrade Wizard will upgrade all the Data Provider names for the SQL Server Native Client (SQLCLI.1
is upgraded to SQLCLI10.1) and SSAS (MSOLAP.3 is upgraded to MSOLAP.4) in the SSIS 2005 package.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 412

However, the Upgrade Wizard 


À
upgrade these data provider names in data sources (.ds files).
This means that you must manually make these changes to each data source after the package is
upgraded. Otherwise, BIDS 2008 R2 will replace all of the recently updated Connection Manager͛s data
provider names with the previous (and invalid) version.

Figure 13-67 shows an example of this. This sample package has one data flow that populates a comma
separated value (CSV) file with data from the Adventure Works Data Warehouse͛s DimCustomer table.
Notice that the Adventure Works DW.ds data source was used to create the Adventure Works DW
connection.

ë!# 0<SSIS package containing a data source connection


The first time you open this upgraded package, you will receive the message that Figure 13-68 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 413

ë!# 0)Synchronize Connection Strings screen


Notice how the new connection string (from the data source) still contains the old provider name,
SQLNCLI.1. The end result is that the upgraded data provider name will now be overwritten by the
original, which in turn produces an error in the package, as Figure 13-69 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 414

ë!# 0=Error after the connection string synchronization


You will need to manually change the connection string in the Data Source Designer to eliminate this
error, as Figure 13-70 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 415

ë!# <(Changing the data provider name


This corrected connection string is then propagated to the package͛s connection, and the data flow is
now operational.

An alternative approach is to change the data provider name directly in the data source file by using a
text editor before upgrading the package. This approach would eliminate the overwriting of the
upgraded data provider name with the previous version.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 416

a "  c 
/0 

All existing SSIS 2005 custom objects will need to be modified to work with SSIS 2008 R2. Custom objects
let developers extend SSIS capabilities when SSIS script tasks and components are not sufficient to meet
the solution͛s needs. These custom objects are usually developed by a third party or by an advanced
SSIS developer in an IT department.

Developers will need to upgrade their custom objects to SSIS 2008 R2. Third-party suppliers will need to
be contacted for an SSIS 2008 R2-compatible version of their custom objects.

Developers who want to upgrade their custom objects should review Upgrading Custom Objects for SQL
Server 2008 Integration Services(also applicable to SQL Server 2008 R2) in SQL Server 2008 R2 Books
Online.

Developers who want to learn more about custom objects should also review Extending Packages with
Custom Objectsin SQL Server 2008 R2 Books Online.

a "  c  
3%

 
  

As we noted early in this chapter, Visual Studio Tools for Applications has replaced Visual Studio for
Applications as the scripting environment for the Script task and Script transformation for SSIS 2008 R2.
Your task and component scripts will be automatically upgraded to Visual Studio Tools for Applications
by the Upgrade Wizard.

However, there are some scenarios in which the Upgrade Wizard will not be able to upgrade the script.
To learn more about these conditions, see Migrating Scripts to VSTA in SQL Server 2008 R2 Books
Online.

In addition, it is always a best practice to review and test all converted Script tasks and script
components to ensure that their behavior in SSIS 2008 R2 is similar to their SSIS 2005 behavior.

a "  c )%
  

The Upgrade Wizard converts the SSIS 2005 Lookup transformation to its SSIS 2008 R2 Lookup
transformation equivalent. However, you will need to change your Lookup component to leverage the
SSIS 2008 R2 enhanced capabilities, which include using the Lookup Cache Transform and Cache
Connection Manager to preload a cache and save it to disk (for use by Lookup transforms in multiple
packages).

For more information about Lookup components͛ new capabilities, see Lookup Transformation in SQL
Server 2008 R2 Books Online.

For more information about the Cache Transform transformation, see Cache Transform in SQL Server
2008 R2 Books Online.

a "  "c ()


 ' 

J

SQL Server Agent jobs that use an explicit file path to invoke DTEXEC in an Operating System (CmdExec)
job step must be changed to reference the SSIS 2008 R2 instance of DTEXEC, as follows3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 417

-  
-
©©+cc

6 
4
c

Is changed to3

-  
-
©©+cc

 
4
c

A better solution would be to use the SSIS 2008 R2 Package job step. This is the recommended approach
and will ensure that you are referencing the correct version of DTEXEC.

a cî  


Customers upgrading to SSIS 2008 R2 will follow different paths depending on whether their ETL
solutions were developed with DTS or SSIS. However, each of these paths consists of four essential
steps3 preparation, installation, package upgrade, and post-upgrade tasks.

Microsoft recommends that customers run Upgrade Advisor in the upgrade preparation phase to better
understand the effort required to upgrade existing DTS and SSIS packages to SSIS 2008 R2. In addition,
customers should be aware of some 64-bit limitations that apply to SSIS 2008 R2 features, including run-
time and design-time support for DTS.

The DTS upgrade path requires some additional installation steps if you require legacy support of DTS. In
addition, the DTS Package Migration Wizard provides a ͞best effort͟ migration, which means that you
must review all SSIS packages generated by the wizard to ensure that they will run correctly. The key
point is that DTS is a deprecated feature in SQL Server 2008 R2. So customers with existing DTS packages
need to develop a migration plan to prepare for the day when DTS support will no longer be included in
SQL Server.

The SSIS 2005-to-SSIS 2008 R2 upgrade path requires less effort than moving from DTS. The Package
Upgrade Wizard converts the SSIS 2005 package format (version 2) to the SSIS 2008 R2 package format
(version 3) as well as making selected changes after the upgrade completes.

a cx
   
For an up-to-date collection of additional references for upgrading SQL Server 2008 R2, see the
following links3

{c SQL Server 2008 R2 Integration Services Web site


{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 418

ac
  

aac


SQL Server 2000 Reporting Services (SSRS), which shipped in January 2004, provided users with the
ability to design and deploy reports within their organizations. The release of this important new
component of SQL Server 2000 allowed IT departments, development groups, database administrators,
and infrastructure specialists to reduce reporting total cost of ownership (TCO), development cycles, and
reliance on non-Microsoft reporting technologies.

With the release of SQL Server 2008 R2, SSRS has been updated with significant new features and ease-
of-use improvements. Customers currently using SSRS 2000, SSRS 2005, or SSRS 2008 need to determine
the best approach to upgrading their existing reports and/or their existing environment to SSRS 2008 R2.
The options available for upgrading depend on how your SSRS 2000, SSRS 2005, or SSRS 2008
environment is currently deployed and what level of availability and upgrade testing you need.

aaac 
   î 

When deploying SSRS, many customers chose to install the components using a local instance of SQL
Server for housing the report database. This approach is often called a single-server installation. The
diagram in Figure 14-1 shows this type of installation.

ë!+ ! Single-server installation of SSRS

SSRS also supports a remote installation in which the report server database is hosted on a different
server running SQL Server. This installation provides better scalability, separating report processing and
rendering from the database operations needed to manage and maintain report server content, such as
reports and snapshots. The diagram in Figure 14-2 shows a remote installation.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 419










ë!+ "Remote installation of SSRS

Alternatively, when customers require a highly scalable and available reporting environment, they can
deploy SSRS by using scale-out architecture, with or without a clustered environment for the instance of
SQL Server that hosts the report server database. Each report server in the scale-out deployment shares
a common report server database, providing an extensible architecture in which new report servers can
easily be added as the user population and load increases. The diagram in Figure 14-3 shows a scale-out
installation.

ë!+ # Scale-out installation of SSRS

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 420

For more information about deploying an SSRS scale-out architecture, see Reporting Services Scale-Out
Architecture on SQLCAT.

You can integrate a report server instance within a standalone or server-farm deployment of a Microsoft
SharePoint product or technology. Figure 14-4 shows a SharePoint server farm with an SSRS installation.

ë!+ + SharePoint integrated mode deployment

aac 
   

SSRS comes with all editions of SQL Server 2008 R2, with each edition meant to address specific
reporting needs throughout an organization; you can review the full list of features available in each
edition by reading Features Supported by the Editions of SQL Server 2008 R2in SQL Server 2008 R2
Books Online.

In addition, you can find more information about SSRS versions and editions in How to3 Detect Version
Information (Reporting Services)in SQL Server 2008 R2 Books Online.

Note that in this chapter, we refer toSQL Server 2008 with Service Pack (SP1)simply as ͞SQL Server
2008͟ to simplify the text and readability.

It is generally recommended that you upgrade each edition of SSRS 2000, SSRS 2005, or SSRS 2008 to
the same edition of SSRS 2008 R2. However, certain cross-edition upgrades are supported. Specifically,
you can upgrade the Standard Edition of SSRS 2000, SSRS 2005, or SSRS 2008 to the Enterprise Edition of
SSRS 2008 R2 (as well as to the Standard Edition of SSRS 2008 R2); additionally, you can upgrade the
Enterprise Edition of SSRS 2008 to the Datacenter Edition of SSRS 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 421

If you upgrade the Standard Edition of SSRS 2000, SSRS 2005, or SSRS 2008 to the Enterprise Edition of
SSRS 2008 R2, you will be able to use some new features, such as data-driven subscriptions, custom
security extensions, and scale-out capabilities.

For complete information about version and edition upgrade paths, see Chapter 1, ͞Upgrade Planning
and Deployment,͟ and Version and Edition Upgradesin SQL Server 2008 R2 Books Online.

§ 3 This document does not discuss the integration of new features in conjunction with an
upgrade of a database instance to SQL Server 2008 R2.

aac   î 



When upgrading from SSRS 2000, SSRS 2005, or SSRS 2008 to SSRS 2008 R2, you should consider the
following possible issues.

'"((('"((-          % If the report server database resides
within the default instance of SQL Server 2000 or SQL Server 2005 on the same server, the relational
engine and the report server must be upgraded together (if you are performing an in-place upgrade). In
this case, the SQL Server 2008 R2 Setup program upgrades the relational engine first and then upgrades
the report server components. When the report server database is upgraded, the Setup program
modifies the table structures to reflect the schema needed for SSRS 2008 R2, Most (if not all) schema
changes occur when the upgraded Report Server service starts up and runs its Auto-upgrade
functionality.

7    '                % If the


report server database resides within a named instance of SQL Server 2005 on the same server or
resides on a remote server, you can upgrade the Reporting Services component without upgrading the
relational engine. In this case, on startup of the upgraded report server service, the auto-upgrade
feature modifies the table structures of the report server database to reflect the schema needed for
SSRS 2008 R2. The SQL Server 2008 R2 report server service will continue to connect to the SQL Server
2005 relational engine, with the new database schema in place.

'      % If you upgrade an SSRS 2005 installation to SSRS 2008 R2
(i.e., upgrade the server components), you should also upgrade the client components used by all report
developers. Although it is possible to use the prior version of Report Designer with an SSRS 2008 R2
server, report developers might see a disparity between report preview in Report Designer and how the
report is rendered at run time. Note, however, that once you upgrade Report Designer on a given client,
you can no longer use it to publish reports to an SSRS 2000 or SSRS 2005 server. Report namespace
differences prevent publishing to the prior version of the report server, but you can still use Report
Designer from SSRS 2008 R2 to deploy to SQL Server 2008 by setting the TargetServerVersion property.

M       '"((('"((-'"(()      


     '"(()'"      % If you need the
previous SSRS 2000 or SSRS 2005 client components, you can reinstall them after the upgrade is
complete.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 422

M                 '"((('"((-'
"(()          % You can upgrade the servers in any order, but you
should stop all the report servers until all the upgrades are complete. To stop a report server, simply
stop Microsoft Internet Information Services (IIS) and the Reporting Services Windows service. When
the first report server is upgraded, the shared report server database will be upgraded. After finishing
the upgrades, simply restart the Reporting Services Windows service on each report server.

Here are some general upgrade notes and best practices you should understand before building your
upgrade plan for SSRS3

{c Cross-version instances of SQL Server 2008 R2 are not supported. Version numbers of the
Database Engine, Analysis Services, and Reporting Services components must be the same in an
instance of SQL Server 2008 R2.
{c Before upgrading SQL Server, enable Windows Authentication for SQL Server Agent and verify
the default configuration (for example, that the SQL Server Agent service account is a member
of the SQL Server sysadmin group).
{c Before upgrading from one edition of SQL Server to another, verify that the functionality you are
currently using is supported in the edition to which you are upgrading. For more information,
see the section for your components in Features Supported by the Editions of SQL Server 2008
R2in SQL Server 2008 R2 Books Online.
{c (() 
 *  #
  #((
  #((
{c Cross-platform upgradesare not supported. You cannot upgrade a 32-bit instance of SQL Server
to native 64-bit. However, you can upgrade a 32-bit instance of SQL Server to WOW64, the 32-
bit subsystem on a 64-bit server. You can also back up or detach databases from a 32-bit
instance of SQL Server and then restore or attach them to an instance of SQL Server (64-bit) if
the databases are not published in replication. In this case, you must also recreate any logins
and other user objects in the master, msdb, and model system databases. For details about
version and edition upgrade paths, see Version and Edition Upgrades in SQL Server 2008 R2
Books Online.
{c To upgrade to SQL Server 2008 R2, you must be running a supported operating system. You can
review the hardware and software requirements for SQL Server 2008 R2 by reading Hardware
and Software Requirements for Installing SQL Server 2008 R2in SQL Server 2008 R2 Books
Online.
{c The upgrade will be blocked if there is a pending restart.
{c The upgrade will be blocked if the Windows Installer service is not running.
{c The upgrade will be blocked if performance counters are corrupt.
{c To upgrade an instance of SQL Server to a SQL Server failover cluster, the instance being
upgraded must be a failover cluster. To upgrade a standalone instance of SQL Server to a SQL
Server failover cluster, install a new SQL Server failover cluster, and then move user databases
from the standalone instance by using the Copy Database Wizard. For more information about
upgrading a cluster, see How to3 Upgrade a SQL Server Failover Cluster Instance (Setup) in SQL

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 423

Server 2008 R2 Books Online. For more information about database migration, see Using the
Copy Database Wizard in SQL Server 2008 R2 Books Online.
{c To upgrade SQL Server 2005 to SQL Server 2008 R2 on a computer that is running Windows
Server 2008, you must be running SQL Server 2005 Service Pack 2 (SP2). SQL Server 2005 SP1 is
not a supported upgrade scenario.

aac            


You can upgrade SSRS 2000, SSRS 2005, or SSRS 2008 installations to SSRS 2008 R2 in one of two ways3
through an in-place upgrade (supported by Setup) or a side-by-side migration (installing a clean SQL
Server 2008 R2 instance and then moving data and metadata from SQL Server 2000, 2005, or 2008 to
SQL Server 2008 R2).

a a  ac 


With an in-place upgrade, SSRS 2000, SSRS 2005, or SSRS 2008 is removed and replaced by SSRS 2008
R2. During the upgrade process, the SSRS databases are upgraded, and users will not be able to access
SSRS 2000, SSRS 2005, or SSRS 2008 reports. After the in-place upgrade is complete, only SSRS 2008 R2
will remain. With an in-place upgrade, you test SSRS 2008 R2 after removing the previous SSRS version.

An in-place upgrade is an all-or-nothing approach; if an in-place upgrade fails, you cannot quickly roll
back to the SSRS 2000, SSRS 2005, or SSRS 2008 environment after the Setup program finishes the
upgrade (there is a go/no-go point within the Setup program before which you can simply cancel the
upgrade). To roll back to your previous SSRS environment after an upgrade to SSRS 2008 R2 is
completed, you need to uninstall SSRS 2008 R2, reboot, reinstall SSRS 2000, SSRS 2005, or SSRS 2008,
and then restore the SSRS 2000, SSRS 2005, or SSRS 2008 data and configuration files. Downtime in the
event of upgrade problems can be significant.

a a  c  


With a side-by-side upgrade, you install an instance of SSRS 2008 R2 alongside SSRS 2000, SSRS 2005, or
SSRS 2008, which remains until uninstalled. During the upgrade process, users can continue to access
the SSRS 2000, SSRS 2005, or SSRS 2008 reports (unaffected by the upgrade process), but performance
might be slower.

After SSRS 2008 R2 is fully tested, you can uninstall your previous SSRS version.

§  With a side-by-side upgrade, you can either use a copy of the existing report server database
for the new installation or redeploy reports and recreate server settings on a new server. For more
information about this process, see How to3 Migrate a Reporting Services Installation in SQL Server
2008 R2 Books Online.

M  The side-by-side upgrade option provides for greater availability during the upgrade
process, simplifies rollback (if it is required), and results in simpler testing scenarios because both
versions are available at the same time.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 424

Table 14-1 shows which upgrade option can be applied to each of the SSRS 2000, SSRS 2005, or SSRS
2008 configurations described earlier in this chapter. Note that you can use these options regardless of
which edition of SSRS 2000, SSRS 2005, or SSRS 2008 is in place.

Ô !+ !$  6  '"((('"((-'"(()


'   "(((4"((-4"(() M  $  @   

    $  @
Single-server installation (2000/2005/2008) Yes Yes
Remote catalog installation on SQL Server 2000 No Yes
Remote catalog installation on SQL Server 2005 Yes Yes
Scale-out installation (2000/2005/2008) Yes Yes

ac 
  
Before beginning an in-place upgrade of SSRS, take steps to ensure that a failed upgrade can be rolled
back. Although the in-place upgrade process has been designed and tested to handle almost all
situations, unforeseen problems might occur and result in a failed upgrade. In extreme cases, a failed
upgrade might even result in an unusable SSRS 2000, SSRS 2005, or SSRS 2008 installation. Thus,
planning for a failed upgrade process is critical.

A side-by-side upgrade of an existing SSRS 2000, SSRS 2005, or SSRS 2008 installation to SSRS 2008 R2
should not encounter the same types of problems that can affect an in-place upgrade. However, you
should follow the same steps because the files generated by the steps we cover in this section will be
needed for the upgrade process.

If a failed in-place upgrade occurs, in many cases the easiest resolution is to reinstall SSRS 2000, SSRS
2005, or SSRS 2008 and restore the installation to its state before the upgrade process was started. To
ensure that all the data and configuration files needed to restore the existing installation are available,
complete the following steps before the upgrade process begins.

1.c Verify that SQL Server 2008 R2 hardware and software requirements are met. If you do not
meet these requirements, the System Configuration Checker (SCC) portion of the SQL Server
Setup program will not permit Setup to continue.
2.c Run SQL Server 2008 R2 Upgrade Advisor to analyze installed SQL Server 2000, SQL Server 2005,
or SQL Server 2008 relational engine components; Chapter 1, ͞Upgrade Planning and
Deployment,͟ describes how to run this valuable tool. Then, review the generated report to
verify that you have addressed all issues that must be resolved before the upgrade and that you
understand the upgrade issues that you must resolve after Setup completes.
3.c Back up the report server͛s symmetrical encryption key by using the SSRS 2000, SSRS 2005, or
SSRS 2008 rskeymgmt utility. This command-line utility is used to extract or restore the
encryption key used by SSRS to store sensitive data within the report server database. This
utility is typically found in the3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 425

a.c <Drive3>'
2À'’2
À
 
  ' '

À'2 ' directoryif you are running


SSRS 2000
b.c <Drive 3>'
2À'’2
À
 
  ' '

À'2 ' directory if you are


running SSRS 2005
c.c <Drive 3'
2À'’2
À
 
  ' '

À'2 directory if you are


running SSRS 2008

To use this utility, simply open a command line, change to this directory, and issue the following
command3

, c1c1+; c1;

c
Replace the ;2 parameter with a valid file specification. This file will contain the symmetric
key information. Also, replace the ;ÀÀ
 parameter with a password, which will be used to
encrypt the symmetric key before it is stored in the file. For more information about the
rskeymgmt utility, see rskeymgmt Utility in SQL Server 2008 R2 Books Online.
4.c Back up the report server͛s databases by using any supported method for backing up a SQL
Server database. For a default installation of SSRS 2000, SSRS 2005, or SSRS 2008, make sure
that the ReportServer and ReportServerTempDB databases have been backed up.
5.c Back up critical configuration files related to SSRS 2000, SSRS 2005, or SSRS 2008, including the
configuration files discussed in the next section of this chapter.

aac  


    î 
 
SSRS stores component information in the registry and in configuration files that are copied to the file
system during setup. Configuration files contain a combination of internal-use-only and user-defined
values. User-defined values are specified through Setup, the configuration tools, the command-line
utilities, and by manually editing the configuration files.

Modifying the configuration files is necessary only if you are adding or configuring advanced settings.
Configuration settings are specified as either XML elements or attributes. If you understand XML and
configuration files, you can use a text or code editor to modify user-definable settings. For more
information about how to modify a configuration file or to learn more about how the report server
reads new and updated configuration settings, see How to3 Modify a Reporting Services Configuration
File in SQL Server 2008 R2 Books Online.

§  In previous releases, Report Manager had its own configuration file, named
RSWebApplication.config. That file is now obsolete. If you upgraded from a previous installation, the
file will not be deleted, but the report server will not read any settings from it. If the file exists on
your computer, you should delete it. In SQL Server 2008 and SQL Server 2008 R2, all Report Manager
configuration settings are stored in and read from the RSReportServer.config file. To review a list of
which settings were deleted or moved, see Breaking Changes in SQL Server Reporting Services in
SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 426

ac 
 î 
 


Table 14-2 describes where SSRS configuration settings are stored. Most configuration settings are
stored in configuration files included with SSRS. By default, the installation directory is3

{c <drive>3 Program Files Microsoft SQL Server MSSQL. in SSRS 2005


{c <drive>3 Program Files Microsoft SQL Server MSSRS10 in SSRS 2008
{c <drive>3 Program Files Microsoft SQL Server MSSRS10_50 in SSRS 2008 R2

Ô !+ "
   ë Ô&  
ë    &  
RSReportServer.config Stores configuration settings for <Installation directory>
feature areas of the Report Server Reporting Services
service3 Report Manager, the ReportServer
Report Server Web service, and
background processing. For more
information about service features,
see Service Architecture (Reporting
Services) in SQL Server 2008 R2
Books Online. For more
information about each setting,
see RSReportServer Configuration
File in SQL Server 2008 R2 Books
Online.
RSSrvPolicy.config Stores the code access security <Installation directory>
policies for the server extensions. Reporting Services
For more information about this ReportServer
file, see Using Reporting Services
Security Policy Files in SQL Server
2008 R2 Books Online.
RSMgrPolicy.config Stores the code access security <Installation directory>
policies for Report Manager. For Reporting Services
more information about this file, ReportManager
see Using Reporting Services
Security Policy Files in SQL Server
2008 R2 Books Online.
Web.config for the Report Server Includes only those settings <Installation directory>
Web service required for ASP.NET. Reporting Services
ReportServer
Web.config for Report Manager Includes only those settings <Installation directory>
required for ASP.NET. Reporting Services
ReportManager

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 427

ë    &  


ReportingServicesService.exe.config Stores configuration settings that <Installation directory>
specify the trace levels and logging Reporting Services
options for the Report Server ReportServer Bin
service. For more information
about the elements in this file, see
RSReportServer Configuration File
in SQL Server 2008 R2 Books
Online.
Registry settings Stores configuration state and HKEY_LOCAL_MACHINE
other settings used to uninstall SOFTWARE Microsoft
SSRS. If you are troubleshooting an Microsoft SQL Server
installation or configuration <InstanceID> Setup
problem, you can view these - And -
settings to get information about HKEY_LOCAL_MACHINE
how the report server is SOFTWARE Microsoft
configured. Microsoft SQL Server
Do not modify these settings Reporting Services
directly because this can invalidate
your installation.
RSReportDesigner.config Stores configuration settings for <drive>3 Program Files
Report Designer. For more Microsoft Visual Studio 8
information, see RSReportServer Common7 IDE
Configuration File in SQL Server PrivateAssemblies.
2008 R2 Books Online.
RSPreviewPolicy.config Stores the code access security <drive>3 Program Files
policies for the server extensions Microsoft SQL Server 100
used during report preview. For Tools ReportDesigner
more information about this file,
see Using Reporting Services
Security Policy Files in SQL Server
2008 R2 Books Online.

ac 
 

This section describes any SSRS features that have been deprecated and will not be supported in future
releases. For information about deprecated functionality, see Deprecated Features in SQL Server
Reporting Servicesin SQL Server 2008 R2 Books Online.

a   ac   
:;  
" "
 

Deprecation of Microsoft Internet Explorer 5.5 support was announced in SQL Server 2005 SP2. This
version of Internet Explorer is not supported in SSRS 2008 and later releases of SSRS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 428

ac  
   
 

This section covers the SSRS features no longer available in SQL Server 2008. For more information
about any of these features, see Discontinued Functionality in SQL Server Reporting Services in SQL
Server 2008 R2 Books Online.

We do not include announcements about discontinued support for specific versions of the operating
system or IIS. For information about system prerequisites, see Hardware and Software Requirements for
Installing SQL Server 2008 R2 in SQL Server 2008 R2 Books Online.

a   ac 


# 
 ' 
!

Starting in SQL Server 2005 SP2, the Report Server service is able to auto-detect the version of the
report server database and upgrade it to the schema that matches the version of the current report
server instance. When an older version of the database is detected, you are automatically asked if you
want to upgrade. If you proceed to upgrade the report server database, the schema is updated to the
new format, and you cannot roll it back to a previous format.

Because of the new auto-upgrade feature, you no longer need to create a database upgrade script and
there is no need for a manual upgrade option in the Reporting Services Configuration tool. In SQL Server
2008 and later releases, the button to create the script and the button that performs the upgrade action
are removed from the Database Setup page in the Reporting Services Configuration tool.

a   c ()
 ' 
***
# 
 ' 
1 
 '
: 

The SQL Server 2000 Report Server Web service endpoint is discontinued in SQL Server 2008, and the
ReportingService2005 and ReportingService2006 Web services have been deprecated in this release.For
information about current endpoints, see Report Server Web Service Endpoints in SQL Server 2008 R2
Books Online.

a   c 53)
/1
#  
:; 

The HTML with Office Web Components (OWC) rendering extension is discontinued in SQL Server 2008.

a   c 53)
 
#  
:; 

The HTML 3.2 format in the HTML rendering extension is discontinued in this release. The rendering
extension is no longer included in an SSRS installation.

a   "c # 
$ 
#


3

/

For SSRS in native mode, running Report Builder in partial trust mode is discontinued in SQL Server 2008
and later releases. SSRS supports running Report Builder in full trust mode only. This is true for both
native and SharePoint mode.

a   &c 
 
 
3

The Surface Area Configuration Tool is discontinued for SQL Server 2008. For more information, see
Backward Compatibility in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 429

a
c   î 
Breaking changes in SSRS are those that might break applications, scripts, or functionalities that are
based on earlier versions of SQL Server. You might encounter these issues when you upgrade or in
custom scripts or reports. SQL Server 2008 R2 Upgrade Advisor identifies many breaking changes;
Chapter 1, ͞Upgrade Planning and Deployment,͟ and Using Upgrade Advisor to Prepare for Upgrades, in
SQL Server 2008 R2 Books Online, describe how to run this tool to find and fix problems before the
upgrade.

For complete information about breaking changes in SSRS 2008 R2, see Breaking Changes in SQL Server
Reporting Services in SQL Server 2008 R2 Books Online.

a  " ac # 
 ' 
$ %
 

MM %§Ô%SSRS no longer depends on IIS to provide access to the SOAP endpoint. URLs no longer
include Web sites in IIS. Reporting Services uses HTTP.SYS directly to listen for requests on a specific port
that you define for report server URLs.

    1 ?%On supported editions of 32-bit Windows XP SP2, IIS 5.1 and SSRS cannot
use the same port. You cannot configure both IIS 5.1 and a report server to listen on the default HTTP
port (port 80).

IIS 5.1 does not use HTTP.SYS for Web applications hosted on the Web server. This means that there is
no common queue management for requests that come over the same port, and there is no common
repository of registered and reserved URLs.

'   1   M    .1M/ The Reporting Services


Windows Management Instrumentation (WMI) provider is not compatible with the previous version.
The new version includes additional methods to support URL registration. Because there can only be
one version of the Reporting Services WMI provider for a report server installation, this version replaces
the previous version. This change represents a breaking change for some deployments. If you created
scripts or tools that call the WMI provider, you must revise your code to use the new version. For more
information, see Reporting Services WMI Provider in SQL Server 2008 R2 Books Online.

This change also prevents users from connecting to a SQL Server 2005 instance in SQL Server
Management Studio (SSMS) when the user specifies the <À   > <2 À   > format to
connect. Instead, users must type the report server URL to connect.


       %The Report Server Web service, Report Manager, and the
background processing application are consolidated into a single service. You cannot start or stop them
separately.

'   % SSRS configuration files are also consolidated. The RSReportServer.config file is
the primary configuration file for Report Manager and the Report Server Web service. The
RSWebApplication.config file is obsolete. The following RSWebApplication.config settings have been
moved to the RSReportServer.config file3

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 430

{c ReportServerUrl
{c ReportServerExternalUrl
{c ReportBuilderTrustLevel
{c DeliveryUIsettingsfordeliveryextensions
{c DisplayErrorLink

The following settings are obsolete and are no longer used3

{c ReportServerVirtualDirectory
{c MaxActiveReqForOneUser

'     %ReportServerService_<timestamp>.log is the primary trace log for all


applications that run in the service. The following files are obsolete and are no longer created in SQL
Server 2008 and later releases3

{c ReportServerWebApp_<timestamp>.log
{c ReportServer_<timestamp>.log
{c ReportServerService_main_<timestamp>.log

'   
    %TheReporting Services Configuration tool no longer supports the
Upgrade Database or Grant Rights features that let you upgrade or grant permissions as independent
operations or generate script templates for performing these tasks. In SSRS 2008 and later releases,
both upgrading and database permissions are handled as internal operations.

&   %In SSMS, the Home folder is removed in this release. You cannot view,
manage, distribute, or secure report server content in SSMS.

'   %In Report Manager, the following links are removed from Site Settings3

{c Configure item-level role definitions


{c Configure system-level role definitions
{c Manage jobs

Report Manager no longer supports the ability to create, modify, or delete role definitions. You must use
SSMS to manage which tasks are in specific roles. Similarly, job management has moved from Report
Manager to SSMS.

   %Email subscriptions will not work for email aliases in the Sender, To, Cc, Bcc, and
Reply-To fields when the report server or the remote SMTP server is upgraded to Windows Vista or
Windows Server 2008.

&"(()'"'       Ô % The SQL Server 2008 R2
Reporting Services Add-in for Microsoft SharePoint Technologies 2010 provides report rendering,
processing, and management capabilities as well as data-driven subscriptions when you run a SQL Server
2008 R2 report server instance in SharePoint integrated mode. The add-in download contains a Report

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 431

Viewer Web part, Web application pages, and support for using either Windows SharePoint Services
2010 with .NET Programmability Support(WSS) or Microsoft Office SharePoint Services 2010.

To use SSRS 2008 R2 in SharePoint mode with SharePoint 2007, download the SQL Server 2008 R2
Reporting Services Add-in for Microsoft SharePoint Technologies, which provides3

{c A Report Viewer Web Part that provides report viewing capability, export to other rendering
formats, page navigation, search, print, and zoom.
{c Web application pages so that you can create subscriptions and schedules, and manage reports,
models, and data sources.
{c Support for using standard Windows SharePoint Services features, including document
management, collaboration, security, and deployment with report server content types.

d      %In SSRS 2008 and later releases, only NETWORK and NETWORK_CLEARTEXT logon
types are supported with Basic authentication; Interactive and BATCH logon types are not supported.

a  " c # 
$ 
$ %
 

'  d      %In earlier versions of SSRS running in native mode, you could
start SQL Server 2005 Report Builder by using the following URLs3

{c ë  BFor example,


http3//<À  >/reportserver/reportbuilder/reportbuilder.application
{c      BFor example,
http3//<À  >/reportserver/reportbuilder/reportbuilderlocalintranet.application

For both URLs, <À  > is the name of the computer that specifies the report server. For both
URLs, reportserver is the name of the report server instance.

In this release, you must use the full trust URL to run Report Builder. When you use the full trust URL for
the first time, you might be prompted to grant a higher level of permissions for the application. After
you grant these permissions the first time, you do not have to set them again.

§  If Report Builder does not run or if you get an error, contact the system administrator. You
might not have the permissions that you need to grant a higher level of trust for this application.
In this release, if you use the partial trust URL, the following error appears when you open or save a
report, or switch report servers3 "Failed. An error occurred while processing your request. Save your
report and restart the application."

a  " c # 
 
$ %
 

The report processing architecture is fundamentally changed in this release, providing on-demand
report processing. On-demand report processing significantly reduces memory usage on a report server.

a  " c #!)

$ %
 

The following RDL elements are not supported when you upgrade an existing report.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 432

63   '&  "-0   %Identifiers for objects in RDL (for example, textboxID)
were previously unrestricted in length. In SSRS 2008, the length of object identifiers is restricted to 256
characters. Identifiers still must be CLS-compliant.

M             , % In earlier versions of SSRS, snapshots saved all
possible combinations of interactive choices, such as drillthrough information and toggle choices. You
could view page five of a report, but programmatically toggle an item on page one by keeping track of
the correct ID for the toggle. In SSRS 2008, interactivity information is generated and saved only for the
last rendering request. You cannot view a page and programmatically toggle an item on another page.
You can toggle drill-down items only on the current report page.

'  63    %In this release, the Report Object Model namespace has
changed. This namespace provides read-only access from custom code to global collections such as
Fields, Parameters, and ReportItems. If existing custom code explicitly uses a fully qualified reference to
an earlier namespace, this change is a breaking change. It is recommended that you do not use fully
qualified references to access built-in collections from your code. By not explicitly specifying the
namespace, custom code references resolve to the version of the Report Object Model for the currently
installed version of SSRS.

a  " "c # 


#  
$ %
 

The report rendering architecture is fundamentally changed in this releaseto provide more consistent
rendering for paging and layout among different renderers.

§  3        % The rendering object model (ROM) has
changed for SQL Server 2008 and 2008 R2. Earlier versions of the ROM are no longer supported.
Accessing the ROM from a multithreaded rendering extension (and switching context from multiple
threads) is not supported. The new ROM makes the rules for rendering pages more consistent. For more
information, see Understanding Pagination in Reporting Services in SQL Server 2008 R2 Books Online.

' 
2  %In earlier versions of SSRS, when you exported a report to a CSV file
format, the data was formatted in a way that preserved how the data appeared on the report page. For
matrix data regions, this resulted in a data format that was inconvenient to import into other
applications so that you could continue to work with the data.

In this release, when you export a report to a CSV file, you can choose between two supported formats3
Default mode and Compliant mode. Default mode is optimized for Microsoft Excel. Compliant mode is
optimized for third-party applications. For more information, see Exporting to a CSV File in SQL Server
2008 R2 Books Online.

The earlier format for CSV files is no longer available. However, for reports that do not use matrix data
regions, you can use Compliant mode to get a file format closest to the earlier CSV file format.

           % In earlier versions of SSRS, different
renderers used different rules to determine which items with conditional visibility to include on a report

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 433

page. For example, aggregate calculations were not performed for hidden items in printed reports but
were calculated for hidden items in reports that you viewed with a browser or in Excel. In this release,
all renderers use the same set of rules to determine which items are on a page.

§    5% Earlier versions of SSRS provided limited support for translating
expressions in RDL to Excel formulas. In this release, when you export a report to Excel, RDL expressions
are not translated to Excel formulas.

6   % In earlier SSRS versions, if a report had overlapping items on the report design
surface, publishing the report produced a warning ("Overlapping report items are not supported in all
renderers."), but the report items remained in their original location on the design surface. In SQL Server
2008 and 2008 R2, report items might be moved to correct overlapping boundaries when a report is
viewed or exported to a renderer that does not support overlapping items. For more information, see
Understanding Rendering Behaviors in SQL Server 2008 R2 Books Online.

a c   î 


There are a number of behavior changes in this release that might require corrective action after the
upgrade is complete. In this section, we look at fundamental changes to this release functionality that
might affect how you work.

Behavior Changes in SQL Server Reporting Services in SQL Server 2008 R2 Books Online describes
behavior changes to the following SSRS 2008 R2 components3

{c Report Server Configuration and Management Tools


{c Report Authoring
{c Report Processing
{c Report Rendering

Let͛s review the behavior changes in each of these components.

a  & ac # 
 ' 
 

  
3

SSRS includes several tools and applications that you use to configure the server and manage content
and operations. In SSRS 2008 R2, each tool is aligned to a specific purpose3 configuration,
administration, or content management. To promote consistency within a tool and to remove
overlapping functionality, features and tasks have been added and removed from tools. If you were
accustomed to using a tool to perform a given task, you might now need to use a different tool to
accomplish the same task. Table 14-3 lists the behavior changes for report server configuration and
management tools.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 434

Ô !+ #d 


 '  
      Ô
ë    
Reporting Color-coded status icons have been removed. New URL configuration pages
Services replace the pages for creating virtual directories. The workflow for creating and
Configuration configuring a report server database has been revised. You now use a wizard to
create or update database connections.
SQL Server SSMS supports only server administration tasks. You can connect to and
Management configure a report server that runs in native mode or in SharePoint integrated
Studio mode.
Report You use Report Manager to view and manage report server content. SSRS 2008
Manager introduces the ability to manage report models. You can now set model item
security and associate click-through reports to entities in a model. When
viewing a report in Report Manager, because of the changes introduced by on-
demand report processing, the toolbar displays a page estimate with a question
mark instead of the actual number of pages for a report. You can still click the
Last Page button and navigate to the end of the report.

Table 14-4 summarizes the tasks supported by the various SQL Server 2008 tools.

Ô !+ +'Ô *    Ô


Ô * '      '  
 
     & 

    $  
Reserve URLs X X
Set the service account and X X
password
Create the report server X X
database, or change connection
string
Configure report server scale-out X X
Back up, restore, change keys, or X X
delete encrypted data
Configure unattended execution X X
account
Configure report server email X
Enable My Reports X
Enable logging on report X
execution
Enable client-side printing X

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 435

Ô * '      '  


 
     & 

    $  
Set server defaults for report X
history
Create or modify role definitions X
View status of a running report X
or model process and stop it if it
is taking too long
Grant permissions to report X
server items and operations by
creating role assignments at the
item and system level
Define and manage the report X
server folder hierarchy
View reports, report models, X
shared data sources, resources,
and folders
Upload report definition (.rdl), X
report model (.smdl), and
resource files
Create and manage shared X X
schedules
Create and manage linked X
reports
Create and manage report X
history
Create and manage shared data X
sources and any data source
properties defined in an
individual report
Schedule when data processing X
occurs for a report, or configure
a report to run as a report
execution snapshot
Subscribe to report deliveries, X
and create and manage data-
driven subscriptions
Create data-driven subscriptions X

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 436

Ô * '      '  


 
     & 

    $  
Use Report Builder to create, X
modify, and save reports
Generate models, associate X
click-through reports to entities
in a model, and set model item
security


a  & c # 


Beginning with the SQL Server 2008 RTM version, the new functionality for SSRS Report Designer is
integrated with Business Intelligence Development Studio (BIDS). Here are some behavior changes
related to report authoring.

For more information, see What's New in Report Authoring in SQL Server 2008 R2 Books Online.

    % In SQL Server 2008 R2, you can upload existing reports written for earlier versions
of RDL to an SSRS report server. When uploaded to the report server, the report is automatically
upgraded and passed to the report processor. The report you upload remains in its original format. If
you save the report after uploading it to the report server, you get an identical copy of the report you
uploaded.

     5% In earlier SSRS versions, the four data regions (Table, Matrix, List, and
Chart) were distinct report items with their own layout behavior and properties. In this release, the
Table, Matrix, and List data regions have been replaced by a new flexible grid layout called a Tablix data
region, which uses predefined templates to create the former data regions. The Tablix data region lets
you combine aspects of tables and matrices into flexible report layouts. For more information about the
Tablix data region, see Working with Tablix Data Regions in SQL Server 2008 R2 Books Online.

The Chart data region remains a separate report item. New chart typesͶsuch as Polar, Radar, and
FunnelͶhave been added to the Chart data region. For more information about the new chart types,
see Working with Chart Data Regions in SQL Server 2008 R2 Books Online.

           % Extra white space is no longer removed
by default. Now when you render a report that had extra white space on the report body when viewed
on the report design surface, the trailing white space after the last report item on the page is preserved.
This might result in more pages for an existing report. To remove the white space, set the report
property ConsumeContainerWhitespace to true. For more information about this change, see What's
New in Report Authoring in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 437

a  & c # 
 

Report processing has been redesigned in this release, with reports now processed and rendered page
by page as a report user interactively reads through a report. The amount of data on each page
influences the rendering time for each page. The total number of pages is determined when a report is
rendered. For some renderers, an estimated number of pages is displayed until all pages in a report have
been rendered.

M % Images are no longer retrieved during the initial session when a report is rendered. Images are
retrieved when they are accessed for the first time during on-demand processing. For history and
execution snapshots, images are retrieved at snapshot-creation time.

5  &Ô '  Ô Ô'  % Report log entries for
TimeDataRetrieval, TimeProcessing, and TimeRendering are logged when a report has been rendered.
See the SSRS Samples on CodePlex for code examples that read and review the Execution Log.

    5  % In earlier SSRS versions, the entire report was processed before any page
could be viewed. Errors in expressions for the Visibility.Hidden RDL property were detected before a
report could be exported. If you could view the first page of a report, you could export the entire report
without error.

In this release, however, reports are processed page by page. If errors exist in an expression for the
Visibility.Hidden RDL property, the error might not be detected until the page on which the error exists
is rendered for export. In this case, the entire export fails. Being able to view a few pages of a report
successfully does not guarantee that you can export the entire report. You must try to export the report
and wait for a successful completion before you know that the report exports without error.

Expression evaluation for group, sort, and filter operations continue to behave as in previous SSRS
versions. Errors in these expressions are detected by the report processing component and are reported
as critical errors before the first page of a report is rendered.

a  & c # 
#  

Report rendering redesign in SQL Server 2008 and 2008 R2 has introduced the following behavior
changes when rendering an existing report.

  *% In earlier SSRS versions, soft page break renderers handled report items in a container (in a
rectangle or in the report body) in the following way3 Page breaks from the top-most and bottom-most
report items were applied to the container to minimize extra blank pages. In the new ROM, page breaks
that you set on report items, known as logical page breaks, always cause a new page to be rendered. No
attempt is made to eliminate extra pages. For more information about this change, see Understanding
Pagination in Reporting Services in SQL Server 2008 R2 Books Online.

'  1  % In earlier SSRS versions, soft page break renderers included report items on a page
when the RepeatWith property was set to true. These report items were not counted when calculating
page size because of the flexible nature of page size for a soft page break renderer, nor were they

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 438

counted when you set InteractiveHeight to control the amount of data on a page. In this release of SQL
Server, these items are counted toward the total page size. The result is that pages might contain less
data, but setting the value for InteractiveHeight has more influence on the page size. For more
information about this change, see Understanding Rendering Behaviors in SQL Server 2008 R2 Books
Online.

§       5%In earlier versions of SSRS, nested data regions and
subreports in table and matrix cells were not supported when you exported a report to Excel. In SQL
Server 2008 and 2008 R2, this limitation has been removed. You can design reports that use nested data
regions and subreports in a data region, export the report to the Excel renderer, and view the nested
report items. For more information about this change, see Exporting to Microsoft Excel in SQL Server
2008 R2 Books Online.

a c 
 

 
      


You must update existing report projects and definitions for use within BIDS so that you can make
updates and changes to existing reports. When an existing report project is opened within BIDS, the
project will need to be upgraded to Visual Studio 2008 format. After opening the project, the BIDS
environment will launch the Visual Studio Conversion Wizard, which you can use to perform the
upgrade.

After you have upgraded the project for use within the BIDS environment, you must also upgrade each
individual report from the SSRS 2000 or SSRS 2005 format to the SSRS 2008 R2 format. This will update
the RDL within each report to ensure that it is compatible with the new version. Open each report in the
project to launch the report converter. BIDS will display a confirmation message and update the report
RDL. The updated report will then be opened in the Report Designer within BIDS. Save the report to
complete the upgrade process. You need to upgrade and save each report within a project before you
can fully deploy the project to SSRS 2008 R2.

When reports are converted, a number of changes are made3

{c The report definition namespace is upgraded to RDL 2008.


{c The CustomReportItem element is modified to support data-bound controls. The element now
includes child elements that describe the data used by the control as well as the properties and
dimensions of the control in the report.
{c The Custom element is replaced by a custom properties collection that contains name-value
pairs. Upon upgrade, all instances of a custom element are mapped to a custom property in the
CustomProperties collection.
{c The RDL schema includes a new <ReportSections> element and elements that define the map
report item. In this release, only reports that have one report section can be opened in Report
Builder 3.0 or Report Designer in BIDS.

Once you have converted and saved a given report, you can deploy it to an SSRS 2008 R2 report server.
If you have converted all the reports in a given project, you can deploy the entire project.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 439

M  3 Once a report has been converted to the SSRS 2008 R2 schema, it can no longer be
published to an SSRS 2000 or SSRS 2005 instance. However, SSRS 2008 R2 can read previous
version RDLs without conversion.

In the SQL Server 2008 R2 version of BIDS, you can work with both SQL Server 2008 R2 and SQL Server
2008 versions of report definitions and Report Server projects. You can edit, preview, and deploy
reports of either version.

ac   Ô

a  + ac ()
 ' 
**+
#

'

SQL Server 2008 R2 Upgrade Advisor helps you prepare for upgrades to SQL Server 2008 R2. Upgrade
Advisor analyzes installed components from earlier versions of SQL Server, and then generates a report
that identifies issues to fix either before or after you upgrade.

M      $  %Where you install Upgrade Advisor depends on what you want
to analyze. Upgrade Advisor supports remote analysis of all supported components except Reporting
Services. If you are not scanning instances of SSRS, you can install Upgrade Advisor on any computer
that can connect to your instance of SQL Server and that meets the Upgrade Advisor prerequisites. For
details, see Version and Edition Upgrades in SQL Server 2008 R2 Books Online. If you are scanning
instances of SSRS, you must install Upgrade Advisor on the report server.

{c Upgrade Advisor is available in the Servers redist Upgrade Advisor folder of the SQL Server
installation media, and from the Microsoft Download Center.

Prerequisites for installing and running Upgrade Advisor are as follows3

{c Windows XP SP2 or later, Windows Vista, Windows Server 2003 SP1 or later, or Windows Server
2008.
{c Windows Installer 4.5 or later. The .NET Framework 2.0 requires Windows Installer 4.5. You can
download Windows Installer from the Windows Installer Web site.
{c The .NET Framework 3.5 SP1. The .NET Framework 3.5 SP1 is available on the SQL Server 2008
R2 product media and is installed automatically as a prerequisite.
{c The .NET Framework 2.0 or later. The .NET Framework 2.0 is available on the SQL Server 2008
R2 product media as well as from the .NET Framework 2.0 SDKs, Redistributables & Service
Packs Web site. To install .NET Framework 2.0 from the SQL Server 2008 R2 media, locate the
root of the disk drive, double-click the redist folder, double-click the 2.0 folder, and run
dotnetfx.exe (for 32 bit) or dotnetfx64.exe (for 64 bit), depending on your operating system.
{c SQL Server 2000 decision support objects (DSO) are required to scan upgrade issues in SQL
Server Analysis Services (SSAS). To install DSO, insert the SQL Server 2000 media into the disk
drive. This starts the SQL Server 2000 Setup program. Click Install SQL Server 2000 Components,
and then click Analysis Services to start the Analysis Services Setup program. In Select
Components, make sure that the Decision Support Objects component is selected.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 440

{c SQL Server 2000 Client components are required to scan SQL Server 2000 DTS packages. Use the
SQL Server 2000 installation disk to install client components.
{c SQL Server 2005 Backward Compatibility Components are required to scan SQL Server 2005 DTS
packages that were migrated from SQL Server 2000. Use the SQL Server 2005 installation disk to
install backward-compatibility components.
To install Upgrade Advisor from the Web, click the download button on the download page. You can
then run installation immediately, or save the SQLUA.msi file to run later. If you are installing from the
product disc, run SQLUA.msi directly from the product disk. After you install Upgrade Advisor, you can
open it from the Start menu3

{c Click Start, point to All Programs, point to Microsoft SQL Server 2008 R2, and then click SQL
Server 2008 R2 Upgrade Advisor.

For more information about using Upgrade Advisor, see Chapter 1, ͞Upgrade Planning and
Deployment,͟ which also discusses using the Best Practices Analyzer for SQL Server 2000 and SQL Server
2005 to prepare for an upgrade. Also see Using Upgrade Advisor to Prepare for Upgrades in SQL Server
2008 R2 Books Online.

ac  
î 

Cross-platform upgrades are not supported. You cannot upgrade a 32-bit instance of SQL Server to
native 64-bit. However, you can upgrade a 32-bit instance of SQL Server to Windows On Windows 64
(WOW64), the 32-bit subsystem on a 64-bit server, as noted in the table above. You can also back up or
detach databases from a 32-bit instance of SQL Server and then restore or attach them to an instance of
SQL Server (64-bit) if the databases are not published in replication. In this case, you must also recreate
any logins and other user objects in master, msdb, and model system databases.

aac G      


Regardless of whether you choose an in-place upgrade or a side-by-side upgrade of SSRS 2000, SSRS
2005, or SSRS 2008 to SSRS 2008 R2, there is a range of potential issues you might face during an
upgrade, as we saw earlier in the ͞Preparing to Upgrade͟ section. To obtain a report that identifies
many of these potential issues before you begin an upgrade, run Upgrade Advisor to analyze the
instance that you want to upgrade. If any of these issues are reported, follow Upgrade Advisor͛s
recommendations and guidance for possible mitigation options and strategies. There is also a category
of issues that either cannot be detected by Upgrade Advisor or the detection of which would result in
too many false-positive results.

Let͛s look at the most important upgrade issues, whether detected by Upgrade Advisor or not. For a
comprehensive list of backward-compatibility issues, breaking changes, and behavior changes to SSRS in
SQL Server 2008 R2, see Reporting Services Backward Compatibility in SQL Server 2008 R2 Books Online.

For a complete list of the SSRS upgrade issues that Upgrade Advisor detects, see ͞Reporting Services
Upgrade Issues͟ in the SQL Server 2008 R2 Upgrade Advisor Help file.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 441

a  a* ac  
 ' 




Certain SSRS 2000, SSRS 2005, or SSRS 2008 configurations might block the in-place upgrade process and
prevent it from running. Before proceeding with an in-place upgrade, you should investigate these items
to ensure that no problems will occur. Note that Upgrade Advisor detects and reports these blockers, so
use it to check for these situations as well as to check for other problems and issues that might affect
the upgrade process.

Although changes to the names of the virtual directories will not block an in-place upgrade, other
configuration changes will. In particular, you should configure the virtual directories with the following
default settings3

1.c Security for the virtual directories must be set to Integrated Windows Authentication;
Anonymous Access is not supported for an in-place upgrade.
2.c The default Application Mappings should be set as follows3
a.c For the report server virtual directory, the wild card mapping must point to the v1.1
aspnet_isapi.dll executable, and no other script maps should exist.
b.c For the Report Manager virtual directory, the .asax and .aspx extensions must point to
the v1.1 aspnet_isap.dll executable.
Reset the virtual directories to their original default configuration settings to allow an in-place upgrade
to proceed. If resetting these configuration settings is not possible, perform a side-by-side upgrade
rather than an in-place upgrade.

The ASP.NET account information cannot be encrypted within the registry. Although encrypting the
account information is considered a security best practice for some IIS installations, SQL Server 2008 R2
cannot upgrade an SSRS 2000 or SSRS 2005 installation configured in this manner. To proceed with an
upgrade, temporarily add unencrypted account information to the Machine.config file by following
these steps3

1.c Make a backup copy of the existing Machine.config file.


2.c Open Machine.config in a text editor, and find the <processModel> element.
3.c Find the User attribute. This attribute is created when you specify a custom domain account
to run ASP.NET.
4.c Modify the User attribute, and specify an unencrypted user name and password.
5.c Upgrade SSRS.
6.c After the upgrade is complete, modify the Machine.config file so that the User attribute
within the <processModel> element specifies the encrypted values used before any changes
were made.

If you have deployed custom extensions to your report server, remove references to these extensions
from your report server configuration file to perform an in-place upgrade, or leave them in place and
perform a side-by-side upgrade. A side-by-side upgrade is recommended in this case to ensure that
reports continue to execute the way they did before the upgrade. For a side-by-side upgrade, see How
to3 Migrate a Reporting Services Installation in SQL Server 2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 442

If you are upgrading an Evaluation Edition of SSRS 2000, SSRS 2005, or SSRS 2208, using an in-place
upgrade requires that the Evaluation Edition still be active (the evaluation period must not have
expired). If the Evaluation Edition has expired, upgrade the installation by using the side-by-side upgrade
process.

If any of these blocker situations exist and cannot be resolved, the installation cannot be upgraded in
place; perform the upgrade using the side-by-side upgrade process instead.

aaac       
Before upgrading to SSRS 2008 R2, review the following requirements and make sure you have a backup
and rollback plan in place3

1.c Review requirements to determine whether your hardware and software can support SSRS 2008
R2.
2.c Use SCC to scan the report server computer for any conditions that might prevent a successful
installation of SQL Server 2008 R2. For more information, see Check Parameters for the System
Configuration Checker in SQL Server 2008 R2 Books Online.
3.c Review security best practices and guidance for SQL Server. For more information, see Security
Considerations for a SQL Server Installation in SQL Server 2008 R2 Books Online and Chapter 5,
͞Database Security,͟ in this guide.
4.c Run Upgrade Advisor on the report server computer to determine any issues that might prevent
you from successfully upgrading.
5.c Back up your symmetric key. For details, see Backing Up and Restoring Encryption Keys in SQL
Server 2008 R2 Books Online.
6.c Back up your report server databases. For details, see Moving the Report Server Databases to
Another Computer in SQL Server 2008 R2 Books Online.
7.c Back up the following report server configuration files3
a.c Rsreportserver.config
b.c Rswebapplication.config
c.c Rssvrpolicy.config
d.c Rsmgrpolicy.config
e.c Reportingservicesservice.exe.config
f.c Web.config (for both the report server and Report Manager ASP.NET applications)
g.c Machine.config (for ASP.NET if you modified it for report server operations)
8.c Back up any customizations to existing SSRS virtual directories in IIS.

Before you upgrade a production environment, always run a test upgrade in a pre-production
environment that has the same configuration as your production environment. To view a list of
considerations for upgrading SSRS, see Considerations for Upgrading Reporting Services in SQL Server
2008 R2 Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 443

ac      


aac     
If you are performing an in-place upgrade, you need to know that SSRS 2000 is always installed as a
default instance. If the report server database resides within the default instance of SQL Server 2000 on
the same server, the relational engine and the report server must be upgraded together. There is no
support to upgrade an SSRS 2000 instance with remote catalogs on SQL Server 2000, thus SQL Server
2000 would have to be upgraded first to either SQL Server 2005, SQL Server 2008, or SQL Server 2008
R2.

In an in-place upgrade of an SSRS 2000 installation to SSRS 2008 R2, the upgrade process handles all
aspects of the upgrade, automatically updating report server content, report definitions, and
component configurations. Note, however, that this upgrade does not automatically handle updates to
client workstations and computers that have the Report Designer or management tools installed. You
will have to upgrade those workstations and computers after you upgrade the report server.

a  a ac 
'

 


Here are the steps for upgrading SSRS 2000 to SSRS 2008 R2 (you follow exactly the same steps for an in-
place upgrade from SSRS 2005 to SSRS 2008 R2)3

1.c Insert the SQL Server installation media, and from the root folder, double-click Setup.exe. To
install from a network share, navigate to the root folder on the share, and then double-click
Setup.exe.
2.c If the Microsoft .NET Framework version 3.5 SP1 installation dialog box appears, select the
check box to accept the .NET Framework 3.5 SP1 License Agreement. Click Next. To quit SQL
Server 2008 R2 installation, click Cancel. When installation of .NET Framework 3.5 SP1 is
complete, click Finish.
3.c Windows Installer 4.5 is also required and might be installed by the Installation Wizard. If
you are prompted to restart your computer, restart, and then run SQL Server 2008 R2
Setup.exe again.
4.c When prerequisites are installed, the Installation Wizard will launch the SQL Server
Installation Center. To upgrade an existing instance of SQL Server, click Upgrade from SQL
Server 2000, SQL Server 2005, or SQL Server 2008. Figure 14-5 shows the upgrade selection
screen.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 444

ë!+ -Upgrade from SQL Server 2000, SQL Server 2005 or SQL Server 2008 screen

If Setup support files are required, SQL Server Setup will install them. If you are instructed to
restart your computer, restart before you continue.
5.c The SCC will run a discovery operation on your computer. To continue, click OK. Setup log
files have been created for your installation. For more information about log files, see How
to3 View and Read SQL Server Setup Log Files in SQL Server 2008 R2 Books Online.
6.c On the Product key page, click a radio button to indicate whether you are upgrading to a
free edition of SQL Server or whether you have a PID key for a production version of the
product.
7.c On the License Terms page, read the license agreement, and then select the check box to
accept the licensing terms and conditions. To continue, click Next. To end Setup, click
Cancel.
8.c On the Select Instance page, specify the instance of SQL Server to upgrade. Figure 14-6
shows the Select Instance screen.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 445

ë!+ 0 The Select Instance screen

9.c On the Select Features page, the features to upgrade will be pre-selected. A description for
each component group appears in the right-hand pane after you select the feature name.
Note that you cannot change the features to be upgraded, and you cannot add features
during the upgrade operation. To add features to an upgraded instance of SQL Server 2008
R2 after the upgrade operation is complete, see How to3 Add Features to an Instance of SQL
Server 2008 R2 (Setup) in SQL Server 2008 R2 Books Online. Figure 14-7 shows the Select
Features screen.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 446

ë!+ < Upgrade to SQL Server 2008 R2 Select Features screen

10.cOn the Instance Configuration page, specify whether to install a default or a named
instance. For details, see Instance Configuration in SQL Server 2008 R2 Books Online.

M  M5ͶBy default, the instance name is used as the Instance ID suffix, which
identifies installation directories and registry keys for your instance of SQL Server. This is the
case for default instances and named instances. For a default instance, the instance name
and instance ID suffix would be MSSQLSERVER. To use a non-default instance ID suffix,
select the Instance ID suffix check box and provide a value.

§  Typical standalone instances of SQL Server 2008 R2, whether default or named
instances, do not use a non-default value for the Instance ID suffix check box. All SQL
Server service packs and upgrades will apply to every component of an instance of SQL
Server.
      ͶThe grid will show instances of SQL Server that are on the
computer where Setup is running. If a default instance is already installed on the computer,
you must install a named instance of SQL Server 2008 R2. To continue, click Next.
11.cThe Disk Space Requirements page calculates the required disk space for the features you
specify and compares requirements to the available disk space on the computer where
Setup is running. For more information, see Disk Space Requirements in SQL Server 2008 R2
Books Online.
12.cWorkflow for the remainder of this topic depends on the features you have specified for
your installation. You might not see all of the pages, depending on your selections.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 447

13.cOn the Full-Text Search Upgrade Options page, specify the upgrade options for the
databases being upgraded. For more information, see Full-Text Search Upgrade Options in
SQL Server 2008 R2 Books Online and Chapter 6, ͞Full-Text Search,͟ in this guide.
14.cOn the Error and Usage Reporting page, specify the information you would like to send to
Microsoft that will help to improve SQL Server. By default, options for error reporting and
feature usage are enabled. For more information, see Error Reporting in SQL Server 2008 R2
Books Online.
15.cSCC will run one more set of rules to validate your computer configuration with the SQL
Server features you have specified before the upgrade operation begins.
16.cThe Ready to Upgrade page displays a tree view of upgrade options that were specified
during Setup. To continue, click Install.
17.cDuring upgrade, the Upgrade Progress page provides a status bar so that you can monitor
upgrade progress as Setup proceeds. Figure 14-8 shows the Upgrade Progress page.

ë!+ ) Upgrade Progress screen

18.cAfter installation, the Complete page provides a link to the summary log file for the
installation and other important notes. To complete the SQL Server installation process, click
Close. Figure 14-9 shows the Upgrade Progress by Feature Name report, and Figure 14-10
shows the Complete screen.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 448

ë!+ = Upgrade Progress by Feature Name report screen

ë!+ !( Complete screen

19.cIf you are instructed to restart the computer, do so now. It is important to read the message
from the Installation Wizard when you are done with Setup. For information about Setup log

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 449

files, see How to3 View and Read SQL Server Setup Log Files in SQL Server 2008 R2 Books
Online.

§  For more information about upgrading to SQL Server 2008 R2, see How to3 Upgrade to
SQL Server 2008 R2 (Setup) in SQL Server 2008 R2 Books Online.

ac     


Alternatively, you can upgrade SSRS 2000 installations to SSRS 2008 R2 by using the side-by-side
upgrade method. You can perform a side-by-side upgrade on a single server (the existing report server)
or by using two servers (to take advantage of new hardware, for example).

When you perform the upgrade on a single server, you install a new instance of SSRS 2008 R2 alongside
the existing SSRS 2000 installation and then manually move report server content, report definitions,
and other configuration information to the new instance. When you perform the upgrade by using two
servers, you install SSRS 2008 R2 on the new server (as the default instance or as a named instance) and
then perform the same manual movement of report server content, report definitions, and
configuration information.

§ Regardless of the upgrade process you use, workstations and computers hosting the
Report Designer or SSRS 2000 management tools will have to be upgraded after the report
server is upgraded.

a   ac M

§ 6


The first step for a side-by-side upgrade is to install (but not configure) SSRS 2008 R2. The following
points should be considered when planning a single-server or a two-server upgrade process.

If an additional server is not available, you can use a single-server upgrade process. During the upgrade
process, you must install SSRS 2008 R2 as a named instance. After the upgrade (and testing) is complete,
you can rename the named instance to serve as the default instance once you have uninstalled SSRS
2000.

If an additional server is available and will serve as the new SSRS 2008 R2 report server, you can install
SSRS 2008 R2 as the default instance or as a named instance on the new server. After the upgrade (and
testing) is complete, you can decommission the old report server or reuse it for other purposes.

To begin the upgrade process, start the Setup application for SQL Server 2008 R2 and follow these steps3

1.c After starting, the Setup application will install a set of prerequisites to the installation of SQL
Server 2008 R2 components, run a system configuration check, gather system information, and
prompt for typical registration information (user name, company name, and product key).
2.c The application will then provide options for selecting components to install. Select the
Reporting Services option. When using a single-server upgrade, in cases where the report server
previously had client components installed (such as Books Online), select the Workstation
Components option as well.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 450

3.c The Setup application will then prompt for an instance name for the new SQL Server 2008 R2
components. For a single-server upgrade, select Named Instance,and enter a new instance
name; for a two-server upgrade, select Default Instance to install SSRS 2008 R2 as a default
instance, or select Named Instanceand enter a new instance name.

§ 3 The default selection made by the Setup application is Default Instance. Thus, if you need
to use a new instance name, be sure to select Named Instance and provide a new instance
name.

4.c The Setup application will prompt for service account information. Choose the credentials to use
for the Windows service to be created for SSRS 2008 R2 and proceed.
5.c Next, the Setup application will display an installation options screen for specifying the type of
installation to perform.

When you are installing a default instance of SSRS 2008 R2, the Setup application can create and
fully configure the default instance. However, when you are installing a named instance (to
support a single-server side-by-side upgrade, for example), the Setup application can install the
report server software but cannot configure the new instance. Thus, you must manually
configure the new named instance (in this case, by using specific steps to migrate the existing
report server͛s configuration and content to the new instance). If you are performing a two-
server side-by-side upgrade and installing SSRS 2008 R2 as the default instance on the new
server, Microsoft recommends that you select the M À  


2    
À 
option. Although the default instance can be configured by the Setup application during
installation, you will need to manually reconfigure the configuration by using the steps we will
cover in a moment to migrate the existing report server͛s configuration and content to the new
server.

Figure 14-11 shows the Setup application screen you use to select the type of installation to
complete.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 451

ë!+ !! Install, but do not configure the report server installation option

6.c To complete the installation of the new instance, simply proceed through the remaining screens
of the Setup application. All the required SSRS 2008 R2 files will be installed, and the new
instance will be ready for migration.

a   c  

§ 6


After you have installed the new instance, you should use the new Reporting Services Configuration tool
to configure the instance. Launch the tool from the Configuration Tools group within the Microsoft SQL
Server 2008 R2 Start menu group.

1.c When the configuration tool is first started, enter the name of the server, and use the Find
button to locate the newly installed SSRS 2008 R2 instance. Figure 14-12 shows the screen for
finding and connecting to the new instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 452

ë!+ !" Connect to a report server instance screen

2.c Once connected to the new instance, the configuration tool will show the current status of each
item requiring configuration for an instance of SSRS 2008 R2. Figure 14-13 shows the status of
each area before configuration is complete.

ë!+ !#Initial state of new SSRS 2008 R2 instance

§ 3 If the configuration tool is started right after the installation is complete, the Server Status
screen might show that the server is stopped. It can be started before, during, or after the
configuration steps are completed.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 453

3.c To start the configuration process, use the Service Account option to configure the account to
run the ReportServer service, as Figure 14-14 shows. Do not forget to click Apply before
changing to another section.

ë!+ !+ Service account of new SSRS 2008 R2 instance

4.c Use the Web Service URL option to configure a URL to access the report server; you can use the
default values provided or specify different values. You can use any names for a Web service
URL except virtual directory names already in use. Thus, because the original instance of SSRS
2000 is still installed and running, the virtual directories should not be named ReportServer or
Reports (the default names for the virtual directories created when SSRS 2000 is installed).

Figure 14-15 shows the Report Server Web services URL being created, using
ReportServer_SQL2K8R2 as the virtual directory name.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 454

ë!+ !-Web service URL of new SSRS 2008 R2 instance

5.c After you have defined the service account and a Web service URL, you must define the new
instance͛s database setup. You use the configuration tool͛s Database option to define the
database setup (identifying the server name, database name, and connection credentials) for
the new instance.

You can also use this option to upgrade a copy of the report server database used for SSRS 2000
to the new format needed for SSRS 2008 R2. For a migration effort, a backup copy of the report
server database used for SSRS 2000 (named ReportServer by default) and the additional
database used by SSRS 2000 for temporary database use (named ReportServerTempDB by
default) should be restored in the new SQL Server 2005, SQL Server 2008, or SQL Server 2008 R2
instance and then upgraded for SSRS 2008 R2.

{c To start database setup, restore a backup of the two SSRS 2000 report server databases.
{c When you have restored the databases, use the Database Setup option to connect to and
upgrade the restored databases. Click Change Database and then select a report server
database, and click Next. In the Connect to Database Server section, specify Server Name to
connect to the instance of SQL Server, and use the drop-down list of databases to select the
restored report server database (not the restored temporary database). Figure 14-16 shows
the Change Database screen after a connection has been established and a restored
database selected.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 455

ë!+ !0Configuring database setup

6.c When the upgrade process is complete, use the Credentials Type drop-down list to specify how
SSRS 2008 R2 should connect to the newly upgraded databases on an ongoing basis. Then, click
Apply to have the configuration tool update the database configuration information for the new
instance of SSRS 2008 R2.

a   c 56
 7
 7

# 
 ' 
 

 

The report server database is upgraded in several stages3

1.c The schema is upgraded automatically after setup and service startup or when you select a SQL
Server 2000, SQL Server 2005, or SQL Server 2008 report server database in the Reporting
Services Configuration tool. In addition, the Report Server service checks the database version at
startup. If the report server is connected to a database that is an earlier version, the report
server will update the database during startup.

§ Published reports and compiled report snapshots are updated on first use. For more
information, see Upgrading Reports in SQL Server 2008 R2 Books Online.

Review Upgrading a Report Server Database, in SQL Server 2008 R2 Books Online, for more
information.
2.c Use the Report Manager URL option to configure a URL to access Report Manager; you can use
the default values provided or specify different values. You can use any names for Report
Manager URLs except virtual directory names already in use. Thus, because the original instance
of SSRS 2000 is still installed and running, you should not name the virtual directories
ReportServer or Reports (the default names for the virtual directories created when SSRS 2000,

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 456

SSRS 2005, or SSRS 2008 is installed). Click Apply before changing to another section to save the
changes.

Figure 14-17 shows the Report Manager URL being created, using Reports_SQL2K8R2 as the
virtual directory name.

ë!+ !<Report Manager URL setup

3.c After the database connection has been established, use the Encryption Keys option to restore
the symmetric encryption key extracted and saved as part of the pre-upgrade planning process.
Select Restore, and provide the filename and password used with the rskeymgmt utility to
extract and save the key from the SSRS 2000 instance. Figure 14-18 shows this option being
used to restore a symmetric encryption key.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 457

ë!+ !)Restoring the symmetric encryption key

§ 3 If the symmetric encryption key has not yet been extracted from SSRS 2000, simply do so
by using the rskeymgmt utility (found in the <Drive3>'
2À'’2
À
 

  ' '

À'2 ' directoryif running SSRS 2000). If you cannot restore the encryption key
for some reason, you will have to use the Delete option to delete existing encrypted content.
Note that, in this case, you will have to manually recreate any encrypted content (such as
existing data source credentials) after the upgrade. Once the encryption key is restored,
Reporting Services Configuration Manager should show a green check mark in the results area,
as Figure 14-19 shows.

ë!+ != Green check mark in results area

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 458

4.c Finally, you can use the configuration tool͛s Email Settings and Execution Account options to
establish other extended configuration settings for SSRS 2008 R2. Use these options to set these
extended options for the new instance.
5.c After you use the configuration tool to complete the configuration of the new instance, the new
instance should be ready for use. Start the Report Manager interface by using a URL referring to
the newly configured virtual directory for the Report Manager application. For example, if the
virtual directory is named Reports_SQL2K8R2, you can use the URL
http3//MachineName/Reports_SQL2K8R2 to launch the new version of the Report Manager
application. When opened, the report folders and contents (data sources, reports, and other
report item files) available within SSRS 2000 should now be present and available within SSRS
2008 R2.

ac      



aac     
When upgrading an installation of SSRS 2005 in place to SSRS 2008 R2, the upgrade process handles all
aspects of the upgrade, automatically updating report server content, report definitions, and
component configurations. Note, however, that this upgrade does not automatically handle updates to
client workstations and computers that have the Report Designer or management tools installed. You
will have to upgrade those workstations and computers after you upgrade the report server.

a  a ac 
'

 


Upgrading from SSRS 2005 to SSRS 2008 R2 via the Setup application is identical to upgrading from SSRS
2000 via the Setup application. For detailed steps, see the ͞Upgrading via the Setup Application͟ in the
͞Upgrading from SQL Server 2000͟ section earlier in this chapter.

ac     


Alternatively, you can upgrade SSRS 2005 installations to SSRS 2008 R2 by using a side-by-side upgrade
method. You can perform side-by-side upgrades on a single server (the existing report server) or by
using two servers (to take advantage of new hardware, for example).

When you perform the upgrade on a single server, you install a new instance of SSRS 2008 R2 alongside
the existing SSRS 2005 installation and then manually move report server content, report definitions,
and other configuration information from SSRS 2005 to the new instance.

When you perform the upgrade by using two servers, you install SSRS 2008 R2 on the new server (as the
default instance or as a named instance) and then perform the same manual movement of report server
content, report designs, and configuration information.

§ Regardless of the upgrade process you use, workstations and computers with the Report
Designer or SSRS 2005 management tools installed will have to be upgraded after the report
server is upgraded.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 459

a   ac 

§ 6


As with a side-by-side upgrade from SSRS 2000, the first step for a side-by-side upgrade from SSRS 2005
is to install (but not configure) SSRS 2008 R2. The following points should be considered when planning a
single-server or a two-server upgrade process.

If an additional server is not available, you can use a single-server upgrade process. During the upgrade
process, you must install SSRS 2008 R2 as a named instance. After the upgrade (and testing) is complete,
you can rename the named instance to serve as the default instance once you have uninstalled SSRS
2005.

If an additional server is available and will serve as the new SSRS 2008 R2 report server, you can install
SSRS 2008 R2 as the default instance or as a named instance on the new server. After the upgrade (and
testing) is complete, you can decommission the old report server or reuse it for other purposes.

To begin the upgrade process, start the Setup application for SQL Server 2008 R2 as described in
͞Installing the New Instance͟ in the ͞Upgrading from SQL Server 2000͟ section earlier in this chapter
follow the same steps.

When upgrading from SSRS 2005 to SSRS 2008 R2, you have the additional configuration option to use a
remote catalog on a SQL Server 2005 or SQL Server 2008 instance. You can upgrade a report server
database that runs on a SQL Server 2005 Database Engine instance without having to upgrade the
Database Engine to SQL Server 2008 R2. You can also use a SQL Server 2005 Database Engine instance
to host a new report server database that you create for a SQL Server 2008 R2 Reporting Services
installation.

If you are planning to install SSRS 2008 R2 on a single server, you can back up and restore ReportServer
and ReportServerTempDb on an existing SQL Server 2005 or SQL Server 2008 instance with different
names. This method allows both the old SSRS 2005 instance and the new SSRS 2008 R2 instance to
coexist until you have performed exhaustive tests on all objects involved in the upgrade process.

For more information, see Upgrading a Report Server Database in SQL Server 2008 R2 Books Online.

a   c  

§ 6


After you have installed the new SSRS 2008 R2 instance, you should use the new Reporting Services
Configuration tool to configure it. Start the tool from the Configuration Tools group within the Microsoft
SQL Server 2008 R2 Start menu group.

The steps for configuring the new instance are the same after an SSRS 2005 upgrade as after an SSRS
2000 upgrade; you can find those steps in ͞Configuring the New Instance͟ in the ͞Upgrading from SQL
Server 2000͟ section earlier in this chapter.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 460

a
c       a
a
ac     
When upgrading an installation of SSRS 2008 in place to SSRS 2008 R2, the upgrade process handles all
aspects of the upgrade, automatically updating report server content, report definitions, and
component configurations. Note, however, that this upgrade does not automatically handle updates to
client workstations and computers that have the Report Designer or management tools installed. You
will have to upgrade those workstations and computers after you upgrade the report server.

a " a ac 
'

 


Upgrading from SSRS 2008 to SSRS 2008 R2 via the Setup application is identical to upgrading from SSRS
2000 via the Setup application. For detailed steps, see ͞Upgrading via the Setup Application͟ in the
͞Upgrading from SQL Server 2000͟ section earlier in this chapter.

a
c     
Upgrading from SSRS 2008 to SSRS 2008 R2 via the side-by-side method is identical to doing a side-by-
side upgrade from SSRS 2005. For detailed steps, see ͞Side-by-Side Upgrade͟ in the ͞Upgrading from
SQL Server 2005͟ section earlier in this chapter.

a "  ac 

§ 6


The steps and options for installing the new instance are the same after an SSRS 2005 upgrade; you can
find those steps above in the ͞Installing the New Instance͟ section under ͞Upgrading from SQL Server
2005.͟

a "  c  



§ 6


After you have installed the new SSRS 2008 R2 instance, you should use the new Reporting Services
Configuration tool to configure it. Start the tool from the Configuration Tools group within the Microsoft
SQL Server 2008 R2 Start menu group.

The steps for configuring the new instance are the same after an SSRS 2005 and 2008 upgrade as after
an SSRS 2000 upgrade; you can find those steps in ͞Configuring the New Instance͟ in the ͞Upgrading
from SQL Server 2000͟ section earlier in this chapter.

a cÔ  


    
If the upgrade process should fail, the first course of action is to review the setup logs created by the
Setup application.

Review the Summary.txt file located in the <drive>3 Program Files Microsoft SQL Server 100 Setup
Bootstrap LOG directory. If any error messages are listed, take the required actions to correct the
situation and try the upgrade process again.

Each execution of Setup will generate a new time-stamped log folder. For example, if you start the SQL
Server Installation Center page, it gets its own time-stamped log folder, and each Setup action invoked
from that page gets its own as well, so you will probably see several time-stamped log folders in this
directory. The time-stamped log folder name format is iii’’ÀÀ.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 461

You can find detailed Setup logs at the following location3 <drive>3 Program Files Microsoft SQL
Server 100 Setup Bootstrap LOG .

When looking for errors in the detail log, search for the following phrases3

{c Watson bucket
{c Error3
{c Exception has been

A typical Setup request goes through three execution phases3

1.c Global rules check


2.c Component update
3.c User-requested action

Each of these phases will generate detail and summary logs, with additional log files being generated as
appropriate. Setup is called at least three times per user-requested Setup action.

Typical log files generated are3

{c Detail_GlobalRules.txt
{c Detail_ComponentUpdate.txt
{c Detail.txt

The summary log file name format is Summary_[machine name]_timestamp_[execution phase]. The
final summary log is copied to %Program Files% Microsoft SQL Server 100 setup bootstrap log folder
and named Summary.txt for quick reference.

§  Setup will not CAB the log files unless there is an error.

Windows Installer (MSI) actions performed during Setup generate their own log files in the following
format3 [product feature]_[cpu]_[LCID (optional)]_[attempt #].log. If an MSI execution fails, look in the
associated MSI log for ͞return value 3͟ only for ENU versions.

Datastore files contain a snapshot of the state of all configuration objects being tracked by the Setup
process and are useful for troubleshooting configuration errors. XML file dumps are created for
datastore objects for each execution phase. They are saved in their own log subfolder under the time-
stamped log folder, as follows3

{c Datastore_GlobalRules
{c Datastore_ComponentUpdate
{c Datastore

For more information, see How to3 View and Read SQL Server Setup Log Files in SQL Server 2008 R2
Books Online.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 462

a c
  Ô 
After upgrading to SSRS 2008 R2 from SSRS 2000, SSRS 2005, or SSRS 2008, it is important to ensure that
the upgrade ran successfully and to configure SSRS 2008 R2.

1.c To begin, particularly if you performed an in-place upgrade, use the Report Server Configuration
Tool to check the configuration of the report server. After the tool is launched, connect to the
upgraded instance.
2.c Review the configuration settings by selecting each of the items in the left pane of the tool. If
any of the settings seem incorrect or are missing, update the settings and save the changes.
3.c Ensure that the report server is behaving as expected by running a sample set of the reports
deployed to the server. Start Report Manager by using the correct URL (for example,
http3//locahost/Reports for an upgraded default instance or http3//localhost/Reportsnew for a
newly installed and configured named instance). At a minimum, you should select and execute
reports to verify that the following report server features and capabilities (if used) are working
correctly3
{c      5   % You should execute reports against all
defined data sources (using standard data providers or custom data extensions) to
ensure that each is working as expected.
{c    % Run reports that rely on each of the security credential options
that can be used for connecting to a data source3 credentials supplied by the user
running the report, credentials stored securely in the report server, and Windows
integrated security.
{c   % You should review report subscriptions to ensure that their settings
are still applicable, and you should test each to verify that it completes successfully.
{c
     5   . You should fully test any custom
rendering and delivery extensions to ensure that each is working correctly.
Remember, you must recompile all custom extensions created for SSRS 2000 or
SSRS 2005 to use the Common Language Runtime (CLR) provided with Visual Studio
2008.
{c
    % If any reports include references to custom assemblies,
you should test the reports to ensure the custom assemblies continue to function as
designed. As just noted, you must recompile all custom assemblies created for
reports within SSRS 2000 or SSRS 2005 to use the Visual Studio 2008 CLR.
4.c Finally, SSRS 2005,SSRS 2008, and SSRS 2008 R2 come with an ad hoc reporting tool called
Report Builder. If you want to use this feature, you need to change the existing security role
definitions to provide end-user access to Report Builder. Consider updating the existing role
definitions as Table 14-5 shows.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 463

Ô !+ -'$    '$  


5  '  
 
   
Browser Add View Models to grant permission to view published Report Builder
models.
Content Manager Add Manage Models, View Models, and Consume Reports to grant full
permission over models and to provide the ability to create and modify
reports in Report Builder.
Publisher Add Manage Models to grant permission to create, view, and delete
Report Builder models.
System Administrator Add Execute Report Definitions to run reports using Report Builder.
System User Add Execute Report Definitions to run reports using Report Builder.


a ac  



     
   
   
When you upgrade an SSRS 2000 or SSRS 2005 instance to SSRS 2008 R2 using the procedures this
chapter discusses, all the report server content is moved to the new instance and upgraded. In some
unique cases, it might be more appropriate to migrate individual reports to a new SSRS 2008 R2 instance
in a more controlled fashion. For example, if a single report server supports a varied group of users, with
reports developed by different development groups, a staged move of reports and users to a new
instance of SSRS might be a suitable course of action. Additionally, if a set of complex reports requires
additional testing efforts, migrating each report individually could be beneficial.

After you have installed a new instance of SSRS 2008 R2, you can migrate reports by using one of the
following three options3

   5      '"((('"((-     '"(()


'"  % Using the Report Manager application for SSRS 2000 or SSRS 2005, you can save files within
a given folder to the file system on a one-by-one basis. You do this by using the Edit option when
viewing the properties of a given report. The Edit option returns an RDL file for each report, which you
can save and then upload to the new instance using Report Manager for SSRS 2008 R2. Note that you
need to manually recreate within the new instance data sources used by each report, and you need to
configure uploaded reports to use the new data sources (because the uploaded reports will not
automatically see new data sources even if they have the same name as their counterparts within the
SSRS 2000 or SSRS 2005 instance).

You will also need to manually upload other files (such as images) to the new instance, placing them
within the same folder structure and using the same names as their counterparts within SSRS 2000 or
SSRS 2005. As RDL files are uploaded and configured, you can test each report individually to ensure that
it works correctly. You can then correct any deficiencies within the RDL file by using the new Report
Designer tools within BIDS.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 464

       '  .%5/%By using the Web
services APIs, you can extract all the report definitions from the SSRS 2000 or SSRS 2005 instance to the
local file system and then republish them to the SSRS 2008 R2 instance.

$dM   5     3    '"(()'"  %Using BIDS, you can
open and deploy report projects that were originally created through Report Designer for SSRS 2000 or
SSRS 2005 to the new SSRS 2008 R2 instance. When using BIDS, you can deploy data sources (as well as
other files included in the report project) along with the reports. This approach might provide a simpler
and more efficient way of deploying groups of reports to the new instance. As reports are deployed, you
can test each report to make sure it works as designed. And you can correct any deficiencies within
BIDS, redeploying fixed reports as needed.

Note that deploying individual reports to a new instance of SSRS 2008 R2 will not automatically migrate
the metadata related to any given report. For example, report history, execution settings, parameter
defaults, subscription definitions, and security settings defined for the report within SSRS 2000 or SSRS
2005 will not be automatically recreated within SSRS 2008 R2. You need to manually configure all these
settings after you deploy the report to the new report server.

Before proceeding with this approach to moving reports from SSRS 2000 or SSRS 2005, ensure that all
the additional settings for each report are well known and documented so that you can recreate the
settings once each report is deployed to SSRS 2008 R2.

a c  



     
A report definition file includes a reference to the RDL namespace that specifies the version of the
report definition schema that is used to validate the rdl file. In the SQL Server 2008 R2 version of BIDS,
you can work with both SQL Server 2008 R2 and SQL Server 2008 versions of report definitions and
Report Server projects. You can edit, preview, and deploy reports of either version.
If you open, update, and then save a SQL Server 2008 report definition, it is saved as a SQL Server 2008
report definition unless you added features that are new in SQL Server 2008 R2. In such a case, the
report definition is saved as aSQL Server 2008 R2report definition to ensure that the definition is valid
and the report will run. For more information, see Building Reports in Business Intelligence
Development Studio in SQL Server 2008 R2 Books Online.

When you open an .rdl file in Report Designer in BIDS that was created for the SQL Server 2000 or SQL
Server 2005 namespace, Report Designer automatically creates a backup file and upgrades the report to
the current namespace. If you save the upgraded report definition, you have saved the converted .rdl
file. As soon as you save it, you cannot open it in earlier versions of Report Designer. This is the only way
you can upgrade these versions of report definition files.

You can deploy an .rdl file created in an earlier version of SSRS to aSQL Server 2008 R2 report server,
and it is automatically upgraded on first use. The report server stores the report definition file in the
original format. The report is automatically upgraded the first time it is viewed, but the stored report
definition file remains unchanged.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 465

For more information, see Upgrading Reports in SQL Server 2008 R2 Books Online.

a c  î


 "
   x  
If your installation includes custom report items, assemblies, or extensions, you must redeploy the
custom components. If you are not using custom components, you can skip this section.

If you deployed and used any custom extensions or custom assemblies for reports with SSRS 2000 or
SSRS 2005, you need to redeploy the extensions or assemblies for use with SSRS 2008 R2, as follows3

1.c You need to recompile each extension or assembly by using Visual Studio 2008. This action ensures
that each extension or assembly uses the CLR compatible with SSRS 2008 R2.
2.c After you have recompiled each extension or assembly, you need to deploy it for use with SSRS 2008
R2. This typically involves putting a copy of the compiled extension or assembly file within the
correct directory under the SSRS 2008 R2 installation directory and updating one or more
configuration files. For details, see How to3 Deploy a Custom Report Item in SQL Server 2008 R2
Books Online.

To redeploy the custom components, follow these steps3

1.c Determine whether the assemblies are supported or need recompilation3


{c You must recompile custom authentication extensions created for the SQL Server 2000
release.
{c You must rewrite custom rendering extensions for SSRS 2008 R2 by using the ROM.
{c HTML 3.2 and HTML OWC renderers are not supported in SSRS 2008 R2.
{c Other custom assemblies should not require recompilation.
2.c Move the assemblies to the new report server and Report Manager bin folders. In SQL Server
2008 R2, the report server binaries are located in Program files Microsoft SQL
Server MSRS10.MSSQLSERVER Reporting Services ReportServer bin for the default SSRS 2008
R2 instance.
3.c Modify the configuration files to add entries for your custom component. The entries will vary
depending on the kind of assembly you are using. For instructions about where to place files and
add configuration entries, see the following SQL Server 2008 R2 Books Online topics3

{c Deploying a Custom Assembly


{c How to3 Deploy a Custom Report Item
{c Deploying a Data Processing Extension
{c Deploying a Delivery Extension
{c Deploying a Rendering Extension
{c Implementing a Security Extension

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 466

a c  î 


 
In some cases, configuration changes made within SSRS 2000 or SSRS 2005, particularly those made
manually within the configuration files, are not created automatically by the new SSRS 2008 R2
configuration tool. Thus, it is a good idea to compare each of the configuration files between the old and
new instances, looking for any configuration differences that might have been made manually for SSRS
2000 or SSRS 2005. You should compare each SSRS 2000 or SSRS 2005 configuration file that you saved
as part of the pre-upgrade planning process to its new counterpart.

A default installation of SSRS 2000 uses the ;


M À 2  MSSQL Reporting Services directory,
storing configuration information under the ReportServer and ReportManager subdirectories. A default
installation of SSRS 2005 or SSRS 2008 uses the ;
M À 2 > MSSQL.; Reporting Services
directory, where ; is a number indicating the order of installation of SQL Server 2008 components.
For example, if Reporting Services is the first SQL Server 2008 component installed, the directory will be
;
M À 2 > MSSQL.1 Reporting Services. Configuration information is then stored under the same
ReportServer and ReportManager subdirectories. The pre-upgrade planning section above lists the files
to check and compare.

a 
c 
    
   
If you performed a side-by-side upgrade on a single server, you can use the new SSRS 2008 R2 instance
as configured alongside your SSRS 2000, SSRS 2005, or SSRS 2008 instance. However, at some point, you
should uninstall your previous SSRS instance. At that point, you can rename the virtual directories you
created for SSRS 2008 R2 to use the names originally configured for SSRS 2000, SSRS 2005, or SSRS 2008.
End users and applications that reference the report server can then continue to use the original URLs
and connection information as opposed to the virtual directory names you assigned to SSRS 2008 R2 for
upgrade purposes.

1.c You can uninstall SSRS 2000, SSRS 2005, or SSRS 2008 by using the Add or Remove Programs
option within Control Panel. The report server software (and other associated files installed with
SSRS 2000, SSRS 2005, or SSRS 2008) will be removed from the server. This action should not
affect SSRS 2008 R2 or any other installed software.
2.c After you have removed SSRS 2000, SSRS 2005, or SSRS 2008 from the server, you can delete the
original report server databases from SQL Server. Ensure that you delete the databases
associated with your old SSRS versionͶnot those restored and upgraded for use with SSRS 2008
R2.

§ 3 You should retain good backups of these databases for a period of time just in case you
need to resurrect the SSRS 2000, SSRS 2005, or SSRS 2008 implementation.

3.c After you have removed SSRS 2000, SSRS 2005, or SSRS 2008, modify the virtual directory names
assigned to SSRS 2008 R2 to use the names assigned to the virtual directories for SSRS 2000,
SSRS 2005, or SSRS 2008. To do this, start the Reporting Services Configuration tool (as
described in the section about configuring the new instance of SSRS 2008 R2) and connect to the
new instance.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 467

4.c Use the Report Server Virtual Directory option to create a new virtual directory for the report
server, using the name of the SSRS 2000, SSRS 2005, or SSRS 2008 report server virtual directory.
For example, if SSRS 2000, SSRS 2005, or SSRS 2008 used the default name of ReportServer for
the report server virtual directory, create a new virtual directory with that name for the SSRS
2008 R2 report server.
5.c Use the Report Manager Virtual Directory option to create a new virtual directory for the Report
Manager application. For example, if SSRS 2000, SSRS 2005, or SSRS 2008 used the default name
of Reports for the Report Manager virtual directory, create a new virtual directory with that
name for the Report Manager application.

These steps reconfigure SSRS 2008 R2 to use the virtual directory names originally associated with SSRS
2000, SSRS 2005, or SSRS 2008. For more information, see How to3 Migrate a Reporting Services
Installation in SQL Server 2008 R2 Books Online.

acî  
The key to a successful SSRS upgrade is a detailed, well-thought-out upgrade plan, including a review of
possible upgrade issues and a rollback strategy in case of a failed upgrade. In planning for a rollback, you
should include backups of at least the following elements3

{c Databases, applications, and configuration files


{c The Reporting Services encryption key
{c Customized IIS configuration files
{c Customized extensions and assemblies folder

Use Upgrade Advisor to help discover blocking issues related to SSRS. And determine the appropriate
upgrade method for your organization and configuration. This chapter discusses several advantages and
disadvantages of using each method for upgrading SSRS. For example, the side-by-side method is easy to
roll back because your original instance remains intact, whereas an in-place upgrade might be faster, but
you would have to restore the previous instance in case of a failed upgrade.

By following the preparation guidance and upgrade steps in this chapter, you should have a smooth
transition to SSRS 2008 R2.

acx
     
For an up-to-date collection of additional references for upgrading SQL Server 2008 R2 and SSRS 2008
R2, see the following links3

{c SQL Server Reporting Services Web site


{c SQL Server 2008 R2 Upgrade Web site
{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 468

a
c$
   
x
  


a
ac


SQL Server serves as the data server at the back end of many of Microsoft͛s products. When you
upgrade these products, you may find that the SQL Server version supporting the data layer within the
product has also changed.

This chapter covers the following3

{c Microsoft Small Business Server


{c Microsoft Office Communications Server
{c Microsoft Office SharePoint Server
{c Microsoft System Center3 Data Protection Manager
{c Microsoft Dynamics

a
c  
       aa
Microsoft Windows Small Business Server 2008 (Windows SBS 2008) is a prepackaged small-business
solution that contains everything that a small business needs to set up an all in one network suite of
servers. It comes in two versions, which you can learn all about at the Small Business Server 2008 Web
site.Small Business Server 2008 only supports SQL Server 2008.

As of this writing, SBS 2011 has been released to manufacturing. SBS 2011 supports SQL Server 2008 R2.
For more information, see The Official SBS Blog.

a
ac  
 

   
Windows SBS supports a side-by-side migration method, in which you move settings and data from the
legacy server or servers to a new set of servers.

§  You should always back up your database data before you try a Windows SBS migration.
For information about backup tools, see the "Data Protection Manager" section later in this
chapter.

Some high-level steps for migrating to this new environment are covered later in this chapter͛s
"Migrating to Windows SBS 2008" section, which provides links to more details for each migration step.

You can migrate from SBS 2000 or Windows SBS 2003 to Windows SBS 2008, but you must use two
separate servers. After you transfer the Windows SBS functional elements between the two servers, you
can start replacing the old server.

a"  a ac  
 
3

Windows SBS 2008 provides a Migration Preparation Tool to help you with the networking component
of a migration from Windows SBS 2003. For more information, see Run the Migration Preparation Tool
for Windows SBS 2008 Migration.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 469

a"  a c 16
$
**+

()
 ' 
**+

A copy of SQL Server 2008 Standard for Small Business is supplied with Windows SBS 2008 Premium.
This edition functions only if you install it within a Windows SBS 2008 domain.

a"  a c   i


16
$

 ' 

 

You must make sure that the source server and network are ready for migration. The TechNet guide
Migrate to Windows Small Business Server 2008 from Windows Small Business Server 2003 helps you
with the following steps3

{c Backing up the source server


{c Evaluating the source server͛s system health
{c Installing the most recent service packs and fixes
{c Verifying the network configuration
{c Raising the functional level of the Active Directory Domain Services (AD DS) domain and forest

You must also run the Migration Preparation Tool on the source server. It updates the AD DS schema,
installs an update that extends the time limit for the migration, and configures Microsoft Exchange
Server to support migration.

In addition, see Prepare Your Source Server for Windows SBS 2008 Migration, whichcovers the steps you
must take tomake sure that the settings and data on the sourceserver migrate successfully to the
destination server.

a"  a c $%

#%

You should always back up your SQL Server data before a migration. Because Windows SBS is a
complete environment migration, as of this writing, the Windows SBS team has no automated support
for rolling back a Windows SBS 2008 migration. However, make sure that you carefully watch the work
being done by the Data Protection Manager (DPM) team (for more information, see the "Data
Protection Manager" section later in this chapter).

For information about rolling back SQL Server data, see the relevant chapters in this guide, including

{c Chapter 1, "Upgrade Planning and Deployment"


{c Chapter 2, "Relational Engine"
{c Chapter 11, "Analysis Services"

a
c 

    
The general migration tasks for moving to Windows SBS 2008 are as follows3

1.c Create a migration answer file for Windows SBS 2008 migration introduces you to the migration
answer file and guides you through how to use the Answer File Tool to create the migration
answer file. Windows SBS 2008 Setup uses an answer file to automate the installation and to run
Setup in migration mode.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 470

2.c Install Windows Small Business Server 2008 in Migration Mode for Windows SBS 2008 migration
explains how to use the migration answer file to install Windows SBS 2008 on the destination
server in migration mode.
#%c Move settings and data to the Destination Server for Windows SBS 2008 migration explains how
to use the Migration Wizard and provides information about the settings and data that you can
migrate. The MigrationWizard helps you migrate settings and data from the source server to
Windows SBS 2008.
4.c Demote and remove the Source Server from the network to finish Windows SBS 2008
migrationshows you how to demote and physically remove the source server from the network
after you have installed Windows SBS 2008 and successfully migrated all the settings and data.
5.c Delete the old Folder Redirection Group Policy object for Windows SBS 2008 migrationdetails
the final task to rehome the redirected folders to the destination server. Perform this task only if
you had folder redirection enabled on the source server.

After you finish migrating all settings and data to Windows SBS 2008, you might want to map permitted
computers to user accounts, enable folder redirection, configure POP3 connectors, or update mailbox
quotas on your new server. For more information, see Optional post-migration tasks for Windows SBS
2008 migration.

a
c   
  a    
$  î 

 
Microsoft Lync 2010 Server supersedes Office Communications Server (OCS) 2007 R2. OCS 2007 R2
supports SQL Server 2008 and SQL Server 2005. In addition to the RTM release of OCS 2007, there was
also an earlier version of OCS known as Live Communications Server (LCS) 2005. None of these OCS
versions supports SQL Server 2008 R2 at this time.

§  Although OCS 2007 R2 supports both the 32-bit and 64-bit versions of SQL Server 2008,
SQL Server 64-bit is preferred. OCS 2007 R2 supports only the x64 versions of SQL Server 2008,
not the IA-64 Itanium versions. In addition, when you use a 64-bit version of the Windows
operating system, you will be required to use the 64-bit version of SQL Server 2008. OCS 2007
R2 also supports SQL Server 2005 Service Pack 2 (SP2).

The current release of Microsoft Lync Server 2010 supports only SQL Server 2008 SP1, but a future
release may support SQL Server 2008 R2.

For information about Microsoft Lync Server 2010, see the TechNet Library document collection at
Microsoft Lync Server 2010.

For information about Microsoft Lync Server 2010 and SQL Server 2008, see Configure SQL Server for
Lync Server 2010.

For more information on OCS 2007 R2, see Welcome to Microsoft Office Communications Server 2007
R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 471

a
ac  
  
 $î  
Upgrading to OCS 2007 R2 requires you to consider the Windows operating system, OCS 2007, and SQL
Server.

a"  a ac 

/ 
 

OCS 2007 R2 supports Windows Server 2008 x64 and Windows Server 2003 x64 only. However, you
must install OCS 2007 R2 on a new Windows Server 2008 server to run OCS 2007 R2 on a Windows
Server 2008 system.

a"  a c 

/
**2
#

There are two main scenarios for upgrading/migrating from OCS 2007 to OCS 2007 R2, as follows. Data
migration is not performed by moving data directly between OCS SQL Server back-end servers, but
instead is performed at the OCS level only.

{c   5  4   4  4       6


"((< 
6
"((<'"% This method backs up user data (Contact lists per user); performs a full uninstall,
operating system upgrade, and reinstall; and then imports the previously exported data.
Currently, you can also move from a SQL Server 2005 SP2 OCS back-end database to a SQL
Server 2008 one.
{c 6
     % This method installs a deployment of OCS 2007 R2 into an
existing OCS 2007 or LCS 2005 SP1 deployment on a separate set of servers, with additional
back-end SQL Server database instance(s). For the newly or additionally deployed instance of
SQL Server, you can decide to use SQL Server 2005 SP2 or SQL Server 2008. The migration is
performed by using the OCS "Move user" functionality.

a"  a c 
3

/
**2

When you move from OCS 2007 to OCS 2007 R2, you can save the user data to the operating system by
using the DPimpexp.exe tool. After you have uninstalled the original release and installed the new
release, you can use the same tool to repopulate the new release with the extracted data. This tool is
data server-agnostic. Therefore, it will work with either SQL Server 2005 or SQL Server 2008 as the data
server.

a
c   $î  
    
You can upgrade the SQL Server version that OCS 2007 R2 uses from SQL Server 2005 to SQL Server 2008
by using either an in-place or side-by-side upgrade.

a"   ac 


You can update the OCS instance data by doing an in-place upgrade from SQL Server 2005 to SQL Server
2008. The OCS 2007 R2 deployments using SQL Server 2005 and migrating to SQL Server 2008 will use
the in-place upgrade method for the Database Engine, with some downtime. Although this method
requires some downtime, which couldaffect the business and might not work for enterprise users,
Microsoft considers an in-place upgrade the most common approach.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 472

a"   c  




Alternatively, especially if you cannot afford the downtime, you can do a full side-by-side upgrade of
OCS 2007 R2 running SQL Server 2005 to OCS 2007 R2 running SQL Server 2008. In this scenario, you
implement two OCS servers together with their applications and data servers intact. One of the servers
has SQL Server 2005 installed, and the other server has SQL Server 2008 installed.

Then you use a method called"Move User," where individual user data is moved from the OCS data
server of one instance to the OCS data server of the other. No SQL Server tools are used to transfer the
user data. For example, a first instance of the OCS service could be using SQL Server 2005 as the data
server while the second instance of the OCS service is using a SQL Server 2008 data server for its
functionality. For more information, see the "Database topologies" section of the Office
Communications Server 2007 Document3 Supportability Guide and the Office Communications Server
Web site.

This is the typical migration scenario for enterprise customers. This move has no downtime and enables
controlled migration of usersͶcontrolledto the extent that if something goes wrong, the original system
is still intact for rollback purposes. This kind of staged migration also helps with the client upgrade
rollout by minimizing the effect of the upgrade on the business.

§  OCS requires multiple instances of SQL Server that serve as the main SQL Server back end,
the archiving database, and the Monitoring Server database.

a
c   $
  Ô
The side-by-side upgrade option helps provide the safety of having your legacy system available in case
a rollback is needed. As of this writing, there are no specific tools available from the OCS product team,
but see the "Data Protection Manager" section later in this chapter for support provided by DPM.

a
c  
$   
 a
Microsoft Office SharePoint Server 2010 is one of the most widely used SQL Server applications on the
Microsoft platform. SharePoint 2007 (also known as MOSS 2007) supports SQL Server 2008 in addition
to SQL Server 2005 and SQL Server 2000 as back-end data servers. SharePoint 2010 has been designed
specifically with the advanced features available in SQL Server 2008 R2.

For more information about how to use SQL Server 2008 R2 with Windows SharePoint Services, see SQL
Server Integration with SharePointin SQL Server 2008 R2 Books Online.

§  You must install Windows SharePoint Services 3.0 SP1 or later and SharePoint 2007 SP1 or
later before you install SQL Server 2008 R2 for use with SharePoint 2007 and Windows
SharePoint Services.

a
ac  
    

    
SharePoint 2007 currently has no requirements for SQL Server that would bind it to releases earlier than
SQL Server 2008 R2.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 473

§ 3 The SharePoint 2007 application functions independently of the SQL Server data server.
However, to use all the features of SharePoint 2007 with the 2007 Microsoft Office system, you
must be using at least SQL Server 2000 SP4 or SQL Server 2005.

a"  a ac 

 
**2

SharePoint is a complex application, and upgrading it requires planning. For complete details, see
Migration and Upgrade Resource Center for Microsoft Office SharePoint Server 2007 and Upgrade and
Migration for SharePoint Server 2010.

a"  a c 
16
6
 
**2

You can upgrade Windows with SharePoint 2007 with minimal effect. The only aspects of the operating
system that SharePoint 2007 uses are ASP.NET and IIS. As long as these are backwardly compatible after
the upgrade, there will be no negative effect.

For more information about the changes to ASP.NET and IIS because of upgrading Windows, see the
relevant documentation and make sure that backward compatibility is guaranteed. For more
information, see Hardware and Software Requirements (SharePoint Server 2010).

a"  a c 
3

There are no tools within SharePoint to make it easier to upgrade from an earlier version of SQL Server
to the latest version. However, you can find details about the steps that you must follow to move
databases between different versions of SharePoint in the TechNet article Attach databases and
upgrade to SharePoint Server 2010.

a"  a c $%

#%

You should always back up your SQL Server and SharePoint data before an upgrade. DPM, which we
cover later in this chapter, provides extensive support for backing up all files and databases of a
SharePoint server farm.

If you are upgrading only to SQL Server 2008 R2, make sure that you back up your data first. If it is
possible, test the upgrade on a test system before you try the upgrade in production. (See the other
chapters in this guide for specific, detailed information about how to upgrade each SQL Server
component to SQL Server 2008 R2.)

a"  a "c 



()
 ' 
**+
#

As of this writing, the latest features of SharePoint that function together with Microsoft Office are
available only through data server features released with SQL Server 2008 R2. Therefore, if you want any
of these features, you must also upgrade the data server. Upgrading the SharePoint database server to
SQL Server 2008 R2 does not affect the SharePoint application.

§ The one SQL Server component that SharePoint cannot use is replication, unless you are
using the latest version, SharePoint 2010. There are no other restrictions in the services that the
data server can provide.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 474

a

c  

 î

The Microsoft System Center family of management products helps IT professionals manage their
Windows Server infrastructure. The tools are especially useful in midsize to large data environments. For
comprehensive information about System Center, see the Microsoft System Center Web site.

Two System Center products are especially relevant for SQL Server 2008 R23 Operations Manager
(SCOM) and Data Protection Manager (DPM).

a

ac $
       
      
MOM works seamlessly with Microsoft software and applications, including SQL Server 2008 R2, which
enablesmore control of the IT environment. MOM supports monitoring with its targeted Management
Packs.

SQL Server Management Packs provide proactive and reactive monitoring of SQL Server 2008 and SQL
Server 2008 R2 in addition to SQL Server 2005 and SQL Server 2000. You can proactively manage your
instances of SQL Server and discover issues before they become critical. You can use the Management
Pack for the particular SQL Server version that you are running to increase the security, availability, and
performance of your SQL Server infrastructure.

Availability and configuration monitoring, performance data collection, and default thresholds are built
for enterprise-level monitoring. Both local and remote connectivity checks help ensure database
availability. The MOM Management Pack for SQL Server 2008 R2 includes the following features3

{c Monitoring the state of different SQL Server 2008 R2 services such as SQL Server, SQL Server
Agent, Report Server, and Notification Services
{c Monitoring the state of databases
{c Monitoring the available space in databases, configurable by % or MB
{c Making sure that databases are configured correctly
{c Making sure that clients can connect to SQL Server
{c Monitoring blocked processes
{c Watching for failed SQL Server Agent jobs and jobs taking too much time to execute
{c Monitoring the health of replication and alerting on failures
{c Monitoring the state of database mirroring

You can download the Management Pack for SQL Server 2008 R2 at Introduction to the SQL Server
Management Pack Guide.

a

c 


   
DPM 2010 sets a new standard for Windows backup and recovery, delivering continuous data protection
for Microsoft application and file servers to a seamlessly integrated secondary disk and tape solution on
the DPM server. DPM enables rapid and reliable recovery through advanced technology for enterprises
of all sizes.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 475

DPM provides a rich feature set for protecting SQL Server data, helping you guaranteethe ability to
recover databases if there is a server or database loss. DPM uses the SQL Server Volume Shadow Copy
Service Writer to provide block-level synchronization for database backups, in combination with
transaction log backups. After an initial baseline copy of database data is taken, the following two
parallel processes enable continuous data protection with integrity3

{c Transaction logs are continuously synchronized to the DPM server, as frequently as every 15
minutes.
{c An "express full" backup uses the SQL Server Volume Shadow Copy Service Writer to discover
files that need to be backed up for a selected database. Also, the DPM volume filter tracks which
blocks have changed in the whole production database and sends just the updated blocks or
fragments for backing up database data. By using the SQL Server writer and the Volume Shadow
Copy Service infrastructure, DPM guarantees that a complete and consistent image of the data
files is backed up onto the DPM server or appliance. DPM 2007 maintains up to 512 shadow
copies of the full SQL Server database(s) and associated transaction logs by storing only the
differences between any two images.

DPM 2010 uses an instance of SQL Server 2008 SP1 to support configuration and system data and can
protect the following3

{c Windows Server 2003 through 2008 R2


{c SQL Server 2000 through SQL Server 2008 R2
{c Exchange Server 2003 through 2010
{c SharePoint Server 2003 through 2010
{c Dynamics AX 2009
{c Essential Business Server 2008 and Small Business Server 2008
{c SAP running on SQL Server

You can find more information about DPM͛s features and functionality on the Microsoft System Center
Data Protection Manager Web site.

It is important to note that DPM 2010 can protect SQL Server 2008 R2 data. However, DPM 2010
currently requires SQL Server 2008 SP1 as its data repository. DPM 2010 relies on SQL Server 2008
support for the Windows Management Interface (WMI) entries and resource placement in the operating
system. In addition, DPM requires features of SQL Server 2008 Reporting Services.

For more information about DPM 2010 and SQL Server, see the TechNet article DPM Server Software
Prerequisites.

For information about DPM 2010 and protecting SQL Server 2008 R2 data, you can download the white
paper How to Protect SQL Server with DPM 2010.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 476

a" "  ac !





()
 ' 
**+
#

When you are upgrading to SQL Server 2008 R2 from either SQL Server 2000 or SQL Server 2005, you
can use DPM during the upgrade process to protect your SQL Server 2000 and SQL Server 2005 data.
Used with an in-place upgrade, DPM will give you a secure point to which you can roll back to in case the
upgrade is unsuccessful.

a" "  c !


**2

!
 -
()
 ' 
**+
#
! 

If you want to use DPM 2007 to protect SQL Server 2008 R2 databases, make sure that you have
upgraded to hotfix KB949779 if using DPM 20073

{c If you are using an x86-based operating system, download the System Center Data Protection
Manager 2007 Feature Pack (x86).
{c If you are using an x64-based operating system, download System Center Data Protection
Manager 2007 Feature Pack (x64).

To gain seamless backups of mirrored configurations, make sure you apply System Center Data
Protection Manager 2007 Service Pack 1 (32bit).

You can find more information about the latest version of the product, DPM 2010, at Data Protection
Manager 2010 Overview.

a
 c  
 
The Microsoft Dynamics products consist of a set of integrated solutions for Financials, Supply Chain,
and Customer Relationship Management. The products include the following3 Dynamics AX, Dynamics
CRM, Dynamics GP, Dynamics NAV, Dynamics SL, Dynamics Retail Management System, and other
applications.

Each current Dynamics product supports SQL Server 2008 R2 but has very specific requirements for
Windows versions, SQL Server version, product service/feature packs, and so on.

Generally, you should upgrade a Dynamics application͛s database server to SQL Server 2008 R2 only
after you follow specific guidance from your Dynamics Technical Account Manager and by reviewing
information found on the different Dynamics support Web sites. If you are a registered Dynamics user,
you can find this information at the Microsoft Dynamics PartnerSource/CustomerSource Web site.

a
 cî  
As with any upgrade, planning is important for moving to any of these latest product versions. Even if
there is no specific upgrade tool to help with the upgrade of some of these applications, you can turn to
the Microsoft System Center products for help in all environment, application, and data server
upgrades. Before you start, you can use the System Center DPM to create differential backups during
the upgrade process in addition to a base backup.

It is also important that the performance of the new system at least equals the performance of the
existing system. MOM can help in regression testing the new environment post-upgrade. This gives you

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 477

the information your organization needs to decide whether to go forward with the upgrade or roll back,
depending on the outcome of the tests.

a
cx
   
For an up-to-date collection of additional references for upgrading any of these Microsoft applications,
especially in association with SQL Server, see Upgrading to SQL Server 2008 R2 and Microsoft Server
Applications Supported on Windows Server 2008 R2.

Also see the following resources3

{c SQL Server 2008 R2 Upgrade Web site


{c SQL Server 2008 R2 Web site
{c Microsoft SQL Server 2008 R2 Books Online
{c SQL Server MSDN Resources
{c SQL Server TechCenter

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 478

x" a    


   

Table A-1, taken from Version and Edition Upgrades in SQL Server 2008 R2 Books Online, shows the
paths that SQL Server 2008 R2 Setup will allow when directly upgrading a SQL Server 2000 or SQL Server
2005 instance by using the in-place upgrade method.

Ô  !    M  $  &"(((&"((- &


"(()'"

›  
    

 #((( %$ +  #(() 


 #(()   ,
 #(()   x # #
 #(()-


 #((( -
+  #(()-

 #(()   
 #(()  

 #(((    +.  #(()   


 #(()  

 #((( $#+.  #(()$#

 #(((   +.  #(()  


 #(()$  

 #((( .*x" # ./ 0


  

 #(((" *x"$#../  #(()" *x"$#

 #(((" *x"  ../  #(()" *x"  


 #(()" *x"$  

 #(((  0


  

 #((/  +  #(() 


 #(()   ,
 #(()   x # #
 #(()-

 #(()   
 #(()  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 479

 #((/  +x # +  #(()   x # #


 #(()-

 #(()   
 #(()  

 #((/ -
+  #(()-

 #(()   
 #(()  

 #((/    +  #(()   


 #(()  

 #((/ $#+  #(()$#

 #((/   +  #(()  


 #(()$  

 #((/ .*x".1" #  0


  

 #((/*x"" $#  #(()*x"" $#

 #((/*x""      #(()*x""   

 #((/*x""     #(()*x""   


 #(()*x"" $  

 #((/1"" $#  #(()1"" $#

 #((/1""      #(()1""    


 #(()1""   

 #((/1""     #(()1""   


 #(()1"" $  

 #(() +  #(() 


 #(()   ,
 #(()   x # #
 #(()-

 #(()   
 #(()$#
 #(()  
 #(()$  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 480

 #(()   ,  #(()   ,


 #(()   x # #
 #(()-

 #(()   
 #(()$#
 #(()  
 #(()$  

 #(()   x # #+  #(()   x # #
 #(()-

 #(()   
 #(()$#
 #(()  
 #(()$  

 #(()-
+  #(()-

 #(()   
 #(()  
 #(()$  

 #(()+  #(()
 #(()   
 #(()  

 #(()   +  #(()   
 #(()  
 #(()$  

 #(()$#+  #(()$#
 #(()$  

 #(()  +  #(()  


 #(()$  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 481

 #(() ""    #(() ""  


 #(() ""    ,
 #(() ""    
x # #
 #(() "" -

 #(() ""    
 #(() ""   
 #(() "" $  

 #(() ""    ,  #(() ""    ,


 #(() ""    
x # #
 #(() "" -

 #(() ""    
 #(() ""   
 #(() "" $  

 #(() ""      #(() ""    


x # # x # #
 #(() "" -

 #(() ""    
 #(() ""   
 #(() "" $  

 #(() "" -


  #(() "" -

 #(() ""    
 #(() ""   
 #(() "" $  

 #(() ""   #(() "" 


 #(() ""    
 #(() ""   

 #(() ""      #(() ""    


 #(() ""   
 #(() "" $  

 #(() "" $#  #(() "" $#


 #(() "" $  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 482

 #(() ""     #(() ""   


 #(() "" $  

 #(()*x"" $#  #(()*x"" $#


 #(()*x"" $  

 #(()*x""     #(()*x""   


 #(()*x"" $  

 #(() . " *x" #  0


  

 #(() +  #(()   ,


 #(()   x # #
 #(()-

 #(()   
 #(()$#
 #(()  
 #(()$  

 #(()   ,  #(()   x # #


 #(()-

 #(()   
 #(()$#
 #(()  
 #(()$  

 #(()   x #   #(()-



+
#   #(()   
 #(()$#
 #(()  
 #(()$  

 #(()-
+  #(()   
 #(()  
 #(()$  

 #(()+  #(()   
 #(()  
 #(()$  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 483

+.
 #(()     #(()  
 #(()$  

 #(()$#+.  #(()-

 #(()"
 #(()   
 #(()  
 #(()$  

 #(()  +.  #(()$  

 #(() #   #(()-


)
 #(())
 #(()   
 #(()$#
 #(()  
 #(()$  

 #(()$    #(()  2

 #(() ""    #(() ""    ,


 #(() ""    
x # #
 #(() "" -

 #(() ""    
 #(() "" $#
 #(() ""   
 #(() "" $  

 #(() ""    ,  #(() ""    


x # #
 #(() "" -

 #(() ""    
 #(() "" $#
 #(() ""   
 #(() "" $  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 484

 #(() ""      #(() "" -



x # #  #(() ""    
 #(() "" $#
 #(() ""   
 #(() "" $  

 #(() "" -


  #(() ""    
 #(() ""   
 #(() "" $  

 #(() ""   #(() ""    


 #(() ""   
 #(() "" $  

 #(() ""      #(() ""   


 #(() "" $  

 #(() "" $#  #(() "" -



 #(() "" "
 #(() ""    
 #(() ""   
 #(() "" $  

 #(() ""     #(() "" $  

 #(() ""  #   #(() "" -


)
 #(() "" )
 #(() ""    
 #(() "" $#
 #(() ""   
 #(() "" $  

 #(() "" $    #(() ""   2

 #(()*x"" $#  #(()*x""   


 #(()*x"" $  

 #(()*x""     #(()*x"" $  

 #(()*x""  #   #(()*x""   


 #(()*x"" $#
 #(()*x"" $  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 485

 #(()*x"" $    #(()*x""   2

Ô ë  
+
, #  
    #(()   &"" 
# 3#     &  * # #((( 
#((/#    &".
  #   #
(()   


4

    #(()#   , 
  

    #(()# 5

{c  #(()    #(()$#.   . # 


{c  #(()$#  #(()    # 
{c  #(()     #(() # 
{c  #(() #   #(()   


!
  #(((" *x"#    


!
  #(((x#  #(()   #  

/
!
  #((("     #(()%
 , , 
%
 ,.    
   

"
 
 #(()$#  #(()   
#(()     

2
 
 #(()$    #(()     
#(()   #    

)
*
 
 # #   # #-
. 
 x#   
  

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 486

x"       


 Ô  î 

  ë   ' *


   $  
Decide to upgrade to Identify the business reasons for upgrading
SQL Server 2008 R2 to SQL Server 2008 R2.
ChooseSQL Server 2008 Select required and desired SQL Server
R2 enhancements to 2008 R2 features and enhancements for
implement current and future development in the
following categories3
Relational Database Features
{c Database Engine
{c High Availability
{c Security and Auditing
Business Intelligence Features
{c Analysis Services
{c Data Mining
{c Integration Services
{c Reporting Services
Determine instances of Classify upgradable instances of SQL Server
SQL Server to upgrade according to level of criticality3
{c High level3 mission critical
{c Medium level
{c Low level
Also classify according to whether
instances are3
{c Default instance
{c Named instance
{c Virtual Machine

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 487

  ë   ' *


Backward compatibility Gain familiarity with and select the
and upgrade tools appropriate upgrade tools for use in
upgrade planning3
{c SQL Server 2008 R2 Upgrade
Advisor
{c SQL Server 2000 and 2005 Best
Practices Analyzer
{c SQL Server Profiler
{c Analysis Services Migration Wizard
{c DTS Package Wizard
Run the SQL Server 2008 R2 Upgrade
Advisor to determine potential blocking
issues3
{c Deprecated features
{c Discontinued features
{c Breaking changes
{c Behavior changes
Run the SQL Server 2000 or 2005 Best
Practices Analyzer to detect incorrect
settings or other issues on legacy servers.
Ensure that servers meet Ensure that servers meet minimum
SQL Server 2008 R2 requirements for SQL Server 2008 R2,
requirements including3
{c Processor, memory, and disk
space
{c Windows Server 2003 or higher
{c SQL Server 2000 SP4 (in-place
upgrade)
{c SQL Server 2005 SP2 or later (on
Windows Server 2008, in-place
upgrade)
Decide on CPU platform3 Determine what CPU platform to use for
64-bit or 32-bit SQL Server servers, and ensure that
database servers meet requirements.
Determine upgrade For each server, determine the proper SQL
paths for editions Server 2008 R2 edition to upgrade to3
{c Datacenter
{c Enterprise
{c Standard
{c Workgroup
{c Developer
{c Web
{c SQL Server Express
Ensure that the legacy instances of SQL
Server will have allowed upgrade paths for
in-place upgrades.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 488

  ë   ' *


Determine application Determine whether applications require
connectivity any of the following3
requirements {c Upgrade to support SQL Server
2008 R2
{c Changes to connectivity settings
{c Changes to authentication mode
{c Measures to prevent SQL Injection
Determine Windows For each database server, determine
upgrades whether it requires a Windows upgrade.
Note the restrictions on Windows Server
versions for SQL Server3
{c SQL Server 2008 R2 requires
Windows Server 2003 or later
{c SQL Server 2000 is not supported
on Windows Server 2008
Select the appropriate For each server or database, choose the
upgrade strategy optimal upgrade strategy3
{c In-place upgrade
{c Side-by-side upgrade
{c Same physical server or VM
{c Separate physical server or VM
   $   
Upgrade as an IT project Follow standard IT project practices for
developing the upgrade project. Identify3
{c Team members
{c Stakeholders
{c Application/business owners
Follow standard IT project procedures for
the upgrade.
Update DBA skills to SQL Ensure that DBA team members have SQL
Server 2008 R2 Server 2008 R2 skills for implementing and
potentially troubleshooting the upgrade.
Document the upgrade Ensure that critical decisions and steps are
plan documented and known to those involved
in the upgrade.
Include other upgrade Gather and consider lessons from past
knowledge upgrades.
Minimize upgrade Keep the project focused as much as
variables possible on upgrading
Avoid extending the project scope to
application enhancements or fixes not
related to upgrading.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 489

  ë   ' *


Identify pre-upgrade Identify tasks that might be accomplished
tasks before the upgrade and without
downtime.
For example, determine where it is
possible to pre-install3
{c Microsoft Windows Installer (MSI)
4.5
{c .NET Framework 3.5 SP1
{c SQL Server Native Client 10.0
Establish performance Use tools such as SQL Server Profiler to
baselines gather data indicating typical performance
measurements.
Ensure that the broadest possible sets of
commands are captured in traces.
Estimate required Allow sufficient downtime so that the
downtime upgrade process and testing can be
completed successfully.
Allow time for rollback if unexpected
issues arise.
Develop upgrade Detail the steps required for taking the
checklists systems offline for a period of time and
bringing them back online.
Detail the steps to take during the upgrade
processes.
Develop an upgrade test Build a test environment.
plan Determine test procedures for each
individual upgrade or upgrade type.
Test the upgrade checklists and
procedures and revise as results indicate.
Be familiar with upgrade troubleshooting
techniques.
Identify backup and Plan for backing up the targeted legacy
restore operations databases.
Verify the backups.
Plan for restoring the backup files if
needed.
Test all backup procedures.

Microsoft Corporation Copyright © 2010


SQL Server 2008 R2 Upgrade Technical Reference Guide 490

  ë   ' *


Determine acceptance Identify how the organization will accept
and rollback steps the upgrade, and how it will make the
"go/no-go" decision3
{c Verify tests to ensure applications
using the upgraded database
servers will run as expected and
required.
{c If available, enlist the support of
the QA team to develop
appropriate acceptance tests.
{c Determine exactly when and how
a rollback to the legacy SQL Server
might be required.
{c Test the rollback plan.
 $  Ô *
Integrate the upgraded Remaining tasks might include the
server following3
{c Update statistics
{c Rebuild cubes
{c Reconfigure log shipping
{c Reconfigure database mirroring
{c Test a failover cluster
{c Verify that SQL Server Agent jobs
run correctly
Decommission servers After a suitable time period, after full
acceptance of upgrades, decommission
servers that are no longer needed for
rollback or running in parallel.
Prepare for the next Collect knowledge and experience from
upgrade the upgrade project and store it so that
lessons learned can be used in future
upgrade projects.

Microsoft Corporation Copyright © 2010

You might also like