FW:SQL Server and the “Lock pages in memory” Right in Windows Server

Here is a nice post talking about the “Lock pages in memory” for windows server,I just forward it from the source:
http://sqlserverperformance.wordpress.com/2011/02/14/sql-server-and-the-lock-pages-in-memory-right-in-windows-server/

It is pretty important to make sure you set the Max Server memory setting for SQL Server 2005/2008 to something besides the default setting (which allows SQL Server to use as much memory as it wants, subject to signals from the operating system that it is under memory pressure). This is especially important with larger, busier systems that may be under memory pressure.

This setting controls how much memory can be used by the SQL Server Buffer Pool. If you don’t set an upper limit for this value, other parts of SQL Server, and the operating system can be starved for memory, which can cause instability and performance problems. It is even more important to set this correctly if you have “Lock Pages in Memory” enabled for the SQL Server service account (which I always do for x64 systems with more than 4GB of memory)……………

Thanks to the author for the nice post

–EOF–

How to determine the version and edition of SQL Server and its components

How to determine the version and edition of SQL Server and its components? this page will indicate you about the version information from MS website:

https://support.microsoft.com/kb/321185/en-us

SQL Server 2012 version information

The following table lists the major releases of SQL Server 2012.
Release	Product Version
SQL Server 2012 Service Pack 1	11.00.3000.00
SQL Server 2012 RTM	        11.00.2100.60

SQL Server 2008 R2 version information

The following table lists the major releases of SQL Server 2008 R2.
Release	Product version
SQL Server 2008 R2 Service Pack 2	10.50.4000.0
SQL Server 2008 R2 Service Pack 1	10.50.2500.0
SQL Server 2008 R2 RTM	                10.50.1600.1

SQL Server 2008 version information

The following table lists the major releases of SQL Server 2008.
Release	Product version
SQL Server 2008 Service Pack 3	10.00.5500.00
SQL Server 2008 Service Pack 2	10.00.4000.00
SQL Server 2008 Service Pack 1	10.00.2531.00
SQL Server 2008 RTM	        10.00.1600.22

SQL Server 2005 version information

The following table lists the major releases of SQL Server 2005.
Release	Product version
SQL Server 2005 Service Pack 4	9.00.5000.00
SQL Server 2005 Service Pack 3	9.00.4035
SQL Server 2005 Service Pack 2	9.00.3042
SQL Server 2005 Service Pack 1	9.00.2047
SQL Server 2005 RTM	        9.00.1399

–EOF–

Shrink Trunsaction Logfile for SQL Server 2008R2

check the recovery mode of database

use master
SELECT NAME, recovery_model_desc FROM sys.databases;

change the recovery mode to simple

use master
alter database EDM_DEV set recovery simple;

locate the file name and the size of LOG file you want to shrink

use EDM_DEV
select name,size from sys.database_files;

the log is named “EDM_DEV_log”,shrink it to 1G

dbcc shrinkfile (N'EDM_DEV_log',1000)

check out the result of size of logfile,see if the size of logfile decreased

change the EDM database to full recovery mode

use matser
alter database EDM_DEV set recovery full;
SELECT NAME, recovery_model_desc FROM sys.databases;

cleanTrunsactionLogfile
–EOF–

sqlserver 2008r2 backup to the UNC share directory

I was trying to backup the sqlserver 2008 R2 to the share directory in the LAN,but lots of error trap me in.
I always got the error message as below:
backup database testdb to “\192.168.56.101backuptestdb.bak”

BackupDiskFile::CreateMedia: backup device ‘z:backupedm.bak’ can not be created。operation system error 3(can not find the path)

I think there must be some difference between the local disk and the UNC mapping disk.

the priviledge in the UNC share disk is ok,I can exclude it’s problem.
while it seem that it is because the account to start the SQL Server instance,that’s the root cause.
AS SQL Server services were startup by “NT AUTHORITYSYSTEM” which has no right to visit the remote resources in the LAN.If you use the domain user or any local os account who has the priviledge to visit remote resources,the problem will be overcome.
Finally,I change the startup account to administrator,this problem was solved.

Besides,it’s not recommended that you use the local administrator account to boot the SQL Server service,because when the OS admin change the password of administrator account,the SQL Server will can not be startup as the password was incorrect..

sqlserver2008R2_bakcup_to_UNC

–EOF–

sqlserver 2005 移动用户数据库的路径

sqlserver 2005中想要移动用户数据库的路径,可以参考如下,大概这么几个过程:

1.查询用户数据库数据文件所在的路径,包括:名称、物理名称

2.将目标数据库offline(脱机)

3.用户数据库offline之后,将原来的数据文件、事务日志文件拷贝到新的路径下

4.更改用户数据库的数据文件路径、事务日志文件路径

5.将数据库设置为online,然后查询数据文件、事务日志文件是否都在新的路径上了

详细可参考:sqlserver移动用户数据库

–EOF–

SQL Server 2000 EE upgrade to SQL Server 2008R2

在论坛里面看到一个请求解决SQL Server 2000 EE升级到SQL Server 2008 R2 EE的case,其中遇到一些问题,我自己也不太确定是否能从SQL Server 2000这个版本升级到2008 R2,于是做了个简单的测试,这里记录一下,也许别人能够用到。
文章不打算描述过多的细节,只是把大致的过程粗略描述一下:

微软支持从SQL Server 2000 EE升级到SQL Server 2008R2这个升级路径,你可以从如下的link上找到支持建议:
http://msdn.microsoft.com/en-us/library/ms143393(v=sql.105).aspx

最好将你的SQL Server 2000 EE补丁打到sp4,link里面给了明确的要求,照着做即可。

关于操作系统,我这里准备了windows server 2003 EE x86 sp2,操作系统方面的要求,微软也在下面这个link中给出了明确的要求:
http://msdn.microsoft.com/en-us/library/ms143506(v=sql.105).aspx
「参考:SQL Server 2008 R2 Enterprise (32-bit)段落」

大致的升级路径其实不复杂:

(1)SQL Server 2000 EE安装
(2)sp4 patch apply
(3)安装升级顾问,做precheck
(4).NET Framework 3.5 SP1

All other editions of SQL Server 2008 R2 — .NET Framework 3.5 SP1
Installation of .NET Framework requires a restart of the operating system. If Windows Installer installation also requires a restart, Setup will wait until .NET Framework and Windows Installer components have installed before restarting.
Note:
Installing .NET Framework 2.0 SP2: .NET Framework 2.0 SP2 is not available as a separate download. You will need to install .NET Framework 3.5 SP1 which includes .NET Framework 2.0 SP2.

(5)run setup of SQL Server 2008 R2 to upgrade the instance

完成上面的4步骤,就基本ok了,中途没有遇到什么问题。倒是有个报错与开启”VIA”相关,禁止掉它就ok了。

很多人建议与其这么跨版本的升级,不如重装SQL Server 2008R2,然后拿原库的数据恢复,这样会减少很多不必要的问题。

备注:上述是在没有数据的情况下,如果有数据,可能会遇到新的问题。

–EOF–

SQL Server 2008 R2 cluster

SQL Server 2008 R2 cluster建议与windows server 2008 R2 搭配,这个组合与win2k3+sql server 2005 cluster还是有不小差别的,我遇到的主要体现在:

1.cluster至少需要3块共享磁盘:一块用于仲裁、一块用于dtc使用、一块给SQL Server 2008 R2 安装使用。

2.集群的安装:win2k3在一个节点安装sql server 2005之后,会自动通过远程脚本的调用,在第二个节点上自动完成安装;而sql server 2008 R2 cluster的安装,会在主节点上完成sql server 的安装,然后需要登录第二个节点,有一个"将节点2添加到集群"的过程。

3.patch apply:补丁的应用更为复杂一些。一般需要再passive node上完成补丁的安装,然后将当前完成安装的passive node failover成active node,再在变成passive node的另外节点完成补丁的安装。这个过程与03+sql 05组合还是有不少区别的。03组合,只要在一个active node上安装sp补丁即可。

 

SQL Server 2008 R2 cluster的安装部署

SQL Server 2008 R2+windows server 2008 R2 cluster组合大致的部署过程与win2k3+sql server2005组合差不多,也是先搞定cluster软件,搞定SQL Server cluster所需的DTC 资源组件,然后搞定sql server的安装。

详细过程可以参考文档:

SQLServer2008Cluster

SQL Server 2008 cluster与SQL Server 2005 cluster的区别

最近在研究SQL Server集群,发现SQL Server 2008+window server 2008组合与SQL Server 2005+windows server 2003组合有着一些区别。

1.共享磁盘的需求

在windows server 2003+sql server 2005组合中,只要有两个共享磁盘即可,一个磁盘用于mscs的仲裁盘,另外一个用作SQL Server安装数据盘使用,有这两块磁盘就足够了。而到了08这个组合后,最少需要三块磁盘:仲裁、DTC的磁盘、sql安装使用。
在sql server 2005+windows server 2003的环境中,DTC组件资源这块磁盘可以由仲裁盘代替,而到了08组合下,仲裁盘不能用于DTC中了,需要额外一块磁盘。

2.两个节点的安装

在windows server 2003+sql server 2005组合中,安装SQL Server的过程中,会通过远程调用node2上的计划任务脚本,在安装一个节点的同时,在第二个节点也完成安装,无需单独在第二个节点上操作。而08的组合则需要在第一个节点完成安装之后,在另外节点上完成"向SQL Server故障转移集群中添加节点"的操作。

3.patch apply:补丁的应用更为复杂一些。一般需要再passive node上完成补丁的安装,然后将当前完成安装的passive node failover成active node,再在变成passive node的另外节点完成补丁的安装。这个过程与03+sql 05组合还是有不少区别的。03组合,只要在一个active node上安装sp补丁即可。

4.关于所需的domain group:sql server 2005 cluster需要一个domain group,而在sql server 2008 cluster中,已经不再需要。

When you install a SQL Server 2008 failover cluster on a Windows Server 2008 failover cluster, 

domain groups are no longer required.

 

–EOF–

SQL Server 2005 cluster

1.DNS

在windows server 2003上,将dns的组件安装上。

 

2.安装DC

 

 

 

 

 

 

 

DC和DNS:192.168.56.109

Node1 public ip:192.168.56.110

Node2 public ip:192.168.56.111

cluster vip:192.168.56.112

 

3.安装.net framework 2.0

这个东西后续可能会需要,建议在添加组件的时候给添加上。

Continue reading “SQL Server 2005 cluster”

SQL Server 2005 database mirroring

1.大致的环境准备

三台服务器,角色分别是:principal,mirror,DC/DNSSQL Servermirror技术最好在MSdomain中进行,会避免很多不必要的麻烦,例如如下报错信息就是个很典型的问题,trouble shooting起来也足够喝一壶的了。

TCP://principal.bangel.com:5022 的数据库镜像连接错误 4 'An error occurred while receiving data: '64(指定的网络名不再可用。)'.'

 

1.1 principal server

sqlserver01.bangel.com

192.168.56.114

sqlserver实例:sql01

 

1.2 mirror server

sqlserver02.bangel.com

192.168.56.117

sqlserver实例:sql02

 

 

 

1.3 domain and DNS

dc.bangel.com

192.168.56.109

创建一个域用户,用于安装、管理两个sqlserver实例,名称为sqlmirror,此用户隶属于每个服务器本地的administrators组里面,使得每个server上的sqlserver各种服务登录用户都是这个域用户bangelsqlmirror

 

1.4 关于witness server

这里没有用到witness server,没打算做“自动failover”,如果你需要“自动failover”的功能,需要配置witness server。这里仅仅计划使用“手工的failover

 

2.principal server的准备

使用bangelsqlmirror这个domain user登陆主机,安装SQL Server 2005并将补丁打到SP4。数据库的实例名称命名为:sql01,相关的服务使用的验证是“混合模式”。

 

 

 

 

 

3.mirror server的准备

mirror server的准备与principal server如出一辙,不赘述。sqlserver的实例名称为:sql02

 

4.使用图形化配置mirror

这文档的特点就是“图形化”,文本方式的配置可以参考msdn的文档,但个人觉得msdn的文档写得不太容易阅读。

 

4.1 备份principal database

principal服务器上,备份需要被做镜像,被同步的源端database

右键点击源端数据库,“任务”–>“备份”。备份类型选择“完整”,然后将备份出来的介质(通常是.bak文件)拷贝至mirror server上,等待还原使用。

 

4.2 还原

mirror server上新建一个database,名称与principal上的源端数据库名称一致(这里是testdb),然后静等稍后的还原。

还原的时候大部分都是默认设置,唯一需要注意“RESTORE WITH NORECOVERY”和“覆盖现有数据库”

 

 

 

点击确定之后,mirror server上正在还原的数据库会一致处在“正在还原”的状态,一直。。尽管对话框可能显示“还原已经完成”,没关系,不用搭理它,它这是等着后续被“镜像”呢。

 

Continue reading “SQL Server 2005 database mirroring”

sqlserver 2005集群远程节点安装失败的问题

sqlserver 2005+mscs双节点安装过程中,在节点1上发起安装,当进行到远程节点安装时,一般是通过调用节点2上的一个“计划任务”来进行远程节点安装的,但一般可能遇到一个诡异的报错:安装程序无法在远程计算机上启动,请检查远程计算机上年的任务计划程序时间日志。

这个问题我这里是因为开启了远程桌面连接节点2,造成占用了远程在节点2上安装sqlserver 2005的管道资源,注销掉节点2上的登陆,再次发起安装就可以了。(很诡异)

 

–EOF–

sqlserver 2005和2008远程访问的问题

很多情况下,sqlserver 2005和2008在安装完毕后,监听的端口可能是动态的,也就是并非以往大家认为的1433端口。当你使用MS sqlserver management studio来访问时,需要这样书写:ip实例名,端口。例如:192.168.56.113ttc,1770。否则死活是无法连接到sqlserver服务端的,通常报错:

请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 – 无法打开到 SQL Server 的连接)

可以将sqlserver的服务端监听端口固定在1433上,在安装sqlserver的本地服务器上找到”sqlserver comfiguration manager”,sqlserver 2005网络配置,点击tip/ip。进行端口的固定设置。

sqlserver 2008安装完毕后,可能也是上述这个问题,需要注意。当然,在“sqlserver的外围应用配置器”工具上也有一个是否允许“远程访问”的设置,也需要检查。

//updated 2014-01-14

上面的信息是不准确的,正确的访问远程数据库的书写方式应该是”192.168.2.11instance_name”。

如果按照上述”IPinstance_name”方式访问,是无需配置任何网络项目的,包括:port等。如果仅仅在SQL Server客户端管理工具中仅仅输入”IP”,那是需要按照上述方式做网络相关配置的。

上述的内容在SQL Server 2008R2上进行过测试。

–EOF–