【成功安装】Oracle静默安装全过程,每步都有详解

1、(root用户操作)挂载yum源安装依赖包

yum -y install 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 \

pdksh \

sysstat \

unixODBC \

unixODBC-devel

    Centos7中pdksh库就是ksh库(可以不用安装

通过yum install pdksh -y 安装缺少 package ,这个库yum源中没有,需要自己下载;

通过wget命令直接下载pdksh的rpm包

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

cd /tmp

#安装

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

2、(root用户操作)添加oracle用户组和用户

如果要安装Oracle数据库,则需要以下本地操作系统组和用户:

  1. Oracle inventory组(通常为 oinstall)
  2. OSDBA组 (通常为 dba)
  3. OSOPER组 (通常为 oper)
  4. Oracle软件所有者(通常为 oracle)

命令:

groupadd oinstall

groupadd dba

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

#验证是否成功 id oracle

#给oracle用户设置密码 passwd oracle

 

3、(root用户操作)配置 root用户的 /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、(root用户操作)修改内核参数及配置oracle用户shell权限

a、#**修改内核参数**

vi /etc/sysctl.conf

## 追加如下内容:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmni = 4096

# kernel.shmmax 参数设置为物理内存的一半

kernel.shmmax = 1073741824

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 = 1048586

   #使修改立即生效

sysctl -p

b#限制oracle用户的shell权限

         vi /etc/security/limits.conf

#末尾追加

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

修改用户验证选项

vi /etc/pam.d/login

#末尾追加 (使limits.conf生效)

session required /lib64/security/pam_limits.so

session required pam_limits.so

 

5、解压及安装

# 总步骤及顺序

a、解压安装包

b、修改环境变量

c、创建目录

d、修改应答文件:db_install.rsp(安装应答文件)、  netca.rsp(监听应多文件,不用修改)、 dbca.rsp(创建实例应答文件) 

e、开始安装:

第一步:oracle安装

第二步:监听打开

第三步:实例创建

第四步:创建表空间及用户、给用户赋权

 

1)解压安装包、创建安装位置路径、修改目录属性及用户组

#oracle用户)操作增加环境变量

vim .bash_profileoracle用户

#在末尾添加

ORACLE_BASE=/data/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

ORACLE_SID=orcl

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

export PATH

 

#使生效oracle用户

source  /home/oracle/.bash_profile

 

      #oracle用户根据/home/oracle/.bash_profile中的变量进行创建目录和修改目录属性及用户

mkdir -p /data/oracle

mkdir -p /data/oracle/product/11.2.0/dbhome_1

 

chown -R oracle:oinstall /data/oracle

chmod 755 /data/oracle

 

 

2)应答文件修改及安装

 

解压后得到database目录,其中response目录里面有三个rsp文件,用来作为静默安装时应答文件的模板。分别为:

cd  database/response

ls  -l

-rw-rw-r-- 1 oracle oinstall 44960 Aug  8 17:10 dbca.rsp     //安装应答

-rw-rw-r-- 1 oracle oinstall 22752 Aug  8 14:23 db_install.rsp     //创建数据库应答

-rwxrwxr-x 1 oracle oinstall  5740 Feb 26  2009 netca.rsp //建立监听,本地服务名等网络设置备份配置文件

cp -r /oracle/database/response/ /home/oracle/          //备份修改

 

# 修改后的静默安装配置文件db_install.rsp内容如下:

主要修改的地方如下:

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=DBSERVER1

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/data/oracle/oraInventory //最好放到ORACLE_BASE

SELECTED_LANGUAGES=en,zh_CN

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

ORACLE_BASE=/data/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=AL32UTF8

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

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

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/oradata //可以使用默认值

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/recovery_data  //可以使用默认值

DECLINE_SECURITY_UPDATES=true   //一定要设为true 静默模式false有问题

 

#开始静默安装oracle

 

cd /oracle/database

./runInstaller -silent -responseFile /home/oracle/db_install.rsp

强制 需要加个参数  -force 

 

#查看安装进度

 

[oracle@Oracle database]$ cd /data/oracle/oraInventory/logs

[oracle@Oracle logs]$ tail -f installActions*log

 

#当出现以下信息时

/data/oracle/oraInventory/orainstRoot.sh

/data/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@Oracle ~]# /oracle/app/oracle/oraInventory/orainstRoot.sh

[root@Oracle ~]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

 

执行完上面的脚本后回到安装界面按下Enter继续。

 

# 开启监听(oracle用户)

 

** 先修改主机名(重要,不修改可能监听会报错)

vi /etc/hostname  修改为oracle

vi /etc/hosts  127.0.0.1 后添加个 oracle

netca /silent /responsefile /home/oracle/netca.rsp 

运行成功之后,在/data/oracle/product/11.2.0/dbhome_1/network/admin目录下会生成sqlnet.ora和listener.ora两个文件

 

如果是报以下错误,是 /etc/hosts 的配置格式有问题,请仔细检查,并删除 $ORACLE_BASE/cfgtoollogs/netca/下的日志,重新执行

[main] [ 2013-07-10 11:52:47.293 EDT ] [NetCALogger.initTrace:203]  Oracle Net Configuration Assistant: 13071011AM5247

[main] [ 2013-07-10 11:52:47.294 EDT ] [NetCALogger.initTrace:204]  Oracle Home: /oracle/product/db/11.2.0.3

[main] [ 2013-07-10 11:52:47.295 EDT ] [NetCALogger.initTrace:205]  Oracle Base: /oracle/product

[main] [ 2013-07-10 11:52:47.295 EDT ] [NetCALogger.initTrace:206]  Oracle Home Name: OraDb11g_home1

[main] [ 2013-07-10 11:52:47.342 EDT ] [InventoryUtil.getOUIInvSession:347]  setting OUI READ level to ACCESSLEVEL_READ_LOCKLESS

[main] [ 2013-07-10 11:52:47.343 EDT ] [HAUtils.<init>:239]  oui location /oracle/oraInventory/ContentsXML

[main] [ 2013-07-10 11:52:47.358 EDT ] [Version.isPre:528]  version to be checked 11.2.0.3.0 major version to check against10

[main] [ 2013-07-10 11:52:47.358 EDT ] [Version.isPre:539]  isPre.java: Returning FALSE

[main] [ 2013-07-10 11:52:47.362 EDT ] [OCR.loadLibrary:312]

 Inside constructor of OCR

[main] [ 2013-07-10 11:52:47.379 EDT ] [OCR.loadLibrary:320]  Going to load the ocr library

[main] [ 2013-07-10 11:52:47.379 EDT ] [Library.load:188]  library.load

[main] [ 2013-07-10 11:52:47.380 EDT ] [sPlatform.isHybrid:66]  osName=Linux osArch=amd64 JVM=64 rc=false

[main] [ 2013-07-10 11:52:47.381 EDT ] [sPlatform.isHybrid:66]  osName=Linux osArch=amd64 JVM=64 rc=false

[main] [ 2013-07-10 11:52:47.381 EDT ] [Library.load:264]  Loading  library /oracle/product/db/11.2.0.3/lib/libsrvmocr11.so

[main] [ 2013-07-10 11:52:47.384 EDT ] [OCR.loadLibrary:322]  loaded ocr libraries

[main] [ 2013-07-10 11:52:47.384 EDT ] [OCR.isCluster:952]  Calling OCRNative for isCluster()

[main] [ 2013-07-10 11:52:47.387 EDT ] [OCR.isCluster:956]  OCR Result status = true

[main] [ 2013-07-10 11:52:47.387 EDT ] [OCR.isCluster:968]  Bolean result = false

[main] [ 2013-07-10 11:52:47.390 EDT ] [CmdlineArgs.<init>:114]  Initializing variables array...

[main] [ 2013-07-10 11:52:47.390 EDT ] [CmdlineArgs.<init>:120]  Initializing NetProperties...

[main] [ 2013-07-10 11:52:47.391 EDT ] [CmdlineArgs.initArgs:137]  Initializing command line arguments...

[main] [ 2013-07-10 11:52:47.392 EDT ] [CmdlineArgs.parseLogParam:296]  Parsing /log argument...

[main] [ 2013-07-10 11:52:47.392 EDT ] [CmdlineArgs.parseLogParam:351]  Returning Log File = null

java.lang.ArrayIndexOutOfBoundsException: 2

        at oracle.net.ca.CmdlineArgs.parseArgs(CmdlineArgs.java:423)

        at oracle.net.ca.InitialSetup.<init>(NetCA.java:3999)

        at oracle.net.ca.NetCA.main(NetCA.java:428)

 

如果监听没有启动(lsnrctl status 查看),则手动启动监听器

[oracle@Oracle ~]$ lsnrctl start

 

 

配置oracle实例(创建数据库)

vi dbca.rsp

 

RESPONSEFILE_VERSION = "11.2.0" //不能更改

 OPERATION_TYPE = "createDatabase"

 GDBNAME = "orcl//全局数据库的名字=SID+主机域名,没有主机域名时请设置为SID

 SID = "orcl"   //对应的实例名字

 TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件

 DATAFILEDESTINATION = /data/oracle/oradata //数据文件存放目录

 RECOVERYAREADESTINATION=/data/oracle/recovery_data //恢复数据存放目录

 CHARACTERSET = "AL32UTF8"  //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。

 TOTALMEMORY = "5120"   //oracle内存5120MB 可以不写使用默认值

另外还要配置SYSPASSWORD及其他如果不修改,可能出现实例创建不了的情况

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

# Name          : SYSPASSWORD

# Datatype      : String

# Description   : Password for SYS user

# Valid values  : Check Oracle11g Administrator's Guide

# Default value : None

# Mandatory     : Yes

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

SYSPASSWORD = "password"

 

 

开始创建数据库实例

$ORACLE_HOME/bin/dbca -silent -responseFile /oracle/app/oracle/database/response/dbca.rsp

 

设置oracle开机器启动

   修改/etc/oratab /etc/rc.d/rc.local

 

vi /etc/oratab

 

orcl:/u01/app/oracle/product/11.2.0.4/db_1:N  修改为 orcl:/u01/app/oracle/product/11.2.0.4/db_1:Y

表示允许开机时使用dbstart 启动实例

 

vi /etc/rc.d/rc.local

 

 添加以下内容:

su oracle -lc "/u01/app/oracle/product/11.2.0.4/db_1/bin/lsnrctl start"

su oracle -lc /u01/app/oracle/product/12.1.0/db_1/bin/dbstart

说明:/u01/app/oracle/product/12.1.0/dbhome_1为oracle的安装目录,要根据实际情况进行修改。

6、创建用户和表空间、赋权

# 表空间

CREATE TABLESPACE logic DATAFILE '/data/oracle/oradata/orcl/logic.dbf'

SIZE 2G

AUTOEXTEND ON

NEXT 200M;

 

CREATE TABLESPACE platform DATAFILE '/data/oracle/oradata/orcl/platform.dbf'

SIZE 1G

AUTOEXTEND ON

NEXT 200M;

 

# 创建用户并设置表空间

create user logic identified by 密码  default tablespace logic;   

 create user platform identified by 密码 default tablespace platform;

# 赋权导入导出等

grant dba,imp_full_database,exp_full_database,connect,resource,create session to logic;

grant dba,imp_full_database,exp_full_database,connect,resource,create session to platform;

 

 

 

猜你喜欢

转载自blog.csdn.net/yy4545/article/details/110664665
今日推荐