[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的核心服务器版本说明:

1
2
3
4
5
6
7
8
* 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 序列号试用密钥:

1
2
3
4
5
6
7
8
9
10
11
* 开发版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版本的最低要求

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 安装

环境说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
系统镜像: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.依赖验证

WeiyiGeek.依赖验证

  • Step 3.输入试用的产品密钥->此次输入的是企业版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB-> 点击下一步许可条款 -> 并且再次进行安装程序支持规则检测;
WeiyiGeek.安装许可

WeiyiGeek.安装许可

  • Step 4.在功能设置角色中选择SQL Server 功能安装 -> 实例配置(一般默认实例名称 MSSQLSERVER) -> 建议将实例目录放在非根目录之下 D:\Program Files\Microsoft SQL Server\;
WeiyiGeek.功能安装和实例配置

WeiyiGeek.功能安装和实例配置

  • Step 5.之后检测磁盘空间要求显示出各个磁盘以及 MsSQL 安装所占大小 -> 设置服务账户(建议使用单独用户而是是SYSTEM用户) -> 排序规则 (Chinese_PRC_CI_AS-根据具体而定)
WeiyiGeek.服务账户&排序规则

WeiyiGeek.服务账户&排序规则

Tips 补充: SQL Server中的每个服务代表一个进程或一组进程,每个进程需要有访问SQL Server相关文件(如.mdf、.ndf 和 .ldf 等文件)或注册表或者SQL Server安装目录的权限; Server的服务账户,用以启动并获取需要访问操作系统文件的权限;

  • 1.SQL Server 2008中服务帐户类型分为不具有 Windows 管理员权限的“内置系统帐户”和“域用户帐户”;
    • 1.1 “内置系统帐户”又细分成三类“本地系统帐户”、“网络服务帐户”以及“本地服务帐户”。
      1
      2
      3
      4
      5
      - Local System : 即实际名称为"NT AUTHORITY\SYSTEM", 是一个`具有高特权的内置帐户`, 该账号没有用户名和密码之类的凭证,如果机器处于域中时则运行在 Local System 账户下的服务还可以使用机器账户在同一个森林(Tree)中得到其他机器的自动认证,而且它能够使用空会话 (null session) 去访问网络资源;

      - Network Service : 实际名称为"NT AUTHORITY\NETWORK SERVICE", 它比 Users 组的成员拥有更多的对资源和对象的访问权限, 它可以使用计算机帐户的凭据访问网络资源;

      - Local Service : 实际名称为"NT AUTHORITY\LOCAL SERVICE", 账户是预设的拥有最小权限的本地账户与 Users 组的成员具有相同级别的资源和对象访问权限,该账户下的进程只能以没有凭据的空会话形式访问的网络资源。`如果有个别服务或进程的安全受到威胁,则此有限访问权限有助于保护系统的安全`。
    • 1.2 域用户帐户是一个使用 Windows 身份验证的域用户帐户以设置并连接到 SQL Server (建议使用最低权限的域用户帐户),因为 SQL Server 服务不需要管理员帐户特权;
      1
      2
      如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;
      如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,则可以使用具有最低特权的域帐户。

总结:

1
2
NT Authority\System : 系统内置账号,对本地系统拥有完全控制权限;在工作组模式下,该账户不能网络资源;通常用于服务的运行,不需要密码。
NT Authority\Network Service : 系统内置账号,比 SYSTEM 账户权限要小,可以访问有限的本地系统资源;在工作组模式下,该账户能够以计算机的凭据来访问网络资源,默认为远程服务器的 EVERYONE 和 AUTH

  • Step 6.进行数据库账号设置 -> 选择混合模式认证 -> 设置数据目录存放路径
    1
    2
    3
    4
    5
    6
    # Sa 用户密码设置
    sa weiyigeek.pass#word

    # 登陆用户管理员添加
    PS C:\Users\Administrator> net user mssqladmin weiyigeekpassword /add
    命令成功完成。
WeiyiGeek.管理员账户与数据根目录

WeiyiGeek.管理员账户与数据根目录

  • Step 7.再次进行安装配置规则检查 -> 安装配置文件路径 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20210119_223329\ConfigurationFile.ini
    内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    ;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 Files\Microsoft SQL Server"

    ; 指定 WOW64 共享组件的安装根目录。

    INSTALLSHAREDWOWDIR="D:\Program Files (x86)\Microsoft SQL Server"

    ; 指定安装目录。

    INSTANCEDIR="D:\Program Files\Microsoft 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 AUTHORITY\SYSTEM"

    ; 安装后自动启动服务。

    AGTSVCSTARTUPTYPE="Manual"

    ; Integration Services 的启动类型。

    ISSVCSTARTUPTYPE="Automatic"

    ; Integration Services 的帐户: 域\用户或系统帐户。

    ISSVCACCOUNT="NT AUTHORITY\NetworkService"

    ; 运行 Analysis Services 服务所使用的帐户的名称。

    ASSVCACCOUNT="NT AUTHORITY\SYSTEM"

    ; 在创建服务后控制服务启动类型设置。

    ASSVCSTARTUPTYPE="Automatic"

    ; Analysis Services 要使用的排序规则。

    ASCOLLATION="Chinese_PRC_CI_AS"

    ; Analysis Services 数据文件的位置。

    ASDATADIR="D:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Data"

    ; Analysis Services 日志文件的位置。

    ASLOGDIR="D:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Log"

    ; Analysis Services 备份文件的位置。

    ASBACKUPDIR="D:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Backup"

    ; Analysis Services 临时文件的位置。

    ASTEMPDIR="D:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Temp"

    ; Analysis Services 配置文件的位置。

    ASCONFIGDIR="D:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Config"

    ; 指定是否允许 MSOLAP 访问接口在进程中运行。

    ASPROVIDERMSOLAP="1"

    ; 指定需要设置的管理员帐户的列表。

    ASSYSADMINACCOUNTS="WeiyiGeek\admin"

    ; 用于连接 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 AUTHORITY\SYSTEM"

    ; 要设置为 SQL Server 系统管理员的 Windows 帐户。

    SQLSYSADMINACCOUNTS="WeiyiGeek\admin" "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 AUTHORITY\LOCAL SERVICE"
  • Step 8.等待6~10分钟 MsSQL Server 就可以安装成功;

    WeiyiGeek.

    WeiyiGeek.

  • Step 9.安装成功它会自动启动数据库相关服务 -> 但是默认的SQL Server代理服务需要手动进行启动(这样我们的备份任务才能正常执行) -> 请注意以下服务名称的描述作用;
WeiyiGeek.

WeiyiGeek.

  • Step 10.最后采用 Microsoft SQL Server Management Studio 进行对SQL Server进行管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- (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 相关信息

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

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\你的用户名\AppData\Local\Temp\”文件夹下建好命名为 2 的文件夹,如果已经有 2 则看清楚是否是文件而不是文件夹,删掉文件改为文件夹。

1
2
start %temp%
mkdir %temp%/2


问题3.当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘tb_MyInvoices’ 中的标识列插入显式值

描述: 默认情况下 IDENTITY_INSER 就是 off, 该情况下你写 insert 语句时 identity 栏位,不要写值系统会自动帮你写入这样防止id重复。
举例说明:

1
2
3
4
5
6
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

解决办法:
1
2
3
# IDENTITY_INSERT 设置为 on 利用系统自动写入的功能保证不重复
set IDENTITY_INSERT tablename on
insert into tablename(id,dt,pay)values(100,'2012-4-14',200) --这样就不会报错了。