安装杂记有点乱
---itpot
参考:在 Linux x86 上安装 Oracle 数据库 10g
http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html
redhatAs4oracle10g安装
1.验证
oracle10g所需内核版本:2.4.9-e.25(或更高版本)
通过运行以下命令检查内核版本:
uname -r
例如:
# uname -r
2.4.9-e.27smp
其他所需程序包的版本(或更高版本):
gcc-2.96-124
make-3.79
binutils-2.11
openmotif-2.1.30-11
glibc-2.2.4-31
要查看系统上安装了这些程序包的哪些版本,运行以下命令:
rpm -q gcc make binutils openmotif glibc
例如:
# rpm -q gcc make binutils openmotif glibc
gcc-2.96-118.7.2
make-3.79.1-8
binutils-2.11.90.0.8-12
openmotif-2.1.30-11
glibc-2.2.4-32.8
[root@redhat1 tool]# rpm -q gcc make binutils openmotif glibc
package gcc is not installed
make-3.80-5
binutils-2.15.92.0.2-10.EL4
package openmotif is not installed
glibc-2.3.4-2
rpm -q make openmotif-devel openmotif binutils setarch compat-db compat-gcc-32-c++ compat-libstdc++-33 compat-gcc-32 libaio
(如果出现类似上面的缺少安装的包, 在图形化界面下 菜单【system setting】->【add/remove application】.选中相关的开发包进行安装。redhat安装时建议全部安装)
[root@redhat1 tool]# rpm -q gcc make binutils openmotif glibc
gcc-3.4.3-9.EL4
make-3.80-5
binutils-2.15.92.0.2-10.EL4
package openmotif is not installed
glibc-2.3.4-2
其他所需程序包的版本(或更高版本):
gcc-3.2.3-2
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-db-4.0.14.5(Oracle 10g 数据库安装指南 中将其列为是必需的,但此处并不需要)
要查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
例如:
# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
> openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
gcc-3.2.3-20
make-3.79.1-17
binutils-2.14.90.0.4-26
openmotif-2.2.2-16
setarch-1.3-1
package compat-db is not installed
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
第 2 部分:针对 Oracle 配置 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
安装约满足安装 (2.5 + 1.2 + 0.4 = 4.1GB)
(在虚拟机中的安装时可以增加一块虚拟的硬盘。 系统中加载的顺序:
第一步:
#fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
第二步:格式化 格式化命令:mkfs.ext3 /dev/sdb1 是格式化成 ext3
mkfs.ext2 /dev/sdb1 是格式化成 ext2
[root@redhat1 /]# mkfs.ext3 /dev/sdb
第三步:加载到一个目录
[root@redhat1 /]# mount /dev/sdb u01/
[root@redhat1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6063688 4005272 1750400 70% /
/dev/sda1 101086 9136 86731 10% /boot
none 517932 0 517932 0% /dev/shm
/dev/sdb 5160576 43040 4855392 1% /u01
第四步 每次启动自动mount加载
[root@localhost ~]# cat /etc/fstab
/dev/sdb /oracle ext3 defaults 0 2
在/etc/fstab 增加上面的一行 具体的含义 参考
【/etc/fstab释疑】 http://www.linuxpk.com/4982.html
)
创建 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.
[root@redhat1 /]# groupadd oinstall
[root@redhat1 /]# groupadd dba
[root@redhat1 /]# useradd -m -g oinstall -G dba oracle
[root@redhat1 /]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX 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
[root@redhat1 /]# mkdir -p /oracle/app/oracle
[root@redhat1 /]# mkdir -p /oracle/oradata
[root@redhat1 /]# chown -R oracle:oinstall /oracle/app/oracle /oracle/oradata
[root@redhat1 /]# chmod -R 775 /oracle/app/oracle /oracle/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 <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
例如:
# 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
[root@redhat1 /]# vi /etc/sysctl.conf (详细的看下面)
编辑完成后
[root@redhat1 /]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
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
为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:
cat >> /etc/security/limits.conf <oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <session required /lib/security/pam_limits.so
EOF
对于 RHEL 2.1 和 RHEL 3,使用以下命令:
cat >> /etc/profile <if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login <if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
直接运行下面的命令
[root@redhat1 /]# cat >> /etc/security/limits.conf <> oracle soft nproc 2047
> oracle hard nproc 16384
> oracle soft nofile 1024
> oracle hard nofile 65536
> EOF
[root@redhat1 /]# cat >> /etc/pam.d/login <> session required /lib/security/pam_limits.so
> EOF
[root@redhat1 /]# cat >> /etc/profile <> if [ \$USER = "oracle" ]; then
> if [ \$SHELL = "/bin/ksh" ]; then
> ulimit -p 16384
> ulimit -n 65536
> else
> ulimit -u 16384 -n 65536
> fi
> umask 022
> fi
> EOF
[root@redhat1 /]# cat >> /etc/csh.login <> if ( \$USER == "oracle" ) then
> limit maxproc 16384
> limit descriptors 65536
> umask 022
> endif
> EOF
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 帐户时生效。要使更改对当前会话为活动状态,只需从命令行运行此命令。
[root@redhat1 /]# su - oracle
[oracle@redhat1 ~]$ vi .bash_profile
【增加】ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE (详细的看下面)
第 3 部分:安装 Oracle
可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。但不提供支持,且该许可不允许用于生产目的。OTN 提供了完整的许可协议。
要使 Oracle 10g 发行套件介质可以在服务器上使用,最简单的方法是将其直接下载到服务器。
使用图形登录以 oracle 身份登录。
创建一个目录以存放 Oracle 10g 发行套件:
mkdir 10g_db
要从 OTN 下载 Oracle 数据库 10g,请将浏览器(Mozilla 比较好用)指向 http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/linuxsoft.html。填写 Eligibility Export Restrictions 页面,并阅读 OTN 许可协议。如果您接受限制和许可协议,则单击 I Accept。
单击 ship.db.cpio.gz 链接,并将该文件保存在为此目的创建的目录 (10g_db) 中 — 如果尚未登录到 OTN,则此时可能提示您登录。
解压缩此文件:
cd 10g_db
unzip *.zip
gunzip ship.db.cpio.gz
cpio -idmv < ship.db.cpio
安装软件
使用 oracle 帐户登录。
指定数据库名称 (ORACLE_SID)。该名称通常不多于五个字符。对此安装使用 demo1。
设置环境变量:
Borne shell 和 Korn shell
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=demo1; export ORACLE_SID
C shell
setenv ORACLE_BASE /u01/app/oracle
setenv ORACLE_SID demo1
将目录更改为 Oracle 10g 软件解压缩到的位置。
例如:
$ cd $HOME/10g_db
将目录更改为 Disk1。
例如:
$ cd Disk1
启动 Oracle 通用安装程序。
$ ./runInstaller
弹出一个“Setup Privileges”窗口,提示需要以 root 用户身份运行配置脚本。以 root 用户身份登录,切换到该窗口中指示的目录,然后执行 root.sh 脚本。该脚本提示输入本地 bin 目录的位置。直接按 Enter 键接受默认值。当脚本完成时,返回到 Setup 即可
2008年1月4日12:37:12
检查完如上各项之后, 应该修改核心参数.执行如下命令:
#vi /etc/sysctl.conf
#注释:#表示使用root用户操作,$表示使用oracle 用户进行操作.提示符后面的蓝色部分表示需要输入的命令,以下同.
在该文件末尾加入如下内容:
#-----------Begin from here--------------------------------------
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
#--------------End here--------------------------------------------
(注意上面的 net.core参数如果不设置 oarcle安装检查时 会报警告)
编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效.
注:上面kernel.shmmax/kernel.sem等是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.
关于这些核心参数的说明在Oracle的Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems
中有很详细的说明.( http://download-west.oracle.com/docs/html/A96167_01/toc.htm )
然后,应该检查一下上面的操作是否正确:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
问题: warning
libaio-0.3.96 not found
安装这个软件包,在第三张光盘中就有。
2、参数问题
用文本编辑器,创建或者编辑/etc/sysctl.conf文件,添加或修改如下的行
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.ip_local_port_range = 1024 65000
改变当前内核参数的值,用命令 #/sbin/sysctl –p
基本上可以解决所有的参数警告问题。
3、增加swap空间
#free
#mkdir swap
#cd swap
#dd if=/dev/zero f=swapfile bs=1024 count=1000000 (1G)
#mkswap swapfile
#swapon swapfile
#free
使用文件做为SWAP吧: 参考(http://www.cublog.cn/u/4133/showart_13899.html)
因为做为SWAP的文件,必须是连续的,所以需要使用dd命令创建它:
[root@NEWLFS ~]#dd if=/dev/zero f=swapfile bs=1024 count=65536
65536+0 records in
65536+0 records out
[root@NEWLFS ~]#
这样就制作了一个64M的swapfile (文件名自定)
如果想制作128M的SWAP,count值:128*1024=131072
制作128M的SWAP 命令就变成了:
dd if=/dev/zero f=swapfile bs=1024 count=131072
使用mkswap命令制作swap:
[root@NEWLFS ~]#mkswap swapfile
Setting up swapspace version 1, size = 67104 kB
[root@NEWLFS ~]#
最后加在/etc/fstab,每次开机都会自动启用SWAP:
编辑fstab,在最后加入一行,格式如下:
/root/swapfile swap swap defaults 0 0
启用它:
[root@NEWLFS ~]#swapon -a
使用swapon -s 查看是否成功启用了:
[root@NEWLFS ~]#swapon -s
Filename Type Size Used Priority
/root/swapfile file 65528 0 -1
swapfile已经投入使用啦
4.报dhcp相关问题 应该配置静态的ip
Checking Network Configuration requirements ...
Check complete. The overall result of this check is: Not executed <<<<
Recommendation: Oracle supports installations on systems with DHCP-assigned public IP addresses. However, the primary
network interface on the system should be configured with a static IP address in order for the Oracle Software to function
properly. See the Installation Guide for more details on installing the software on systems configured with DHCP.
改为静态的IP地址
vi /etc/hosts
[root@localhost /]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.250 localhost
127.0.0.1 localhost localhost.localdomain localhost
或下面的 (redhat1 为主机名称 我把主机名称设为了localhost )
192.168.0.250 redhat1
127.0.0.1 redhat1 localhost.localdomain localhost
配置环境变量(否则找不到可执行的文件路径 )
[oracle@localhost ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
[oracle@localhost ~]$
一个完整的例子 .bash_profile
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2
export ORACLE_SID=bj
export ORACLE_TERM=xterm
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
# Set shell search paths
export PATH=$ORACLE_HOME/bin:$PATH
export LANG=en_US
启动数据库
$ sqlplus /nolog
connect / as sysdba
startup; 启动数据库
$ lsnrctl start
客户端无法连接 注意端口号 1521 或1522 (本此测试的端口为1522)
修改主机名称
修改/etc/sysconfig/network、/etc/hosts文件的相关内容。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12548713/viewspace-101103/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12548713/viewspace-101103/