分类: Oracle
2008-04-21 18:48:53
如果完成了以上步骤,您应该具备 Oracle 10g 所需的所有程序包和更新。您可以执行以下步骤验证您的安装。
所需内核版本:2.4.21-138(或更高版本)
通过运行以下命令检查内核版本:
uname -r 例如: # uname -r k_smp-2.4.21-138其他所需程序包的版本(或更高版本):
rpm -q gcc make binutils openmotif 例如: # rpm rpm -q gcc make binutils openmotif gcc-3.2.2-38 make-3.79.1-407 binutils-2.12.90.0.15-50 openmotif-2.2.2-124如果系统上缺少任何程序包版本,或版本比以上指定的版本旧,则可以从 SUSE Linux Portal下载和安装更新。
第 2 部分:针对 Oracle 配置 Linux
Linux 软件现已安装完毕,您需要针对 Oracle 对其进行配置。本部分将逐步讲解针对 Oracle 数据库 10g 配置 Linux 的过程。
验证系统要求
要验证系统是否满足 Oracle 10g 数据库的最低要求,以 root 用户身份登录并运行以下命令。
要查看可用 RAM 和交换空间大小,运行以下命令:grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo 例如: # grep MemTotal /proc/meminfo MemTotal:512236 kB # grep SwapTotal /proc/meminfo SwapTotal:1574360 kB
所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。要检查系统上的可用磁盘空间,运行以下命令:
df -h 例如: # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 6.8G 1.3G 5.2G 20% / /dev/sda1 99M 17M 77M 18% /boot
该示例表明,/tmp 目录没有自己的文件系统。(对本指南而言,它是根文件系统的一部分。)根文件系统可用空间为 5.2 GB,除了满足安装 (2.5 + 1.2 + 0.4 = 4.1GB) 外还小有富余。
创建 Oracle 组和用户帐户
接下来,创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall 和 dba。以 root 用户身份执行以下命令:
/usr/sbin/groupadd oinstall /usr/sbin/groupadd dba /usr/sbin/useradd -m -g oinstall -G dba oracle id oracle 例如: # /usr/sbin/groupadd oinstall # /usr/sbin/groupadd dba # /usr/sbin/useradd -m -g oinstall -G dba oracle # id oracle uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置 oracle 帐户的口令:
passwd oracle 例如: # passwd oracle Changing password for user oracle. New password: Retype new password: passwd:all authentication tokens updated successfully.
创建目录
现在,创建存储 Oracle 10g 软件和数据库文件的目录。本指南在创建目录结构时所用的命名惯例符合最佳灵活结构 (OFA) 规范。有关 OFA 标准的更多信息,请参阅针对 UNIX 系统的 Oracle 数据库 10g 安装指南的附录 D。
以下假设在根文件系统中创建目录。这样做是为了简便起见,不建议将其作为通用做法。这些目录通常被创建为单独的文件系统。
以 root 用户身份执行以下命令:
mkdir -p /u01/app/oracle mkdir -p /u02/oradata chown -R oracle:oinstall /u01/app/oracle /u02/oradata chmod -R 775 /u01/app/oracle /u02/oradata 例如: # mkdir -p /u01/app/oracle # mkdir -p /u02/oradata # chown -R oracle:oinstall /u01/app/oracle /u02/oradata # chmod -R 775 /u01/app/oracle /u02/oradata
配置 Linux 内核参数
Linux 内核非常出色。与大多数其他 *NIX 系统不同,Linux 允许在系统启动和运行时修改大多数内核参数。完成内核参数更改后不必重新启动系统。Oracle 数据库 10g 需要以下所示的内核参数设置。其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
如果您按照以上说明安装了 Linux,且内核参数全部采用默认值,则只需在以 root 用户身份登录后执行下命令。
cat >> /etc/sysctl.conf <例如: # cat >> /etc/sysctl.conf < > kernel.shmall = 2097152 > kernel.shmmax = 2147483648 > kernel.shmmni = 4096 > kernel.sem = 250 32000 100 128 > fs.file-max = 65536 > net.ipv4.ip_local_port_range = 1024 65000 > EOF # /sbin/sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 kernel.sysrq = 0 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000
以 root 用户身份运行以下命令来验证您的设置:
/sbin/sysctl -a | grep shm /sbin/sysctl -a | grep sem /sbin/sysctl -a | grep file-max /sbin/sysctl -a | grep ip_local_port_range 例如: # /sbin/sysctl -a | grep shm kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shm-use-bigpages = 0 # /sbin/sysctl -a | grep sem kernel.sem = 250 32000 100 128 # /sbin/sysctl -a | grep file-max fs.file-max = 65536 # /sbin/sysctl -a | grep ip_local_port_range net.ipv4.ip_local_port_range = 1024 65000
如果系统的参数设置的比上述参数值小,则编辑 /etc/sysctl.conf 文件,添加或更改这些参数。完成后,运行以下命令激活更改:
/sbin/sysctl -p
对于 SLES 8,在完成以上步骤后运行以下命令。
/sbin/chkconfig boot.sysctl on
为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:
cat >> /etc/security/limits.conf <> /etc/pam.d/login <
对于 RHEL 2.1 和 RHEL 3,使用以下命令:
cat >> /etc/profile <> /etc/csh.login <
对于 SLES 8,使用以下命令:
cat >> /etc/profile.local <> /etc/csh.login.local <
避免错误!(仅限 SLES 8)
在 SLES 8 上安装 Oracle Enterprise Manager 10g 时存在一个错误 — 由于所需端口以为 /etc/services 所保留而导致安装失败。OEM DBConsole 需要端口 1830,而在 SLES8 环境中,此端口已经为 /etc/services 所保留。此错误在 MetaLink 上的错误号为 3513603。
要避免安装过程中出现问题,以 root 用户身份登录,并在安装 Oracle 10g 软件之前将 /etc/services 文件中的端口 1830 至 1849 对应的行注释掉。(注意:此时,您最好重新启动服务器以确保以上更改生效。)
oracle 用户的环境变量
要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。
以 oracle 身份登录,并通过在 .bash_profile 或 .profile(bash 或 ksh)中添加以下行,将 ORACLE_BASE 添加到登录配置文件:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
或在 .login (csh) 中添加以下行:
setenv ORACLE_BASE /u01/app/oracle
此更改将在您下次登录到 oracle 帐户时生效。要使更改对当前会话为活动状态,只需从命令行运行此命令。
第 3 部分:安装 Oracle
可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。但不提供支持,且该许可不允许用于生产目的。OTN 提供了完整的许可协议。
要使 Oracle 10g 发行套件介质可以在服务器上使用,最简单的方法是将其直接下载到服务器。
使用图形登录以 oracle 身份登录。
创建一个目录以存放 Oracle 10g 发行套件:
mkdir 10g_db
要从 OTN 下载 Oracle 数据库 10g,请将浏览器(Mozilla 比较好用)指向 。填写 Eligibility Export Restrictions 页面,并阅读 OTN 许可协议。如果您接受限制和许可协议,则单击 I Accept。
单击 ship.db.cpio.gz 链接,并将该文件保存在为此目的创建的目录 (10g_db) 中 — 如果尚未登录到 OTN,则此时可能提示您登录。
解压缩此文件:
cd 10g_db gunzip ship.db.cpio.gz cpio -idmv < ship.db.cpio
安装软件
使用 oracle 帐户登录。
指定数据库名称 (ORACLE_SID)。该名称通常不多于五个字符。对此安装使用 demo1。
设置环境变量:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_SID=demo1; export ORACLE_SID
setenv ORACLE_BASE /u01/app/oracle setenv ORACLE_SID demo1
例如: $ cd $HOME/10g_db
将目录更改为 Disk1。
例如: $ cd Disk1
启动 Oracle 通用安装程序。
$ ./runInstaller
第 4 部分:配置存储
我们在第 3 部分中创建的数据库使用单一文件系统 (/u02/oradata) 进行磁盘存储。但为 Oracle 数据库配置存储的方式有多种。
第 4 部分介绍了为此数据库配置磁盘存储的其他方法。尤其是,它描述了如何创建其他文件系统以及如何使用自动存储管理 (ASM)。如何使用原始设备和 Oracle 集群文件系统 (OCFS) 将在本系列的另一篇文章中介绍,该篇文章介绍了如何使用 Oracle 真正应用集群 (RAC) 创建集群数据库。
文件系统
文件系统是为 Oracle 数据库存储数据文件、重做日志和控制文件最常用的方法。文件系统易于实施,并且无需第三方软件来管理。
大多数情况下,文件系统在 Linux 的初始安装过程中创建。但有时必须在初始安装后(如安装新磁盘驱动器后)创建新文件系统。
本部分介绍了如何构建新文件系统以及如何在 Oracle 数据库中使用它。除非另有说明,否则必须以 root 用户身份运行所有命令。
对磁盘进行分区
必须使用空磁盘分区来创建文件系统。如果已经有一个空的可用磁盘分区,则跳到下一步。
以下是一个为 Linux 文件系统创建新分区的示例。(警告:对磁盘进行错误分区是删除硬盘上所有内容的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据的危险。)
此示例使用 /dev/sdb(一个没有分区的空 SCSI 磁盘)为整个磁盘 (36 GB) 创建单个分区。
例如: # fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 4427. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):p Disk /dev/sdb:255 heads, 63 sectors, 4427 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System Command (m for help):n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-4427, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-4427, default 4427): Using default value 4427 Command (m for help):w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING:If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks.
现在验证新分区:
例如: # fdisk /dev/sdb The number of cylinders for this disk is set to 4427. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help):p Disk /dev/sdb:255 heads, 63 sectors, 4427 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 4427 35559846 83 Linux Command (m for help):q
创建文件系统
使用 ext3 创建这个新的文件系统。也可以使用其他文件系统,但 ext3 在系统崩溃时可提供最快的恢复。
例如: # mke2fs -j /dev/sdb1 mke2fs 1.26 (3-Feb-2002) Filesystem label= OS type:Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 4447744 inodes, 8889961 blocks 444498 blocks (5.00%) reserved for the super user First data block=0 272 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Writing inode tables:done Creating journal (8192 blocks):done Writing superblocks and filesystem accounting information:done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first.Use tune2fs -c or -i to override.
创建挂载点
文件系统必须有一个挂载点,它只是一个空的目录,新文件系统在这里与系统目录树“相连”。挂载点的命名应遵循 Oracle 灵活结构 (OFA) 标准。有关 OFA 标准的更多信息,请参阅 Oracle 10g 数据库安装指南 的附录 D。