Linux 命令符下安装Oracle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令符下安装Oracle相关的知识,希望对你有一定的参考价值。

              Linux 命令符下安装Oracle

  之前都是使用脚本直接安装,这样很容易出现出现问题 不知道排错, 于是尝试在linux 下手动分步安装, 内部有些原理并不是很懂, 待慢慢完善, 最好是多安装几次图形化安装,理解原理。

一、准备安装的环境:

1.硬件: centos 6.5

         Oracle database 11g

      /db  分区大于10G  

      /free  内存大于2G

2.Oracle 的安装的两个软件包:

     linux.x64_11gR2_database_2of2.zip

     linux.x64_11gR2_database_1of2.zip

     下载地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip   

                    --http-user=$usr --http-password=$code

                

              wgethttp://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zip

                 --http-user=$usr --http-password=$code

     注意: 这里提供一个下载的地址是本公司的软件下载地址,也可以去oracle 官网上下

           64 位的11g 版本的。

 

  3.安装oracle 的必须依赖包(必须检查,否则安装后会报错):

       检查所有依赖包是否有安装

      rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc ksh  libstdc++-devel libstdc++ make numactl-devel sysstat compat-gcc-34  compat-gcc-34-c++ gcc  libXp openmotif compat-db glibc.i686

      使用rpm 检查not“ 没有安装的,使用yum -y install 安装即可, 安装完之后最好  

      使用rpm 再检查一下。

   4. 填写hosts 文件及主机名, 因为oracle 会根据hosts 进行绑定,不填好会报错,创

      建不了参数及实例,如下:

 

技术分享

       

5. 关闭iptables selinux

 

进入安装

1. 建立oracle 的用户, Oracle 需要有自己的用户操作:

       groupadd oinstall

       groupadd dba

       useradd -d /home/oracle -g oinstall -G dba -m oracle

     2. 建立数据库的目录db, 如果业务用,需要足够的空间,最好的单独的分区。

        mkdir -p /db/oracle11g/product/11.2.0/db

        chmod -R 775 /db

        chown -R oracle:oinstall /db

     3. 修改内核参数,以便支持oracle

      1)/etc/sysctl.conf 文件中, 使用vim进行编辑, 省事,直接在最后增加上就行,  

       参数如下:

       kernel.shmall = 2097152

       kernel.shmmax = 2147483648

       kernel.shmmni = 4096

       kernel.sem = 250 32000 100 128

       fs.file-max = 65536

       net.ipv4.ip_local_port_range = 1024 65000

       net.core.rmem_default=262144

       net.core.rmem_max=262144

       net.core.wmem_default=262144

       net.core.wmem_max=262144

       如下:

          技术分享

 

   是更改的内核生效:

      /sbin/sysctl  -p

   

2) 修改用户的限制:

   修改 /etc/security/limits.conf  文件, 直接在最后面增加就行:

    oracle  soft     nproc          2047

    oracle  hard     nproc          16384

    oracle  soft     nofile         1024

    oracle  hard     nofile         65536

    再在/etc/pam.d/login 的文件中修改,直接在最后面增加就行:

    session required        /lib64/security/pam_limits.so

    session required        pam_limits.so

        最后在/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

 

        

4. 设置oracle 用户的环境变量,这里要小心特别注意,一个没注意就会导致没有权限

        安装。如下:

        Vi /home/oracle/.bash_profile   

        export ORACLE_BASE=/db/oracle11g       #这个是声明数据库的目录

        export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db    # 这个是数据库的家

                                                                目录

        export ORACLE_SID="benguo"      #这个是指安装oracle 的实例名字,可随你业务

                                       名字写或者公司, 如果你需要一次性将实例也           

                                       安装上, 可以在这里添加sid , 否则你后面

                                        也要写, 如果忘写了就可能会出错。

        export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin   #这个在环境,oracle 家目录

                                                       的变量,否则在安装数据库  

                                                        的时候就会找不sqlplus          

                                                        造成安装不成功。

        export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib   #这个是指oracle 的库,也

                                                  需要指明,否则造成依赖库找不到

        export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK    #字符集

        export

        

        注意: 添加完oracle 的环境变量就需要进行生效,命令如下:

          Source /home/oracle/.bash_profile

        实验如下图:

         技术分享

 

 

5.  解压oracle 的安装文件包,如下:      

    unzip linux.x64_11gR2_database_1of2.zip

    unzip linux.x64_11gR2_database_2of2.zip    

提醒: 在这里我说明一下我的软件包安装的路径, 因为这个解压后的安装包,在后面

       还需要被用上, 所以也需要特别的注意权限的问题。我的环境如下:

   

    技术分享

 我在/db 下创建了一个soft 目录,并给oracle 用户递归的所有权限, 将两个安装的软件包放在soft 下,进行加压得到database 目录。

Mkdir -p /db/soft

Chown -R Oracle:oinstall /db/soft

Chmod -R 755 /db/soft

 

6. 静默安装数据库软件:

   1) 静默安装需要相应文件模板的文件, 在解压后的安装软件包的database 的目录下有一个response响应目录下的db_install.rsp , 修改步骤如下:

   Su - oracle

   Vim  /db/soft/database/response/db_install.rsp  修改响应安装数据库的模块,如下:

   [[email protected] response]# egrep -v "#|^$" db_install.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

oracle.install.option=INSTALL_DB_SWONLY    #安装数据库的类型

ORACLE_HOSTNAME=localhost.localdomain     #主机的名称(hostname)查询

UNIX_GROUP_NAME=oinstall                 #安装组

INVENTORY_LOCATION=/db/oraInventory        #可以是默认值, inventory 目录

SELECTED_LANGUAGES=en                    #选择安装的语言

ORACLE_HOME=/db/oracle11g/product/11.2.0/db  #oracle 的家目录,你设置的oracle 环境

                                            中是多少就写多少

ORACLE_BASE=/db/oracle11g                  #Oracle安装目录

oracle.install.db.InstallEdition=EE              

oracle.install.db.isCustomInstall=false

oracle.install.db.customComponents=

oracle.install.db.DBA_GROUP=dba              #dba 用户组

oracle.install.db.OPER_GROUP=oinstall          #oper 用户组

oracle.install.db.CLUSTER_NODES=

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

oracle.install.db.config.starterdb.globalDBName=

oracle.install.db.config.starterdb.SID=

oracle.install.db.config.starterdb.characterSet=

oracle.install.db.config.starterdb.memoryLimit=

oracle.install.db.config.starterdb.memoryOption=false

oracle.install.db.config.starterdb.installExampleSchemas=false

oracle.install.db.config.starterdb.enableSecuritySettings=true

oracle.install.db.config.starterdb.password.ALL=

oracle.install.db.config.starterdb.password.SYS=

oracle.install.db.config.starterdb.password.SYSTEM=

oracle.install.db.config.starterdb.password.SYSMAN=

oracle.install.db.config.starterdb.password.DBSNMP=

oracle.install.db.config.starterdb.control=DB_CONTROL

oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=

oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false

oracle.install.db.config.starterdb.dbcontrol.emailAddress=

oracle.install.db.config.starterdb.dbcontrol.SMTPServer=

oracle.install.db.config.starterdb.automatedBackup.enable=false

oracle.install.db.config.starterdb.automatedBackup.osuid=

oracle.install.db.config.starterdb.automatedBackup.ospwd=

oracle.install.db.config.starterdb.storageType=

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

oracle.install.db.config.asm.diskGroup=

oracle.install.db.config.asm.ASMSNMPPassword=

MYORACLESUPPORT_USERNAME=

MYORACLESUPPORT_PASSWORD=

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false  #手动写了false

DECLINE_SECURITY_UPDATES=true               #设置安全更新(貌似是有bug,这个一定

                                       要选true ,否则会无限制提醒邮件地址有问题,

                                       终止安装,)

PROXY_HOST=

PROXY_PORT=

    

 以上未写的可以空着。

 

 开始静默安装

 Cd  /db/soft/database

  ./runInstaller  -ignorePrereq -silent -responseFile /db/soft/database/response/db_install.rsp -force

 

安装的时候有出现一些info waring 的信息, 不用再意,主要注意error 的信息,出现以下信息是安装完毕。如下:

技术分享

 注意: 如果没有安装终止了,则根据静默安装的日志进行查看解决。  

 

注:安装完数据库库之后则需要测试能否能进数据库, sqlplus / as sysdba  如果提示sqlplus 命令找不到,可以在oracle 用户命令下进行查看$PATH,看是否有路径,如果没有,则需要查看以下oracle 用户的环境变化ORACLE_HOME 变量是否被加入到PATH 中, 如下:

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

 

2) 安装完数据库之后则需要进行更改以下配置, 在这里只需要使用root 用户去执行自带的脚本就可以,如以下两个脚本:

/db/oraInventory/orainstRoot.sh    

 以上这个脚本是自动去配置系统安装配置文件/etc/oralnst.loc ,并给予权限的。 注意如果在安装数据之前就进行了配置这个文件, 安装的数据库的时候不会生成这个脚本和自带的默认脚本。具体的配置如下:

Vim /etc/oraInst.loc

Nventory_loc=/db/oraInventory    #这个路径指的是数据库放inventory 的路径

inst_group=oinstall              #这个是安装组

 

注意 在这里需要进行查看权限,

Chown oracle:oiinstall /etc/oraInst.loc

Chmod 644 /etc/oraInst.loc

 

 Sh  /db/oracle11g/product/11.2.0/db/root.sh   (使用root 下进行执行)

 这个脚本是具体关于一些更改参数的设置,具体可以自己打开看。

 

7、 进行静默配置网络监听

 $ORACLE_HOME/bin/netca  /silent /responseFile  /db/soft/database/response/netca.rsp

  注意: 这个模板使用默认的就可以,oracle 的监听文件在安装完实例之后进行配置添加。

 

在这个安装完之后在/db/oracle11g/product/11.2.0/db/network/admin/  下会出现一些监听的文件,如下:

 

[[email protected] ~]# ll /db/oracle11g/product/11.2.0/db/network/admin/

总用量 16

-rw-r--r--. 1 oracle oinstall  536 4月   7 15:46 listener.ora

drwxr-xr-x. 2 oracle oinstall 4096 4月   7 11:03 samples

-rw-r--r--. 1 oracle oinstall  187 5月   7 2007 shrept.lst

-rw-r--r--. 1 oracle oinstall  213 4月   7 15:37 sqlnet.ora

8. 静默安装数据库实例 (在oracle 用户安装)

  在这里需要配置静默安装数据库响应的模板文件,也是在安装软件包中解压在database下的response 目录下的 dbca_rsp 文件,具体配置如下:

[[email protected] ~]# egrep -v "#|^$"  /vol/ora11g/dbca_benguo.rsp

[GENERAL]

RESPONSEFILE_VERSION = "11.2.0"

OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]

GDBNAME = "benguo"           #全局数据库的名字

SID = "benguo"                 # 数据库实例,根据上面的你写的SID 一样的,随便写

TEMPLATENAME = "benguo.dbc"   #  这个可以是默认的模板,不会写默认的,最好是默认,

                                 这里是我们dba 写的,所以就用上了

SYSPASSWORD = "[email protected]acle"

SYSTEMPASSWORD = "[email protected]"

SYSMANPASSWORD = "[email protected]"

DBSNMPPASSWORD = "[email protected]"   # 前面这四个都可以不管,默认就行

CHARACTERSET = "ZHS16GBK"         #编码

NATIONALCHARACTERSET=UTF8”   #编码

[createTemplateFromDB]

SOURCEDB = "myhost:1521:orcl"

SYSDBAUSERNAME = "system"

TEMPLATENAME = "My Copy TEMPLATE"

[createCloneTemplate]

SOURCEDB = "orcl"

TEMPLATENAME = "My Clone TEMPLATE"

[DELETEDATABASE]

SOURCEDB = "orcl"

[generateScripts]

TEMPLATENAME = "New Database"

GDBNAME = "orcl11.us.oracle.com"

[CONFIGUREDATABASE]

[ADDINSTANCE]

DB_UNIQUE_NAME = "orcl11g.us.oracle.com"

NODELIST=

SYSDBAUSERNAME = "sys"

[DELETEINSTANCE]

DB_UNIQUE_NAME = "orcl11g.us.oracle.com"

INSTANCENAME = "orcl11g"

SYSDBAUSERNAME = "sys"

 

配置完模板之后,进行静默安装数据库

$ORACLE_HOME/bin/dbca -silent -responseFile /db/soft/database/response/dbca.rsp

 

等到100%安装完成之后就是安装了。

 

9. 安装数据库的实例之后,进行配置数据库实例启动以及监听文件。

   

1)修改监听文件,添加命令如下:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = benguo)

      (ORACLE_HOME = /db/oracle11g/product/11.2.0/db)

      (SID_NAME = benguo)

    )

  )

  实验如下图:

 

技术分享 

 

2)修改实例启动配置文件,如下图,将N”改成Y”就好了。这样就可以通过dbstart 启动实例,监听器。

   Su - oracle

   技术分享

 

 

 

 10 。安装到这一步的时候就算是安装成功了, 可以进行netstat 进行查看oracle 的监听程序是否已经启动, 默认情况下,安装完实例就是启动的状态。

技术分享 

或者是进入数据库内进行查看数据库的状态:

Su - oracle

Sqlplus / as sysdba

Select status from v$instance;

如是open的状态即是正常启动的,如图:

技术分享 

 

 

 

在这里你的数据库就是正常的安装了,并且还正常可以运行。

 

 

 

 数据库的一些功能的使用。

 

1. 设置数据库自启动,在/etc/rc.d/init.d/oracle

       #!/bin/bash

#

# oracle       Starts Oracle Database Server

#

#

# chkconfig: 345 80 20

# description: Oracle Database Server

### BEGIN INIT INFO

# Provides: $oracle

### END INIT INFO

 

 

case "$1" in

  start)

        echo -n "Starting Oracle Databases: "

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        su - oracle -c dbstart >> /var/log/oracle

        echo "Done."

        echo -n "Starting Oracle Listeners: "

        su - oracle -c "lsnrctl start" >> /var/log/oracle

        echo "Done."

        echo ""

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Finished." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        touch /var/lock/subsys/oracle

        ;;

  stop)

        echo -n "Shutting Down Oracle Listeners: "

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        su - oracle -c "lsnrctl stop" >> /var/log/oracle

        echo "Done."

        rm -f /var/lock/subsys/oracle

        echo -n "Shutting Down Oracle Databases: "

        su - oracle -c dbshut >> /var/log/oracle

        echo "Done."

        echo ""

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Finished." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        ;;

  restart)

        echo -n "Restarting Oracle Databases: "

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        su - oracle -c dbshut >> /var/log/oracle

        su - oracle -c dbstart >> /var/log/oracle

        echo "Done."

        echo -n "Restarting Oracle Listeners: "

        su - oracle -c "lsnrctl stop" >> /var/log/oracle

        su - oracle -c "lsnrctl start" >> /var/log/oracle

        echo "Done."

        echo ""

        echo "----------------------------------------------------" >> /var/log/oracle

        date +"! %T %a %D : Finished." >> /var/log/oracle

        echo "----------------------------------------------------" >> /var/log/oracle

        touch /var/lock/subsys/oracle

        ;;

  *)

        echo "Usage: oracle {start|stop|restart}"

        exit 1

Esac

Chmod 755 /etc/rc.d/init.d/oracle  

ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle

ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle

ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle

ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle

ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle

 

2. 安装数据库之后, 需要创建表空间才能正能使用。

注意: 在创建表空间之前,首先创建表空间名字存放的数据文件目录,如下:

 Mkdir -p /db/oracle11g/oradata/zebra

并设置权限,如下:

 Chown orale:oinstall  /db/oracle11g/oradata/zebra

 

实验如下图:

技术分享 

    创建表空间

create  tablespace tyfo datafile ‘/db/oracle11g/oradata/tyfo/tyfo01.dbf‘ size 500m autoextend on next 500m maxsize 31g logging online permanent extent management local;

创建用户

create user zebra identified by zebra default tablespace zebra temporary tablespace temp;

设置权限

grant dba,connect, create session, resource to zebra;

创建备份文件,设置权限

CREATE DIRECTORY back AS ‘/home/oracle‘;

GRANT READ,WRITE ON DIRECTORY back to zebra;

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

alter system set audit_trail=false scope=spfile;

shutdown abort;

startup;

 

 

 

 

今天就写到这为止, 有新的需求在再写。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


本文出自 “11015159” 博客,请务必保留此出处http://11025159.blog.51cto.com/11015159/1915252

以上是关于Linux 命令符下安装Oracle的主要内容,如果未能解决你的问题,请参考以下文章

linux 下面安装的oracle,但home/oracle/里面没有.bash_profile这个文件,不知是丢失还是怎样,要怎么处理

OCP 相关课程列表

Oracle 11g 在win7 未安装成功 怎么卸载

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

Redhat5_linux 系统环境下 oracl11g的安装教程图解

如何用PL/SQL Developer连接ORACL数据库