Linux命令行下安装Oracle
安装环境
操作系统: RedHat 6.4 位数: 64 Oracle release: 11.2.0 Oracle 编译环境:
yum install -y compat-libstdc*
yum install -y elfutils-libelf*
yum install -y gcc*
yum install -y glibc*
yum install -y ksh*
yum install -y libaio*
yum install -y libgcc*
yum install -y libstdc*
yum install -y make*
yum install -y sysstat*
yum install libXp* -y
yum install -y glibc-kernheaders
环境配置
- 创建用户、用户组:
groupadd oracle
useradd oracle -g oracle
id oracle #只是看一眼,^v^
passwd oracle
- 创建安装目录
mkdir -p /home/oracle/u0/oracle
#这个路径在安装oracle的时候用
mkdir -p /home/oracle/u0/oracle/oraInventory
chown -R oracle:oracle /home/oracle/u0/oracle
- 配置LINUX内核参数,SHELL限制,下面所有命令均在root下执行
- 修改/etc/sysctl.conf文件
#vi /etc/sysctl.conf
在文件中修改如下:
kernel.shmall = 268435456
kernel.shmmax = 4294967295
#config for oracle
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.wmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
# kernel.shmall,kernel.shmmax如果已经配置,无需重复配置
#/sbin/sysctl -p
执行该命令使配置生效
- 修改/etc/security/limits.conf文件:
# vi /etc/security/limits.conf
在文件后追加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
- 修改/etc/pam.d/login文件:
# vi /etc/pam.d/login
在文件后追加如下内容:
session required /lib/security/pam_limits.so
- 修改/etc/profile文件:
# vi /etc/profile
在文件后追加如下内容:
#for oracle env set
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
- 环境变量及参数配置
- 在Oracle用户(
#su - oracle
)下,执行如下命令:
$ vi /home/oracle/.bash_profile
在文件后追加如下命令:
ORACLE_SID=SID
export ORACLE_SID
ORACLE_BASE=/home/oracle/u0/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
执行命令是配置生效:$source /home/oracle/.bash_profile
- 修改/etc/hosts文件:需要在root用户下修改
# vi /etc/hosts
添加如下内容:
# 使用hostname查看名称是否和hosts里配置相同
#如果提示端口被占,使用hostname查看名称是否和hosts里配置相同,如果不同,
#修改/etc/sysconfig/network中的HOSTNAME
#终极方法:sysctl kernel.hostname=HOSTNAME
IP HOSTNAME
Oracle 文件配置
- 修改/disk/oracle64/database/response/db_install.rsp,如下:
# 仅安装数据库软件
oracle.install.option=INSTALL_DB_SWONLY
#
ORACLE_HOSTNAME=HOSTNAME
UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/home/oracle/u0/oracle/oraInventory
# 安装过程用英文就够了
SELECTED_LANGUAGES=en
#
ORACLE_HOME=/home/oracle/u0/oracle/product/11.2.0/db
ORACLE_BASE=/home/oracle/u0/oracle
# 安装企业版
oracle.install.db.InstallEdition=EE
# 默认安装组件
oracle.install.db.isCustomInstall=false
#
oracle.install.db.DBA_GROUP=oracle
oracle.install.db.OPER_GROUP=oracle
# 这个必须设置为true
DECLINE_SECURITY_UPDATES=true
- 修改/disk/oracle64/database/response/netca.rsp,如下:
INSTALL_TYPE=""custom"" #安装的类型
LISTENER_NUMBER=1 #监听器数量
LISTENER_NAMES={"LISTENER"} #监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} #监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" #监听器启动的名称
- 修改/disk/oracle64/database/response/dbca.rsp,如下:
GDBNAME = "DANAME" # 数据库全局名称,自己的数据库名
SID = "SID" # 数据库的 SID,自己修改
SYSPASSWORD = "oracle" # SYS 用户的初始密码
SYSTEMPASSWORD = "oracle" #SYSTEM 用户的初始密码
CHARACTERSET = "ZHS16GBK " # 数据库字符集(中文为 ZHS16GBK )
NATIONALCHARACTERSET= "AL16UTF16"# 数据库国家字符集
数据库安装
- 数据库安装
- 执行
./runInstaller -silent -responseFile /disk/oracle64/database/response/db_install.rsp
- 如果执行报
Exception in thread "main" java.lang.NoClassDefFoundError
,需要执行unset DISPLAY
注:/disk/oracle64/database/response/db_install.rsp
这个路径必须是绝对路径
- 安装成功后,另开一个窗口并使用root执行:
sh /home/oracle/u0/oracle/oraInventory/orainstRoot.sh
sh /home/oracle/u0/oracle/product/11.2.0/db/root.sh
- 在Oracle用户下创建监听:
-
$ORACLE_HOME/bin/netca /silent /responseFile /disk/oracle64/database/response/netca.rsp
注:/disk/oracle64/database/response/netca.rsp
这个路径必须是绝对路径
并且这里参数使用/
,而不是-
-
并修改$ORACLE_HOME/bin/dbstart
vi $ORACLE_HOME/bin/dbstart
修改如下内容:ORACLE_HOME_LISTNER=$ORACLE_HOME
- 继续使用oracle用户安装:
$ORACLE_HOME/bin/dbca -silent -responseFile /disk/oracle64/database/response/dbca.rsp -cloneTemplate
注:/disk/oracle64/database/response/dbca.rsp
这个路径必须是绝对路径 注:密码过期问题ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;