Oracle11g For Linux的静默安装笔记

时间:2022-09-09 08:30:57

 

已经整了一天多,已被恶心坏了。遂记录下!

 

-----------------------------------------正式开始-----------------------------------------

Oracle11g For Linux的静默安装笔记

 

已经整了一天多,已被恶心坏了。遂记录下!

静默安装是无图形化的,能够最大程度减少出错。(实际安装过程发现也挺麻烦的,会衍生出一堆问题,也是没办法。。)

 

首先我使用的Linuxred hat的虚拟机,查看red hat版本的命令:

cat /proc/version

查看Linux的版本号和系统位数:cat /etc/issue && uname -a

 

===========================  关于yum使用的准备 ==============================

在进行静默安装之前,需要引入一些必要依赖的package。就需要用到yum install命令去安装啦。

注意:若碰到yum命令不能使用,需要“额外援助”。——借助Centos的包来安装yum。过程大致如下:(我这里的Linux版本为6.5

 

  1. 清除原有RHELYUM及相关软件包

    rpm -qa | grep yum | xargs rpm -e --nodeps
    rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps

     

    2.下载centos6的相关软件包

在镜像url下下载相关软件包,http://mirrors.163.com/centos/ 根据相应的Linux版本去选择,当你选择6.5会发现已经This directory (and version of CentOS) is deprecated.  For normal users,

you should use /6/ and not /6.5/ in your path.

说明被摒弃了,直接去找6的版本即可。Urlhttp://mirrors.163.com/centos/6/updates/x86_64/Packages/

最主要是需要得到以下几个url:

wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm

之所以有“找”的过程,就是以防centosyum包的支持路径会有更改。你必须根据Linux的版本去url下找到版本合适的rpm包。这个非常重要!否则会很麻烦。

 

3.安装软件包。

rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm yum-3.2.29-73.el6.centos.noarch.rpm
*yum-plugin-fastestmirroryum-3.2.29要一起安装。

4.替换新的repo文件。
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
sed -i "s;\$releasever;6;g" CentOS6-Base-163.repo
mv rhel-source.repo rhel-source.repo.bak

5.执行yum repolist查看,如果显示出repo仓库列表,并显示软件包数量则OK。(或者使用yum makecache


6.使用yum安装软件包测试。
yum -y install lrzsz

不出意外,此时yum就能正常使用了。

==============================================================================

下面正式开始静默安装oracle的旅程。

第一部分:环境依赖检测

  1. 选择正确的oracle版本,与linux的版本要对应。

  2. 硬件环境检测:物理内存不少于1G;硬盘可用空间不少于5G;swap分区空间不少于2G

    grep MemTotal /proc/meminfo

    grep SwapTotal /proc/meminfo

    grep "model name" /proc/cpuinfo

    free

    df -k /tmp

    df -k

  3. 检测安装所依赖的系统包

    rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-34

    compat-gcc-34-c++ compat-libstdc++-296 compat-libstdc++-33 libaio libaio-devel sysstat

    glibc

    显示not installed的就使用如 yum install gcc的命令安装。

     

    第二部分:创建用户和组

    groupadd oinstall

    groupadd dba

    useradd -g oinstall -G dba oracle #dbaoracle所属的group

    #设置oracle用户密码

    passwd oracle

     

    第三部分:修改参数和限制

  1. 修改内核参数

  Vi /sbin/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

Wq保存。使设置生效:

/sbin/sysctl -p

  1. 修改用户限制

    1vi /etc/security/limits.conf

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    oracle soft stack 10240

    2)然后,vi /etc/pam.d/login 加入:

    session required /lib/security/pam_limits.so

    session required pam_limits.so

  1. 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 /etc/profile

     

    第四部分:创建目录或文件

    1、创建安装目录(可根据情况,选择比较多空间的目录创建)

    mkdir -p /home/oracle/

    chown -R oracle:oinstall /home/oracle/

    chmod -R 775 /home/oracle/

    2、创建/etc/oraInst.loc文件,内容如下

    nventory_loc=/u01/app/oracle/oraInventory

    inst_group=oinstall

    更改文件的权限

    chown oracle:oinstall /etc/oraInst.loc

    chmod 664 /etc/oraInst.loc

     

    第五部分:设置环境变量

    设置oracle环境变量。首先切换至oracle用户:su - oracle

    Vi  ~/.bash_profile

    在最后加上以下内容:

    #Oracle For Linux

    export ORACLE_BASE=/home/oracle/app

    export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

    export ORACLE_SID=orcl

    export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

     

    rt ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

    export TNS_ADMIN=$ORACLE_HOME/network/admin

    export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

    export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib

    export ORACLE_OWNER=oracle

    export SPFILE_PATH=$ORACLE_HOME/dbs

    export ORA_NLS10=$ORACLE_HOME/nls/data

    注意:ORACLE_HOMEORACLE_BASE需要自己指定,并且需要牢记它们。

    使设置生效

    source /home/oracle/.bash_profile

     

    第六部分:在合适的目录下解压oracle安装文件:

    unzip linux.x64_11gR2_database_1of2.zip

    unzip linux.x64_11gR2_database_2of2.zip

    解压后,它们会合并在一个database的目录中。

     

    第七部分:响应模板准备

    需要修改三个响应模板。首先不妨新建一个与database同级的目录:mkdir etc

    Cd /home/oracle/app/oracle/product/database/response

    Cp * /home/oracle/app/oracle/product/etc/

  1. 修改etc下的db_install.rsp响应文件,主要是以下需要修改。

    INVENTORY_LOCATION=/home/oracle/app/oracle/oraInventory

    ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1

    ORACLE_BASE=/home/oracle/app/oracle

    这仨必须跟oracle的环境变量保持一致,至于INVENTORY_LOCATION则必须制定在%ORACLE_BASE%/oraInventory下,目的是为了存放日志。

  2. 修改etc下的dbca.rsp文件,修改如下:

    GDBNAME = "aplatform"

    SID = "aplatform"

    SYSPASSWORD = "asia123"

    SYSTEMPASSWORD = "asia123"

    CHARACTERSET="AL32UTF8" //415行 编码

    NATIONALCHARACTERSET="UTF8" //425行 编码

    这是根据自己要求来指定实例名以及sys用户的登入密码,以及编码的。

     

    第八部分:开始静默安装(执行几个响应文件,文件为etc下自己指定的路径哦)

    Cd database

  1. 执行db_install.rsp

    ./runInstaller -silent -force -ignorePrereq -responseFile /home/oracle/app/oracle/product/etc/db_install.rsp

    注:安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。

    查看安装日志信息了解安装进度

    日志查看:

    cd $ORACLE_BASE/oraInventory/logs

    tail -100f installActions*.log

    出现类似如下提示表示安装完成:

    #-------------------------------------------------------------------

     

    ...

     

    /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

     

    To execute the configuration scripts:

     

    1. Open a terminal window

     

    2. Log in as "root"

     

    3. Run the scripts

     

    4. Return to this window and hit "Enter" key to continue

     

    Successfully Setup Software.

     

    #-------------------------------------------------------------------

     

    使用root用户执行root.sh

    Sh /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

  2. 执行netca.rsp

    静默配置网络

    $ORACLE_HOME/bin/netca -silent -responseFile /home/oracle/app/oracle/product/etc/netca.rsp

  3. 执行dbca.rsp

    $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/app/oracle/product/etc/dbca.rsp

     

    第九部分:建库后检查工作

  1. 实例检查:

    ps -ef | grep ora_ | grep -v grep | wc -l

    ps -ef | grep ora_ | grep -v grep

     

    2)监听检查

    lsnrctl status

    如果出现以下错误

    lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

     

    解决办法:在root用户下执行以下命令

    su - root

    setenforce 0

    3)修改oracle启动配置文件

    su - oracle

    vi /etc/oratab

    oracl:/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y

    这样就可以通过dbstart 启动此实例,监听器。

    dbstart $ORACLE_HOME

    此时所有oracle的进程关闭,监听器也停止。

    dbshut $ORACLE_HOME

    再次查看监听器状态。

    lsnrctl status

     

    第十部分:测试数据库

    sqlplus / as sysdba

    SQL> shutdown immediate;

    SQL> startup mount;

    SQL> alter database archivelog;

    SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)

    SQL> alter database open;

    SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)

    SQL> alter system archive log current; (手工归档测试)

    创建用户以及授权:

    SQL> create user username identified by password

    SQL> grant dba to username

    SQL> connect username/password  #新用户测试连接

     

    Ps:安装过程中会出现一堆恶心的问题,出现问题的时候随着解决问题会衍生出很多次级问题,没办法,一步步解决。

    之前我一直以为PL/SQL就是oracle的客户端,实际上并不是,它只是连接工具而已。如果你本地机器没有安装oracle客户端,是无法直接使用PL/SQL来远程连接的。安装oracle服务端会同时安装客户端,但如果只有Linux上安装了服务端,那么客户端就在Linux上。但如果你本地安装了oracle,客户端在你本地机器也就有了,此时你就可以远程使用PL/SQL连上Linux上的oralce服务端啦。如果不想额外安装客户端,可使用sqldeveloper,它集成了客户端和远程连接的功能。