• 前一段时间实习在公司负责在Linux服务器上安装Oracle 11g R2的一些心得体会,写个文章记录一下。
  • 本文参考了网上的一些类似的博文;系统环境基于无外网和无图形化界面安装Oracle 11G。

#准备软件

#检查系统配置
Oracle Database 11g Release 2官方的系统配置要求如下:

  • 物理运行内存(Physical RAM):1GB以上,推荐配置2GB以上
    查看内存占用情况:
    free -g
  • 硬盘空间(Disk Space):8GB以上,/tmp目录剩余空间在1GB以上
    查看其他挂载区的目录使用情况:
    df -h
  • 查看目录的剩余空间:
    df -kh /tmp
  • 查看系统当前的版本:
    lsb_release -a
  • 查看系统对应的版本和位数:
    cat /proc/version

我所安装的服务器环境是 Red Hat Enterprise Linux 4

#系统安装Oracle 11g R2所必须的安装包

binutils-2.15.92.0.2
compat-libstdc++-33-3.2.3          
elfutils-libelf-0.97               
elfutils-libelf-devel-0.97         
expat-1.95.7 
gcc-3.4.6
gcc-c++-3.4.6                      
glibc-2.3.4-2.41
glibc-common-2.3.4 
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-0.3.105
libaio-devel-0.3.105                
libgcc-3.4.6          
libstdc++-3.4.6       
libstdc++-devel 3.4.6              
make-3.80 
numactl-0.6.4.x86_64
pdksh-5.2.14                       
sysstat-5.0.5
  • 查询系统安装软件是否缺失:
    rpm -qa|grep 软件包名

我所安装Oracle的服务器不能连接外网,只能通过下载安装包用FTP传输到服务器上安装,以上安装包缺失可以到一下地址查找:
http://vault.centos.org/6.5/os/x86_64/Packages/

  • 安装软件命令(具体安装顺序自己调配,不能用通配符批量安装,会出现依赖问题):
    rpm -ivh 软件名.rpm

#配置内核参数和资源限制

  • 使用vi编辑器对/etc/sysctl.conf文件进行编辑:
    vi /etc/sysctl.conf 文件末尾添加一下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
  • 使内核参数生效,执行命令:
    sysctl -p

#创建Oracle相关用户

  • 创建用户组oinstall:
    groupadd –g 200 oinstall
  • 创建用户组dba:
    groupadd –g 201 dba
  • 创建oracle用户并指定用户组和Oracle用户的用户目录:
    useradd –u 440 –g oinstall –G dba –d /home/oracle oracle
  • 更改Oracle用户的用户登录密码:
    passwd oracle

#修改登录系统参数

  • 使用vi编辑器对/etc/pam.d/login文件进行编辑:
    vi /etc/pam.d/login 在文件末尾添加:
session required pam_limits.so

#修改Oracle软件安装用户的资源限制

  • 使用vi编辑器对/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

#修改环境变量文件

  • 使用vi编辑器对/etc/profile文件进行编辑:
    vi /etc/profile 在文件末尾添加:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
  • 更新配置文件更改:
    source profile

#创建目录并分配权限

  • 创建目录
    mkdir /oracle
  • 授权目录给当前用户/其他用户/用户组 可读可写可执行
    chmod -R 775 /oraclechown –R oracle:oinstall /oracle
  • 切换到oracle帐号并添加oracle用户下面的环境变量:
    su – oracle
  • 使用vi编辑器对用户目录下.bash_profile文件进行编辑:
    vi ~/.bash_profile 在.base_profile里面添加如下内容(有些内容存在就不用加,对照着修改)
    ORACLE_HOME在配置时注意后面不要带有:分隔符,否则PATH会取不到;
    ORACLE_HOME的路径;
    ORACLE_SID是对应后面创建数据库SID的,可以随时更改;
    以下是配置内容:
PATH=$PATH:$HOME/bin
umask 022
export PATH
export ORACLE_BASE=/oracle
export ORACLE_SID=orcl      
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin:

#安装数据库

  • Ctrl+D注销Oracle用户,切换成root用户
  • 解压Oracle 11g R2 数据库压缩包(在本文我已经把数据库压缩包用FTP软件传输到/tmp目录下),执行命令:
    cd /tmpunzip linux.x64_11gR2_database_1of2.zipunzip linux.x64_11gR2_database_2of2.zip
  • 拷贝database/response/下面的dbca.rsp、db_install.rsp及netca.rsp三个文件至/home/oracle目录中:
    cp database/response/dbca.rsp /home/oracle/cp database/response/db_install.rsp /home/oracle/cp database/response/netca.rsp /home/oracle/chmod 777 /home/oracle/dbca.rsp
  • 使用vi编辑数据库安装的配置文件db_install.rsp:
    cd /home/oraclevi db_install.rsp 修改如下参数:

Oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= master
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/oracle
Oracle.install.db.InstallEdition=EE
Oracle.install.db.DBA_GROUP=dba
Oracle.install.db.OPER_GROUP=oinstall
Oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
Oracle.install.db.config.starterdb.globalDBName=orcl
Oracle.install.db.config.starterdb.SID=orcl
Oracle.install.db.config.starterdb.characterSet=ZHS16GBK
Oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true

  • 切换到oracle 帐号,创建oraInventory目录:
    su – oraclemkdir /oracle/oraInventory
  • 切换到刚才解压的Oracle安装文件根目录中:
    cd /tmp/database 开始执行安装操作:
    ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/db_install.rsp 在/oracle/oraInventory/logs/可以查看对应的安装日志文件。
  • 上述执行成功会提示执行两个脚本
    Ctrl+D注销Oracle用户,切换成root用户
    执行orainstRoot.sh及root.sh两脚本:
    cd /oracle/oraInventorysh orainstRoot.shcd /oracle/product/11.2.0/dbhome_1sh root.sh
  • 切换成oracle用户:
    su - oracle
  • 安装监听,直接执行监听脚本:
    netca /silent /responseFile /home/oracle/netca.rsp

#安装数据库实例

  • 使用vi编辑配置文件dbca.rsp:
    vi dbca.rsp 修改以下配置,后面5个都要删掉前面的#号改参数值:
GDBNAME="orcl"
SID="orcl"
DATAFILEDESTINATION="/oracle/oradata"
RECOVERYAREADESTINATION="/oracle/flash_recovery_area"
CHARACTERSET="ZHS16GBK"
TOTALMEMORY="800"
SYSPASSWORD = "password"
SYSTEMPASSWORD = "password"

上面配置注意去掉#,不然是注释不生效
SYSPASSWORD和SYSTEMPASSWORD是sys和system数据库用户的默认密码(自己自行设置),不设置密码无法安装实例,显示终端一直滚动换行。

  • 静默模式建实例(确保在oracle用户下执行):
    cd ~dbca –silent –responseFile ~/dbca.rsp

另外:删除数据库实例方法,更改以上配置文件中的OPERATION_TYPE,默认为createDatabase,变更为一下内容:

OPERATION_TYPE = "deleteDatabase"

执行命令:
dbca –silent –responseFile ~/dbca.rsp

#测试和修改Oracle用户密码有效期

  • 执行命令:
    sqlplus /nolog
  • SQLPlus:
    以sysdba身份登录:
    conn / as sysdba 查询用户密码有效时间:
    SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 修改有效时间为不限制:
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

#附上一些命令查看Oracle端口和Oracle进程

  • 查看Oracle开放的1521端口号:
    netstat -lnp|grep 1521
  • 查看oracle进程:
    ps -ef|grep oracle

本人能力水平有限,如有错误请指出。