Oracle11g静默安装

时间:2021-09-13 06:42:47

静默安装Oracle11G

前期准备

1虚拟机准备:

Centos 6.5 64位

内存2G

硬盘30G

Cpu 4核

Hostname silent

将安装包放到/tmp/oracle目录下

2.软件所需依赖包检查

依赖包检查(root下执行)

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel

由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装

yum -y install  xxxx即可

gcc安装顺序

ppl-0.10.2-11.el6.x86_64-->cloog-ppl-0.15.7-1.2.el6.x86_64-->mpfr-2.4.1-6.el6.x86_64-->cpp-4.4.7-18.el6.x86_64

3.创建Oracle用户和相应的属组

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle    #密码暂定为oracle

4.创建目录修改属组和权限

创建目录:

mkdir -p
/u01/app/oracle/product/11.2.0/db_1

mkdir -p /u01/app/oracle/oradata

mkdir -p /u01/app/oracle/inventory

mkdir -p
/u01/app/oracle/fast_recovery_area

chown -R oracle.oinstall
/u01/app/oracle

chmod -R 755 /u01/app/oracle

语句的作用依次为:前面创建的目录主要作用为

Oracle家目录、数据文件存放位置,安装日志存放位置,快速恢复区

修改属组,修改权限

5.解压Oracle软件压缩包

unzip
p13390677_112040_Linux-x86-64_1of7.zip && unzip
p13390677_112040_Linux-x86-64_2of7.zip

到这里基本上没有什么压力,下面是服务器的一些配置,如果看不懂没关系的,照着抄,轻微改动几个地方就行:

6.服务器配置文件修改

6.1 在/etc/hosts文件中添加主机名:

我的做法是注释掉原来的那行127.0.0.1添加下面这行

127.0.0.1 silentcoln.dataguru silentcoln

6.2关闭防火墙(如果是正式生产库,请评估后在操作,可以修改配置文件开放1521端口)

chkconfig ipatbles off

service
iptables stop

service iptables status

6.3 关闭selinux

原来那行注释掉,将值改为disable

[root@silentcoln ~]# setenforce 0

6.4 修改内核参数文件

vim /etc/sysctl.conf

添加以下内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax
= 1073741824

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

其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

然后执行sysctl –p             [root@silentcoln
~]# sysctl -p

6.5 修改用户的限制文件

vim /etc/security/limits.conf

添加以下内容

oracle   
soft    nproc    2047

oracle   
hard    nproc    16384

oracle   
soft    nofile    1024

oracle   
hard    nofile    65536

oracle   
soft    stack    10240

6.6修改/etc/pam.d/login文件:

vim /etc/pam.d/login

添加以下内容:

session required  /lib64/security/pam_limits.so

session required   pam_limits.so

经过这几部配置服务器信息已经配置完。下面开始切换到Oracle用户进行配置和安装

7.切换Oracle用户进行环境变量配置

[root@silentcoln ~]# su - oracle

[oracle@silentcoln ~]$ vim .bash_profile

在文件中添加一下内容

[root@silentcoln ~]# su - oracle

[oracle@silentcoln ~]$ vim
.bash_profile

在文件中添加一下内容

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

ORACLE_SID=orclhq

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH

保存退出后使配置文件生效

[oracle@silentcoln ~]$ source
.bash_profile

8.编辑静默安装响应文件

[root@silentcoln Oracle]# ll

total 2487212

drwxr-xr-x. 7 root   root           4096 Aug 27  2013 database

-rw-r--r--. 1 oracle oinstall 1395582860
Oct 28 11:23 p13390677_112040_Linux-x86-64_1of7.zip

-rw-r--r--. 1 oracle oinstall 1151304589
Oct 28 11:22 p13390677_112040_Linux-x86-64_2of7.zip

[root@silentcoln Oracle]# chown -R
oracle.oinstall /tmp/Oracle

在修改文件前,我们来备份一下相应的文件:

[root@silentcoln response]# pwd

/tmp/Oracle/database/response

[root@silentcoln response]# ll

total 80

-rwxr-xr-x. 1 oracle oinstall 44533 Aug
27  2013 dbca.rsp

-rw-r--r--. 1 oracle oinstall 25116 Aug
27  2013 db_install.rsp

-rwxr-xr-x. 1 oracle oinstall  5871 Aug 27  2013 netca.rsp

[root@silentcoln response]# cp
db_install.rsp db_install.rsp.bak

然后在解压目录编辑改响应文件

[root@silentcoln response]# vim
db_install.rsp

需要设置的选项如下:

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=silentcoln.dataguru         #用hostname命令查看

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/u01/app/oracle/inventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

ORACLE_BASE=/u01/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

等这些参数都配置进去后就可以根据响应文件进行静默安装Oracle软件了

 

开始安装软件

9.根据响应文件进行静默安装Oracle软件

./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp

可以在另一个窗口中打开这个日志,看安装详细信息

有些警告可以直接忽略,如果有报错,要定位并解决问题,直到看到这个界面说明安装以及成功。

如果你是第一次安装,这里会提示执行两个脚本,因为我之前安装过一次了,估计是哪里有遗漏,这里只提示出一个需要执行的脚本。

执行这个脚本很简单,重新开一个窗口,以root身份执行了就行,然后回来按下回车结束这个过程。

[root@silentcoln ~]# who am i

root    
pts/2        2017-10-28 14:45 (192.168.116.2)

[root@silentcoln ~]#
/u01/app/oracle/product/11.2.0/db_1/root.sh

Check
/u01/app/oracle/product/11.2.0/db_1/install/root_silentcoln.dataguru_2017-10-28_14-54-20.log
for the output of root script

静默方式配置监听

10.静默方式配置监听

[oracle@silentcoln database]$ netca /silent
/responseFile /tmp/oracle/database/response/netca.rsp

看到下面的信息就说明已经配置好了

同时可以在一下目录中看到相应的文件生成:listener.ora  sqlnet.ora

[oracle@silentcoln admin]$ cd $ORACLE_HOME

[oracle@silentcoln db_1]$ cd network/admin/

[oracle@silentcoln admin]$ ls

listener.ora  samples  shrept.lst 
sqlnet.ora

同时默认监听端口1521也可以监控得到了

netstat -tnulp | grep 1521

静默方式建库

11.静默方式建库

[root@silentcoln response]# pwd

/tmp/Oracle/database/response

[root@silentcoln response]# ls

dbca.rsp 
db_install.rsp  db_install.rsp.bak  netca.rsp

[root@silentcoln response]# cp dbca.rsp db

dbca.rsp            db_install.rsp      db_install.rsp.bak

[root@silentcoln response]# cp dbca.rsp
dbca.rsp.bak

[root@silentcoln response]# vim dbca.rsp

设置以下参数:

GDBNAME= "silent"

SID =" silent"

SYSPASSWORD= "oracle"

SYSTEMPASSWORD= "oracle"

SYSMANPASSWORD= "oracle"

DBSNMPPASSWORD= "oracle"

DATAFILEDESTINATION=/u01/app/oracle/oradata

RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area

CHARACTERSET= "ZHS16GBK"

TOTALMEMORY= "1638"

其中TOTALMEMORY ="1638" 为1638MB,物理内存2G*80%。

注意,如果密码没有指定,在执行dbca建库语句后,会出现清屏现象,如果出现清屏现象,请检查上面提到的几个password的设定是否正确

编辑完成就可以开始静默安装了:

dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp

在这里我又报一个错:

问题出现在/etc/oratab文件中,看看里面的内容还包含之前数据库实例的启动信息。手动将其清除,再次尝试安装。

将这一行注释掉,再次执行

等进度到100%即可,然后可以进行实例进程检查

ps -ef | grep ora_ | grep -v grep

[oracle@silentcoln ~]$ echo $ORACLE_SID

silent

[oracle@silentcoln ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on
Sat Oct 28 16:02:17 2017

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

Connected to:

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

With the Partitioning, OLAP, Data Mining
and Real Application Testing options

SQL> select status from v$instance;

STATUS

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

OPEN

到此,静默安装数据库已经完成。

Oracle开机自启动设置    这个并不特别推荐,最好是手动启动和关闭数据库

1.修改$ORACLE_HOME/bin/dbstart

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

2.修改$ORACLE_HOME/bin/dbshut

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

3.修改/etc/oratab文件

将silent:/u01/app/oracle/product/11.2.0/db_1:N中最后的N改为Y,

成为silent:/u01/app/oracle/product/11.2.0/db_1:Y

4.敲入命令dbshut和dbstart测试

如果上面四步正确
这里应该会看到如下信息

实例关闭,监听也停了,查Oracle后台进程发现也没有了

执行完dbstart

实例启动了,监听也启动了

5.切换到root账户建立自启动脚本

cd /etc/rc.d/init.d/

vi oracle

 
 

#!/bin/bash

# chkconfig: 345 99 10

# description: Startup Script for
Oracle Databases

# /etc/init.d/oracle

export ORACLE_SID=silent

# export
ORACLE_HOME_LISTNER=/oracle/product/11.2.0/bin/

export ORACLE_BASE=/u01/app/oracle

export
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

export PATH=$PATH:$ORACLE_HOME/bin

case "$1" in

start)

su oracle -c $ORACLE_HOME/bin/dbstart

touch /var/lock/oracle

echo "OK"

;;

stop)

echo -n "Shutdown Oracle: "

su oracle -c $ORACLE_HOME/bin/dbshut

rm -f /var/lock/oracle

echo "OK"

;;

*)

echo "Usage: 'basename $0'
start|stop"

exit 1

esac

exit 0

#chmod 755 /etc/rc.d/init.d/oracle

# chkconfig --add oracle

# chkconfig oracle on

克隆安装Oracle 11G

1.搭建新的虚拟机

在VMware上搭建了一个新的虚拟机,基本信息如下

Centos 6.5 64位

Ip 192.168.116.123

内存2G

硬盘25G

Hostname coln

2.Oracle环境准备

环境准备和静默安装环境准备一样,这里就不过多赘述,直接上步骤了:

       
 
  1. 依赖包检查(root下执行)

rpm -q binutils
compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc
glibc-common glibc-devel glibc-headers kernel-headers ksh
libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel
make numactl-devel sysstat unixODBC unixODBC-devel

由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装

yum -y install  xxxx即可

  1. 创建用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle

  1. 参数修改

3.1  
/etc/hosts 文件修改,在hosts文件最下面增加一条

Oracle11g静默安装

 
   

3.2 vim
/etc/sysctl.conf添加以下内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax =
1073741824

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

其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

然后执行sysctl –p

3.3 vim /etc/security/limits.conf

添加以下内容

oracle    soft   
nproc    2047

oracle    hard   
nproc    16384

oracle    soft   
nofile    1024

oracle    hard   
nofile    65536

oracle    soft   
stack    10240

3.4 vim /etc/pam.d/login

添加以下内容:

session required  /lib64/security/pam_limits.so

session required   pam_limits.so

4. 设置oracle用户的环境变量

[root@coln ~]# su - oracle

[oracle@coln ~]$ vim .bash_profile

添加下面的内容:

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

ORACLE_SID=silent                             ##注意,我们是克隆操作,这里跟原库保持一致,否则后面会有很多不必要的麻烦,比参数文件修改,监听、控制文件的修改等

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME
ORACLE_SID PATH

3.原库一致性关库,并拷贝$ORACLE_HOME到新的服务器

       
 
  1. 原库一致性关库

[oracle@silentcoln ~]$ dbshut

Processing Database instance
"silent": log file
/u01/app/oracle/product/11.2.0/db_1/shutdown.log

[oracle@silentcoln ~]$ lsnrctl status

使用scp命令将所需要的文件复制到新的服务器上去

在原来那台silent服务器上执行:

scp /u01/app  root@192.168.116.123:/u01/

由于我只创建了/u01文件夹,这里懒得创建别的文件夹,就把原库的直接复制过来用了

复制过来后修改目录权限

chown -R oracle.oinstall
/u01/app/oracle

chmod -R 755 /u01/app/oracle

[oracle@coln bin]$ pwd

/u01/app/oracle/product/11.2.0/db_1/clone/bin

perl clone.pl ORACLE_BASE=$ORACLE_BASE
ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=db_2

执行过程界面截图如下:

很快就到这一步了,比静默安装速度快了好多

Oracle11g静默安装

 
   

处理方法一样,打开一个新的界面,按照提示执行两个脚本即可

Oracle11g静默安装

Oracle11g静默安装

下面如果要设置开机启动什么的,参考静默安装案例,这里不再赘述

手工建库

(注意手工建库的基础是以及安装了数据库软件,这里不再赘述,我使用的是静默安装的数据库软件,可以参考前面内容,静默安装Oracle软件)

官方文档

https://docs.oracle.com/cd/E11882_01/server.112/e25494/toc.htm

步骤比较多,我把官方文档摘抄了一部分下来。手工建库部分难度比价大,感兴趣可以动手实践下。

Complete the following steps to
create a database with the CREATE DATABASE statement.
The examples create a database named mynewdb.

Step 1:
Specify an Instance Identifier (SID)

Step 2:
Ensure That the Required Environment Variables Are Set

Step 3:
Choose a Database Administrator Authentication Method

Step 4:
Create the Initialization Parameter File

Step 5:
(Windows Only) Create an Instance

Step 6:
Connect to the Instance

Step 7:
Create a Server Parameter File

Step 8:
Start the Instance

Step 9:
Issue the CREATE DATABASE Statement

Step 10:
Create Additional Tablespaces

Step 11:
Run Scripts to Build Data Dictionary Views

Step 12:
(Optional) Run Scripts to Install Additional Options

Step 13:
Back Up the Database.

Step 14:
(Optional) Enable Automatic Instance Startup

1.  
搭建新的虚拟机

我这里只是把克隆装数据库的那个虚拟机回到了之前的快照,所以这里服务器信息跟上一个一样的。

在VMware上搭建了一个新的虚拟机,基本信息如下

Centos 6.5 64位

Ip 192.168.116.123

内存2G

硬盘25G

Hostname coln

2.Oracle环境准备

环境准备和静默安装环境准备一样,这里就不过多赘述,直接上步骤了:

       
 
  1. 依赖包检查(root下执行)

rpm -q binutils compat-libstdc++-33
elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common
glibc-devel glibc-headers kernel-headers ksh
libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel
make numactl-devel sysstat unixODBC unixODBC-devel

由于我已经成功安装了一次,然后卸载重装出教程,此处以来表检查时候都已经存在了,如果不存在,可以yum安装

yum -y install  xxxx即可

  1. 创建用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba
oracle

passwd oracle

  1. 参数修改

6.1  
/etc/hosts 文件修改,在hosts文件最下面增加一条

Oracle11g静默安装

 
   

3.2 vim
/etc/sysctl.conf添加以下内容

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax =
1073741824

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

其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

然后执行sysctl -p

3.3 vim /etc/security/limits.conf

添加以下内容

oracle    soft   
nproc    2047

oracle    hard   
nproc    16384

oracle    soft   
nofile    1024

oracle    hard   
nofile    65536

oracle    soft   
stack    10240

3.4 vim /etc/pam.d/login

添加以下内容:

session required  /lib64/security/pam_limits.so

session required   pam_limits.so

4. 设置oracle用户的环境变量

[root@coln ~]# su - oracle

[oracle@coln ~]$ vim .bash_profile

添加下面的内容:

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

ORACLE_SID=mandb

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME
ORACLE_SID PATH

这里开始是真正的手工建库内容

1.创建密码文件(密码文件的重要性后面有机会再补充,这里不过多叙述)

[oracle@coln ~]$ echo $ORACLE_SID

mandb

[oracle@coln ~]$ cd $ORACLE_HOME/dbs

[oracle@coln dbs]$ ll

total 4

-rw-r--r--. 1 oracle oinstall 2851 May 15  2009 init.ora

[oracle@coln dbs]$ orapwd file=orapwdmandb
password=sys entries=10

[oracle@coln dbs]$ ls

init.ora  orapwdmandb

--参数文件

[oracle@coln dbs]$ cat init.ora|grep -v
^$|grep -v ^# >initmandb.ora

[oracle@coln dbs]$ more initmandb.ora

对这个文件做一些调整,调整后如下

Oracle11g静默安装

$ cd /u01/app/oracle/

$ mkdir -p admin/ENMOEDU/audmp

$ mkdir -p flash_recovery_area

SQL> startup nomount

ORACLE instance started.

Total System Global Area 
229683200 bytes

Fixed Size              2251936 bytes

Variable Size                171967328 bytes

Database Buffers        50331648 bytes

Redo Buffers                 5132288 bytes

vi create_db.sql

CREATE DATABASE mandb

USER SYS IDENTIFIED BY
oracle

USER SYSTEM IDENTIFIED BY
oracle

LOGFILE GROUP 1
('/u01/app/oracle/oradata/mandb/redo01a.log','/u01/app/oracle/oradata/mandb/redo01b.log')
SIZE 100M BLOCKSIZE 512,

GROUP 2
('/u01/app/oracle/oradata/mandb/redo02a.log','/u01/app/oracle/oradata/mandb/redo02b.log')
SIZE 100M BLOCKSIZE 512,

GROUP 3
('/u01/app/oracle/oradata/mandb/redo03a.log','/u01/app/oracle/oradata/mandb/redo03b.log')
SIZE 100M BLOCKSIZE 512

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

CHARACTER SET AL32UTF8

NATIONAL CHARACTER SET
AL16UTF16

EXTENT MANAGEMENT LOCAL

DATAFILE
'/u01/app/oracle/oradata/mandb/system01.dbf' SIZE 325M REUSE

SYSAUX DATAFILE
'/u01/app/oracle/oradata/mandb/sysaux01.dbf' SIZE 325M REUSE

DEFAULT TABLESPACE users

DATAFILE
'/u01/app/oracle/oradata/mandb/users01.dbf'

SIZE 500M REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED

DEFAULT TEMPORARY
TABLESPACE tempts1

TEMPFILE
'/u01/app/oracle/oradata/mandb/temp01.dbf'

SIZE 20M REUSE

UNDO TABLESPACE undotbs1

DATAFILE
'/u01/app/oracle/oradata/mandb/undotbs01.dbf'

SIZE 200M REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED;

[oracle@mandb ~]$ cd /u01/app/oracle

[oracle@mandb oracle]$ mkdir -p oradata/mandb

[oracle@mandb oracle]$ cd
/u01/app/oracle/diag/rdbms/mandb/mandb/trace/

[oracle@mandb trace]$ tail -100f alert_mandb.log

到此手工建库基本完毕,后面可以进行其他补充,比如执行从创建catalog的脚本(SQL> @?/rdbms/admin/catproc.sql)创建catlog,设置Oracle开机自启等。