资讯详情

资讯详情

SQL Server 2012 32位安装教程:配置检查与避坑清单

简介这份 PDF 图解教程面向准备在 Windows 7 SP1 32 位环境部署 SQL Server 2012 的初学者与运维人员重点介绍安装前环境确认、安装包选择、系统配置检查、实例与服务器配置、身份验证模式以及数据库引擎设置等关键环节并通过分步截图和界面标注说明各配置项的作用帮助读者减少安装过程中的报错建立完整的安装流程认知。资源包共 1 个 PDF 文件大小约 786KB内容以图文步骤和界面截图为主便于按章节对照操作同时涉及 Analysis Services、Reporting Services、分布式重播等组件的配置提示可作为安装与排错时的参考手册。目前已有 2255 人学习适合需要从零完成 SQL Server 2012 安装或梳理安装流程的读者使用。1. 一份 2012 年的安装图解为什么今天还有人翻出来某实验室的旧工控机上还跑着一套报表系统数据库是 SQL Server 2012系统是 Windows 7 SP1 32 位配置是 2.1GHz 赛扬双核 T3500 加 2.93GB 内存。上个月重装翻遍硬盘只找到一份 sql2012 安装教程 的图解配套三个 x86 安装包图和包倒是齐的缺的是图里没写的那部分参数和报错处理。这类场景一点都不罕见老设备、离线机房、教学演示机新版装不上也用不着。这份图解教程的价值不在“新”而在于它把 32 位环境下的包选择、系统配置检查器、实例配置、身份验证模式这些最容易被一路点“下一步”跳过的东西一张张截了下来。下面按真实安装顺序拆一遍把截图之外的决定性参数补上。2. 装前把账算清32 位三件套、2.2GB 磁盘与 1GB 内存的真实门槛安装 SQL Server 2012 最容易被低估的一步不是点 Setup而是确认手里的安装介质到底齐不齐、机器到底带不带得动。图解教程里那台机器的参数写在最前面Windows 7 SP1、32 位、2.1GHz 双核、2.93GB 内存这不是随手一记而是决定后面每一个选项的前提。32 位系统只能装 x86 版本也就意味着后面所有的功能勾选、内存使用上限、组件可用性全都和一台普通 64 位服务器上的操作不是一回事。先把这一步的账算清楚能省掉后面至少两次推倒重来。2.1 三个安装包的分工少一个都解压不出安装程序图解教程给出的下载清单里32 位环境只需要三个文件CHSx86SQLFULL_x86_CHS_Core.box、CHSx86SQLFULL_x86_CHS_Intall.exe、CHSx86SQLFULL_x86_CHS_Lang.box。很多人第一次看到这个组合会懵为什么不是一个 ISO而是三个散件。原因在于这套介质是按“引导壳 资源盒”拆分的.exe只是负责自解压的外壳真正的程序文件、组件包、语言资源都压在两个.box里。把三者放在同一个目录下双击那个 exe它才会把内容解到一个叫SQLFULL_x86_CHS的文件夹。文件名里的Intall少了一个字母 s不是下载错了也不是被人改过名原始介质就是这个拼法。这一点值得单独说一句因为在搜索结果里经常有人问“是不是包不完整”然后去下第四个包反而把目录搞乱。判断标准只有一条三个文件在同一个目录、文件名前缀完全一致、双击 exe 后能顺利解压出SQLFULL_x86_CHS目录就说明介质没问题。.box的本质是分卷资源容器解压过程对目录位置敏感。常见做法是单独建一个短路径目录比如D:\sql2012\把三个文件丢进去再双击不要在桌面、不要在中文路径、不要在带空格的路径下操作。自解压程序对路径长度的容忍度有限路径一长解压到一半报“找不到源文件”或者解压出来的目录缺文件排查起来非常费劲。解压完成后目录里会多出一个SQLFULL_x86_CHS文件夹里面才是真正的安装根目录。这一步不需要任何权限提升普通用户就能跑完但它决定了后面 Setup 能不能找到安装介质。2.2 软硬件门槛逐项对照哪些数字是硬线哪些是建议官方给出的环境要求分软件和硬件两块图解教程把它们抄在了安装流程中间实际应该在动手之前就逐项对一遍。下面这张表是按 32 位场景整理的括号里是我在旧机器上实际遇到的边界。项目最低要求建议值32 位旧机上的真实情况操作系统Windows 7 SP1、Vista SP2、Server 2008 SP2、Server 2008 R264 位服务器版32 位 Win7 SP1 只能走 x86 版功能有裁剪处理器32 位 1GHz2GHz 及以上T3500 双核 2.1GHz 够用安装耗时约 40 到 60 分钟内存1GB2GB 及以上2.93GB 可用32 位数据库引擎实际可用缓冲池明显低于这个数磁盘2.2GB 可用留足日志与 tempdb 空间装完系统库加组件实际占用约 4 到 6GB.NET Framework3.5 SP13.5 SP1 与 4.0 并存Win7 默认没开 3.5需要在功能里手动勾选Windows Installer4.54.5 及以上Win7 SP1 自带一般不用动PowerShell2.02.0 及以上部分安装规则检查依赖它内存这一项要特别说清楚。32 位版本的数据库引擎受虚拟地址空间限制缓冲池能拿到的物理内存远小于机器标称值2.93GB 的机器上真正给数据缓存的部分大概在 1.5GB 到 2GB 之间。这不是配置问题是 32 位进程地址空间的硬约束。所以在这类机器上装完别指望跑大表扫描或者高并发定位就是小数据量、单机、报表查询。理解这一点后面调max server memory的时候才不会白费功夫。磁盘空间那 2.2GB 只是安装程序的检查线不是最终占用。安装过程中会往系统盘写临时文件、往安装目录铺组件、往数据目录建master、model、msdb、tempdb四个系统库再算上错误日志和安装日志实际落地空间往往是检查线的两倍。我一般会在装之前先看一眼目标盘剩余低于 8GB 就先清一遍尤其是C:\Windows\Temp和用户临时目录那里经常堆着几个 G 的历史垃圾。软件环境里还有一个容易被忽略的点Windows 7 默认没有启用 .NET Framework 3.5。SQL Server 2012 的安装程序、部分管理工具和 PowerShell 提供程序都依赖它。启用方式是在“程序和功能”里打开“启用或关闭 Windows 功能”勾上 .NET Framework 3.5.1。这一步在联网环境下会走 Windows Update 下载离线机器需要提前准备安装源。安装程序在规则检查阶段会提示这一项但提示语不够直白经常被当成可跳过的警告。2.3 解压路径与 Setup.exe 的层级关系解压出来的SQLFULL_x86_CHS目录里Setup.exe在最外层和它同级的还有x86、resources等子目录以及一堆.msi、.cab文件。整个目录结构不能随意搬动尤其是不能只把Setup.exe单独拷出来运行它要靠同级目录里的资源定位组件包。图解教程在这一步强调了“打开该文件夹并双击 SETUP.EXE”看起来是废话实际上是在纠正一个高频错误有人解压完直接把 exe 拖到桌面然后安装到一半报“无法找到安装程序集”。双击之前建议先确认两件事。一是当前账户是不是本地管理员组成员安装过程需要注册服务、写注册表、创建目录非管理员账户会在功能选择之后被拦下来。二是系统盘和安装盘是不是同一块如果是分开的安装介质所在盘和最终安装目标盘的可用空间都要查。如果要在命令行里启动工作目录必须切到SQLFULL_x86_CHS否则相对路径会失效cd /d D:\sql2012\SQLFULL_x86_CHS Setup.exe这里的cd /d作用是同时切换盘符和目录缺了/d在跨盘符时会静默失败命令看起来执行了实际工作目录没变随后启动的 Setup 就会在错误的目录下找资源。代码本身没有参数但工作目录就是它的隐式参数这一点在写批处理脚本批量部署时尤其要记住。启动后如果看到“SQL Server 安装中心”说明介质、路径、权限这三关都过了。看不到界面而是弹一个简短错误框先去看解压目录下有没有生成日志再回头检查上面三关基本都能定位。3. 安装中心与系统配置检查器把拦截项在点“下一步”之前挖出来安装中心这个界面容易被当成过渡页直接跳过实际上它是整个安装过程里唯一一个可以“先看不改”的地方。左侧一列入口分成计划、安装、维护、工具、资源、高级、选项七类右侧是具体动作。图解教程在这里停留了几屏把“计划”里的硬件和软件要求、安全文档、系统配置检查器、安全升级顾问都点了一遍这个顺序是对的先知道自己这台机器够不够再去点安装。跳过这一步的人通常会在功能选择之后连续撞上三四个规则失败然后被迫退出来重来。3.1 安装中心七个入口真正用得上的是哪三个七个入口里日常装机真正会用到的是三个。第一个是“计划”下的“系统配置检查器”它会在不改动系统的前提下跑一遍前置条件检测把缺 .NET、缺补丁、挂起重启、性能计数器损坏这类问题提前列出来。第二个是“安装”下的“全新 SQL Server 独立安装或向现有安装添加功能”这是本文走的主线非集群环境下的单机安装。第三个是“维护”里的“修复”装完之后某个组件起不来、某个功能缺失可以先试修复比直接卸了重装省时间。剩下几个入口各有用途但优先级低。“从 SQL Server 2005、2008 或 2008 R2 升级”需要提供旧版本的升级介质安装程序会先对介质做一次校验再跑一轮升级规则检查流程比全新安装长得多图解教程里也明确说了不是重点。“工具”里是已经装好的管理工具入口全新安装时点进去通常是空的。“资源”和“高级”更多是文档链接和安装程序自身的选项普通装机不用碰。提示先把“系统配置检查器”跑完再点安装比装到一半报错退出再回来查平均能省半小时以上旧机器上这个差距更明显。3.2 系统配置检查器的结果怎么读警告能不能忽略检查器跑完之后会给出一张列表每项带状态。状态分三类通过、警告、失败。失败项是硬拦截必须处理完才能继续警告项可以带着进安装流程但有代价。常见的失败项集中在三个方向。一是操作系统版本不满足最低要求比如没打 SP1 的 Windows 7这种只能先补系统补丁。二是挂起的重启操作注册表里存在待处理的文件重命名任务安装程序担心文件被占用直接拦下来。三是性能计数器损坏这一类在克隆过系统或者做过系统还原的机器上特别常见表现为安装程序读不到处理器和内存的性能数据。警告项里最常见的是“安装程序支持规则”发现某些可选组件缺失比如全文搜索需要的筛选器包、Reporting Services 需要的特定运行库。这类警告放过去也能装完但对应的功能在后面用不了。我的习惯是先把警告逐条看完确认自己不需要那个功能再继续而不是一路点“下一步”到最后发现报表服务打不开。检查器本身不写日志到显眼位置结果只在界面上展示。想留档的话可以在跑完之后截屏或者直接去看安装引导日志目录下的Summary.txt那里会记录每一步规则检查的结论。路径一般在%ProgramFiles%\Microsoft SQL Server\110\Setup Bootstrap\Log\下面按时间戳分文件夹最新的那个就是本次会话。3.3 功能选择与实例命名实例 ID 一旦写死就跟着路径走点进“全新安装”之后前面几步是密钥、许可条款、规则检查真正开始做决定的是“功能选择”。这一屏列出的组件很多32 位旧机器上要克制。数据库引擎服务是必选SQL Server 复制按需全文搜索在小数据量场景下很有用Analysis Services 和 Reporting Services 如果不是明确要做多维分析或报表服务器可以不勾。分布式重播控制器和客户端是 2012 新增的两个服务名字陌生很多人顺手勾上结果装完发现服务起不来原因是没有域环境支撑后面避坑章会细说。功能勾选直接影响磁盘占用和安装时长。全选在这类老机器上可能跑一个多小时而且装完有一半组件用不上还占着服务列表。我的做法是先只勾数据库引擎加管理工具跑通之后再回来用“向现有安装添加功能”补组件这样每次只面对一个问题。紧接着是实例配置。这里有两个概念要分清实例名和实例 ID。实例名是客户端连接时用的名字默认实例叫MSSQLSERVER命名实例自己起实例 ID 默认跟实例名一致但它决定的是安装路径里的目录名比如MSSQLSERVER对应MSSQL11.MSSQLSERVER这样的目录。图解教程在这里特意提了一句“实例 ID 将成为安装路径的一部分”这不是随口一说。实例 ID 一旦确定后续所有组件目录、注册表键、服务名都按它生成装完想改只能卸载重装。所以命名实例的时候不要用中文、不要用空格、不要用超长字符串用字母数字加下划线最稳。同一台机器上装多个实例时每个实例的 ID 必须唯一否则安装程序在实例配置这一步就会拦下来。磁盘空间需求那一屏会显示每个功能占多少勾选变化后数字实时更新。这一屏值得停一下把总需求和目标盘剩余对一遍尤其是把数据库文件目录和备份目录放在不同盘的时候两边的空间都要算进去。4. 服务器配置服务账户、排序规则与 sa 的一次性决定走到“服务器配置”这一屏安装进度大概过半但真正的决策才刚开始。前面那些功能勾选装错了还能补这一屏的几个选项装完之后修改成本极高服务账户要停服务改、排序规则基本等于重建、身份验证模式要在安全设置里绕一圈才有机会补。图解教程在这一段给了两张截图一张是服务账户列表一张是数据库引擎配置里的身份验证模式截图本身信息量有限下面把每个选择背后的取舍补全。4.1 七类服务账户怎么分配LocalSystem 不是万能钥匙服务器配置页会列出本次安装涉及的所有服务每一行都要指定登录账户和启动类型。32 位单机场景下大致会遇到这几类SQL Server 数据库引擎、SQL Server 代理、SQL Server Analysis Services、SQL Server Reporting Services、SQL Server 分布式重播控制器、SQL Server 分布式重播客户端以及安装完成后才会出现的 SQL Server Browser。每一行右上角可以统一设置也可以逐行设置。统一设置最省事但要注意统一成什么。内置账户里LocalSystem权限最大装完基本不会因为权限不足报错代价是数据库引擎以最高权限运行任何注入类问题都会放大。Network Service权限低一些但访问网络共享时会以机器账户身份出现跨机备份到共享目录容易失败。Local Service权限最低通常只适合不需要外部访问的组件。我的习惯是数据库引擎和代理用一个专门的低权限域账户或本地账户其他组件跟随默认。单机离线环境没有域账户时退而求其次用NT Service\MSSQLSERVER这种虚拟账户它是 SQL Server 2012 开始支持的按服务隔离账户权限刚好够用不需要手工配密码。这一点在旧教程里经常被忽略因为 2008 时代的习惯还是直接上LocalSystem。排序规则那一栏在同一个页面下方默认值跟着系统语言走简体中文环境下是Chinese_PRC_CI_AS。CI表示不区分大小写AS表示区分重音。这个设置决定字符串比较、排序、索引键的行为装完之后要改只能重建数据库或者对具体列做列级排序规则覆盖代价很大。选之前先想清楚现有系统的数据来源如果是从旧库迁移过来的排序规则必须和旧库一致否则跨库 JOIN 会直接报排序规则冲突。服务启动类型建议全部设成“自动”除了分布式重播那两个组件按需设成“手动”。设成手动之后忘了启动后面连不上会误以为是网络问题。4.2 排序规则与身份验证模式两个装完很难改的选项身份验证模式在“数据库引擎配置”这一屏两个选项Windows 身份验证模式、混合模式。前者只允许 Windows 账户登录后者在 Windows 账户之外再开放 SQL Server 账户登录。图解教程里提到系统默认选的是 Windows 身份验证模式并且必须指定一个 SQL Server 管理员。这里有个细节即使在纯 Windows 模式下安装程序也会要求添加至少一个 Windows 账户作为管理员默认会把当前安装账户加进去。这个账户在装完之后就是最高权限的sysadmin用它登录可以改任何设置。如果选混合模式安装程序会强制要求设置sa账户密码并校验复杂度。弱密码在规则检查阶段就会被拦下来提示“密码不符合要求”。复杂度要求大致是长度不低于 8 位、包含大小写字母、数字、符号中的三类。这个密码建议单独记录不要和系统账户密码混用。混合模式是个双刃剑。好处是应用程序可以用连接字符串里的用户名密码直连不需要在客户端做 Windows 身份委派老系统迁移时这一点非常关键。代价是sa成了一个高权限的密码账户爆破风险一直存在。我的做法是只有在应用程序明确要求 SQL 账户登录时才选混合模式装完之后立刻禁用sa或者改名另建一个权限受限的应用账户。已经装成 Windows 模式想改回来流程是用 Windows 管理员账户登录在对象资源管理器里右键实例属性进“安全性”把服务器身份验证改成混合模式重启数据库引擎服务然后启用sa并设密码。步骤不难但重启服务在很多生产环境要走审批所以还是装的时候一次选对更省事。4.3 数据库引擎、Analysis Services、Reporting Services、分布式重播的配置差异功能勾得越多后面要填的配置页越多。数据库引擎配置页负责身份验证模式和管理员账户Analysis Services 配置页负责多维模型的服务器模式和管理员账户Reporting Services 配置页负责报表服务器的模式选择分布式重播的两页负责控制器和客户端的账户与端口。Analysis Services 在 2012 上只有一种服务器模式就是多维和数据挖掘模式表格模式的版本要更晚才出现这一屏基本只需要指定管理员把当前账户加进去即可。管理员账户决定谁能连上分析服务不是数据库引擎的sysadmin两者独立这一点经常被搞混装完之后用 SSMS 连分析服务连不上多半是这里没加账户。Reporting Services 配置页会让你选“本机模式”或者“SharePoint 集成模式”。没有 SharePoint 环境的话只能选本机模式选错的话报表服务器服务装完起不来还得回来自定义配置。本机模式下报表服务器自己管一个报表数据库装完之后要用报表服务配置管理器再跑一遍初始化这一步在安装向导里不做很多人装完发现报表服务没配好就是这个原因。分布式重播控制器和客户端这两页是 2012 新增的。控制器负责协调多个客户端回放跟踪数据必须有域环境才能正常注册单机工作组环境里装了也用不了。图解教程在功能选择阶段勾了这两项但从安装流程看它们在服务列表里出现之后一直没被重点讲这也合理因为单机场景基本用不上。如果不是明确要做并发压力回放测试装的时候这两项不勾能少两个起不来的服务。5. 安装避坑清单五条现象、原因与恢复路径这份图解教程的截图流程是顺的但真实机器上顺不下来才是常态。下面五条是我在旧机器、离线环境、克隆系统上反复遇到的按发生阶段排每条都给出可以照着走的恢复路径。看的时候不要只看结论现象和原因对应关系比解决动作更重要因为同样的报错在不同机器上成因可能不一样。5.1 安装阶段的硬拦截第一条双击引导程序后报“找不到安装程序所需的文件”。现象是进度条走到一小段就弹窗提示源文件缺失解压出来的目录里文件数量明显偏少。原因是三个安装包没有放在同一目录或者其中一个.box文件下载不完整或者自解压时目标路径过长、带中文。解决办法是把三个文件重新放到一个短路径目录比如D:\sql2012\核对文件大小与前缀全部对齐后重新双击。已经解压残破的目录先删干净再解不要在原目录上叠加。第二条规则检查阶段报“重新启动挂起”。现象是“安装程序支持规则”这一页有一项红叉提示需要重启计算机才能继续。原因是注册表里存在待处理的文件重命名操作通常是之前装过某个驱动或补丁没重启。解决办法是正常重启一次重启后直接开始安装中间不要再装别的东西。重启后仍然报同一项说明有待处理任务卡住那台机器上常见的是某个杀毒软件的文件锁临时停掉再试。第三条“性能计数器”规则警告或失败。现象是规则检查里出现关于性能计数器的条目状态是警告部分机器会直接失败。原因是性能计数器注册表损坏克隆系统、系统还原、频繁装卸软件之后经常出现。解决办法是在管理员命令行里重建计数器缓存执行下面两条命令后重启cd /d C:\Windows\System32 lodctr /Rlodctr /R的作用是重建性能计数器注册表项/R是 rebuild不是 reset。执行前要先切到 System32 目录否则可能因为找不到系统文件而静默失败。执行完重启一次再回来跑检查器这一项通常会变绿。如果仍然不行就得手动清理注册表里的Performance分支那一步风险较高建议先做系统快照。注意重建性能计数器影响的是整机不只是 SQL Server执行前确认没有其他监控软件正在依赖这些计数器。5.2 配置阶段的软故障第四条装完之后用sa登录报 18456。现象是 SQL Server Management Studio 里用 SQL 账户登录弹“用户登录失败”错误号 18456状态码不同含义不同。原因有三个常见方向安装时选了仅 Windows 身份验证模式sa账户处于禁用状态或者sa密码在安装时没设成功。解决办法是先用 Windows 管理员账户登录进去在实例属性的“安全性”里确认验证模式再在“登录名”里找到sa右键属性同时做两件事启用账户、重设密码。改完重启数据库引擎服务再用 SQL 账户登录验证。第五条分布式重播控制器服务装完起不来。现象是服务列表里能看到这个服务启动时立刻停止事件日志里有一条与域账户或端口相关的错误。原因是这个组件依赖域环境做控制器注册工作组机器上装上了也没有可用的协调对象。解决办法是直接卸载这个功能在安装中心选“删除”或者用控制面板里的程序和功能把分布式重播控制器和客户端两项移除不影响数据库引擎。装之前就不勾这两项是最省事的做法已经装了就按这个路径回退。5.3 一套固定的排查顺序上面五条只是常见情况真正遇到没见过的报错时我按这个顺序走先看界面上的规则检查结论再去安装引导日志目录里翻Summary.txt定位到具体失败的动作然后进对应的时间戳子目录看详细日志。日志目录路径是%ProgramFiles%\Microsoft SQL Server\110\Setup Bootstrap\Log\每次安装会话一个子目录里面除了Summary.txt还有各组件自己的日志。第二步是看系统事件查看器里的应用程序日志时间点对齐安装失败的那一刻通常能找到服务启动失败、权限拒绝、端口占用这类底层原因。第三步才是去看 SQL Server 自己的错误日志位置在实例目录下的LOG文件夹安装阶段可能还没生成装完之后的服务启动失败一定会有。排查时有个习惯值得养成每做一次改动只改一个变量然后重新跑一遍最小验证。同时改三个地方再看结果成功了也不知道是哪个起作用失败了也不知道是哪个没起作用。旧机器上本来迭代就慢这个习惯能省下大量来回。6. 装完别急着交付把配置固化成 ini 并跑通三项验证装第一台的时候按向导点完就算完事装第五台的时候就会想让机器自己跑。SQL Server 的安装程序支持把本次安装的全部选项落成一个配置文件路径是安装引导日志目录下那个以ConfigurationFile.ini结尾的文件里面记录了实例名、功能列表、服务账户、排序规则、验证模式、目录位置等全部参数。把它复制出来删掉密码相关的敏感行就是一份可以复用的模板。我在旧机器批量部署时一般这么用把 ini 和安装介质放在同一个盘用命令行静默执行。cd /d D:\sql2012\SQLFULL_x86_CHS Setup.exe /ConfigurationFileD:\sql2012\install.ini /IACCEPTSQLSERVERLICENSETERMS /Q/ConfigurationFile指定模板路径/IACCEPTSQLSERVERLICENSETERMS是静默模式下必须显式给出的许可确认缺了会直接退出/Q表示无界面。三个参数的关系是/Q负责安静许可参数负责合规配置文件负责内容少任何一个都跑不起来。模板里像SAPWD这种明文密码项建议在正式使用前删掉改由安装后脚本单独设置。装完的验证我固定跑三项。第一项是版本与补丁级别用sqlcmd直接查SELECT VERSION AS ver, SERVERPROPERTY(Edition) AS edition, SERVERPROPERTY(ProductLevel) AS level, SERVERPROPERTY(Collation) AS collation;四个字段分别对版本号、版本类型、补丁级别和排序规则。重点看排序规则是不是和预期一致以及补丁级别这决定了后面要不要单独打补丁包。第二项是远程连通性在服务端确认 TCP/IP 协议已启用、端口在监听netstat -ano | findstr :1433有输出说明端口在听没有输出就去 SQL Server 配置管理器里把网络协议下的 TCP/IP 打开并确认端口没被改成动态。第三项是兼容级别2012 默认是 110从旧版本还原过来的库可能还停在更低的级别SELECT name, compatibility_level FROM sys.databases; ALTER DATABASE [目标库] SET COMPATIBILITY_LEVEL 110;这三项跑完再加上一次完整的备份还原演练才算真正交付。血泪经验是有一次我给一台离线机器装完版本、端口、登录全对就是备份还原报错最后查出来是备份目录所在的盘符权限没给服务账户改完才好。从那以后我每次装完都强制走一遍“建库、插数据、备份、还原到新库、比对行数”这条最小闭环不管机器多旧、需求多简单。希望帮到你。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →