我现在在用的软件的数据库服务器是 sql server2000 的,数据库文件是mdf,企业管理器里面附加一下就可以。
现在我想把sql server 2000卸载掉,装个2005或2008版本的数据库,请问到时候能像2000一样附加数据库吗? 附加以后,一般情况下,我的软件我能正常用吗?

解决方案 »

  1.   

    不过要注意升级后的一些事情.例如:sqlserver2000升级到2005总结www.itpub.net (zhouwf0726)经历了很长时间的 sqlserver2000升级到2005 的测试,并开始了部分升级工作(10几台server)。现在一些总结共享下:升级前:(Pre-Update) 
    1 升级版本检查 
     升级前的版本 支持的升级路径 
     SQL Server 2000 Enterprise Edition SP3 或更高版本1 SQL Server 2005 Enterprise Edition 
     SQL Server 2000 Standard Edition SP3 或更高版本1 SQL Server 2005 Enterprise Edition 
     SQL Server 2005 Developer Edition 
     SQL Server 2005 Standard Edition 
    2 安全注意事项 
     2.1增强物理安全性 将服务器置于专门的房间,未经授权的人员不得入内。 
     将数据库的宿主计算机置于受物理保护的场所,最好是上锁的机房,房中配备水灾检测和火灾检测监视系统或灭火系统。 
     将数据库安装在公司 Intranet 的安全区域中,任何时候都不要直接连接到 Internet。 
     定期备份所有数据,并将副本存储在远离工作现场的安全位置。 
     2.2 使用防火墙 在服务器和 Internet 之间放置防火墙。 
     将网络分成若干安全区域,区域之间用防火墙分隔。先阻塞所有通信流量,然后有选择地只接受所需的通信。 
     在多层环境中,使用多个防火墙创建屏蔽子网。 
     如果在 Windows 域内部安装服务器,请将内部防火墙配置为允许 Windows 身份验证。 
     在所有版本的 Windows 都是 Windows XP、Windows Server 2003 或更高版本的 Windows 域中,禁用 NTLM 身份验证。 . 
     如果应用程序使用分布式事务处理,可能必须要将防火墙配置为允许 Microsoft 分布式事务处理协调器 (MS DTC) 在不同的 MS DTC 实例之间以及在 MS DTC 和资源管理器(如 SQL Server)之间进行通信。 
     2.3 隔离服务 请尽可能不要在域控制器中安装 SQL Server。 
     在不同的 Windows 帐户下运行各自的 SQL Server 服务。 
     在多层环境中,在不同的计算机上运行 Web 逻辑和业务逻辑。 
     2.4 创建具有最低特权的服务帐户 
     2.5 禁用 NetBIOS 和服务器消息块 
    3 硬件和软件要求 
     3.1 硬件要求 监视器:SQL Server 图形工具需要 VGA 或更高分辨率:分辨率至少为 1,024x768 像素 
     定点设备:需要 Microsoft 鼠标或兼容定点设备 
     CD 或 DVD 驱动器:通过 CD 或 DVD 媒体进行安装时需要相应的 CD 或 DVD 驱动器 
     群集硬件要求:在 32 位和 64 位平台上,支持 8 节点群集安装(即,Microsoft Windows Server 2003 支持的最大节点数量)。 
     处理器类型:Pentium III 兼容处理器或更高速度的处理器 
     "处理器速度:最低要求:600 MHz
    推荐使用:1 GHz 或更高" 
     磁盘空间:系统最大磁盘空间 
     "内存:最低要求:512 MB
    推荐使用:1 GB 或更大
    最大:操作系统最大内存" 
     3.2 软件要求 网络软件要求:64 位版本的 SQL Server 2005 的网络软件要求与 32 位版本的要求相同。Windows Server 2003、Windows XP 和 Windows 2000 都具有内置网络软件。 
     Internet 软件:所有 SQL Server 2005 的安装都需要 Microsoft Internet Explorer 6.0 SP1 或更高版本,因为 Microsoft 管理控制台 (MMC) 和 HTML 帮助需要它。只需 Internet Explorer 的最小安装即可满足要求,并且不要求 Internet Explorer 是默认浏览器 
     Internet 信息服务 (IIS):安装 Microsoft SQL Server 2005 Reporting Services (SSRS) 需要 IIS 5.0 或更高版本 
     ASP.NET 2.0:Reporting Services 需要 ASP.NET 2.0。安装 Reporting Services 时,如果尚未启用 ASP.NET,则 SQL Server 安装程序将启用它。 
    4 将现有的 SQL Server 系统数据库(master、model、msdb 和 tempdb)配置为自动增长,并确保它们具有足够的硬盘空间 
    5 将 SQL Server 2000 数据库引擎实例升级到 SQL Server 2005 时,将保留 max worker threads 的配置值。但是,建议在升级前将 max worker threads 值更改为 0,以允许数据库引擎计算最佳线程数(instance->right manu->prcessor lab) 
    6 确保所有数据库服务器的 master 数据库中都有登录信息。这对还原数据库很重要,因为 master 数据库中有系统登录信息 
    7 禁用所有启动存储过程,因为升级过程在升级 SQL Server 实例时将停止然后再启动服务。在启动时处理的存储过程可能会阻塞升级过程 
    8 停止复制并确保复制日志是空的 
    9 退出所有应用程序,包括所有依赖 SQL Server 的服务。如果有本地应用程序连接到正在升级的实例,则升级可能会失败。 
    10 备份要升级实例中的所有 SQL Server 数据库文件,以便可以完全还原这些文件。 
    11 制定出数据库回滚计划 
    12 删除事务复制相关的元数据表:Msrpl_commands and Msrpl_transactions 合并复制要删除:Msmerge_contents and Msmerge_genhistory 
    13 为升级创建复制脚本,并需要进行相关校验和整理,以便进行重新创建复制关系。 
    14 确保所有数据库都是可读写的,要是只读数据库可先设置为可读写模式,待升级完成后再改为只读模式。 
    15 使用升级顾问来准备升级,并按升级顾问的分析结果进行相关升级的工作。 
    执行升级:(Update Execution) 
    1 断开用户连接 
    2 停止复制 
    3 禁用所有启动存储过程 
    4 确定升级的实例、数据库 
    5 针对每个组件选择升级和迁移工具 
    6 通过Setup日志监视升级进展和过程 
    7 是否完成配置复制脚本 
    8 是否完成作业脚本复制 
    9 是否完成维护任务脚本配置 
    10 是否完成对DTS包的迁移 
    升级后:(Post-Update) 
    1 参照升级顾问(Upgrade Advisor)报告完成续操作 
    2 更新表的统计信息(Update Statistic) 
    3 是否需要进行全文索引填充(Full-Text Population)操作 
    4 是否需要改变数据库的隔离级别 
    5 是否需要重新配置日志的传送 
    6 验证代理jobs 和维护任务 
    7 验证复制过程的正确性 
    8 连接性测试 
     注册服务器 
     查看所有数据库的表、视图 
     连接客户端程序测试(可能需要修改连接字符串) 
    9 安全性检测 
     服务帐户设置 
     SQL Server 配置 
     验证服务帐户的安全性 
     检验身份验证模式 
     是否使用强密码 
    10 T-SQL 查询检查 
     存储过程(不会自动更新) 
     不支持UPDATETEXT等 
     新的关键字(PIVOT,UNPIVOT,REVERT,TABLESAMPLE等) 群集升级和大内存使用
    sql server 2005 群集升级步骤 
    步骤 说 明
    1 停止复制
    2 将所有数据库的数据文件和日志文件改成自增长的方式
    3 选中所有数据库的自动更新统计信息选项
    4 统计并记录现有群集数据库的各个服务的启动账号,同时在域管理器新建管理组(sqlvs group)供升级使用
    5 在所有群集节点上安装DotNet2.0 组件
    6 在群集管理器中将所有组的控制权移动到同一节点上,将Sql Server 2005 安装文件拷贝到该群集节点或将安装光盘放入该节点的光驱
    7 点击Setup.exe文件开始安装
    8 安装过程中请注意: 1. 群集安装项的选择;2. 各个服务的启动账号的配置
    9 安装完成后,检查数据库的工作状态,如无异常,请将数据库的兼容级别由原来的80 改成90,以便更好使用sql server 2005 新的功能
    10 如有需要,请继续在其它群集节点上安装Sql Server 2005 客户端工具
    11 检查复制状态,如有异常,请参考注意事项5,6,7进行相关的修改。
     
    为sql server 2005群集启用AWE(使用大内存) 
    步骤 说 明
    1 确保操作系统支持大内存要求,即:在系统启动参数增加 /PAE 参数。(所有群集节点)
    2 启用“锁定内存中的页”选项(所有群集节点)
     1. 在“开始”菜单上,单击“运行”。在“打开”框中,键入 gpedit.msc。
     将打开“组策略”对话框。
     2. 在“组策略”控制台上,展开“计算机配置”,再展开“Windows 设置”。
     3. 展开“安全设置”,再展开“本地策略”。
     4. 选择“用户权利指派”文件夹。
     细节窗格中随即显示出策略。
     5. 在该窗格中,双击“锁定内存中的页”。
     6. 在“本地安全策略设置”对话框中,单击“添加”按钮。
     7. 在“选择用户或组”对话框中,添加有权运行 sqlservr.exe 的帐户。
    3 激活 AWE
     sp_configure 'show advanced options', 1
     RECONFIGURE
     GO
     sp_configure 'awe enabled', 1
     RECONFIGURE
     GO
    4 配置内存:
     内存配置说明:SQL Server 2005 在任何 Windows Server 2003 操作系统版本上运行时,都会动态地分配 AWE 映射内存。换言之,缓冲池可以动态管理 AWE 映射内存(在 min server memory 和 max server memory 选项的约束内),以按照总体系统要求平衡 SQL Server 内存的使用
     sp_configure 'min server memory', 1024
     RECONFIGURE
     GO
     sp_configure 'max server memory', 6144
     RECONFIGURE
     GO
     群集要求:如果使用的是 SQL Server 2005 故障转移群集和 AWE 内存,则必须确保所有实例的 max server memory 设置的总和小于故障转移群集中任一服务器上可用的最小物理内存。如果故障转移节点的物理内存比原节点上的内存小,则 SQL Server 2005 实例可能无法启动,或者可能在内存比在原节点上的内存小的情况下启动注意事项
    1 升级远程分发服务器db-dist后,要重新更新admininstrative link password,且发布服务器上需重新配置distributor 的administrative link password Microsoft SQL Server Management Studio->ServerName->Replication->right click -> distributor properties->Publishers->administrative link password->update password->click ok or click apply
    2 升级后,需要检查sql 服务的启动帐号是否为.\administrator start manu->all program->Microsoft sql server 2005 ->configuration tools->sql server configuration manager
    3 升级群集时,一定要保证两个节点安装好.net 2.0 
    4 升级完成后,要将各数据库的兼容级别由原来的80 改成 90 Microsoft SQL Server Management Studio->ServerName->Database->database name ,right manu->properties->options->Campatiblity level->downframe list,select: sql sever 2005 (90)-> Click buton ok
    5 如果要升级的服务器的 Sqlserver服务 的两个参数(@@servername 和 serverproperty('servername'))不一致时,可能会在升级过程中的出现错误 Invalid column 'Publisher_Type'. 原因分析:表msdb.dbo.MSDistPublishers 缺少字段Publisher_Type, 该表2000版本中无此列,而2005的版本增加了该列。在升级时更新系统存储过程信息时会使用到该表的列。因而会出错(主要针对复制数据库)。具体该表为何没有被升级,原因不详,待查。
     解决方案:
     1. 更新表msdb.dbo.MSDistPublishers,增加字段Publisher_Type,表结构详见帮助。
     2. 重新更新Local 服务器名称 a. Exec sp_dropserver @server='now servername' b. Exec sp_addserver @server='new servername',@local='local' c. 重新启动 发布服务器数据库服务
     3. 重新启动 分发服务器的代理服务。
    6 配置log shipping时,如果@@servername 和 serverproperty('servername') 值不同,请使用 sp_dropserver sp_addserver 进行修改,再进行配置log shipping, 配置完成后再把servername 恢复到以前的状态,此时log shipping 依然能正常工作。 更改servername 后,一定要重新启动sql server service.才能生效。
    7 如果要升级的服务器的 Sqlserver服务 的两个参数(@@servername 和 serverproperty('servername'))不一致时,升级后群集不能新建发布,而原来的复制关系工作正常。 解决方案:
     1.修改要新建发布的数据库的系统表dbo.sysreplservers 的srvname 列值,使其与@@servername 值一致, 修改前备份,修改后重新服务。
     2. 在新建发布时在Snapshot Agent Security界面时,注意
     A. 选择Run under the following Windows account 
     请输入: db-dist-t5\administrator , password, Confirm Password
     B. 在配置Connect to the Publisher选项 请选择Using the following SQL Server login
     再输入sa 用户 及其密码。
     3. 在新建订阅时,在Distributor Agent Security 界面,配置同2步。
     4.如果以上步骤不成功,请执行以下步骤后在重新建立发布和订阅:
     sp_configure 'remote proc trans',0 
     reconfigure with override升级后CPU利用率明显上涨,各个server的cpu利用率都有一倍多的增长,如从15%左右升级到30-40%,这对于有严格loadtime要求的系统是不允许的。目前正在着手解决。
    据微软技术支持讲:2005对邦定变量的要求比2000高很多,对于程序中有in list的查询应该尝试用临时表或者表变量等手段使之使用邦定变量。结果待续
      

  2.   

    还有:在SQL Server 2005中升级存储过程作者:Serdar Yegulalp  2007-05-29     《SQL Server 2005的变化》一文中揭示了SQL Server 2005的变化如何打破了旧有的应用程序和数据库,特别是使用被抛弃的函数的地方。现在我将要讨论的是如何在你的移植过的数据库里面使用存储过程来充分利用这个SQL Server2005中的新函数,而不需要打破现有的功能性。     我们假设你有一个前端的应用程序,是由不同的团队来分别写入或者管理,并且它不像后台数据库那样频繁更新。你想要在SQL Server应用程序的存储过程中进行修改以充分利用新的功能。你还想要这个过程尽量温和,这样数据库和前端应用程序就都不会突然崩溃。     例如,你想要更新存储过程来使用SQL Server 2005的T-SQL中一些新的功能,例如TRY and CATCH函数,这个函数可以让复杂的错误追踪变得简单一点。你通常会拷贝现有的存储过程到一个新的并行的存储过程里面去,然后对它进行更新,使用新的功能,然后或者在经过修改的前端应用程序版本,或者查询分析器中测试两方面的行为。     当你很自信新的存储过程的行为是正确的,并且它也准备好用在产品中,你就可以无缝的替换它,例如通过修改两个存储过程的名字,或者通过代码的拷贝。我个人倾向于修改名字,因为这可以让你对原有的代码做个备份——像你的数据库中的其它东西一样,做个备份,以防出现不可预期的问题。     这是相对标准的技术,但是我曾见过的更有意思的一个问题涉及了可选参数传递: CREATE PROCEDURE my_procedure
    {其它的参数在这里},
    @optionalparameter Boolean=FALSE
    AS
    If @optionalparameter=TRUE
    Begin
    {带有SQL Server 2005-特定命令的新版本的存储过程放在这里}
    End
    Else
    Begin
    {旧版本的存储过程放在这里}
    End     还有另外一种有用的方式来选择性的测试代码。现有的前端对存储过程的呼叫不会使用可选参数,还会执行原来的代码。你可以在这里使用新的前端代码来测试存储过程,然后优雅地更新对现有存储过程的参考。因为参数是可选的,所有现有的对存储过程的呼叫(例如那些没有参数的呼叫)都会像以前一样准确地传递过去。     如果你不能添加新的存储过程,但是可以修改现有的存储过程的话,还有一种在这种限制下的好办法。当没有保留历史遗留代码的时候,你可以在存储过程中逐步淘汰IF。最后,在存储过程和你的前端代码中逐渐放弃可选参数。
    升级到SQL Server 2005的常见问题解答 
    http://database.ctocio.com.cn/tips/314/7573314.shtml
      

  3.   

    谢谢谢谢!
      我想让sql server放到internet上去,那个版本比较安全???一般要做哪些安全措施?
      

  4.   

    我现在在用的软件的数据库服务器是 sql server2000 的,数据库文件是mdf,企业管理器里面附加一下就可以。 
    现在我想把sql server 2000卸载掉,装个2005或2008版本的数据库,请问到时候能像2000一样附加数据库吗? 附加以后,一般情况下,我的软件我能正常用吗?一样用..
      

  5.   

    比如虽然版本是2005的,但是在该数据库下不可以直接使用 PIVOT 或 UNPIVOT,提示兼容级别错误。
    参见对升级到 Microsoft SQL Server 2005 的数据库使用 PIVOT 和 UNPIVOT 时,该数据库的兼容级别必须设置为 90。若要设置数据库的兼容级别,请参阅 联机帮助 sp_dbcmptlevel (Transact-SQL)。
      

  6.   

    2008没用过,你在2005里面建立数据库的时候,可以设置它的兼容级别啊,如果是2000的文件,兼容性最好设置为80,在界面里面可以设置,也可以exec sp_dbcmptlevel 'test',90(90为sql server2005,80为sql server 2000,70为sql server 7.0)
      

  7.   

    软件一般都是向前兼容的,在新版本中对旧版本的基本功能是肯定支持的。像附加数据库就是基本操作,所以sql2005会支持的