暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle云上静默安装Oracle Database 12C

凛冬未至 2017-06-26
1395

本公众号之前发表过文章Oracle云上静默安装Oracle Database 11g,可以帮助大家在无法使用图形化界面时,顺利的部署Oracle Database 11g。尤其是有一些Oracle Partner需要申请嵌入式软件授权协议(Embedded Software License ESL)时,满足Oracle公司对Partner具备静默安装Oracle产品能力的要求。

 

Partner的工程师反馈:现在Oracle数据库的主流版本是12C,尤其是12cR2都已经发布了快半年,目前他们的客户在上新系统时,会优先考虑12C,因此希望能提供12C的静默安装指导。于是老余就花时间研究了12C的静默安装,现将安装过程分享出来,希望对大家有所帮助。

 

首先,我在Oracle云上创建了一个 Oracle Linux 7.3的实例,(略过创建过程,具体流程参见本公众号的其他文章Oracle云上创建Oracle Linux实例)。

[root@f807e9 opc]# uname -a

Linux f807e9 4.1.12-94.3.5.el7uek.x86_64 #2 SMP Wed May 24 08:36:18 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@f807e9 opc]# cat etc/oracle-release

Oracle Linux Server release 7.3

 

概况一下, 静默安装过程总体上分为两个步骤:环境准备安装部署

其中,环境准备最为重要,尤其是在LinuxUnix环境。在这些环境中安装过Oracle的朋友应该很清楚,这一步最为关键,在安装过程中,遇到多数问题都跟环境准备有关。如果这一步做好了,后面的安装部署就会非常顺利。

 

一、环境准备

创建用户和属组

#/usr/sbin/groupadd -g 501 oinstall

#/usr/sbin/groupadd -g 502 dba

 

#/usr/sbin/useradd -u 501 -g oinstall -G dba ora12

 

修改root和oracle用户密码

# passwd root

 

# passwd ora12

密码均修改为Welcome1

 

修改ora12用户的资源限制

root用户修改配置文件/etc/security/limits.conf

新增以下内容:

ora12   soft   nofile    1024

ora12   hard   nofile    65536

ora12   soft   nproc    2047

ora12   hard   nproc    16384

ora12   soft   stack    10240

ora12   hard   stack    32768

 

设置oracle用户缺省资源限制,修改配置文件/etc/profile,在文件最后,加入以下内容:

if [ $USER = "ora12" ] ; then

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

ulimit -p 16384

ulimit -n 65536

  else

ulimit -u 16384 -n 65536

  fi

   umask 022

fi

 

修改/etc/pam.d/login文件,新增以下内容:

session required pam_limits.so

 

修改内核参数,编辑内核参数配置文件/etc/sysctl.conf,加入以下内容

# vi /etc/sysctl.conf

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

 

执行以下命令,使修改参数立刻生效

# /sbin/sysctl -p

[root@bc1c3b opc]# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 2

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

kernel.panic = 1

error: "xen.independent_wallclock" is an unknown key

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

 

检查操作系统软件包安装情况:

#rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

sysstat \

unixODBC \

unixODBC-devel \

expect

 

binutils-2.20.51.0.2-5.44.el6 (x86_64)

package compat-libstdc++-33 is not installed

elfutils-libelf-0.164-2.el6 (x86_64)

package elfutils-libelf-devel is not installed

gcc-4.4.7-18.el6 (x86_64)

package gcc-c++ is not installed

glibc-2.12-1.209.0.3.el6_9.1 (x86_64)

glibc-2.12-1.209.0.3.el6_9.1 (i686)

glibc-common-2.12-1.209.0.3.el6_9.1 (x86_64)

glibc-devel-2.12-1.209.0.3.el6_9.1 (x86_64)

glibc-headers-2.12-1.209.0.3.el6_9.1 (x86_64)

package ksh is not installed

libaio-0.3.107-10.el6 (x86_64)

package libaio-devel is not installed

libgcc-4.4.7-18.el6 (x86_64)

libstdc++-4.4.7-17.el6 (x86_64)

package libstdc++-devel is not installed

make-3.81-23.el6 (x86_64)

package sysstat is not installed

package unixODBC is not installed

package unixODBC-devel is not installed

 

 

安装缺少的软件包

# yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc-c++ ksh libaio-devel libstdc++-devel sysstat unixODBC unixODBC-devel expect

 

再次确认软件包的安装情况,确保都已经安装后,进入下一步。

 

创建文件/etc/oraInst.loc,指定inventory目录的绝对路径

# vi /etc/oraInst.loc

inventory_loc=/u01/app/oraInventory

inst_group=oinstall

 

 

修改ora12用户的环境变量

# su - ora12

$ cd $HOME

$ vi .bash_profile

 

增加以下内容

export ORACLE_BASE=/u01/app/ora12

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

export ORACLE_SID=ora12

export ORACLE_TERM=xterm

export ORA_NLS10=$ORACLE_HOME/nls/data

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

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

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

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export THREADS_FLAG=native

#export DISPLAY=:0.0

 

export EDITOR=vi

set -o vi

umask 022

 

执行.bash_profile文件,是环境变量生效

# . .bash_profile

 

二、安装部署

创建软件安装目录

# mkdir -p /u01/app/ora12

# chown -R ora12:oinstall /u01/app/ora12

# chmod -R 775 /u01

 

下载数据库安装介质

Oracle 12gR2的安装介质可以从OTN和E-delivery下载。

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

 

https://edelivery.oracle.com

 

将安装介质拷贝到相关目录下:

[ora12@f807e9 ~]$ cd /home/ora12/software/

[ora12@f807e9 software]$ ll

total 3372752

-rw-rw-r-- 1 ora12 oinstall 3453696911 Jun 20 21:38 V839960-01.zip

 

解压安装介质

$ unzip V839960-01.zip

 

以静默方式安装数据库软件

先创建数据库软件安装的响应文件:db_inst.rsp

响应文件包含以下内容:

##### db_inst.rsp

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=dba

INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_HOME=/u01/app/ora12/product/12.2.0/db_1

ORACLE_BASE=/u01/app/ora12

oracle.install.db.InstallEdition=EE

oracle.install.db.OSDBA_GROUP=dba

oracle.install.db.OSOPER_GROUP=dba

oracle.install.db.OSBACKUPDBA_GROUP=dba

oracle.install.db.OSDGDBA_GROUP=dba

oracle.install.db.OSKMDBA_GROUP=dba

oracle.install.db.OSRACDBA_GROUP=dba

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

DECLINE_SECURITY_UPDATES=true

########################

以上的参数均能自定义,有几个关键的参数需要重点关注:

oracle.install.option=INSTALL_DB_SWONLY  只安装数据库软件,不建库;

INVENTORY_LOCATION=/u01/app/oraInventory  指定INVENTORY路径;

ORACLE_HOME=/u01/app/ora12/product/12.2.0/db_1  指定ORACLE_HOME路径;

ORACLE_BASE=/u01/app/ora12  指定ORACLE_BASE路径;

oracle.install.db.InstallEdition=EE  指定数据库安装版本,可选项:EESE2

 

 

 

进入安装包解压目录,开始静默安装Oracle 12c软件(只安装软件,不建库)

[ora12@f807e9 software]$ cd database/

[ora12@f807e9 database]$ ./runInstaller -silent -force -waitforcompletion -responsefile $HOME/software/db_inst.rsp -ignoresysprereqs -ignoreprereq

Starting Oracle Universal Installer...

 

Checking Temp space: must be greater than 500 MB.   Actual 14488 MB    Passed

Checking swap space: 0 MB available, 150 MB required.    Failed <<<<

 

>>> Ignoring required pre-requisite failures. Continuing...

 

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-06-21_02-16-43AM. Please wait ...You can find the log of this install session at:

 /u01/app/oraInventory/logs/installActions2017-06-21_02-16-43AM.log

The installation of Oracle Database 12c was successful.

Please check '/u01/app/oraInventory/logs/silentInstall2017-06-21_02-16-43AM.log' for more details.

 

As a root user, execute the following script(s):

        1. /u01/app/ora12/product/12.2.0/db_1/root.sh

 

Successfully Setup Software.

 

在其他窗口用root用户执行root.sh脚本。

[root@f807e9 12.2.0.1]# /u01/app/ora12/product/12.2.0/db_1/root.sh

Check /u01/app/ora12/product/12.2.0/db_1/install/root_f807e9_2017-06-21_02-20-17-473417590.log for the output of root script

查看相关安装日志,检查数据库软件是否安装成功。没有任何报错信息,说明数据库软件已经成功安装。

 

启动监听器

切换到ora12用户

$ lsnrctl start

 

 

以静默方式使用DBCA建库

首先,根据需求创建建库响应文件:dbca.rsp

响应文件包含以下内容:

#### dbca.rsp

gdbName=ora12

sid=ora12

createAsContainerDatabase=true

numberOfPDBs=1

pdbName=pdb1

pdbAdminPassword=Welcome1

templateName=General_Purpose.dbc

sysPassword=Welcome1

systemPassword=Welcome1

emConfiguration=DBEXPRESS

emExpressPort=5500

dbsnmpPassword=Welcome1

characterSet=ZHS16GBK

nationalCharacterSet=AL16UTF16

automaticMemoryManagement=FALSE

totalMemory=2048

########################

以上的参数均能自定义,有几个关键的参数需要重点关注:

gdbName=ora12 全局数据库名;

sid=ora12 实例名名称;

createAsContainerDatabase=true  是否为容器数据库;

numberOfPDBs=1  指定PDB数据库数量,可选值:04094

pdbName=pdb1 创建的PDB姓名,用户自定义;

pdbAdminPassword=Welcome1  指定PDB数据库管理员口令;

templateName=General_Purpose.dbc  选择建库数模板;

sysPassword=Welcome1  指定SYS用户口令,用户自定义;

systemPassword=Welcome1  指定System用户口令用户自定义;

emConfiguration=DBEXPRESS  指定EM配置类型,可选项:CENTRAL|DBEXPRESS|BOTH|NONE;

emExpressPort=5500  指定DB Express端口,当emConfiguration选择DBEXPRESS时可用;

dbsnmpPassword=Welcome1  指定DBSNMP用户口令,用户自定义;

characterSet=ZHS16GBK  指定数据库字符集;

nationalCharacterSet=AL16UTF16  指定数据库国际字符集;

automaticMemoryManagement=FALSE  禁用自动内存管理;

totalMemory=2048  为数据库实例分配内存数,单位MB

 

 

[ora12@f807e9 software]$dbca -silent -createDatabase -responseFile $HOME/software/dbca.rsp

[WARNING] [DBT-10102] The listener configuration is not selected for the database. EM DB Express URL will not be accessible.

   CAUSE: The database should be registered with a listener in order to access the EM DB Express URL.

   ACTION: Select a listener to be registered or created with the database.

Copying database files

1% complete

13% complete

25% complete

Creating and starting Oracle instance

26% complete

30% complete

31% complete

35% complete

38% complete

39% complete

41% complete

Completing Database Creation

42% complete

43% complete

44% complete

46% complete

47% complete

50% complete

Creating Pluggable Databases

55% complete

75% complete

Executing Post Configuration Actions

100% complete

Look at the log file "/u01/app/ora12/cfgtoollogs/dbca/ora12/ora12.log" for further details.

查看相关日志,检查数据库建库是否成功。没有任何报错信息,说明数据库已经成功创建。整个建库时间大约耗时15分钟。

 

检查数据库状态

 

[opc@f807e9 bin]$ ./sql system/Welcome1@129.191.27.7:1521/pdb1

 

SQLcl: Release 4.2.0 Production on Wed Jun 21 04:32:34 2017

 

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

 

Last Successful login time: Wed Jun 21 2017 04:32:35 -04:00

 

Connected to:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> col pdb_name for a30

SQL> select pdb_name,status from dba_pdbs;

 

PDB_NAME                       STATUS

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

PDB1                           NORMAL

 

至此,Oracle Database 12.2数据库静默安装顺利完成,比11g的静默安装更简单!

 


文章转载自凛冬未至,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论