[TOC]
0x00 前言简述
(1) 硬件和软件要求
SQL Server 2008 R2的硬件和软件要求:
- 系统要求:建议在Windows Server 2008或Windows 7及以上在
Server 2012 R2
版本以下 - 磁盘分区:建议采用NTFS文件格式
- 开发工具包:.NET Framework 3.5
- 系统位数: 建议X64
- 内存: 最小:1 GB / 推荐 4 GB或更多 (此处以标准版64位为例最大支持64 GB)
SQL Server 2008 R2的核心服务器版本说明:
代码语言:javascript复制* SQL Server 2008 R2数据中心(64位)IA64
* SQL Server 2008 R2企业版(64位)IA64
* SQL Server 2008 R2数据中心(64位)x64
* SQL Server 2008 R2 Enterprise(64位)x64
* SQL Server 2008 R2标准版(64位)x64
* SQL Server 2008 R2数据中心(32位)
* SQL Server 2008 R2 Enterprise(32位)
* SQL Server 2008 R2标准版(32位)
Microsoft SQL Server 2008 R2 序列号试用密钥:
代码语言:javascript复制* 开发版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM
* 开发版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8
* 工组版:XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q
* WEB版:FP4P7-YKG22-WGRVK-MKGMX-V9MTM
* 数据中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB
* 数据中心版64位:DDT3B-8W62X-P9JD6-8MX7M-HWK38
* 企业版32位:R88PF-GMCFT-KM2KR-4R7GB-43K4B
* 企业版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB
* 标准版32位:CXTFT-74V4Y-9D48T-2DMFW-TX7CY
* 标准版64位:B68Q6-KK2R7-89WGB-6Q9KR-QHFDW
* Enterprise : JD8Y6-HQG69-P9H84-XDTPG-34MBB
Tips: 操作系统安装的SQL Server版本的最低要求((注意根据实际操作 Server 2019 / 2016
是支持 SQL Server 2008 R2
))
WeiyiGeek.SQL Server版本的最低要求
参考地址: https://docs.microsoft.com/en-us/troubleshoot/sql/general/sql-server-windows-8-later-versions
0x01 SQL Server 2008 R2 安装
(1) 基于 Server 2019 安装
环境说明:
代码语言:javascript复制系统镜像:cn_windows_server_2019_updated_march_2019_x64_dvd_c1ffb46c.iso
数据库版本: sqlserver2008r2_enterprise_x86_x64.iso
操作系统配置:
# OS 名称: Microsoft Windows Server 2019 Standard
# OS 版本: 10.0.17763 暂缺 Build 17763
# 系统类型: x64-based PC
# 处理器: 安装了 8 个处理器。
# [01~08]: Intel64 Family 6 Model 85 Stepping 7 GenuineIntel ~2095 Mhz
# 物理内存总量: 16,383 MB
# 可用的物理内存: 13,209 MB
# 虚拟内存: 最大值: 18,815 MB
# 虚拟内存: 可用: 15,785 MB
# 虚拟内存: 使用中: 3,030 MB
# 页面文件位置: C:pagefile.sys
操作流程:
- Step 1.装载
sqlserver2008r2_enterprise_x86_x64
镜像到系统并打开Setup.exe应用程序; - Step 2.点击
全新安装或者向现有的安装添加新功能
-> 然后将会对安装程序进行依赖查询满足规则后方可继续;
WeiyiGeek.依赖验证
- Step 3.输入试用的产品密钥->此次输入的是企业版64位:
GYF3T-H2V88-GRPPH-HWRJP-QRTYB
-> 点击下一步许可条款 -> 并且再次进行安装程序支持规则检测;
WeiyiGeek.安装许可
- Step 4.在功能设置角色中选择
SQL Server 功能安装
-> 实例配置(一般默认实例名称MSSQLSERVER
) -> 建议将实例目录放在非根目录之下D:Program FilesMicrosoft SQL Server
;
WeiyiGeek.功能安装和实例配置
- Step 5.之后检测磁盘空间要求显示出各个磁盘以及 MsSQL 安装所占大小 -> 设置服务账户(建议使用单独用户而是是SYSTEM用户) -> 排序规则 (Chinese_PRC_CI_AS-根据具体而定)
WeiyiGeek.服务账户&排序规则
Tips 补充: SQL Server中的每个服务代表一个进程或一组进程,每个进程需要有访问SQL Server相关文件(如.mdf、.ndf 和 .ldf 等文件
)或注册表或者SQL Server安装目录的权限; Server的服务账户,用以启动并获取需要访问操作系统文件的权限;
1.SQL Server 2008中服务帐户类型分为不具有 Windows 管理员权限的“内置系统帐户”和“域用户帐户”;
1.1 “内置系统帐户”又细分成三类“本地系统帐户”、“网络服务帐户”以及“本地服务帐户”。
代码语言:javascript复制- Local System : 即实际名称为"NT AUTHORITYSYSTEM", 是一个`具有高特权的内置帐户`, 该账号没有用户名和密码之类的凭证,如果机器处于域中时则运行在 Local System 账户下的服务还可以使用机器账户在同一个森林(Tree)中得到其他机器的自动认证,而且它能够使用空会话 (null session) 去访问网络资源;
- Network Service : 实际名称为"NT AUTHORITYNETWORK SERVICE", 它比 Users 组的成员拥有更多的对资源和对象的访问权限, 它可以使用计算机帐户的凭据访问网络资源;
- Local Service : 实际名称为"NT AUTHORITYLOCAL SERVICE", 账户是预设的拥有最小权限的本地账户与 Users 组的成员具有相同级别的资源和对象访问权限,该账户下的进程只能以没有凭据的空会话形式访问的网络资源。`如果有个别服务或进程的安全受到威胁,则此有限访问权限有助于保护系统的安全`。
1.2 域用户帐户是一个使用 Windows 身份验证的域用户帐户以设置并连接到 SQL Server (建议使用最低权限的域用户帐户
),因为 SQL Server 服务不需要管理员帐户特权;
如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;
如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,则可以使用具有最低特权的域帐户。
总结:
代码语言:javascript复制NT AuthoritySystem : 系统内置账号,对本地系统拥有完全控制权限;在工作组模式下,该账户不能网络资源;通常用于服务的运行,不需要密码。
NT AuthorityNetwork Service : 系统内置账号,比 SYSTEM 账户权限要小,可以访问有限的本地系统资源;在工作组模式下,该账户能够以计算机的凭据来访问网络资源,默认为远程服务器的 EVERYONE 和 AUTH
Step 6.进行数据库账号设置 -> 选择混合模式认证 -> 设置数据目录存放路径
代码语言:javascript复制# Sa 用户密码设置
sa weiyigeek.pass#word
# 登陆用户管理员添加
PS C:UsersAdministrator> net user mssqladmin weiyigeekpassword /add
命令成功完成。
WeiyiGeek.管理员账户与数据根目录
Step 7.再次进行安装配置规则检查 -> 安装配置文件路径 C:Program FilesMicrosoft SQL Server100Setup BootstrapLog20210119_223329ConfigurationFile.ini
内容如下:
;SQLSERVER2008 Configuration File
[SQLSERVER2008]
; 为您已指定的 SQL Server 功能指定实例 ID。SQL Server 目录结构、注册表结构和服务名称将反映 SQL Server 实例的实例 ID。
INSTANCEID="MSSQLSERVER"
; 指定安装程序的工作流,如 INSTALL、UNINSTALL 或 UPGRADE。这是必需的参数。
ACTION="Install"
; 指定要安装、卸载或升级的功能。顶级功能列表包括 SQL、AS、RS、IS 和工具。SQL 功能将安装数据库引擎、复制和全文。工具功能将安装管理工具、联机丛书、Business Intelligence Development Studio 和其他共享组件。
FEATURES=SQLENGINE,REPLICATION,FULLTEXT,AS,CONN,BC,SSMS,ADV_SSMS
; 显示命令行参数用法
HELP="False"
; 指定应将详细的安装程序日志传送到控制台。
INDICATEPROGRESS="False"
; 安装程序将不会显示任何用户界面。
QUIET="False"
; 安装程序将只显示进度,不需要任何用户交互。
QUIETSIMPLE="False"
; 指定安装程序应该安装到 WOW64 中。IA64 或 32 位系统不支持此命令行参数。
X86="False"
; 尚未定义命令行参数 ENU 的详细帮助。
ENU="False"
; 用于控制用户界面行为的参数。有效值对于完整 UI 为 Normal,对于简化的 UI 为 AutoAdvance。
UIMODE="Normal"
; 指定是否可将错误报告给 Microsoft 以便改进以后的 SQL Server 版本。指定 1 或 True 将启用此功能,指定 0 或 False 将禁用此功能。
ERRORREPORTING="False"
; 指定本机共享组件的安装根目录。
INSTALLSHAREDDIR="D:Program FilesMicrosoft SQL Server"
; 指定 WOW64 共享组件的安装根目录。
INSTALLSHAREDWOWDIR="D:Program Files (x86)Microsoft SQL Server"
; 指定安装目录。
INSTANCEDIR="D:Program FilesMicrosoft SQL Server"
; 指定可以收集 SQL Server 功能使用情况数据,并将数据发送到 Microsoft。指定 1 或 True 将启用此功能,指定 0 或 False 将禁用此功能。
SQMREPORTING="False"
; 指定默认实例或命名实例。MSSQLSERVER 是非 Express 版本的默认实例,SQLExpress 则是 Express 版本的默认实例。在安装 SQL Server 数据库引擎(SQL)、Analysis Services (AS)或 Reporting Services (RS)时,此参数是必需的。
INSTANCENAME="MSSQLSERVER"
; 代理帐户名
AGTSVCACCOUNT="NT AUTHORITYSYSTEM"
; 安装后自动启动服务。
AGTSVCSTARTUPTYPE="Manual"
; Integration Services 的启动类型。
ISSVCSTARTUPTYPE="Automatic"
; Integration Services 的帐户: 域用户或系统帐户。
ISSVCACCOUNT="NT AUTHORITYNetworkService"
; 运行 Analysis Services 服务所使用的帐户的名称。
ASSVCACCOUNT="NT AUTHORITYSYSTEM"
; 在创建服务后控制服务启动类型设置。
ASSVCSTARTUPTYPE="Automatic"
; Analysis Services 要使用的排序规则。
ASCOLLATION="Chinese_PRC_CI_AS"
; Analysis Services 数据文件的位置。
ASDATADIR="D:Program FilesMicrosoft SQL ServerMSAS10_50.MSSQLSERVEROLAPData"
; Analysis Services 日志文件的位置。
ASLOGDIR="D:Program FilesMicrosoft SQL ServerMSAS10_50.MSSQLSERVEROLAPLog"
; Analysis Services 备份文件的位置。
ASBACKUPDIR="D:Program FilesMicrosoft SQL ServerMSAS10_50.MSSQLSERVEROLAPBackup"
; Analysis Services 临时文件的位置。
ASTEMPDIR="D:Program FilesMicrosoft SQL ServerMSAS10_50.MSSQLSERVEROLAPTemp"
; Analysis Services 配置文件的位置。
ASCONFIGDIR="D:Program FilesMicrosoft SQL ServerMSAS10_50.MSSQLSERVEROLAPConfig"
; 指定是否允许 MSOLAP 访问接口在进程中运行。
ASPROVIDERMSOLAP="1"
; 指定需要设置的管理员帐户的列表。
ASSYSADMINACCOUNTS="WeiyiGeekadmin"
; 用于连接 SharePoint 管理中心 Web 应用程序的端口号。
FARMADMINPORT="0"
; SQL Server 服务的启动类型。
SQLSVCSTARTUPTYPE="Automatic"
; 启用 FILESTREAM 功能的级别(0、1、2 或 3)。
FILESTREAMLEVEL="0"
; 设置为 "1" 可为 SQL Server Express 启用 RANU。
ENABLERANU="False"
; 指定要用于数据库引擎的 Windows 排序规则或 SQL 排序规则。
SQLCOLLATION="Chinese_PRC_CI_AS"
; SQL Server 服务的帐户: 域用户或系统帐户。
SQLSVCACCOUNT="NT AUTHORITYSYSTEM"
; 要设置为 SQL Server 系统管理员的 Windows 帐户。
SQLSYSADMINACCOUNTS="WeiyiGeekadmin" "mssqladmin"
; 默认值为 Windows 身份验证。使用 "SQL" 表示采用混合模式身份验证。
SECURITYMODE="SQL"
; 将当前用户设置为 SQL Server 2008 R2 Express 的数据库引擎系统管理员。
ADDCURRENTUSERASSQLADMIN="False"
; 指定 0 禁用 TCP/IP 协议,指定 1 则启用该协议。
TCPENABLED="1"
; 指定 0 禁用 Named Pipes 协议,指定 1 则启用该协议。
NPENABLED="0"
; Browser 服务的启动类型。
BROWSERSVCSTARTUPTYPE="Disabled"
; 指定报表服务器 NT 服务的启动模式。
; 手动 - 在手动模式(默认值)下启动服务。
; 自动 - 在自动模式下启动服务。
; 已禁用 - 服务处于禁用状态
RSSVCSTARTUPTYPE="Automatic"
; 指定报表服务器的安装模式。
; 默认值: “FilesOnly”
RSINSTALLMODE="FilesOnlyMode"
; 添加输入参数 FTSVCACCOUNT 的描述
FTSVCACCOUNT="NT AUTHORITYLOCAL SERVICE"
Step 8.等待6~10分钟 MsSQL Server 就可以安装成功;
WeiyiGeek.
- Step 9.安装成功它会自动启动数据库相关服务 -> 但是默认的SQL Server代理服务需要手动进行启动(这样我们的备份任务才能正常执行) -> 请注意以下服务名称的描述作用;
WeiyiGeek.
- Step 10.最后采用 Microsoft SQL Server Management Studio 进行对SQL Server进行管理
-- (1)SQL Server 相关信息
select SERVERPROPERTY(N'edition') as Edition --数据版本,如企业版、开发版等
,SERVERPROPERTY(N'collation') as Collation --数据库字符集
,SERVERPROPERTY(N'servername') as ServerName --服务名
,@@VERSION as Version --数据库版本号
,@@LANGUAGE AS Language --数据库使用的语言,如us_english等
-- Edition Collation ServerName Version Language
-- Enterprise Edition (64-bit) Chinese_PRC_CI_AS WIN-KRB8LBJ4LGH
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
-- 简体中文
-- (2)SQL Server 默认的排序规则和编码
SELECT COLLATIONPROPERTY( 'chinese_prc_ci_as', 'codepage' );
-- 查看代码页
-- 936 代表 gbk
-- 20936 代表 gb2312
WeiyiGeek.SQL Server 相关信息
- Step 11.至此 在 Server 2019 操作系统上安装 SQL Server 2008 R2 完美结束;
0x02 F&Q 入坑出坑
问题1:在Server 2019中安装.NET Framework 3.5提示error 0x8024402C
解决方式:
- 1.挂载安装系统镜像(是安装该系统对应的镜像文件)。
- 2.在Server 2019中安装.NET Framework 3.5 功能
- 3.点击下面的“指定备用源路径”,弹出对话框输入如图所示。
- 4.在Server 2019中安装.NET Framework 3.5 功能再进行安装,便可以安装成功了。
WeiyiGeek.NET 3.5-0x8024402C
问题2.viewInfo (Microsoft.SqlServer.Management.SqlStudio.Expl
环境说明: 服务器环境:windows server 2008(64Bit)/ 数据库版本:SQL server 2008 R2 错误信息: 错误提示值不能为空参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Expl 如下图:
错误图示
问题解决: 在路径:C:Users你的用户名AppDataLocalTemp”文件夹下建好命名为 2 的文件夹,如果已经有 2 则看清楚是否是文件而不是文件夹,删掉文件改为文件夹。
代码语言:javascript复制start %temp%
mkdir %temp%/2
问题3.当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘tb_MyInvoices’ 中的标识列插入显式值
描述: 默认情况下 IDENTITY_INSER
就是 off, 该情况下你写 insert 语句时 identity 栏位,不要写值系统会自动帮你写入这样防止id重复。
举例说明:
create table tablename(id int identity(1,1),dt datetime,pay int)
go
insert into tablename(dt,pay)values('2012-4-12',100) --不能向 id栏位写值,系统会自动写
go
insert into tablename(id,dt,pay)values(100,'2012-4-14',200) --如果像这样写了,就会报错
go
解决办法:
代码语言:javascript复制# IDENTITY_INSERT 设置为 on 利用系统自动写入的功能保证不重复
set IDENTITY_INSERT tablename on
insert into tablename(id,dt,pay)values(100,'2012-4-14',200) --这样就不会报错了。