Oracle12C静默安装

环境

 

Linux  redhat 6.9

Oracle:Oracle 12.2.0.1

 

安装准备

#配置主机IP与主机名

[root@POC-ORACLE~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4

#192.168.187.129POC-ORACLE

192.9.201.129POC-ORACLE

#192.168.1.128POC-ORACLE

::1         localhost localhost.localdomainlocalhost6 localhost6.localdomain6

#使配置生效

[root@POC-ORACLE~]# service network restart

 

#配置/etc/sysctl.conf

[root@POC-ORACLE~]# vim /etc/sysctl.conf

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

net.ipv4.ip_forward= 0

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

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

以上可以不需要

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

fs.file-max= 6815744

fs.aio-max-nr= 1048576

kernel.sem= 250 32000 100 128

kernel.shmmni= 4096

kernel.shmall= 1073741824

kernel.shmmax= 4398046511104

kernel.panic_on_oops= 1

 

net.core.rmem_default= 262144

net.core.rmem_max= 4194304

net.core.wmem_default= 262144

net.core.wmem_max= 1048576

 

net.ipv4.conf.all.rp_filter= 2

net.ipv4.conf.default.rp_filter= 2

net.ipv4.ip_local_port_range= 9000 65500

 

#使配置生效

[root@POC-ORACLE ~]# /sbin/sysctl -p

 

#为了提升性能增加oracle用户的shell限制.(在/etc/security/limits.conf文件最后增加或修改以下参数)

[root@POC-ORACLE~]# vi /etc/security/limits.conf

*        soft  nproc     4096  

root     soft  nproc     unlimited

oracle   soft  nofile    1024

oracle   hard  nofile    65536

oracle   soft  nproc     16384

oracle   hard  nproc     16384

oracle   soft  stack     10240

oracle   hard  stack     32768

oracle   hard  memlock   134217728

oracle   soft  memlock   134217728

 

#oracle启动它的用户进行认证

扩展:在linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(PluggableAuthentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性。(在文件 /etc/pam.d/login最后增加或修改以下参数)

[root@POC-ORACLE~]# vi /etc/pam.d/login  

session    required     pam_limits.so

 

 

#oracle用户使用资源使用限制   (在文件/etc/profile最后增加或修改以下脚本)

#ulimit – p 512;限制管道缓冲区的大小为 512 Kbytes。

#ulimit – n 128;限制最大可以使用 128 个文件描述符。

 

[root@POC-ORACLE~]# vi /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

 

检查oracle前置条件所需的安装包

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 \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"

rpm -qbinutils compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devellibgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi makesysstat unixODBC unixODBC-devel | grep "not installed"

 

#安装所需的依赖包

#可挂载光盘镜像在本地安装 rpm -ivh

#可联网使用yum下载 yum install -y

 

yum install -y binutils \  

compat-libcap1 \  

compat-libstdc++-33 \

compat-libstdc++-33.i686 \  

glibc \  

glibc.i686 \  

glibc-devel \  

glibc-devel.i686 \  

ksh \  

libaio \  

libaio.i686 \  

libaio-devel \  

libaio-devel.i686 \  

libX11 \  

libX11.i686 \  

libXau \  

libXau.i686 \  

libXi \  

libXi.i686 \  

libXtst \  

libXtst.i686 \  

libgcc \  

libgcc.i686 \  

libstdc++ \  

libstdc++.i686 \  

libstdc++-devel \  

libstdc++-devel.i686 \  

libxcb \  

libxcb.i686 \  

make \  

nfs-utils \  

net-tools \  

smartmontools \  

sysstat \  

unixODBC \  

unixODBC-devel \ 

gcc \  

gcc-c++ \  

libXext \  

libXext.i686 \  

zlib-devel \  

zlib-devel.i686  

 

 

#创建oracle用户和oracle用户组

创建用于安装和维护 Oracle 10g软件的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall(用于软件安装) 和 dba(用于数据库管理)。

#groupadd oinstall

#groupadd dba

#useradd -m -g oinstall -g dba oracle -poracle(p表示添加帐号密码)

创建oracle目录并改变目录权限

现在,创建存储 Oracle 11g 软件和数据库文件的目录。本指南在创建目录结构时所用的命名惯例符合最佳灵活结构 (OFA) 规范。

以 root 用户身份执行以下命令:

#mkdir  -p /u01/app/oracle             #oracle根目录,-p 表示递归建立目录

#mkdir -p /u02/oradata                # oracle数据文件存放目录

#chown -R oracle:oinstall  /u01           

#chown -R oracle:oinstall  /u02

#chmod -R 775  /u01

#chmod -R 775  /u02

 

[root@POC-ORACLE~]# groupadd oinstall

[root@POC-ORACLE~]# groupadd dba

[root@POC-ORACLE~]# useradd -m -g oinstall -g dba oracle -p oracle

[root@POC-ORACLE~]# mkdir -p /u01/app/oracle

[root@POC-ORACLE~]# mkdir -p /u02/oradata

[root@POC-ORACLE~]# chown -R oracle:oinstall /u01

[root@POC-ORACLE~]# chown -R oracle:oinstall /u02

[root@POC-ORACLE~]# chmod -R 775 /u02

[root@POC-ORACLE~]# chmod -R 775 /u01

 

#关闭selinux

[root@POC-ORACLE~]# vi /etc/selinux/config

 

#关闭防火墙

[root@POC-ORACLE~]# service iptables stop

#注意:这样关闭防火墙仅仅是关闭一次,若客户机重启则防火墙会重新打开

 

#修改添加环境变量

[root@POC-ORACLE~]# vi /home/oracle/.bash_profile

 

TMP=/tmp

TMPDIR=$TMP

ORACLE_UNQNAME=orcl

ORACLE_HOSTNAME=POC-ORACLE

ORACLE_BASE=/u01/app/oracle                   #oracle 根目录

ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1  #oracle 家目录(这里11g的话要换)

ORACLE_SID=orcl  #根据实际需要命名(oracleSID

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

PATH=$ORACLE_HOME/bin:$PATH

NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export TMP TMPDIR ORACLE_BASEORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH ORACLE_UNQNAME ORACLE_HOSTNAMENLS_LANG

 

 

#使得配置文件生效

[root@POC-ORACLE ~]# source/home/oracle/.bash_profile

#若配置文件中有语法错误则会在下方提示错误。无误则不提示。

 

安装数据库软件:

#数据库安装包解压后放在/u01目录下。

[root@POC-ORACLEu01]# ls -lrt

总用量 8

drwxrwxr-x.4 oracle oinstall 4096 8月  22 20:55 app

drwxr-xr-x.7 oracle oinstall 4096 8月  22 21:31 database

 

编辑应答文件:

安装文件放在database目录下与response下自带的模板文件区分。

 

开始安装:

 

[oracle@POC-ORACLEdatabase]$ ./runInstaller -force -silent -noconfig -responseFile/u01/database/db_install.rsp -ignorePrereq

[oracle@POC-ORACLEdatabase]$ ./runInstaller -force -silent -noconfig -responseFile/u01/database/db_install.rsp  -ignorePrereq

正在启动 OracleUniversal Installer...

 

检查临时空间: 必须大于 500 MB。  实际为 8730 MB   通过

检查交换空间: 必须大于 150 MB。  实际为 2047 MB   通过

准备从以下地址启动Oracle Universal Installer /tmp/OraInstall2017-08-22_05-58-13AM. 请稍候...[oracle@POC-ORACLE database]$ 可以在以下位置找到本次安装会话的日志:

 /u01/app/oraInventory/logs/installActions2017-08-22_05-58-13AM.log

OracleDatabase 12c 的 安装 已成功。

请查看'/u01/app/oraInventory/logs/silentInstall2017-08-22_05-58-13AM.log' 以获取详细资料。

 

以 root 用户的身份执行以下脚本:

1./u01/app/oraInventory/orainstRoot.sh

2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh

 

 

 

SuccessfullySetup Software.

 

#注意其中参数:

-silent 必须要有,静默

-ignorePrereq  如果哪块没有符合要求,不添加可能就安装不过去了(忽略可以忽略的错误)

-force 软件可以安装在一个非空目录中

-responseFile指定响应文件

 

#若正在安装,则会提示日志文件的查看。

#查看安装进度

[oracle@POC-ORACLEdatabase]$ tail -f/u01/app/oraInventory/logs/installActions2017-08-22_05-58-13AM.log

退出状态为0

 

#执行脚本1

[root@POC-ORACLE~]# /u01/app/oraInventory/orainstRoot.sh

更改权限/u01/app/oraInventory.

添加组的读取和写入权限。

删除全局的读取, 写入和执行权限。

 

更改组名/u01/app/oraInventory到 dba.

脚本的执行已完成。

 

#执行脚本2

[root@POC-ORACLE~]# /u01/app/oracle/product/12.2.0.1/db_1/root.sh

Check/u01/app/oracle/product/12.2.0.1/db_1/install/root_POC-ORACLE_2017-08-22_06-16-37-818507436.logfor the output of root script

 

安装数据库监听

#模板文件放在database目录下

 

#检查配置文件

cat netca.rsp | grep -Ev "^#|^$"

 

#配置监听程序

[oracle@POC-ORACLEdatabase]$ netca -silent -responsefile /u01/database/netca.rsp

 

正在对命令行参数进行语法分析:

    参数"silent"= true

    参数"responsefile"= /u01/database/netca.rsp

完成对命令行参数进行语法分析。

Oracle NetServices 配置:

完成概要文件配置。

Oracle Net 监听程序启动:

    正在运行监听程序控制:

     /u01/app/oracle/product/12.2.0.1/db_1/bin/lsnrctl start LISTENER

   监听程序控制完成。

    监听程序已成功启动。

监听程序配置完成。

成功完成 OracleNet Services 配置。退出代码是0

 

#查看监听状态

[oracle@POC-ORACLEdatabase]$ lsnrctl status

 

LSNRCTL forLinux: Version 12.2.0.1.0 - Production on 22-AUG-2017 06:26:09

 

Copyright(c) 1991, 2016, Oracle.  All rightsreserved.

 

Connectingto (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=POC-ORACLE)(PORT=1521)))

STATUS ofthe LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version12.2.0.1.0 - Production

StartDate                22-AUG-2017 06:24:07

Uptime                    0 days 0 hr. 2 min. 2 sec

TraceLevel               off

Security                  ON: Local OS Authentication

SNMP                      OFF

ListenerParameter File  /u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora

ListenerLog File        /u01/app/oracle/diag/tnslsnr/POC-ORACLE/listener/alert/log.xml

Listening EndpointsSummary...

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=POC-ORACLE)(PORT=1521)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Thelistener supports no services

The commandcompleted successfully

#此时应该是没有库的实例注册到监听中来。The listener supports no services

 

#监听完整的形态

#监听的状态为READY表示Instance正在监听,UNKNOWN表示该实例不可被远程连接

#监听文件中HOST可以填本机的IP或者IP对应的HOSTNAME 。如192.9.201.129对应为 /etc/hosts中的 POC-ORACLE

[root@POC-ORACLE~]# vi /etc/hosts

 

 

 

创建数据库实例

#模板文件放在database目录下

#检查数据库模板文件

cat /home/oracle/dbca.rsp | grep -Ev '^#|^$'

 

#创建数据库(需要有足够的磁盘空间)

#根据模板文件创建,带有pdb容器的数据库

[oracle@POC-ORACLEdatabase]$ dbca -silent -createDatabase -responseFile dbca.rsp

[FATAL][DBT-06604] 为 '数据文件位置' 指定的位置中的空闲空间不足。

   原因: 位置 (/u01/app/oracle/oradata/orcl/) 上只有(1,352MB) 空闲空间可用。

   操作: 选择具有足够空间 (最少 (4,260MB)) 的 '数据文件位置' 或者释放指定位置上的空间。

 

#直接创建只有cdb的数据库(不需要模板文件)

[oracle@POC-ORACLEdatabase]$ dbca -silent -createDatabase -templateName General_Purpose.dbc-gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8-memoryPercentage 30 -emConfiguration LOCAL

[oracle@POC-ORACLEdatabase]$ dbca -silent -createDatabase -templateName General_Purpose.dbc-gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8-memoryPercentage 30 -emConfiguration LOCAL

输入 SYS 用户口令:

 

输入 SYSTEM 用户口令:

 

[WARNING][DBT-06208] 输入的 'SYS(S)' 口令未遵从Oracle 建议的标准。

   原因:

a. Oracle 建议, 输入的口令长度不应少于 8 个字符,至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。

b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令

   操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。

[WARNING][DBT-06208] 输入的 'SYSTEM' 口令未遵从Oracle 建议的标准。

   原因:

a. Oracle 建议, 输入的口令长度不应少于 8 个字符,至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。

b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令

   操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。

[FATAL][DBT-06604] 为 '数据文件位置' 指定的位置中的空闲空间不足。

   原因: 位置 (/u01/app/oracle/oradata/orcl) 上只有(1,352MB) 空闲空间可用。

   操作: 选择具有足够空间 (最少 (2,672MB)) 的 '数据文件位置' 或者释放指定位置上的空间。

 

#此处虚拟机一共有20个G的磁盘,然而还是不够。oracle12C版本需要30G,11g 版本20G

#不能直接给Linux添加一个磁盘,需要将安装的root挂载点添加容量

 

#数据库创建

[oracle@POC-ORACLEdatabase]$ dbca -silent -createDatabase -responseFile dbca.rsp

输入 SYS 用户口令:

 

输入 SYSTEM 用户口令:

 

输入 PDBADMIN用户口令:

 

[WARNING][DBT-06208] 输入的 'SYS(S)' 口令未遵从Oracle 建议的标准。

   原因:

a. Oracle 建议, 输入的口令长度不应少于 8 个字符,至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。

b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令

   操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。

[WARNING][DBT-06208] 输入的 'SYSTEM' 口令未遵从Oracle 建议的标准。

   原因:

a. Oracle 建议, 输入的口令长度不应少于 8 个字符,至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。

b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令

   操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。

[WARNING][DBT-06208] 输入的 'PDBADMIN' 口令未遵从 Oracle 建议的标准。

   原因:

a. Oracle 建议, 输入的口令长度不应少于 8 个字符,至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。

b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令

   操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。

[WARNING][DBT-06801] 指定的快速恢复区大小 (9,000 MB) 小于建议值。

   原因: 快速恢复区大小至少应为数据库大小 (3,571 MB) 的三倍。

   操作: 指定的快速恢复区大小至少应为数据库大小的三倍。

复制数据库文件

1%已完成

13%已完成

25%已完成

正在创建并启动Oracle 实例

26%已完成

30%已完成

31%已完成

35%已完成

38%已完成

39%已完成

41%已完成

正在进行数据库创建

42%已完成

43%已完成

44%已完成

46%已完成

49%已完成

50%已完成

正在创建插接式数据库

55%已完成

75%已完成

执行配置后操作

100%已完成

有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log"。

 

#再次查看监听状态

[oracle@POC-ORACLEdatabase]$ lsnrctl status

 

LSNRCTL forLinux: Version 12.2.0.1.0 - Production on 22-AUG-2017 19:44:04

 

Copyright(c) 1991, 2016, Oracle.  All rightsreserved.

 

Connectingto (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=POC-ORACLE)(PORT=1521)))

STATUS ofthe LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version12.2.0.1.0 - Production

StartDate                22-AUG-2017 19:13:52

Uptime                    0 days 0 hr. 30 min. 12 sec

TraceLevel               off

Security                  ON: Local OS Authentication

SNMP                      OFF

ListenerParameter File  /u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora

ListenerLog File        /u01/app/oracle/diag/tnslsnr/POC-ORACLE/listener/alert/log.xml

ListeningEndpoints Summary...

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=POC-ORACLE)(PORT=1521)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

ServicesSummary...

Service"5756fec1aef7140fe05381bba8c0e158" has 1 instance(s).

  Instance "orcl", status READY, has1 handler(s) for this service...

Service"orcl" has 1 instance(s).

  Instance "orcl", status READY, has1 handler(s) for this service...

Service"orclXDB" has 1 instance(s).

  Instance "orcl", status READY, has1 handler(s) for this service...

Service"orclpdb" has 1 instance(s).

  Instance "orcl", status READY, has1 handler(s) for this service...

The commandcompleted successfully

 

#以上按模板建立的库是含有pdb的,pdb是本地可插式数据库,可以不需要。则数据库创建直接执行以下语句(创建仅有cdb的数据库):

[oracle@POC-ORACLEdatabase]$ dbca -silent -createDatabase -templateName General_Purpose.dbc-gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8-memoryPercentage 30 -emConfiguration LOCAL

 

 

#若数据库实例还未注册到监听,则可以手工注册到监听程序

#未注册到监听显示实例状态为UNKNOWN

[oracle@POC-ORACLE~]$ sqlplus / as sysdba

SQL>alter system register;

#再次查看监听状态

[oracle@POC-ORACLE~]$ lsnrctl status

#实例此时已注册到监听中。

 

 

 

#检查数据库

[oracle@POC-ORACLEdatabase]$ sqlplus / as sysdba

 

SQL*Plus:Release 12.2.0.1.0 Production on Tue Aug 22 19:45:13 2017

 

Copyright(c) 1982, 2016, Oracle.  All rightsreserved.

 

 

Connectedto:

OracleDatabase 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL>select open_mode from v$database;

 

OPEN_MODE

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

READ WRITE

 

SQL>select status from v$instance;

 

STATUS

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

OPEN

 

SQL>

 

#改为归档模式并重启 

$ sqlplus / as sysdba

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)

SQL> alter database open;

SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)

SQL> alter system archive log current; (手工归档测试)

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值