MSSQLServer2000环境下浪潮软件系列问题探讨

操作系统: 未知 数 据 库: SqlSvr 2000
软件版本: PS未知 软件模块: 安装配置
问题描述: MSSQLServer2000环境下浪潮软件系列问题探讨
产生原因: 日常维护
解决方法: 浪潮通软ERP-PS管理软件支持各种大型关系型数据库(SYBASE、MS SQLSERVER、ORACLE等);广大技术支持人员对sybase已经是很熟悉了,对oracle也有了一定的了解。但是对MS SQLSERVER这一易学易用的数据库返而不太了解,特别是对一些问题的处理感到束手无策。本文针对实施中常见的问题给予解答,希望揭开大家心中的迷惑。
其实SQL Server与sybase 是同出一宗,最初是由Microsoft、 Sybase 和Ashton-Tate
三家公司共同开发的。在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。
所以大家在理解的时候可以套用sybase中的一些概念如:数据库、设备、用户等。我们常见的sqlserver有6.5、7.0、2000等版本,以下的问题都是针对最新版本SQLServer2000来阐述。

1. 安装问题
1)SQL Server 2000 的常见版本如下
企业版Enterprise Edition
支持所有的SQL Server 2000 特性可作为大型Web 站点企业OLTP 联机事务处
理以及数据仓库系统等的产品数据库服务器
标准版Standard Edition
用于小型的工作组或部门
个人版Personal Edition
用于单机系统或客户机
开发者版Developer Edition
用于程序员开发应用程序这些程序需要SQL Server 2000 作为数据存储设备

通过以上可以看出win2000 pro只能安装个人版以下版本,一般作为企业的数据服务器来应该安装标准版或企业版。
2. 常用维护工具的使用
sqlserver的操作界面比较友好,提供了很多图形和文本的工具,下面与sybase对比一下以利于大家的理解。
Enterprise Manager 企业管理器 =(sybase central)
企业管理器Enterprise Manager 是SQL Server 中最重要的管理工具,在使用SQL Server
的过程中大部分的时间都是和它打交道。通过企业管理器的图形化操作可以管理所有的数据库系统工作和服务器工作。如:建库、帐户管理、备份恢复等,也可以调用其它的管理开发工具
Service Manager服务管理器 = (Sybase 无此工具通过控制面板服务中进行管理)
服务管理器Service Manager 用于启动暂停或停止数据库服务器SQL Server SQL、
Server Agent MSDTC、 Microsoft Distributed Transaction Coordinator 微软分布式事务协调
器,当然也可以象sybase一样在控制面板服务中进行管理。
Query Analyzer 查询分析器 =(sql advantage)
查询分析器Query Analyzer 用于执行Transaction-SQL 命令等SQL Scripts SQL 脚本
程序以查询分析或处理数据库中的数据这是一个非常实用的工具对掌握SQL 语言
理解SQL Server 的工作有很大帮助使用查询分析器的熟练程度是衡量一个SQL Server 用
户水平的标准
Client Network Utility 客户端网络实用工具= (Sybase dsedit)
SQL Server Client Network Utility 用于配置客户端的连接测定网络库的版本信息以及
设定本地数据库的相关选项,一般sqlserver2000不需要配置,直接指定服务器名即可,但有时连不通时可以配置一下填加服务器别名,此处支持多种协议。不过sqlserver2000没有ping命令可以直接连接测试是否连通!
3. 关于备份恢复
1)备份
备份的目的有两个:出于安全性和数据库移动。
n 使用SQL Server Enterprise Manager 管理备份
在想要备份的数据库上,单击右键,选择所有任务-备份数据库,

建议选择数据库-完全备份,重写项选择重写现有媒体,添加一设备。设备可以是一物理文件或一备份设备。可以定义为自动备份。
n 使用Transact-SQL 命令备份数据库
BACKUP DATABASE database_name [ TO< backup_device > [ ...n ] ]

2)恢复数据库:

n 从本机上恢复

操作较简单,单击右键选择用于恢复的备份执行恢复即可。
命令方式:restore database database_name from disk=”filename” or backup_device

n 恢复到其他机器
我们经常要将企业管理器备份出的数据在另外一台server上恢复,需要以下步骤:
1. 首先通过以下语句从备份文件恢复数据库
restore database cwbase1 from disk=”c:\mxs\aaaa.dup” with replace,
move “cwdata2″ to “c:\data\cwdata1_10.dat”,
move “cwlog2″ to”c:\data\cwlog1_10.dat”

说明:
c:\mxs\aaaa.dup是从原数据库备份出的数据文件名称;
cwdata2 和cwlog2是原数据库的逻辑名称;
c:\data\cwdata1_10.dat 和 c:\data\cwlog1_10.dat 是现数据库的物理文件;
2. 恢复以后登录财务软件可能提示“lc0019999为非法用户”解决方法如下:
配置系统参数允许修改系统表
sp_configure “allow updates”,1
go
reconfigure with override

修改cwbase1..sysuser 的sid与master..syslogins sid一致(注意此处为16进制)

例:查询master..syslogins中lc0019999的sid为0xE6804ECE73156E41B8B8DAF88AD6AE84
update cwbase1..sysusers set sid=0xE6804ECE73156E41B8B8DAF88AD6AE84 where name=”lc0019999″
此时登录可能会提示“lsxtmc不存在”,再进行第三步
3、修改sysobjects 中用户表的uid 为lc0019999的uid,假设lc0019999的uid为6
update sysobjects set uid=6 where uid<>1
go

备注:有时会遇到字符集不一致的问题,需要重建master库。通过以下工具实现:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe

n 服务器崩溃后数据是否能恢复

答案是肯定的,可以用Sp_attach_db 系统存储过程,将当前的数据物理文件附加到数据库中。
附加数据库将会创建一个新的数据库,并复制存储在已有的数据库文件和事务日志文件中的数据

语法如下:
sp_attach_db [@dbname =] “dbname”,
[@filename1 =] “filename_n” [,...16]

举例:如某用户服务器崩溃系统无法启动,只有物理文件”c:\data\cwdata1_10.dat”,
和”c:\data\cwlog1_10.dat” 可用,这时可以重装sqlserver系统——重建帐套——删除数据库——最后执行以下语句恢复:

exe c sp_attach_db @dbname = “cwbase10″,
@filename1 = “c:\data\cwdata1_10.dat”,
@filename2 = “c:\data\cwlog1_10.dat”

运行结果如下
Successfully attached database “cwbase10″.

4. 关于日志清除
问题:SQL SERVER 2000事务日志文件XXXX_Log.LDF文件已增长到4G,日志文件一直放着也不是个办法,删除呢,又会失去恢复的可能性。现在由于事务日志文件太大,就已经无法在其他硬盘较小的空间恢复该数据库。现在想删出该日志文件。却报:错误5020:不能在主数据库中删除主数据文件或主日志文件。也不能更改事务日志文件的物理文件名。
解决方法:
n 手工截断日志:
BACKUP LOG database_name WITH NO_LOG
n 使其自动收缩,自动截断日志
在企业管理器里面,选择一个database,右键,属性,然后找到“事物日志”文件那一页,进行相应的大小限制,然后还有一“选项”页,可以设置“Auto Shrink”和“Auto Truncate”,

5. 从SQL6.5、SQL7.0升级到SQL 2000问题
SQL6.5升级到SQL7.0打上补丁直接安装新的版本即可,系统会将低版本升级到高版本。而且允许在同一系统安装多个sqlserver版本,通过版本切换可以返回老的版本!
6. 系统优化问题
性能调节的目的是通过将网络流通、磁盘 I/O 和 CPU 时间减到最小,使每个查询的响应时间最短并最大限度地提高整个数据库服务器的吞吐量。
经验表明:可以从逻辑数据库设计、索引设计、查询设计以及应用程序设计的常规方面得到 SQL Server 性能上的最大优势。相反,最大的性能问题通常是由于这些方面发生了问题。如果您关注性能问题,首先应把考虑重点放在这些方面,因为通常可以投入相对较少的时间获得显著的性能改善。
但对于我们的实施人员我们能够做的也就是通过调整系统参数来实现一定的优化。Microsoft SQL Server 2000 自动调整很多服务器配置选项,因此系统管理员只需做很少的调整(如果有)。这些配置选项可以由系统管理员修改,但一般建议保留为默认值,以使 SQL Server 能根据运行时的情况自动对自身进行调整。
不过,如果需要,可以配置下列组件以优化服务器性能:SQL Server 内存、I/O 子系统和操作系统配置,特别注意红字部分
n SQL Server 内存
下列服务器配置选项可用于配置内存使用并影响服务器性能:
· min server memory
· max server memory
· max worker threads
· index create memory
· min memory per query
min server memory 服务器配置选项可用于确保 SQL Server 至少以最小的分配内存量启动,并且内存低于该值时不会释放内存。可以基于 SQL Server 的大小及活动将该配置选项设置为特定的值。始终将 min server memory 服务器配置选项设置为某个合理的值,以确保操作系统不向 SQL Server 请求太多内存而影响 SQL Server 性能。
max server memory 服务器配置选项可用于:在 SQL Server 启动及运行时,指定 SQL Server 可以分配的最大内存量。如果知道有多个应用程序与 SQL Server 同时运行,而且想保障这些应用程序有足够的内存运行,可以将该配置选项设置为特定的值。如果这些其它应用程序(如 Web 服务器或电子邮件服务器)只根据需要请求内存,则 SQL Server 将根据需要给它们释放内存,因此不要设置 max server memory 服务器配置选项。然而,应用程序通常在启动时不假选择地使用可用内存,而如果需要更多内存也不请求。如果有这种行为方式的应用程序与 SQL Server 同时运行在相同的计算机上,则将 max server memory 服务器配置选项设置为特定的值,以保障应用程序所需的内存不由 SQL Server 分配出。
不要将 min server memory 和 max server memory 服务器配置选项设置为相同的值,这样做会使分配给 SQL Server 的内存量固定。动态内存分配可以随时间提供最佳的总体性能。
max worker threads 服务器配置选项可用于指定为用户连接到 SQL Server 提供支持的线程数。255 这一默认设置对一些配置可能稍微偏高,这要具体取决于并发用户数。由于每个工作线程都已分配,因此即使线程没有正在使用(因为并发连接比分配的工作线程少),可由其它操作(如高速缓冲存储器)更好地利用的内存资源也可能是未使用的。一般情况下,应将该配置值设置为并发连接数,但不能超过 1,024。

index create memory 服务器配置选项控制创建索引时排序操作所使用的内存量。在生产系统上创建索引通常是不常执行的任务,通常调度为在非峰值时间执行的作业。因此,不常创建索引且在非峰值时间时,增加该值可提高索引创建的性能。不过,最好将 min memory per query 配置选项保持在一个较低的值,这样即使所有请求的内存都不可用,索引创建作业仍能开始。
min memory per query 服务器配置选项可用于指定分配给查询执行的最小内存量。当系统内有许多查询并发执行时,增大 min memory per query 的值有助于提高消耗大量内存的查询(如大型排序和哈希操作)的性能。不过,不要将 min memory per query 服务器配置选项设置得太高,尤其是在很忙的系统上,因为查询将不得不等到能确保占有请求的最小内存、或等到超过 query wait 服务器配置选项内所指定的值。如果可用内存比执行查询所需的指定最小内存多,则只要查询能对多出的内存加以有效的利用,就可以使用多出的内存。
n I/O 子系统
下列服务器配置选项可用于配置 I/O 的使用并影响服务器性能:
· recovery interval
recovery interval 服务器配置选项控制 Microsoft SQL Server 2000 在每个数据库内发出检查点的时间。默认情况下,SQL Server 确定执行检查点操作的最佳时间。然而,若要确定这是否为适当的设置,需要使用 Windows NT 性能监视器监视数据库文件上的磁盘写入活动。导致磁盘利用率达到 100% 的活动尖峰值会妨害性能。若更改该参数以使检查点进程较少出现,通常可以提高这种情况下的总体性能。但仍须继续监视性能以确定新值是否已对性能产生正面影响。
· tempdb
ms建议tempdb应放在单独的io速度快的硬盘上,而对db的自动增长属性,需细致考虑,如需字段增长应考虑自动增长的幅度,不要过小因为我们的系统大量的使用了临时表,初始大小设为200M为宜。
· 事务日志
建议将日志和数据文件分开存放在单独的磁盘上以减少竞争。合理设置日志文件的初始大小,不能太小;日志的增长百分比;尽量手工收缩日志,避免系统在正忙的时候收缩日志避免不必要的磁盘I/O速度上的开销。
· 监视死锁
检查应用,可使用一些monitor事件查看器来监测log space的使用情况,lock状况,有没有造成系统死锁等

n 操作系统性能参数
· 建议使用NTFS格式的文件系统,64K扩展盘区大小的磁盘最佳。千万不要将数据文件和日志文件放在压缩文件系统中
· 虚拟内存
Windows 2000 虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server 2000 时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的 1.5 倍。
上面列出了影响SQL Server的一些主要因素,实际上远不止这些。操作系统的影响也很大,在Windows NT下,文件系统的选择、网络协议、开启的服务、SQL Server的优先级等选项也不同程度上影响了SQL Server的性能。
  影响性能的因素是如此的多,而应用又各不相同,找出1个通用的优化方案是不现实的,在系统开发和维护的过程中必须针对运行的情况,不断加以调整。事实上,绝大部分的优化和调整工作是在与客户端独立的服务器上进行的,因此也是现实可行的。

原创文章,转载请注明: 转载自浪潮888博客

本文链接地址: MSSQLServer2000环境下浪潮软件系列问题探讨

文章的脚注信息由WordPress的wp-posturl插件自动生成



This entry was posted in 浪潮文档. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>