简介:《SAP ECC6.0 安装操作手册》以单份 doc 文档交付,面向 SAP BASIS 初学者、运维人员及希望自建实验环境的学习者,针对 ECC6.0 在私人笔记本上安装链路长、配置项多、易因遗漏导致失败的问题,提供可对照执行的完整流程。压缩包共 1 个文件,为 doc 格式,大小约 6.49MB,按安装阶段分节组织,配有大量界面截图和作者成功安装的笔记本配置实例,便于边看边核对。内容覆盖安装前软硬件要求、虚拟内存配置、虚拟网卡设置、Java 虚拟机与环境变量、Oracle 10g 安装及补丁、SAP 安装、许可处理、语言包安装等环节,并保留各步骤的界面位置与配置提示,对容易出错的顺序和参数也有直观参照。已有 1429 人学习,适合用作无公司系统权限时的练习环境搭建指南、培训带教材料,以及安装失败后的逐项排查清单。
1. 一台 4G 内存的旧笔记本,能不能装 SAP ECC6.0?
先给结论:能,但决定成败的往往不是 CPU 主频,而是页面文件放在哪块盘、机器上有没有一个始终在线的 IP。这份从 2009 年起分七到八贴连载的《SAP ECC6.0 安装.doc》,就是一份以截图为主的单机装机记录,从软硬件清单、虚拟内存、Microsoft Loopback 虚拟网卡,一路讲到 JDK、Oracle 10g、SAPinst、语言包和 Client Copy。它适合刚接触 BASIS 方向、手上没有可碰的生产系统、想在自己机器上搭一套练习环境的从业者,也适合被 ECC6.0 安装卡过一次、想弄明白每一步为什么这么做的人。整套流程走完通常要占掉近 100G 磁盘、跑三到六小时,中途任何一步配错都要重来,所以这份手册的意义不在于省事,而在于把顺序和参数提前固定下来。
2. 装前地基:页面文件、磁盘分区与系统裁剪
2.1 先把资源账算清楚,再动手
手册里那台机器:4G 内存(原装 2G 加装 2G)、320G 7200 转硬盘、系统是 Windows Server 2003 SP2,SAP 装在 D 盘并单独划了 200G。装完 SAP 加 Oracle,实际占用接近 100G。这个数字要提前记住,因为很多人失败在第一阶段:磁盘空间不够,SAPinst 解包到一半报错,回滚又不干净。
下面是我按同样思路整理的资源账,比手册更明确一些,照着核对一遍再动手:
| 项目 | 手册配置 | 我的建议下限 | 说明 |
|---|---|---|---|
| 物理内存 | 4G | 4G | 低于 3G 时 Oracle 建库阶段会频繁换页 |
| 系统盘剩余 | 未说明 | ≥20G | 只放系统与临时文件 |
| SAP 数据盘 | D 盘 200G | ≥150G | SAP + Oracle 数据文件 + 归档日志 |
| 页面文件 | D 盘,自定义 | 8G 起步,初始=最大 | 避免动态扩展产生碎片 |
| CPU | 未强调 | 双核即可 | 瓶颈通常在磁盘 IO 而非算力 |
操作系统层面还有两个容易被忽略的约束:一是磁盘不能启用 NTFS 压缩,Oracle 数据文件放在压缩卷上会出现不可预期的 IO 错误;二是不要用动态磁盘或跨区卷,SAPinst 在创建表空间时对磁盘类型比较敏感,出问题后很难查到根因。
2.2 页面文件挪到 D 盘:路径与参数怎么写
手册的做法是关闭 C 盘的页面文件,把虚拟内存全部放到 D 盘。理由写得很直白:SAP 安装时要占用大量内存作为数据缓存区,物理内存不够时系统会走页面文件,如果页面文件还在系统盘,就会和系统自身的读写抢同一块盘的 IO,安装时间成倍拉长,甚至在 Oracle 建库阶段超时失败。
操作路径(Windows Server 2003):我的电脑 → 属性 → 高级 → 性能“设置” → 高级 → 虚拟内存“更改”,选中 C 盘设为“无分页文件”,选中 D 盘设为“自定义大小”,初始大小和最大值填同一个数,比如 8192 MB。两个值一致是为了避免系统按需扩展,页面文件反复伸缩本身就是一种性能损耗。
设完不用重启就能生效,但建议重启一次再开始装 SAP。想确认当前设置,用管理员权限开命令提示符跑一条命令:
:: 列出当前所有页面文件的路径与大小(单位 MB) wmic pagefileset get name,initialsize,maximumsize :: 顺带看一眼系统内存与提交上限 systeminfo | findstr /C:"物理内存" /C:"虚拟内存"wmic那条输出的是页面文件的实际配置,initialsize和maximumsize相等说明是固定大小;如果不相等,回到图形界面改掉。systeminfo里的“虚拟内存”是物理内存加页面文件的总和,单机装 ECC6.0 建议这个总数不低于 12G,否则 Oracle 建库阶段的 SGA 分配会比较勉强。
这里有个反直觉的点:页面文件不是越大越好。手册那台机器给了 D 盘,但没写具体数值,我给 8G 到 12G 之间就够。再大也不会被有效利用,反而在磁盘快满时挤占数据文件空间。
2.3 装完系统先别装别的:裁剪清单
手册里有一句很关键的提醒:装好操作系统后,先不要装其它辅助软件,以便留出更大的资源给 SAP 安装使用。这句话在 2009 年是经验,放到今天依然是血泪经验。
具体要做的几件事:关掉系统的自动更新(安装中途自动重启是最典型的翻车场景,SAPinst 跑到一半机器重启,整套流程得从头来);把电源方案改成“一直开着”,关掉休眠和待机;关掉屏幕保护;临时停掉杀毒软件的实时扫描,尤其是会扫描新建文件的那种,SAPinst 解包时要写几十万个文件,实时扫描能让三小时的安装拖到八小时;不要装浏览器工具栏、下载器这类常驻进程,它们占的内存不多,但会抢占磁盘队列。
另外,安装过程中不要在这台机器上同时做别的事情。手册作者特意买了一台性能相对较高的笔记本,为的就是即便开着 SAP 服务器也不影响工作,但那是装完之后的状态,安装期间这台机器应当被独占使用。我一般会在虚拟机里做这件事,提前打一个干净的系统快照,装崩了直接回滚,比在物理机上重装系统省事得多。
还有一点:主机名和计算机名要在装系统时就定下来,后面不要再改。ECC6.0 的安装过程会把主机名写进数据库实例名、监听配置和 SAP 的 profile 参数里,中途改名等于把所有配置作废。名字用纯英文、不含下划线和空格,长度控制在 13 个字符以内,这是老版本 SAP 的一个隐性约束,超长会在 SAPinst 建实例时报参数错误。
3. 网络与 Java 底座:Loopback 网卡、hosts 与 JAVA_HOME
3.1 Loopback 网卡解决的是哪一层问题
手册里把虚拟网卡这一节标成“不是很必须”,条件写得很清楚:如果你的机器每次启动都有外围网线相连,那就不必要。反过来理解就是:机器一旦断网,SAP GUI 连服务器就会失败,服务器状态灯会变成黄色。
根因在网络层。SAP GUI 连接 message server 靠的是 IP 地址,而单机安装的 SAP 系统同样要监听一个本机地址。机器插着网线、有 DHCP 分配的地址时,TCP/IP 协议栈有可用的接口,一切正常;拔掉网线或者网卡被禁用,接口消失,监听绑不上地址,GUI 自然连不上。Loopback Adapter 就是给系统装一块永远在线的虚拟网卡,让 TCP/IP 栈始终有一个固定的、不依赖外部网络的本机地址。
这条经验放到现在依然成立,只不过今天的做法通常是直接给物理网卡配一个静态 IP,或者用虚拟机自带的 host-only 网络。手册选择安装 Microsoft Loopback Adapter,好处是不占用物理网卡,机器该上网还上网,SAP 走虚拟网卡,互不干扰。
3.2 添加硬件向导的完整路径与 IP 参数
手册给的是 Windows Server 2003 的经典路径,一步步对照着点:
开始 → 控制面板 → 添加硬件 → 下一步 → 选“是,我已经连接了此硬件” → 下一步 → 拉到列表最底部选“添加新的硬件设备” → 下一步 → 选“手动从列表中选择要安装的硬件” → 下一步 → 选“网络适配器” → 下一步 → 厂商选 Microsoft → 网络适配器选 Microsoft Loopback Adapter → 下一步 → 完成。
装完之后回到:开始 → 控制面板 → 网络连接 → 右键“本地连接 2(Microsoft Loopback Adapter)” → 属性 → 选中“Internet 协议 (TCP/IP)” → 属性 → 填固定地址。手册里写的是 192.168.x.x,我给一组具体的、不容易和家里路由器冲突的值:
| 参数 | 值 | 说明 |
|---|---|---|
| IP 地址 | 192.168.10.10 | 避开 192.168.0.x 和 192.168.1.x 网段 |
| 子网掩码 | 255.255.255.0 | 与 IP 匹配 |
| 默认网关 | 留空 | 填了会把默认路由引到虚拟网卡上 |
| DNS 服务器 | 留空 | 避免解析走虚拟网卡导致上网变慢 |
默认网关这一项是关键,填了之后系统会认为所有外网流量都从这块虚拟网卡出去,结果就是 SAP 能连上但浏览器打不开网页。手册截图里没强调这一点,但配完 IP 后如果发现上不了网,先回来检查网关。
3.3 hosts、主机名与 Java 环境变量的一致性检查
网卡配好只是第一步,还要让主机名能解析到这个地址。编辑C:\WINDOWS\system32\drivers\etc\hosts,在末尾加一行:
# SAP 单机环境主机名映射,IP 与 Loopback 网卡一致 192.168.10.10 sapdemosapdemo换成你机器实际的计算机名。改完用三条命令验证,顺序不能乱:
:: 1. 看当前计算机名 hostname :: 2. 看网卡地址是否与 hosts 一致 ipconfig /all | findstr /C:"IPv4" /C:"物理地址" :: 3. 验证主机名能解析并且能通 ping sapdemoping的结果应该是 192.168.10.10 而且能通。如果解析到了别的地址,说明 hosts 里有多条记录,或者 DNS 缓存没清,用ipconfig /flushdns刷一下。这一步做不好,后面 SAP GUI 登录时看到的“partner not reached”就是这个原因,排查起来会绕很大一圈。
Java 环境这块,手册里的处理比较朴素:SAP 安装包里自带 Java 虚拟机 1.42,作者另外从官网下了 1.6,认为兼容性更好,装的时候把 JDK 和 JRE 装到 D 盘,然后新建JAVA_HOME环境变量指向 JRE 的安装路径。这里有个坑要说清楚:JDK 面向 C/S,JRE 面向 B/S,JAVA_HOME通常指向 JDK 根目录而不是 JRE 子目录,因为很多工具会去找%JAVA_HOME%\bin\javac。手册里把它指向 JRE,是因为当时只用来跑 Oracle 的安装向导和 SAPinst,不需要编译器。
我的做法是两个版本各装各的,互不影响:
:: 系统级设置 JAVA_HOME,指向 JDK 根目录 setx /M JAVA_HOME "D:\Java\jdk1.6.0_XX" /f :: PATH 追加 bin 目录(/M 表示系统变量,需要管理员权限) setx /M PATH "%PATH%;%JAVA_HOME%\bin" /f :: 验证:应输出 java version 1.6.x java -version要注意setx的/M会写系统变量,而且它不展开%PATH%里已有的变量,最好在设置前先把原 PATH 备份一份到文本文件。另一个细节是:SAPinst 自带独立的 JVM,不读系统的JAVA_HOME。所以临时把系统JAVA_HOME清空、或者指向别的版本,都不会影响 SAPinst 运行;但如果 Oracle 的安装向导起不来,第一个要查的就是系统JAVA_HOME是否指向了有效路径。把这两个概念分清,能少走很多弯路。
4. Oracle 10g 与补丁链:SID、字符集和监听
4.1 软件和数据库分两步装,比一把梭更稳
手册的流程是:打开 SAP ECC6.0 安装包,找到 Oracle setup 执行文件,双击,选“基本安装”和安装路径,系统自检,然后点“用户验证”,一路下一步装完。装完作者特别说明了一句:到这一步,Oracle 只是安装了一个框架,然后回到开始菜单,程序 → Oracle-OraDb10g_home → Oracle Installation Products → Universal Installer,再进去建库。
这个分两步的做法值得单独拿出来讲,因为很多人图省事,在安装向导里直接选“创建数据库”,结果建出来的库字符集不对,SAPinst 检查阶段直接报错,只能删库重来。软件和数据库分开装,好处是建库那一刻你可以完全控制字符集、SID、数据文件路径和内存参数,随时能回退。
建库前必须先确认两件事:Oracle 的监听服务已经起来了,以及oracle用户/系统账户的环境变量ORACLE_HOME、ORACLE_SID都指向了正确的位置。手册里没有展开这部分,但这是 Oracle 安装阶段翻车最多的地方。
:: 确认监听状态,应显示 READY lsnrctl status :: 确认当前 SID(Windows 下由注册表和服务名决定,可用 sqlplus 验证) sqlplus / as sysdba进入 sqlplus 后执行几条查询,把字符集和实例名确认下来,比事后靠猜强得多:
-- 查看数据库字符集与国家字符集,SAP 场景通常是 WE8DEC 或 UTF8 + AL16UTF16 SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); -- 确认实例名与状态 SELECT instance_name, status FROM v$instance;4.2 SID、字符集与密码:三个必须提前定的参数
这三个参数一旦定下来,后面想改就得重建整个库,所以要在装之前想清楚。
SID 是 Oracle 的实例标识,也是 SAP 系统标识的来源。SAP 的 SID 必须是三位,大写字母开头,比如ECP、SDB。Oracle 的 SID 可以和 SAP 的 SID 相同,也可以不同,单机学习环境我建议保持一致,配置文件和排错时少一层映射。
字符集是 SAP 安装检查的重点。ECC6.0 配 Oracle 10g 的常见做法是单语言环境用WE8DEC,多语言环境用UTF8,国家字符集统一用AL16UTF16。选错了会怎样?SAPinst 在“Create Database Instance”阶段会做一次字符集校验,不匹配就直接中断,前面装好的实例全部作废。所以建库向导走到字符集那一步时,手动选,不要用默认值。
密码这条手册写了一句“字母与数字混合”,写得太轻。实际上 SAPinst 对 master password 有硬性规则:至少 8 位,包含字母和数字,首字符为字母,不能包含!、"、`、$这类特殊字符。整套安装里 SAP 的 DDIC 用户、SAP* 用户、数据库管理员密码都可以用同一个 master password,省得记混。我的习惯是提前把密码写在纸上放在旁边,安装过程中要输入五六次,中途记错一次就得从头来。
4.3 补丁与 OraInventory:SAPinst 检查数据库版本时看什么
Oracle 10g 装完只是起点,SAPinst 在开始安装前会检查数据库的补丁级别,版本不够会在“Define Parameters”之后的检查阶段直接拦下来。手册把补丁包单独列成一个章节,原因就在这里。
补丁的做法是先停掉所有 Oracle 服务,再运行补丁集的安装程序,装完会更新oraInventory里的组件版本。oraInventory是 Oracle 的中央清单目录,记录这台机器上装过哪些 Oracle 产品、装在哪个路径、版本是多少。SAPinst 读的正是这份清单,所以补丁装完如果清单没更新,检查照样不过。
有个细节容易被忽略:oraInventory的默认位置在C:\Program Files\Oracle\Inventory,如果安装时改过路径,后面打补丁和装 SAP 时必须用同一个路径,否则会出现“检测到两个清单”之类的报错。我一般会在第一次安装时就把清单路径固定在 D 盘,并把oraInst.loc文件备份一份,出问题时能快速定位。
补丁打完,用一条命令确认版本:
:: 查看已安装的 Oracle 组件与版本,确认补丁已生效 opatch lsinventory输出的组件列表里应该能看到补丁集的版本号。这一步做完,Oracle 侧的地基就算打完了,可以开始 SAPinst。
5. 避坑排查:五条装到一半才暴露的问题
5.1 SAPinst 双击闪退,或者停在 extracting 不动
现象:双击sapinst.exe后窗口一闪而过,或者卡在解压阶段,进度条十几分钟不动。
原因通常有两个:一是安装包放在含中文或空格的路径下,SAPinst 解包时对路径字符处理有问题;二是从网络共享盘直接运行,解包过程需要大量本地 IO,网络盘延迟高会直接卡死。还有一种情况是系统JAVA_HOME指向了一个损坏的 JDK,SAPinst 启动脚本会去读它。
解决:把整个安装包拷到本地纯英文短路径,比如D:\ECC6\,不要有空格;右键以管理员身份运行;运行前临时把JAVA_HOME改名,让 SAPinst 用自己的 JVM。如果还不行,去C:\Program Files\sapinst_instdir下找最近一次运行的日志,开头几行会写明卡在哪一步。
5.2 Oracle 装完了,SAPinst 却说连不上数据库
现象:SAPinst 走到数据库连接测试,报连接失败,或者建库阶段报 ORA-12560(协议适配器错误)。
原因:监听服务没启动,或者监听配置里只监听了 IPv6 地址,或者tnsnames.ora里的主机名和实际计算机名对不上。装了 Loopback 网卡但没在listener.ora里绑定那个地址,也会出现这种情况。
解决:先lsnrctl status看监听是否 READY,不是就lsnrctl start;再看listener.ora里HOST写的是主机名还是 IP,统一改成 hosts 里配的那个主机名;最后用tnsping加服务名测一次连通性。如果监听正常但还是连不上,检查 Windows 防火墙是不是挡住了 1521 端口。
5.3 SAPinst 在 Create Database Instance 阶段长时间没进展
现象:进度条停在同一位置超过四十分钟,日志文件不再增长,任务管理器里磁盘占用 100% 但 CPU 很低。
原因:页面文件不够或者放在系统盘,Oracle 建库时要写大量临时文件,IO 被打满;也可能是杀毒软件在实时扫描新写入的 dbf 文件,把写入速度拖到极低。
解决:先看任务管理器的磁盘队列长度,超过 2 基本可以确定是 IO 瓶颈;临时关掉杀毒软件实时防护;确认页面文件在数据盘且是固定大小。如果确认是卡死而不是慢,不要强行结束进程,先看sapinst_dev.log最后一段停在哪条 SQL 上,记下来再决定是继续等还是回滚重装。
5.4 装完 SAP GUI 连不上,服务器状态灯是黄色
现象:SAP GUI 里配置好连接,点登录没反应,或者提示 partner not reached,连接列表里系统状态是黄色。
原因:主机名解析不对,或者 message server 端口不通。ECC6.0 的 message server 端口是 3600 加实例号,dispatcher 端口是 3200 加实例号,实例号 00 的话分别就是 3600 和 3200。装完后如果改过 IP 或主机名,这两个端口绑定的地址就失效了。
解决:先用ping 主机名确认解析到虚拟网卡的地址,再用telnet 主机名 3600测端口通不通。都正常还是连不上,去 SAP 的dev_ms日志里看 message server 实际监听在哪个地址上,通常是配置文件里的rdisp/msserv相关参数没跟着改。改完参数要重启 SAP 实例才生效。
5.5 机器重启后 SAP 起不来,要手工一个个点
现象:重启后 SAP GUI 连不上,进服务列表发现 Oracle 的服务和 SAP 的服务都是“手动”状态。
原因:安装时没有把服务设成自动启动,或者启动顺序不对。SAP 依赖 Oracle 的监听和实例服务,顺序反了会启动失败。
解决:在services.msc里把OracleService<SID>、OracleOraDb10g_homeTNSListener、SAPOSCOL、SAP_<SID>_<实例号>、sapstartsrv全部设为自动,并且给 SAP 的服务配置依赖关系,让它等 Oracle 的服务起来之后再启动。配置完重启验证一次,别等到下次用的时候才发现问题。
6. 装完之后:从 GUI 连上到语言包导入的验证顺序
装完不等于能用。我的习惯是装完当天不做任何配置改动,先把验证走一遍,确认这套系统是活的,再往下折腾。
第一步用 SAP GUI 以DDIC登录客户端000,进去先看四个事务码:SM51看应用服务器列表里有没有本机实例,状态是不是 Active;SM50看工作进程有没有被占满,正常应该是大部分 Wait 状态;ST22看 ABAP dump,刚装完如果有大量 dump 说明安装过程有阶段没走完;SM21看系统日志,重点找红色条目。四个都干净,再跑一次SICK,这是 SAP 自带的安装检查工具,它会把缺的组件、配置不一致的地方列出来。这套顺序走下来,比凭感觉点界面可靠得多。
语言包按手册的顺序是在系统装完之后单独导入,用的工具是SMLT。这里有个顺序问题:先导入语言包还是先做 Client Copy,取决于你要不要保留 000 客户端的干净状态。我的做法是先在 000 里导语言包,再用SCCL做客户端复制,把配置带到练习用的客户端。反过来做的话,复制出来的客户端还得再导一次语言包,白忙一场。
" SMLT 里导入语言包前后的关键检查:确认语言列表与补丁级别 " 事务码 SMLT -> 语言 -> 检查语言完整性 " 导入完成后用 SLAN 查看已安装语言,用 SE38 跑 RSCPINST 检查代码页快照这件事要提前做。虚拟机的话,装完 Oracle、装完 SAP、导完语言包各打一个快照,后面任何一步配错都能回滚到最近的干净状态,这是唯一的后悔药。物理机就老老实实做系统镜像,别指望能手工还原。
最后提一句合规:手册后半部分有涉及绕过授权校验的内容,那部分不要照做。学习环境用官方提供的评估授权或者正式许可,拿未授权的系统去做交付,后面出的问题不是技术能解决的。从那以后我每次装完一套练习环境,都会先把验证清单走一遍、把快照打上,再开始改任何配置。希望帮到你。
本文还有配套的精品资源,点击获取