日期:2014-05-18  浏览次数:20388 次

求助!!!SqlServer高手请进!!!!
这两天我们升级了系统,WAS6.0升级到WAS7.0,数据库由sqlserver2000升级到2005,升级后这两天查看WAS日志发现有时会报出这样的错误:com.microsoft.sqlserver.jdbc.SQLServerException: 已超过了锁请求超时时段。于是网上找资料,说是要重整索引和更新数据库的统计信息,于是将几个访问量或数据库比较大的表重整了一次索引用的是DBCC DBREINDEX(tablename,'',0),然后使用命令sp_updatestats更新统计信息。但次日还是发现存在这样的错误。双查询了一下SELECT @@LOCK_TIMEOUT,结果为-1(网上说可以用SELECT @@LOCK_TIMEOUT来查看设定锁请求超时时间,-1 即无限期等待),实在没头绪了,请高手救命啊!!!!!

------解决方案--------------------
这可能是由于2005与2000的工作方式的差别,使原来不会产生锁的操作产生锁了.
你恐怕要先查查锁是由什么操作产生的,然后再到系统里检查为什么会产生锁,才能找出原由.
------解决方案--------------------
用 SQL PROFILER跟踪死锁 找出产生的原因再想解决办法
------解决方案--------------------
1.先看看升级时需要注意的问题.

SQL code
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