• 当前位置: 首 页 > 教育百科 > 其他 > 正文

    liunx 安装oracle

    :2019年08月18日
    本站

    检查依赖包是否缺少rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstd...

    检查依赖包是否缺少

    rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "not installed"

    最后的unixODBC unixODBC-devel 不安装

    安装依赖包,使用挂载iso盘来实现(一般加载的光盘在dev/chrom)

    1) 挂载光盘

    mkdir /mnt/cdrom

    mount /dev/cdrom /mnt/cdrom

    (或者 # mount -o loop rhel-server-6.1-x86_64-dvd.iso /mnt (该命令直接指定光盘挂载))

    2)到挂载的文件夹下使用 rpm -ivh 命令安装

    安装的顺序 (安装的版本根据当前系统来)

    # cd /mnt/cdrom/Packages

    # rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm

    # rpm -ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm

    # rpm -ivh libgcc-4.4.5-6.el6.x86_64.rpm

    # rpm -ivh glibc-2.12-1.25.el6.x86_64.rpm

    # rpm -ivh libgomp-4.4.5-6.el6.x86_64.rpm

    # rpm -ivh nscd-2.12-1.25.el6.x86_64.rpm

    # rpm -ivh glibc-headers-2.12-1.25.el6.x86_64.rpm

    # rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm

    # rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm

    # rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm

    # rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

    # rpm -ivh cpp-4.4.5-6.el6.x86_64.rpm

    # rpm -ivh gcc-4.4.5-6.el6.x86_64.rpm

    注:以上是安装gcc,软件安装顺序不能错。

    ******************************************

    # rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm

    # rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm

    # rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm

    注:以上是安装gcc-c++

    rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

    rpm -ivh elfutils-libelf-devel-0.164-2.el6.x86_64.rpm

    rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm

    rpm -ivh sysstat-9.0.4-31.el6.x86_64.rpm

    修改参数

    1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件

    输入命令:vi /etc/security/limits.conf ,按i键进入编辑模式,将下列内容加入该文件。

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    2)修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login ,按i键进入编辑模式,将下列内容加入该文件。

    session required /lib/security/pam_limits.so

    session required pam_limits.so

    3)修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件

    fs.file-max = 6815744

    fs.aio-max-nr = 1048576

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 4194304

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048576

    4)要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p 显示如下:

    linux:~ # sysctl -p

    net.ipv4.icmp_echo_ignore_broadcasts = 1

    net.ipv4.conf.all.rp_filter = 1

    fs.file-max = 6815744

    fs.aio-max-nr = 1048576

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 4194304

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048576

    5)编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。

    if [ $USER = "oracle" ]; then

           if [ $SHELL = "/bin/ksh" ]; then

                   ulimit -p 16384

                   ulimit -n 65536

           else

                   ulimit -u 16384 -n 65536

           fi

    fi

    编辑完成后按Esc键,输入“:wq”存盘退出 source /etc/profile 刷新文件

    6)创建相关用户和组,作为软件安装和支持组的拥有者。

    创建Oracle用户和密码,输入命令:

    groupadd dba groupadd oinstall

    useradd -g oinstall -G dba oracle

    passwd oracle

    7)创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:

    输入命令:

    mkdir /home/oracle/app

    mkdir /home/oracle/app/oracle

    mkdir /home/oracle/app/oracle/product

    mkdir /home/oracle/oraInventory

    8)更改目录属主为Oracle用户所有,输入命令:

    chown -R oracle:oinstall /home/oracle/app

    chown -R oracle:oinstall /home/oracle/oraInventory

    9)配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,

    输入:su oracle ,然后直接在输入cd 再输入 : vi .bash_profile

    按i编辑 .bash_profile,进入编辑模式,增加以下内容:

    export ORACLE_BASE=/home/oracle/app

    export ORACLE_HOME=$ORACLE_BASE/oracle/product/dbhome_1

    export ORACLE_SID=orcl

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

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

    然后再输入:source .bash_profile

    把包上传到liunx电脑上,上传的路径为usr/local/

    unzip Oracle.11gR2.Linux.x64_CD1.zip unzip Oracle.11gR2.Linux.x64_CD2.zip

    解压完之后给解压的database文件夹赋权

    chmod -R 777 database

    11)配置静默安装文件

    首先是修改安装响应文件,执行vim database/response/db_install.rsp,然后修改下面的内容:

    oracle.install.option=INSTALL_DB_SWONLY                  //29 行 安装类型 ORACLE_HOSTNAME=orcl                     //37 行 主机名称,看注释,前后保持一致 UNIX_GROUP_NAME=oinstall                     //42 行 安装组 INVENTORY_LOCATION=/home/oracle/oraInventory //47 行 INVENTORY目录, 注意每个人的 oracle 目录可能不一样 SELECTED_LANGUAGES=en,zh_CN //78 行 选择语言

    //83 行 oracle_home,oracle_base+orahome ORACLE_HOME=/home/oracle/app/oracle/product/dbhome_1

    //88 行 oracle_base 就是你的 oracle 目录 ORACLE_BASE=/home/oracle/app oracle.install.db.InstallEdition=EE //99 行 oracle版本 oracle.install.db.isCustomInstall=true //108行 自定义安装 oracle.install.db.DBA_GROUP=dba //142行 dba用户组 oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型 oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName 保持一致 oracle.install.db.config.starterdb.SID=orcl //170行 SID 保持一致

    //233行 设定所有数据库用户使用同一个密码,后面会用到 oracle.install.db.config.starterdb.password.ALL=jsepc123 DECLINE_SECURITY_UPDATES=true //385行 设置安全更新

    注意:

    主机名称, globalDBName 和  SID 按照自己的设定修改

    设定所有数据库用户使用同一个密码, 这个密码在后面还要被用到

    12)新建配置oraInst.loc文件,和db_install.rsp文件放到一个文件夹下面

    文件内容:

    inventory_loc=/home/oracle/app/oracle/oraInventory

    inst_group=oinstall

    重新赋权

    chmod -R 777 database

    配置主机的host文件(很关键)

    vi /etc/hosts

    127.0.0.1         oracle

    Oracle是域名的意思,可以随便配

    vi /etc/sysconfig/network

    HOSTNAME=oracle

    执行 source /etc/sysconfig/network

    再执行 hostname oracle

    开始安装

    1)在database文件夹下面执行:

    ./runInstaller -silent -ignorePrereq -force -responseFile /usr/oracle/oracle-11g/database/response/db_install.rsp -invPtrLoc /usr/oracle/oracle-11g/database/response/oraInst.loc

    Linux 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed

    解决方法:https://blog.csdn.net/yk10010/article/details/88969572

    注:等待安装,时间比较长。其中出现说 app文件夹下面有文件夹不用管,等待出现如下就表示成功

    ... /oracle/oraInventory/orainstRoot.sh /oracle/orahome/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用户,执行下面两个shell脚本:

    /home/oracle/app/oracle/oraInventory/orainstRoot.sh (这个可能没有)

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

    配置监听 oracle用户

    在安装的bin文件夹下执行

    ./netca /silent /responsefile /usr/oracle/oracle-11g/database/response/netca.rsp

    ll $ORACLE_HOME/network/admin/*.ora ./lsnrctl status

    处理不能创建监听的问题,先修改hosts 中的域名名称

    An unexpected error has been detected by HotSpot Virtual Machine:

    是由于默认的主机名导致的,修改2处

    [oracle@jc11g ~]$ vi /etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=test11g

    [oracle@jc11g ~]$ vi /etc/hosts

    # Do not remove the following line, or various programs

    # that require network functionality will fail.

    127.0.0.1               localhost.localdomain localhost test11g

    再执行

    hostname test11g

    创建数据库

    最后一个resp文件,用来静默建库,修改建库响应文件vim database/response/dbca.rsp

    1

    2

    3

    4

    5

    [CREATEDATABASE]

    GDBNAME = "orcl"

    SID = "orcl"

    TEMPLATENAME = "General_Purpose.dbc"

    CHARACTERSET = "ZHS16GBK"

    接下来以oracle在bin下命令行中输入下面的命令

    1

    ./dbca -silent -responseFile /usr/oracle/oracle-11g/database/response/dbca.rsp按下回车一次 然后直接输入数据库的密码,再按回车 再输入密码,最后再按回车等待

    注:

    • 这里各个参数用用-来表示,而不是上一步时的/号了(尴尬 - -!, 估计这几个程序不是同一个人写的。。。)

    • 建库过程中会要求输入多次密码,这个密码就是我们之前安装oracle时,在db_install.rsp233行 设定所有数据库用户使用同一个密码中设定的密码了。

    监听问题处理:

    配置监听(修改监听端口)

    如果上面的步骤你都执行的很顺利,那么是真的要恭喜你。但是90%的同学,在监听程序上会消耗很长时间,这里我们来统一总结一下如何正确配置监听。 如果我们用的是默认的监听文件,那么 oracle 的监听程序会建立在1521端口上,如果你想要修改到其他端口,或者你的监听程序不正确,这一章节我们统一来看如何处理

    正确的监听程序配置好是什么样子的

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    [root@oracle oradata]# lsnrctl status

    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-NOV-2018 16:23:20

    Copyright (c) 1991, 2009, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))

    STATUS of the LISTENER

    ------------------------

    Alias                     LISTENER

    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

    Start Date                17-NOV-2018 15:05:51

    Uptime                    0 days 1 hr. 17 min. 29 sec

    Trace Level               off

    Security                  ON: Local OS Authentication

    SNMP                      OFF

    Listener Parameter File   /app/oracle/orahome/network/admin/listener.ora

    Listener Log File         /app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml

    Listening Endpoints Summary...

     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))

    Services Summary...

    Service "oracleXDB.us.oracle.com" has 1 instance(s).

     Instance "oracle", status READY, has 1 handler(s) for this service...

    Service "orcl11g.us.oracle.com" has 1 instance(s).

     Instance "oracle", status READY, has 1 handler(s) for this service...

    The command completed successfully

    上面的代码是正确的监听程序的样子,注意到在 Services Summary 部分,是能看到2个实例的, 而如果你的监听程序有问题,那么这里会显示

    The listener supports no services

    接下来我们来看如何处理。

    修改 listener.ora 文件

    我们看到在上面的程序输出部分有一个Listener Parameter File,这个就是你的监听程序的配置文件,我们把它修改成下面的样子:

    1

    2

    3

    4

    5

    6

    7

    LISTENER =

     (DESCRIPTION_LIST =

       (DESCRIPTION =

         (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))

       )

     )

    ADR_BASE_LISTENER = /app/oracle

    其实就是修改 LISTENER 部分,把 HOST 换成我们之前设置的 host 名称(如果你有困惑,就把所有的 host 设置成一样的),PORT 就是我们的监听端口,如果你想换成其他的,就在这里替换掉。

    修改tnsnames.ora 文件

    在同一个目录中,修改’tnsnames.ora’文件,这样你才可以从本机正常登录

    1

    2

    3

    4

    5

    6

    7

    8

    oracle =

     (DESCRIPTION =

       (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))

       (CONNECT_DATA =

         (SERVER = DEDICATED)

         (SERVICE_NAME = oracle)

     )

     )

    这里是一样的,注意 SERVICE_NAME字段和你之前安装是设置的保持一致。

    修改 oracle 中的参数

    接下来,我们需要到数据库中进行相关设置。 先切换到 oracle 用

    1

    su oracle

    然后输入下面的命令免密进入 oracle 数据库sqlplus / as sysdba然后输入show parameter local_listener查看 listener 的配置,下面的代码是我已经配置好的

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    [oracle@oracle oradata]$ sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on Sat Nov 17 16:34:10 2018

    Copyright (c) 1982, 2009, Oracle.  All rights reserved.

    Connected to:

    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

    With the Partitioning, Oracle Label Security, OLAP, Data Mining,

    Oracle Database Vault and Real Application Testing options

    SQL>

    SQL> show parameter local_listener;

    NAME     TYPE VALUE

    ------------------------------------ ----------- ------------------------------

    local_listener     string (address = (protocol = tcp)(ho

    st = oracle)(port = 1521))

    我们接着执行下面的命令alter system set local_listener="(address = (protocol = tcp)(host = oracle)(port = 1521))" 来配置监听,其实这里的配置和我们第1步设置的 listener.ora中的基本是一样的。

    配置好了之后,我们可以再检查一下listener,看看是不是得到和我之前一样的效果了? 如果没有

    1

    2

    3

    4

    lsnrctl reload

    #或者

    lsnrctl stop

    lsnrctl start

    如果还是不行,请自行 google。。。

    其他

    这里附上一些备用的东西

    启动和添置数据库的脚本

    • 手动启动shell vim start_oracle.sh

    1

    2

    3

    #!/bin/sh

    lsnrctl start

    dbstart $ORACLE_HOME

    • 手动停止shell vim stop_oracle.sh

    1

    2

    3

    #!/bin/sh

    lsnrctl stop

    sqlplus / as sysdba @stop.sql

    • 停止sql脚本 vim stop.sql

    1

    2

    shutdown immediate

    exit

    重启数据库

    sqlplus / as sysdba

    shutdown immediate

    开启数据库

    sqlplus / as sysdba

    startup

    建表和新建用户语句

    用sys或者sysdba用户登录oracle数据库,然后执行下面的命令来新建表空间和用户

    1

    2

    3

    4

    5

    createtablespacedatadatafile'/oracle/oradata/sms/data01.dbf'size32000m

    alter tablespace data add datafile '/oracle/oradata/sms/data02.dbf' size 32000m

    create user test identified by test1234 default tablespace data temporary tablespace temp

    grant resource,connect,create session to test

    解释:

    • /oracle/oradata/ 是表空间的存储地址

    • create user命令 我们新建了一个用户 test,密码是 test1234

    取消用户密码180天有效期

    oracle11g之后的版本,默认的每个用户的密码有效期是 180天。 180天后,原先的密码就失效了。所以,偷懒的方法我们就把这个策略关闭就好了。

    1

    alter profile defaultlimit PASSWORD_LIFE_TIME unlimited;

    //重启监听

    切换用户su oracle

    进入cd

    刷新配置source .bash_profile

    查看安装路径echo $ORACLE_HOME

    进入安装路径的bin下面启动lsnrctl start

    查看监听状态lsnrctl status 开启监听:lsnrctl start 关闭监听:lsnrctl stop

    //启动数据库

    进入sql:sqlplus / as sysdba

    可以看到连接上Oracle后通过命令:

    select instance_name, status from v$instance;

    查询到实例名称为ora11g, 现在处于open状态。实例的状态可以分为装载(amount),启动(open),关闭()。装载是启动的一个前置状态。

    启动:startup

    关闭:shutdown immediate

    装载:startup mount

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 检查 依赖 是否 缺少 binutils
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证