【IT168 技术文档】
执行一个SQL Server 2000关系数据库的In-place升级
概述
在此试验中,您将使用:SQL2k.vmc虚拟机。
• SQL2k.vmc是一个SQL Serve 2000虚拟机,您将使用它准备升级个执行Upgrade Advisor操作。
场景
您负责从SQL Server 2000升级到SQL Server 2008。您将查看您的SQL Server 2000环境,发现可能存在的问题:
• SQL Server 2000有一个不正确的登录。
• 在升级到SQL Server 2008之前,使用一个脚本来修复它。
练习 1: 执行 Upgrade Advisor(如果您已经做了第一个实验,请忽略练习1和2)
在本文档中,您将运行Microsoft SQL Server 2008 Upgrade Advisor来获得关于可能的升级问题的信息,查看报告,然后修复相关问题。
任务 | 详细步骤 |
使用服务器(使用Virtual PC ). | 从开始菜单中启动Virtual PC。如果控制台没有出现的话,查看系统托盘,双击Microsoft Virtual PC启动。 找到本试验用到的虚拟机,点击Start。 当虚拟机启动后,点击“Action”菜单,选择“Ctrl+Alt+Del”(或者按键盘上的右Alt键和Del键),打开登录框。 以Administrator身份登录,密码为Password01!。 |
执行Upgrade Advisor向导,查看SQL Server 2000关系数据库引擎环境 | 1. 点击“Start”,选择“SQL Server 2008 Upgrade Advisor”。 2. 在“Welcome to SQL Server 2005 Upgrade AdvisorWelcome to SQL Server 2008 Upgrade Advisor”页面上查看相关信息,然后点击“Launch Upgrade Advisor Analysis Wizard”。 注意:在真实的环境中,您应该在运行Upgrade Advisor Upgrade Advisor之前点击“Check for updates”。 在“Welcome to the Upgrade Advisor for Microsoft SQL Server 2005Welcome to the Upgrade Advisor for Microsoft SQL Server 2008”页面点击“Next”。 出现的“SQL Server Components pageSQL Server Components pageSQL Server Components”页面显示了安装在虚拟机上的默认的SQL Server实例。在这个页面上,选择您想使用此向导分析的组件。如果您想检测安装在这个实例上的组件,您应该点击“Detect”。在这个试验中,您将只分析SQL Server数据库引擎组件。 在“SQL Server Components”页面上,验证SQL2K出现在“Server Name List”中,在“Components List”中选中“SQL Server Check”框(不选择其他的复选框)SQL Server Com 在“Connection Parameters”页面,查看连接信默认实例的信息,然后点击“Next”使用Windows 验证连接到默认实例。 在“SQL Server Parameters”页面上,验证所有的数据库复选框被选中。SQL Server ParametersSQL Server ParametersSQL Server ParametersSQL Server Parame 注意,在这个页面上,你也可以选择让“Upgrade Advisor”分析一个“Trace file”或者一个“batch file”。在本练习中,您将允许 Upgrade Advisor检查一个脚本文件,此脚本文件包含了一个没有WITH关键字的 查询提示和使用*=语法的查询。 选择“Analyze SQL batch file”,导航到C:\SQL Scripts,双击script.sql文件,然后点击“Next”。 在“Confirm Upgrade Advisor Settings”页面上,点击“Run”启动分析向导。 当向导完成了分析过程,出现一个警告提示,显示检测到一个升级问题。 注意:在向导中提供的配置信息将被保存到My Documents\SQL Server 2008 Upgrade Advisor Reports\<Server Name>\Config.xml下。您可以使用这个配置文件和使用UpgradeAdvisorWizardCmd.exe命令来安排一个无人值守的分析。 |
查看升级报告 | 1. 在“Upgrade Advisor Progress”页面,点击“Launch Report”。 升级报告出现。在被检测到的每一个问题上都有一条线,问题的重要性以及什么时候你应该修复它。在报告的顶部,您可以改变服务器,SQL Server组件,并且还可以按照您想看的类型对问题进行筛选。 展开每一个问题,查看关于问题的信息和建议的修复操作。 注意一旦您解决了一个问题,您可以选中“This issue has been resolved”复选框。如果您选中了,下次当您打开报告的时候,您将不会看到这个问题。在没有修复问题之前,不要选中此类复选框 。 关闭“Microsoft SQL Server 2008 Upgrade Advisor Report Viewer”,然后关闭所有打开的Microsoft SQL Server 2008 Upgrade Advisor对话框。 |
练习 2: 修复升级问题
在此部分中,您将修复Upgrade Advisor报告的以下问题:
• 重命名用户sys
• Outer join 操作符 *= and =* 在90兼容性模式下不被支持
当在90兼容性模式下使用表提示时,指定WITH关键字
任务 | 详细步骤 |
重命名用户 sys. | 1. 打开“SQL Server Enterprise Manager”,然后导航到默认实例的“Security”文件夹。 1. 在“Security”文件夹中,在“Logins”下面双击“sys”,然后查看此登录的属性。 注意,这个登录帐户拥有默认数据库AdventureWorks2000,它是AdventureWorks2000数据库中db_owner角色的成员。 2. 在“Databases”文件夹,展开“AdventureWorks 3. 在详细信息面板中,查看表以确定是否有表被sys占有。 注意,标test被sys用户占有。 4. 以相同的方式,查看是否用户sys占有任何视图(views)和存储过程(stored procedures)。结果,用户sys没有占有。 5. 在“Security”文件加下,右键点击“Logins”,然后点击“New Login”。 6. 使用下列信息创建一个新的登录: · Name: newsys · Authentication: SQL Server Authentication · Password: Pa$$w0rd · Default database: AdventureWorks2000 · Database access: AdventureWorks2000 · Database role: db_owner 7. 打开“SQL Query Analyzer”。 8. 执行下面的脚本来将表test的拥有者变为newsys: USE AdventureWorks2000 GO EXEC sp_changeobjectowner 'sys.test','newsys' 注意: 在真实的环境中,一些程序,脚本,存储过程或者视图可能需要修改来引用新的对象名称。 9. 转换到“SQL Server Enterprise Manager”,验证用户sys不再占有表test。 10. 在“Security”文件夹下的“Logins”下,删除用户sys。 |
修复outer join操作符和表提示 | 1. 转换到“SQL Query Analyzer”。 2. 在“File”菜单下,点击“Open”。 3. 当提示保存更改时,点击“No”,然后转到C:\SQL Scripts\Script.sql。 这是一个脚本文件,用于Upgrade Advisor检测表提示和outer join操作符问题。 4. 查看这个脚本,然后按照以下修改它: USE AdventureWorks2000 GO SELECT * FROM Customer WITH (Index(AK_Customer_AccountNumber)) GO SELECT * FROM CUSTOMER C LEFT OUTER JOIN ON C.CustomerID=CA.CustomerID 5. 执行这个脚本来验证您已经进行了正确的修改。 6. 保存这个脚本 |
练习 3: 执行预升级任务
在这个练习中,您将准备好升级用的SQL Server 2000环境和在执行in-place升级之前的可能存在的回滚。
任务 1: 准备SQL Server 2000环境
在这个任务中,使用SQL Server Enterprise Manager来准备SQL Server 2000,确保所有的系统和用户数据库配置为自动增长,所有启动的存储过程被禁用。
任务 | 详细步骤 |
准备SQL Server 2000环境 | 1. 转到“SQL Server Enterprise Manager”,导航到“Database”文件夹。 您需要验证所有的数据库被配置为自动增长。 注意:在生产环境中,您将验证磁盘有足够的磁盘空间来增长。 1. 在数据库文件夹中,右键点击“master”,然后选择“Properties”。 2. 在“Data Files”标签,验证数据文件被配置为自定增长。 3. 在“Transaction Log”标签,验证日志文件被配置为自动增长,然后点击“OK” 4. 以相同的方式,验证所有的其它数据库文件(系统和用户数据库)被配置为自动增长。 5. 转到“SQL Query Analyzer”,连接到您的本地SQL Server实例。 您需要禁用扫描启动的存储过程,这些存储过程可能干扰升级过程。 6. 执行下面的T-SQL语句来禁用扫描启动的存储过程: USE master GO sp_configure 'show advanced options' ,1 RECONFIGURE GO sp_configure 'scan for startup procs' ,0 RECONFIGURE 注意: “scan for startup procs”选项已经被设置为0;此实验只为演示目的而设置。 |
任务 2: 备份所有的SQL Server 2000数据库
在此任务中,在升级之前使用SQL Server 2000 Enterprise Manager备份所有的SQL Server 2000数据库。您需要这些备份以便升级失败回滚到SQL Server 2000环境。
任务 | 详细步骤 |
备份所有的SQL Server 2000数据库 | 1. 转到“SQL Server Enterprise Manager”,导航到“Database”文件夹。 您需要验证所有的数据库被配置为自动增长。 2. 在“Database”文件夹,右键点击“master”,指向“All Tasks”,点击“Backup Database”。 3. 在“General”标签,验证已经选中“Database - complete”。 4. 点击“Add”,指定Master.bak作为备份的文件 (使用默认路径) ,点击“OK”。 5. 点击“OK”备份Master数据库,然后当备份完成后,点击“OK”。 6. 以相同的方式,备份其它的数据库(为每个文件指定合适的名称)。 注意: 不要备份tempdb数据库-备份操作不会在tempdb上进行操作。 |
任务 3: 验证当前没有客户端程序连接
在这个任务中,使用SQL Server 2000 Enterprise Manager来验证没有客户端程序连接到数据库。
任务 | 详细步骤 |
验证没有客户端程序连接。 | 1. 转换到“SQL Server Enterprise Manager”,然后导航到“Management”文件夹。 1. 在“Current Activity”下,点击“Process Info”。 2. 在详细面板上,回顾一下当前活动的进程。 您需要验证没有客户端程序联系。每个客户端程序将有一个50之上的连接进程ID。 3. 关闭“SQL Server Enterprise Manager”和“SQL Query Analyzer”。 |
练习 4: 执行版本升级
在这个练习中,您将执行SQL Server 2000到SQL Server 2008的升级。在这个练习中为了执行第一步,您必须有一个SQL Server CD-ROM或者DVD介质,或者通过网络连接到安装文件。
如果您没有SQL Server 2008介质,或者如果您不想通过安装向导来运行,使用下面截屏演示的步骤。注:在升级到SQL Server 2008之前需要安装.NET Framework 3.5以及Windows Installer 4.5,为了节约时间,实验虚机中已经将这两个组件安装好。
任务 | 详细步骤 |
执行一个In-place版本升级 (如果您没有安装文件的网络连接,跳过第一步) | 1. 插入SQL Server 2008介质盘,点击 Setup.exe 1. 在“SQL Server Installation Center”页面中,选择“Installation”,然后点击“Upgrade from SQL Server 2000 or SQL Server 2005”。 图 1 – SQL Server Installation Center页面 2. 在“Setup Support Rules”页面,查看有无错误或警报,然后点击“OK”,如图2所示。 图 2 - Setup Support Rules 页面 3. 输入产品密钥,点击“Next” 4. 接受许可协议,并点击“Next” 5. 点击“Install”,如图3所示 6. 完成后点击“Next” 7. 在“Select Instance”页面中,选择需要升级的实例。本实验中保留默认设置即可,然后点击“Next”,如图4所示 图 4- Select Instance 页面 8. 在“Select Features”页面中,保留默认设置,然后点击“Next”,如图5所示 图 5 – Select Features 页面 9. 在“Instance Configuration”页面中,保留默认设置,然后点击“Next”,如图7所示 图 7 - Instance Configuration 页面 10. 在“Disk Space Requirements”页面中,保留默认设置,然后点击“Next” 11. 在“Server Configuration”页面中,保留默认设置,然后点击“Next” 12. 在“Full-text Upgrade”页面中,选择“Import”,然后点击“Next”,如图8所示 图 8 - Full-text Upgrade 页面 13. 在“Error and usage reporting”页面中,保留默认设置,然后点击“Next”点击“Next”,如图10所示 图 10 - Error and usage reporting 页面 14. 在“Upgrade Rules”页面中,点击“Next”,如图11所示 图 11 – Upgrade Rules 页面 15. 在“Ready to Upgrade”页面中,点击“Upgrade”开始升级,如图12所示 图 12 – Ready to Upgrade 页面 16. 在升级完成后,点击“Next”,然后点击“Close”完成升级过程。如图13所示 |
查看升级结果 | 1. 打开Windows资源管理器,导航到C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\LOG,然后打开“Summary.txt”文件。 2. 查看这个总结文件,然后关闭它。 3. 从“Start”打开“SQL Server Configuration Manager”。 4. 点击“SQL Server Services”。 注意一些服务显示出来,并显示它的状态和启动模式。您将使用这个工具来查看和配置SQL Server服务。 5. 展开“SQL Server Network Configuration”,然后点击“Protocols for MSSQLSERVER”。 注意配置的网络协议。您可以通过这个工具来配置网络协议。 6. 关闭“SQL Server Configuration Manager”。 7. 从“Start”菜单中打开“SQL Server Management Studio”。 8. 验证“Database Engine”出现在“Server Type”列中,“Windows Authentication”出现在“Authentication”列中。 9. 确保“SQL2K”出现在“Server Name”中,然后点击“Connect”。 10. 在“Object Explorer”(SQL Server Management Studio的左边)中,展开“Databases”,然后验证“AdventureWorks 11. 关闭“SQL Server Management Studio”。 |
关闭虚拟机。 | 1. 在Microsoft Virtual PC 2007的“Action”菜单下,点击“Close”。 |