欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle11g For Linux的静默安装笔记 博客分类: 数据库 oraclelinuxyum静默安装 

程序员文章站 2024-03-12 10:35:26
...

 

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

 

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

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,它集成了客户端和远程连接的功能。