FreeBSD 使用手册
上一页 | 第10章 　Linux二进制兼容模式 | 下一页

# 10.7 安装SAP® R/3®

Contributed by Holger Kipp. Original version converted to SGML by Valentino Vaschetto.

在FreeBSD上安装的SAP®系统不会被SAP 支持团队── 所支持——他们只支持某些特定的平台。

## 10.7.1 前言

这篇文章描述了在FreeBSD系统上安装一个带有Oracle® Database for Linux的SAP R/3® System，包括 FreeBSD的安装和Oracle的安装。 下面将描述两个不同的配置：

- 在FreeBSD 4.3-STABLE上安装带有Oracle 8.0.5 的SAP R/3 4.6B (IDES)。

- 在FreeBSD 4.5-STABLE上安装带有Oracle 8.1.7的 SAP R/3 4.6C。

虽然这篇文章深入地描述了许多重要的安装步骤，但它不能取代Oracle和 SAP R/3的安装指南。

请参考SAP R/3 Linux edition自带的文档和 Oracle的特殊问题。

## 10.7.2 软件

下面的CD-ROMs被用作SAP的安装：

### 10.7.2.1 SAP R/3 4.6B, Oracle® 8.0.5

名称 | 号码 | 描述
--- | --- | ---
KERNEL | 51009113 | SAP Kernel Oracle / Installation / AIX, Linux, Solaris
RDBMS | 51007558 | Oracle / RDBMS 8.0.5.X / Linux
EXPORT1 | 51010208 | IDES / DB-Export / Disc 1 of 6
EXPORT2 | 51010209 | IDES / DB-Export / Disc 2 of 6
EXPORT3 | 51010210 | IDES / DB-Export / Disc 3 of 6
EXPORT4 | 51010211 | IDES / DB-Export / Disc 4 of 6
EXPORT5 | 51010212 | IDES / DB-Export / Disc 5 of 6
EXPORT6 | 51010213 | IDES / DB-Export / Disc 6 of 6

此外，我们使用Oracle 8 Server （Linux版本的8.0.5预览版，Linux内核是2.0.33）和 FreeBSD 4.3-STABLE。

### 10.7.2.2 SAP R/3 4.6C SR2, Oracle 8.1.7

名称 | 号码 | 描述
--- | --- | ---
KERNEL | 51014004 | SAP Kernel Oracle / SAP Kernel Version 4.6D / DEC, Linux
RDBMS | 51012930 | Oracle 8.1.7/ RDBMS / Linux
EXPORT1 | 51013953 | Release 4.6C SR2 / Export / Disc 1 of 4
EXPORT1 | 51013953 | Release 4.6C SR2 / Export / Disc 2 of 4
EXPORT1 | 51013953 | Release 4.6C SR2 / Export / Disc 3 of 4
EXPORT1 | 51013953 | Release 4.6C SR2 / Export / Disc 4 of 4
LANG1 | 51013954 | Release 4.6C SR2 / Language / DE, EN, FR / Disc 1 of 3

依赖于您要安装的语言，可能需要额外的语言CDs。 这儿我们只使用DE和EN，所以只需要第一张语言CD。 还要注意的是所有EXPORT CDs的号码是一样的。 其他3张语言CDs的号码也一样（这和4.6B IDES release CD的号码不同）。

## 10.7.3 SAP Notes

安装使用SAP R/3之前，请先看看下面的注释：

### 10.7.3.1 SAP R/3 4.6B, Oracle 8.0.5

号码 | 标题
--- | ---
0171356 | SAP Software on Linux: Essential Comments
0201147 | INST: 4.6C R/3 Inst. on UNIX - Oracle
0373203 | Update / Migration Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX
0072984 | Release of Digital UNIX 4.0B for Oracle
0130581 | R3SETUP step DIPGNTAB terminates
0144978 | Your system has not been installed correctly
0162266 | Questions and tips for R3SETUP on Windows NT / W2K

### 10.7.3.2 SAP R/3 4.6C, Oracle 8.1.7

号码 | 标题
--- | ---
0015023 | Initializing table TCPDB (RSXP0004) (EBCDIC)
0045619 | R/3 with several languages or typefaces
0171356 | SAP Software on Linux: Essential Comments
0195603 | RedHat 6.1 Enterprise version: Known problems
0212876 | The new archiving tool SAPCAR
0300900 | Linux: Released DELL Hardware
0377187 | RedHat 6.2: important remarks
0387074 | INST: R/3 4.6C SR2 Installation on UNIX
0387077 | INST: R/3 4.6C SR2 Inst. on UNIX - Oracle
0387078 | SAP Software on UNIX: OS Dependencies 4.6C SR2

## 10.7.4 硬件要求

下面的设备配置对SAP R/3 System来说已经足够了。如果 用于生产用途，就需要更强的配置：

组件 | 4.6B | 4.6C
--- | --- | ---
处理器 | 2 x 800MHz Pentium® III | 2 x 800MHz Pentium III
内存 | 1GB ECC | 2GB ECC
Hard Disk Space | 50-60GB (IDES) | 50-60GB (IDES)

用于生产使用，就需要使用带大缓存的Xeon™处理器，和高速大容量磁盘（SCSI, RAID hardware controller），以及USV 和ECC-RAM内存。 配置IDES System前需要大量的硬盘空间，因为安装时将创建27 GB的数据库文件。 这些空间用于系统和数据的初始化也是足够的。

### 10.7.4.1 SAP R/3 4.6B, Oracle 8.0.5

对于这个安装，我的硬件配置如下：带2个800 MHz Pentium III处理器的主板， Adaptec® 29160 Ultra160 SCSI适配器（能够访问40/80 GB DLT磁带机和CDROM）， Mylex® AcceleRAID™ （2个通道， firmware 6.00-1-00 with 32 MB RAM）。 Mylex RAID controller被挂上2个17 GB（mirrored）硬盘和4个36 GB硬盘(RAID level 5)。

### 10.7.4.2 SAP R/3 4.6C, Oracle 8.1.7

对于这个安装，配置是Dell™ PowerEdge™ 2500，带2个1000 MHz Pentium III处理器的 主板（256 kB Cache）， 2 GB PC133 ECC SDRAM， PERC/3 DC PCI RAID Controller with 128 MB，和一个EIDE DVD-ROM驱动器。RAID controller被挂上2个18 GB硬盘（mirrored） 和4个36 GB硬盘（RAID level 5）。

## 10.7.5 安装FreeBSD

首先需要安装 FreeBSD。 有很多方法来完成这个工作。 要了解进一步的情况请参考 第 2.13 节。

### 10.7.5.1 磁盘划分

为了简单，对SAP R/3 46B和SAP R/3 46C SR2的安装使用相同的磁盘划分。只是设备名换了，因为是安装在不同的硬件上 (`/dev/da` 和 `/dev/amr`， 所以如果是使用AMI MegaRAID®，我们能看到 `/dev/amr0s1a` 代替了 `/dev/da0s1a`)：

文件系统 | 尺寸(1k-blocks) | 尺寸(GB) | 挂载点
--- | --- | --- | ---
`/dev/da0s1a` | 1.016.303 | 1 | `/`
`/dev/da0s1b` |  | 6 | swap
`/dev/da0s1e` | 2.032.623 | 2 | `/var`
`/dev/da0s1f` | 8.205.339 | 8 | `/usr`
`/dev/da1s1e` | 45.734.361 | 45 | `/compat/linux/oracle`
`/dev/da1s1f` | 2.032.623 | 2 | `/compat/linux/sapmnt`
`/dev/da1s1g` | 2.032.623 | 2 | `/compat/linux/usr/sap`

预先用Mylex 或PERC/3 RAID 软件配置和初始化这两个逻辑驱动器。 改变BIOS的引导顺序来启动软件。

请注意这里的磁盘划分和SAP推荐的是不一样的，SAP建议把 Oracle子目录（及其他子目录）分离开来， 我决定只简单的创建几个子目录。

### 10.7.5.2 `make world`和建立新内核

下载最新的-STABLE源代码，配置完内核配置文件后重建系统和新内核。 这儿当然要包括 SAP R/3 和Oracle需要的内核参数。

## 10.7.6 安装Linux环境

### 10.7.6.1 安装Linux基本系统

首先linux_base port需要安装（以`root`身份）：

    # cd /usr/ports/emulators/linux_base-fc4
    # make install distclean

### 10.7.6.2 安装Linux开发环境

如果您想根据第 10.6 节在FreeBSD上安装 Oracle ：

    # cd /usr/ports/devel/linux_devtools
    # make install distclean

Linux开发环境只是安装给SAP R/3 46B IDES的，如果Oracle DB不是在这个 FreeBSD系统上重新链接，它就不需要了。

### 10.7.6.3 安装必需的RPMs

为了启动`R3SETUP`程序， PAM支持是必需的。 第一次安装SAP到FreeBSD 4.3-STABLE时我们先安装了 PAM的所有依赖包再安装PAM包，它可以工作。对于SAP R/3 4.6C SR2我们 直接安装PAM RPM也可以工作，所以依赖包不是必需的：

    # rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
    pam-0.68-7.i386.rpm

要让Oracle 8.0.5运行智能代理， 我们需要安装RedHat Tcl包`tcl-8.0.5-30.i386.rpm` （否则重新链接Oracle不能工作）。 重新链接Oracle时还有其他要注意的地方， 但那是Oracle Linux的问题，不是FreeBSD的问题。

### 10.7.6.4 其它一些注意的地方

添加 `linprocfs` 到 `/etc/fstab` 是个好主意。 要了解进一步的细节， 请参考 linprocfs(5) 联机手册。 另一个是设置 `kern.fallback_elf_brand=3`， 这可以通过 `/etc/sysctl.conf` 文件来完成。

## 10.7.7 创建SAP R/3环境

### 10.7.7.1 创建必需的文件系统和挂载点

对简单的安装，创建下面的文件系统就够了：

mount point | size in GB
--- | ---
`/compat/linux/oracle` | 45 GB
`/compat/linux/sapmnt` | 2 GB
`/compat/linux/usr/sap` | 2 GB

创建一些链接也是必要的，否则SAP安装程序在检查创建的链接时 会报错：

    # ln -s /compat/linux/oracle /oracle
    # ln -s /compat/linux/sapmnt /sapmnt
    # ln -s /compat/linux/usr/sap /usr/sap

安装时可能出现的错误（对于PRD系统和SAP R/3 4.6C SR2 的安装）：

    INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
        Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
        /sapmnt/PRD/exe. Creating if it does not exist...

    WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
        Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
        /compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
        program cannot go on as long as this link exists at this
        location. Move the link to another location.

    ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
        can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
        '/sapmnt/PRD/exe'

### 10.7.7.2 创建用户和目录

SAP R/3需要两个用户和3个组。 用户名依赖于包含3个字母的SAP系统ID（SID）。一些SIDs 被SAP保留（例如`SAP`和`NIX`）。 完成的列表参考SAP文档。对于IDES的安装，我们使用`IDS`， 对于4.6C SR2安装，使用`PRD`。 这样我们定义了下面的几个组：

组ID | 组名 | 描述
--- | --- | ---
100 | dba | Data Base Administrator
101 | sapsys | SAP System
102 | oper | Data Base Operator

对于默认的Oracle安装，只有`dba`组被使用。 和`oper`组一样，我们也可以使用`dba`组 （更详细的信息参考Oracle和 SAP文档）。

我们也需要下面的用户

用户ID | 用户名 | 普通名称 | 组 | 附加组 | 描述
--- | --- | --- | --- | --- | ---
1000 | idsadm/prdadm | `sid`adm | sapsys | oper | SAP Administrator
1002 | oraids/oraprd | ora`sid` | dba | oper | Oracle Administrator

使用adduser(8)添加用户要求“SAP Administrator”有下面的记录 （请注意shell和home目录）：

    Name: sidadm
    Password: ******
    Fullname: SAP Administrator SID
    Uid: 1000
    Gid: 101 (sapsys)
    Class:
    Groups: sapsys dba
    HOME: /home/sidadm
    Shell: bash  (/compat/linux/bin/bash)

对于“Oracle Administrator”:

    Name: orasid
    Password: ******
    Fullname: Oracle Administrator SID
    Uid: 1002
    Gid: 100 (dba)
    Class:
    Groups: dba
    HOME: /oracle/sid
    Shell: bash  (/compat/linux/bin/bash)

在您使用组`dba`和`oper`的情况下您也应该包括 `oper`。

### 10.7.7.3 创建目录

这些目录通常建立在不同的文件系统上。这完全依赖于您的需求。 我们选择把它们建立在同一个目录：

首先我们将设置一些目录的所有者和权限（以`root`身份设置）：

    # chmod 775 /oracle
    # chmod 777 /sapmnt
    # chown root:dba /oracle
    # chown sidadm:sapsys /compat/linux/usr/sap
    # chmod 775 /compat/linux/usr/sap

然后我们以`ora`sid``身份创建目录， 这些目录将成为`/oracle/`SID``的子目录：

    # su - orasid
    # cd /oracle/SID
    # mkdir mirrlogA mirrlogB origlogA origlogB
    # mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
    # mkdir saparch sapreorg
    # exit

对于Oracle 8.1.7的安装，需要一些额外的目录：

    # su - orasid
    # cd /oracle
    # mkdir 805_32
    # mkdir client stage
    # mkdir client/80x_32
    # mkdir stage/817_32
    # cd /oracle/SID
    # mkdir 817_32

> 注意: 目录`client/80x_32`必须是这个名字，不要用其他数字或字母来替换x。

第三步我们要以``sid`adm`身份创建目录：

    # su - sidadm
    # cd /usr/sap
    # mkdir SID
    # mkdir trans
    # exit

### 10.7.7.4 `/etc/services`中的条目

SAP R/3在`/etc/services`里面需要一些条目， 这些不会在安装过程中被正确设置，请添加下面的条目：

    sapdp00    3200/tcp # SAP Dispatcher.      3200 + Instance-Number
    sapgw00  3300/tcp # SAP Gateway.         3300 + Instance-Number
    sapsp00  3400/tcp #                      3400 + Instance-Number
    sapms00  3500/tcp #                      3500 + Instance-Number
    sapmsSID 3600/tcp # SAP Message Server.  3600 + Instance-Number
    sapgw00s   4800/tcp # SAP Secure Gateway   4800 + Instance-Number

### 10.7.7.5 必要的本地化

SAP至少要求两个本地化设置，它不是RedHat的默认安装。 SAP提供从他们的FTP服务器下载必需的RPMs（只有您是OSS的客户才能访问）。 看注解0171356查找您需要的RPMs列表。

也可以只创建适当的链接（例如从de_DE到en_US）， 但是我们不推荐在生产系统上这样做（尽管它让IDES system工作的没有一点问题）。 下面的本地化设置是必需的：

    de_DE.ISO-8859-1
    en_US.ISO-8859-1

像这样创建链接

    # cd /compat/linux/usr/share/locale
    # ln -s de_DE de_DE.ISO-8859-1
    # ln -s en_US en_US.ISO-8859-1

如果他们不出现，在安装时可能会有问题。如果忽略这些问题（通过设置`CENTRDB.R3S`文件 里面的`STATUS`为`OK`），不费一番周折， 您就别想登录进SAP系统。

### 10.7.7.6 内核调整

SAP R/3 需要许多资源。我因此添加了下面的参数在我的内核配置文件中：

    # Set these for memory pigs (SAP and Oracle):
    options MAXDSIZ="(1024*1024*1024)"
    options DFLDSIZ="(1024*1024*1024)"
    # System V options needed.
    options SYSVSHM #SYSV-style shared memory
    options SHMMAXPGS=262144 #max amount of shared mem. pages
    #options SHMMAXPGS=393216 #use this for the 46C inst.parameters
    options SHMMNI=256 #max number of shared memory ident if.
    options SHMSEG=100 #max shared mem.segs per process
    options SYSVMSG #SYSV-style message queues
    options MSGSEG=32767 #max num. of mes.segments in system
    options MSGSSZ=32 #size of msg-seg. MUST be power of 2
    options MSGMNB=65535 #max char. per message queue
    options MSGTQL=2046 #max amount of msgs in system
    options SYSVSEM #SYSV-style semaphores
    options SEMMNU=256 #number of semaphore UNDO structures
    options SEMMNS=1024 #number of semaphores in system
    options SEMMNI=520 #number of semaphore identifiers
    options SEMUME=100       #number of UNDO keys

这篇文档中指定的最小值是来自SAP。 没有针对Linux的描述， 看看HP-UX的相关介绍了解更多信息。 安装4.6C SR2需要更多的内存， 共享内存比 SAP 和 Oracle 需要的还多， 所以尽量为共享内存选一个大值。

> 注意: 在 i386™ 上 的 FreeBSD 默认配置中， 应将 `MAXDSIZ` 和 `DFLDSIZ` 设置为 1 GB。否则， 会出现类似 “`ORA-27102: out of memory`”和 “`Linux Error: 12: Cannot allocate memory`” 这样的奇怪的错误。

## 10.7.8 安装SAP R/3

### 10.7.8.1 准备SAP CDROMs

在安装过程中，有许多 CDROM 要被挂上和卸下。建议您有多个CDROM驱动器， 您可以把它们都挂上。我决定复制 CDROM 的内容到相应的目录：

    /oracle/SID/sapreorg/cd-name

对于4.6B/IDES的安装，`cd-name`是`KERNEL`， `RDBMS`， `EXPORT1`， `EXPORT2`，`EXPORT3`, `EXPORT4`, `EXPORT5` 和 `EXPORT6`中的一个，对于4.6C SR2的安装，是 `KERNEL`， `RDBMS`， `DISK1`，`DISK2`， `DISK3`，`DISK4`和 `LANG`中的一个。 所有挂载上的CDs里面的文件名都应该是大写， 否则要用`-g`选项来挂载。所以使用下面的命令：

    # mount_cd9660 -g /dev/cd0a /mnt
    # cp -R /mnt/* /oracle/SID/sapreorg/cd-name
    # umount /mnt

### 10.7.8.2 运行安装脚本

首先您需要准备一个`install`目录：

    # cd /oracle/SID/sapreorg
    # mkdir install
    # cd install

然后运行安装脚本，他会复制所有相关的文件到`install`目录：

    # /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH

由于这是一个完全定制化的SAP R/3演示系统的IDES安装（4.6B）， 我们有6个而不仅仅是3个EXPORT CDs。 基于这点，安装模板`CENTRDB.R3S`是用来安装一个标准的中央环境 （R/3和数据库），而不是IDES中央环境， 所以从`EXPORT1`目录复制相应的`CENTRDB.R3S`， 否则`R3SETUP`只要求3个EXPORT CDs。

新的SAP 4.6C SR2发行版带有4张EXPORT CDs。 控制安装步骤的参数文件是`CENTRAL.R3S`。 和早期发行版不同，它没有分开的中央环境的安装模板。

安装完后，使用`hostname`命令得到SAP需要的主机名， 不需要完整的域名。 所以为`ora`sid``和 ``sid`adm` 直接设置主机名，或设置别名`alias hostname='hostname -s'`。 可以在`.profile`和`.login`里面为这两个用户设置。

### 10.7.8.3 启动`R3SETUP` 4.6B

确定`LD_LIBRARY_PATH`设置正确：

    # export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib

从安装目录以`root`身份启动`R3SETUP`：

    # cd /oracle/IDS/sapreorg/install
    # ./R3SETUP -f CENTRDB.R3S

这个脚本会问一些问题（括号里面是缺省值，后面是实际输入）：

问题 | 缺省值 | 输入
--- | --- | ---
Enter SAP System ID | [C11] | IDSEnter
Enter SAP Instance Number | [00] | Enter
Enter SAPMOUNT Directory | [/sapmnt] | Enter
Enter name of SAP central host | [troubadix.domain.de] | Enter
Enter name of SAP db host | [troubadix] | Enter
Select character set | [1] (WE8DEC) | Enter
Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 |  | 1Enter
Extract Oracle Client archive | [1] (Yes, extract) | Enter
Enter path to KERNEL CD | [/sapcd] | /oracle/IDS/sapreorg/KERNEL
Enter path to RDBMS CD | [/sapcd] | /oracle/IDS/sapreorg/RDBMS
Enter path to EXPORT1 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT1
Directory to copy EXPORT1 CD | [/oracle/IDS/sapreorg/CD4_DIR] | Enter
Enter path to EXPORT2 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT2
Directory to copy EXPORT2 CD | [/oracle/IDS/sapreorg/CD5_DIR] | Enter
Enter path to EXPORT3 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT3
Directory to copy EXPORT3 CD | [/oracle/IDS/sapreorg/CD6_DIR] | Enter
Enter path to EXPORT4 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT4
Directory to copy EXPORT4 CD | [/oracle/IDS/sapreorg/CD7_DIR] | Enter
Enter path to EXPORT5 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT5
Directory to copy EXPORT5 CD | [/oracle/IDS/sapreorg/CD8_DIR] | Enter
Enter path to EXPORT6 CD | [/sapcd] | /oracle/IDS/sapreorg/EXPORT6
Directory to copy EXPORT6 CD | [/oracle/IDS/sapreorg/CD9_DIR] | Enter
Enter amount of RAM for SAP + DB |  | 850Enter (in Megabytes)
Service Entry Message Server | [3600] | Enter
Enter Group-ID of sapsys | [101] | Enter
Enter Group-ID of oper | [102] | Enter
Enter Group-ID of dba | [100] | Enter
Enter User-ID of `sid`adm | [1000] | Enter
Enter User-ID of ora`sid` | [1002] | Enter
Number of parallel procs | [2] | Enter

如果没有把CD复制到不同的位置，那么SAP安装程序就不能 找到需要的CD（通过CD上的`LABEL.ASC`来辨别）， 它会要求您挂上CD，或键入加载路径。

`CENTRDB.R3S`不可能是自由出错的， 它再次请求EXPORT4 CD，但是正确的值是6_LOCATI ON，然后7_LOCATION 等，所以您可以键入正确的值。

处理下面提到的问题，一样东西都要直接通过Oracle数据库软件安装的地方。

### 10.7.8.4 Start `R3SETUP` 4.6C SR2

确定`LD_LIBRARY_PATH`设置正确。 这和带Oracle 8.0.5的4.6B的安装是不同的：

    # export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib

以`root`身份从安装目录启动`R3SETUP` ：

    # cd /oracle/PRD/sapreorg/install
    # ./R3SETUP -f CENTRAL.R3S

这个脚本会问一些问题（括号里面是缺省值，后面是实际输入）：

问题 | 缺省值 | 输入
--- | --- | ---
Enter SAP System ID | [C11] | PRDEnter
Enter SAP Instance Number | [00] | Enter
Enter SAPMOUNT Directory | [/sapmnt] | Enter
Enter name of SAP central host | [majestix] | Enter
Enter Database System ID | [PRD] | PRDEnter
Enter name of SAP db host | [majestix] | Enter
Select character set | [1] (WE8DEC) | Enter
Enter Oracle server version (2) Oracle 8.1.7 |  | 2Enter
Extract Oracle Client archive | [1] (Yes, extract) | Enter
Enter path to KERNEL CD | [/sapcd] | /oracle/PRD/sapreorg/KERNEL
Enter amount of RAM for SAP + DB | 2044 | 1800Enter (in Megabytes)
Service Entry Message Server | [3600] | Enter
Enter Group-ID of sapsys | [100] | Enter
Enter Group-ID of oper | [101] | Enter
Enter Group-ID of dba | [102] | Enter
Enter User-ID of `oraprd` | [1002] | Enter
Enter User-ID of `prdadm` | [1000] | Enter
LDAP support |  | 3Enter (no support)
Installation step completed | [1] (continue) | Enter
Choose installation service | [1] (DB inst,file) | Enter

到目前为止， 安装阶段只在创建用户时给出了一个错误OSUSERDBSID_IND_ORA（创建 用户`ora`sid``）和 OSUSERSIDADM_IND_ORA（创建用户``sid`adm`）。

处理下面提到的问题，一样东西都要直接通过Oracle数据库软件安装的地方。

## 10.7.9 安装Oracle 8.0.5

请看相应的SAP注释和 Oracle的关于Linux的`Readme` 以及Oracle DB可能出现的问题。不是所有的问题都和不兼容库有关。

关于Oracle更多的安装信息，请参考安装Oracle。

### 10.7.9.1 用`orainst`安装Oracle 8.0.5

如果Oracle 8.0.5要被使用，一些其他的库需要被成功地重新链接， 因为Oracle 8.0.5是与一个老的glibc连接的（Redhat 6.0）， 但RedHat 6.1已经使用了一个新的glibc。所以您必须安装下面额外的软件包来保证链接正常：

- `compat-libs-5.2-2.i386.rpm`

- `compat-glibc-5.2-2.0.7.2.i386.rpm`

- `compat-egcs-5.2-1.0.3a.1.i386.rpm`

- `compat-egcs-c++-5.2-1.0.3a.1.i386.rpm`

- `compat-binutils-5.2-2.9.1.0.23.1.i386.rpm`

更多的信息，看相应的SAP注释和Oracle的`Readme`。 如果这不是选项，您可以使用最初的程序，或使用与最初的Redhat系统重链接的程序。

要编译智能代理，必须安装RedHat Tcl包。如果您不能得到 `tcl-8.0.3-20.i386.rpm`，一个更新的 `tcl-8.0.5-30.i386.rpm`也可以用。

除了重新链接，安装是直截了当的：

    # su - oraids
    # export TERM=xterm
    # export ORACLE_TERM=xterm
    # export ORACLE_HOME=/oracle/IDS
    # cd $ORACLE_HOME/orainst_sap
    # ./orainst

用Enter来确认所有的屏幕直到安装完成，除了您必须取消 Oracle On-Line Text Viewer选项，因为当前Linux下不可用。 Oracle会要求用`i386-glibc20-linux-gcc`重新链接来 代替`gcc`，`egcs`或者`i386-redhat-linux-gcc` 。

由于时间紧迫，我决定使用Oracle 8.0.5 PreProduction版本。

### 10.7.9.2 安装Oracle 8.0.5 Pre-production Release for Linux （Kernel 2.0.33）

个安装很容易。挂上CD，启动安装程序。它就会要求Oraclehome目录的定位， 然后复制那里所有的程序。我不删除先前安装的RDBMS。

然后，Oracle数据库就可以毫无问题地运行了。

## 10.7.10 安装Oracle 8.1.7 Linux压缩包

把 `oracle81732.tgz` 复制到您要安装的目录， 然后解压到`/oracle/`SID`/817_32/`。

## 10.7.11 继续SAP R/3安装

首先检查用户`idsamd` (`sid`adm)和 `oraids`(ora`sid`)的环境变量。 他们现在都有使用主机名的`.profile`，`.login` 和`.cshrc`文件。在这个例子中，系统的主机名是没有限制的名称， 您必须在所有三个文件中改变hostname为hostname -s。

### 10.7.11.1 加载数据库

然后，可以重新启动或继续`R3SETUP`。 `R3SETUP`就使用`R3load` 创建表空间加载数据（对46B IDES，从EXPORT1到EXPORT6，对46C从DISK1到DISK4）。

数据加载完后（可能需要一些时间），需要创建一些口令。对于测试安装，可以使用缺省口令：

问题 | 输入
--- | ---
Enter Password for sapr3 | sapEnter
Confirum Password for sapr3 | sapEnter
Enter Password for sys | change_on_installEnter
Confirm Password for sys | change_on_installEnter
Enter Password for system | managerEnter
Confirm Password for system | managerEnter

到目前为止，我们只在安装4.6B的过程中`dipgntab`出现了几个问题。

### 10.7.11.2 监听

像下面这样用`ora`sid``用户启动 Oracle：

    % umask 0; lsnrctl start

另外您可能得到ORA-12546错误，因为sockets没有正确的权限。 看SAP注释072984。

### 10.7.11.3 更新MNLS表

如果您打算倒入non-Latin-1 languages到SAP系统， 您必须更新表的多语言支持。这在SAP OSS注释15023和45619有描述。否则， 您可以在安装SAP的时候忽略这个问题。

> 注意: 如果您不需要MNLS，还是需要检查表TCPDB和初始化工作是否做了。 更多信息参考SAP注释0015023和0045619。

## 10.7.12 快速安装步骤

### 10.7.12.1 需要SAP R/3许可密钥

您不得不要SAP R/3许可密钥。这是必需的， 因为临时许可只能用4个星期。 首先得到硬件的密匙。以用`idsadm`登入， 然后调用`saplicense`：

    # /sapmnt/IDS/exe/saplicense -get

不带参数调用`saplicense`会给出一系列选项。 要安装上面的许可密钥，可以这样：

    # /sapmnt/IDS/exe/saplicense -install

您要输入下面的值：

    SAP SYSTEM ID   = SID, 3 chars
    CUSTOMER KEY    = hardware key, 11 chars
    INSTALLATION NO = installation, 10 digits
    EXPIRATION DATE = yyyymmdd, usually "99991231"
    LICENSE KEY     = license key, 24 chars

### 10.7.12.2 创建用户

在客户机000中创建一个用户（有些工作需用客户机000来完成，但与用户`sap*`和 `ddic`有些不同）。 作为一个用户名，我通常选择`wartung` （或英语中的`service`）。 配置文件需要`sap_new`和 `sap_all`。对于额外的安全的默认用户口令应当被改变（这包括用户`sap*`和 `ddic`）。

### 10.7.12.3 配置传送系统，配置，操作模式等

在客户端000，用户不同于`ddic`和`sap*`，做下面的工作：

任务 | 处理
--- | ---
Configure Transport System, e.g. as Stand-Alone Transport Domain Entity | STMS
Create / Edit Profile for System | RZ10
Maintain Operation Modes and Instances | RZ04

些和所有其他的快速安装步骤在SAP安装指南里面有描述。

### 10.7.12.4 编辑`init`sid`.sap`（`initIDS.sap`）

文件`/oracle/IDS/dbs/initIDS.sap` 包含了SAP备份配置。 这儿是使用的磁带机的大小，压缩的类型。要使用`sapdba` / `brbackup`来得到这些。 我们可以改变下面的值：

    compress = hardware
    archive_function = copy_delete_save
    cpio_flags = "-ov --format=newc --block-size=128 --quiet"
    cpio_in_flags = "-iuv --block-size=128 --quiet"
    tape_size = 38000M
    tape_address = /dev/nsa0
    tape_address_rew = /dev/sa0

解释

`compress`：我使用的磁带机是HP DLT1，它支持硬件压缩。

`archive_function`： 这个定义了保存Oracle文件日志的默认行为：新的日志文件被保存到磁带机上， 保存的日志文件会被再次保存然后再删除。如果您需要恢复数据库， 而其中一个磁带机已经损坏了，这可以防止出现麻烦。

`cpio_flags`：缺省使用`-B`来设置块大小为 5120 Bytes。对于DLT-Tapes，HP建议至少32 K，所以我们使用`--block-size=128` 设置64 K。 `--format=newc`是必需的，因为我的inode数目超过了65535。 最后一个选项`--quiet`是必需的，否则`brbackup`会在用 `cpio`来输出的时候报错。

`cpio_in_flags`： 这个标志从磁带机加载回数据。格式是自动验证的。

`tape_size`: 通常给出了磁带机的存储容量。出于安全原因，这个值要比实际的值要小一些。

`tape_address`：被`cpio`使用的非rewindable的设备。

`tape_address_rew`：被`cpio`使用的非rewindable的设备。

### 10.7.12.5 安装后的配置

下面的SAP参数应该在安装以后调整（例子是IDES 46B, 1 GB内存）：

名称 | 值
--- | ---
ztta/roll_extension | 250000000
abap/heap_area_dia | 300000000
abap/heap_area_nondia | 400000000
em/initial_size_MB | 256
em/blocksize_kB | 1024
ipc/shm_psize_40 | 70000000

SAP注释0013026：

名称 | 值
--- | ---
ztta/dynpro_area | 2500000

SAP注释0157246：

Name | Value
--- | ---
rdisp/ROLL_MAXFS | 16000
rdisp/PG_MAXFS | 30000

> 注意: 根据上面的参数，在使用1 GB内存的系统上，可以像下面这样找到内存消耗：

>     Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free

## 10.7.13 安装过程出现的问题

### 10.7.13.1 修复一个问题后重起`R3SETUP`

如果出现问题`R3SETUP`会停止。如果您找到相关的日志文件并修复了问题。 您需要再次重起`R3SETUP`，对于`R3SETUP`报的最后一个错误可以使用 REPEAT选项。

要重起`R3SETUP`，只要使用相应的`R3S`文件重起：

    # ./R3SETUP -f CENTRDB.R3S

for 4.6B, or with

    # ./R3SETUP -f CENTRAL.R3S

对4.6C，不管有没有错误都使用`CENTRAL.R3S`或 `DATABASE.R3S`。

> 注意: 在某些阶段，`R3SETUP`假设database和SAP 进程都启动了。但是如果发生错误使得database没有启动，您就必须手动启动database和SAP。 修复错误后，还需要再次重起`R3SETUP`。

> 也不要忘记再次重起Oracle监听。

### 10.7.13.2 OSUSERSIDADM_IND_ORA during `R3SETUP`

如果在这阶段`R3SETUP`报错,编辑`R3SETUP`使用的模板文件 （`CENTRDB.R3S` (4.6B)或者`CENTRAL.R3S`或者`DATABASER3S` (4.6C)）。定位到`[OSUSERSIDADM_IND_ORA]`或者搜索`STATUS=ERROR`条目 然后像下面这样编辑它：

    HOME=/home/sidadm (was empty)
    STATUS=OK (had status ERROR)

然后重起`R3SETUP`。

### 10.7.13.3 OSUSERDBSID_IND_ORA during `R3SETUP`

`R3SETUP`也可能在这个阶段报错。修正方法和上面的OSUSERSIDADM_IND_ORA一样。 编辑下面的值：

    STATUS=OK

重起`R3SETUP`。

### 10.7.13.4 Oracle安装找不到“`oraview.vrf文件`”

开始安装之前没有取消Oracle On-Line Text Viewer 既然这个选项当前没有用于Linux，这在安装时是需要标记的，在Oracle 安装中取消它，然后重新安装。

### 10.7.13.5 “`TEXTENV_INVALID`” during `R3SETUP`, RFC or SAPgui Start

如果这个错误还出现，正确的本地化可能已经丢了。 SAP注释0171356列出了必须的RPMs （比如`saplocales-1.0-3`, `saposcheck-1.0-1` for RedHat 6.1）。 在这个例子中，您忽略了所有相关的错误， `STATUS`从`ERROR`到`OK`然后重起 `R3SETUP`。SAP系统不会被正确地配置， 您就不能用一个SAPgui连接到系统。 设法使用一个旧的Linux sapgui连接会得到下面的信息：

    Sat May 5 14:23:14 2001
    *** ERROR => no valid userarea given [trgmsgo. 0401]
    Sat May 5 14:23:22 2001
    *** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
    *** ERROR => Error when generating text environment. [trgmsgi. 0435]
    *** ERROR => function failed [trgmsgi. 0447]
    *** ERROR => no socket operation allowed [trxio.c 3363]
    Speicherzugriffsfehler

这个问题归咎于SAP R/3不能正确地本地化，也不能自己正确地配置。 要能够连接到SAP, 需要在 `DEFAULT.PFL`（看注释0043288） 文件中添加下面的记录：

    abap/set_etct_env_at_new_mode = 0
    install/collate/active = 0
    rscp/TCP0B = TCP0B

重起SAP系统。现在，您可以连接到系统， 即使您指定的国家语言不能正常工作。设置完国家后，这些记录会从`DEFAULT.PFL`文件 删除。然后重新启动SAP系统。

### 10.7.13.6 ORA-00001

这个错误只会在FreeBSD 4.5上安装Oracle 8.1.7 的时候出现。因为Oracledatabase不能自己正确初始化。 在系统上保留semaphores和shared memory。 然后再次启动数据库会出现ORA-00001错误。

用`ipcs -a`找到再用`ipcrm`去掉。

### 10.7.13.7 ORA-00445 （后台进程PMON没有启动）

这个错误发生在Oracle 8.1.7上。 如果没有用`prdadm`用户启动`startsap`脚本 （例如`startsap_majestix_00`）会报这个错误。

一种可能的解决方法是用`oraprd`用户使用`svrmgrl`：

    % svrmgrl
    SVRMGR> connect internal;
    SVRMGR> startup;
    SVRMGR> exit

### 10.7.13.8 ORA-12546（用正确的权限启动监听）

以`oraids`用户启动Oracle监听：

    # umask 0; lsnrctl start

如果您得到ORA-12546错误，没有权限连接到sockets。 请看SAP注释0072984。

### 10.7.13.9 ORA-27102 (Out of Memory)

这个错误发生在使用`MAXDSIZ`和`DFLDSIZ`大于 1 GB（1024x1024x1024）。 我们一般得到错误“`Linux Error 12: Cannot allocate memory`”。

### 10.7.13.10 [DIPGNTAB_IND_IND] during `R3SETUP`

基本上， 参见 SAP 注释 0130581 (`R3SETUP` 步骤中的 `DIPGNTAB` 终止)。 在 IDES-专用安装的时候， 因为某些原因安装过程没有使用正确的 SAP 系统名 “IDS”， 而是用空串 `""`代替。 这会导致一些访问目录的小问题， 因为路径是动态使用 `SID`来创建的 (这里是IDS)。 所以用下面的方法代替：

    /usr/sap/IDS/SYS/...
    /usr/sap/IDS/DVMGS00

下面的路径被使用

    /usr/sap//SYS/...
    /usr/sap/D00

为了继续安装，我们创建了一个附加的目录：

    # pwd
    /compat/linux/usr/sap
    # ls -l
    total 4
    drwxr-xr-x 3  idsadm sapsys 512 May 5 11:20 D00
    drwxr-x--x 5  idsadm sapsys 512 May 5 11:35 IDS
    lrwxr-xr-x 1  root   sapsys 7 May 5 11:35 SYS -> IDS/SYS
    drwxrwxr-x 2  idsadm sapsys 512 May 5 13:00 tmp
    drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans

我们也发现在SAP注释（0029227和0008401）里面描述了这个行为。 我们没有在SAP 4.6C安装里面遭遇这些问题。

### 10.7.13.11 [RFCRSWBOINI_IND_IND] during `R3SETUP`

安装SAP 4.6C时，这个错误是前面发生过的一个错误的 结果。所以，您不得不查看相应的日志文件并修复错误。

如果查看完日志文件后这个错误确实存在（看SAP注释），您可以设置`STATUS` 从`ERROR`到`OK`（`CENTRDB.R3S`文件里面） 然后重起`R3SETUP`。安装完后，您必须从事务SE38执行 `RSWBOINS`。关于`RFCRSWBOINI`和`RFCRADDBDIF`的更多信息 查看SAP注释0162266。

### 10.7.13.12 [RFCRADDBDIF_IND_IND] during `R3SETUP`

通过查看日志文件确定这个错误，它不是由于前面的问题导致的。

如果您确定已经应用了SAP注释0162266，就只要设置 `STATUS`从`ERROR`到`OK` （`CENTRDB.R3S`文件里面）。然后重起`R3SETUP`。 安装完后，您必须从事务SE38执行`RADDBDIF`。

### 10.7.13.13 sigaction sig31: File size limit exceeded

这个错误在启动SAP进程disp+work时出现。 如果用`startsap`脚本启动SAP， 就会启动子进程，并由它启动后面所有的其他SAP进程。 所以脚本本身不会注意到有错误发生。

为了检查SAP进程是否正确启动，可以用 `ps ax | grep `SID``查看进程的状态。 您会得到所有Oracle和SAP进程列表。 如果看起来有些进程没有启动，或者您不能正确连接到SAP系统。 查看相应的日志文件，可以在 `/usr/sap/`SID`/DVEBMGS`nr`/work/` 下找到， 一般查看 `dev_ms` 和 `dev_disp` 文件。

如果Oracle和SAP的共享内存总量超过了 内核配置文件定义的大小就会出现signal 31错误，并且不能解析大的内存地址：

    # larger value for 46C production systems:
    options SHMMAXPGS=393216
    # smaller value sufficient for 46B:
    #options SHMMAXPGS=262144

### 10.7.13.14 启动`saposcol`失败

使用`saposcol` (version 4.6D)会出现一些问题。 SAP系统使用`saposcol`收集系统性能数据。 这个程序不是必需的。所以这些问题可以看作是小问题。 老版本（4.6B）可以工作，但是不能收集所有的性能数据（很多调用只返回0，像CPU使用率）。

上一页 | 起始页 | 下一页
安装Oracle® | 上一级 | 高级主题

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.