暂无图片
暂无图片
11
暂无图片
暂无图片
1
暂无图片

CentOS 7.6上静默安装Oracle 11.2.0.4.0

原创 呆猫潇潇 2020-08-28
2431

来源:架构师技术之栈
原文出处:https://www.toutiao.com/i6865291936321208845/?timestamp=1598545671&app=news_article_lite&group_id=6865291936321208845&use_new_style=1&req_id=202008280027510100260772031C0FFD2C

很多同学使用图形化安装Oracle数据库,可是生产上大多数,是不会安装图形化包的,所以必须掌握怎么静默安装Oracle数据库,下面就详细介绍怎么静默安装Oracle 11g数据库。

064ad2b1822942dc91037d379a786008.jpeg

1.配置主机名

1vi /etc/sysconfig/network
2NETWORKING=yes
3HOSTNAME=host100
复制

2.配置hosts信息

1vi /etc/hosts
2127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4192.168.0.100    host100
复制

3.安装必要的包

先检查哪些包没安装?

1for i in binutils compat-gcc-44 compat-libstdc++-33 control-center \
2  gcc gcc-c++ glibc glibc-common glibc-devel libaio libgcc elfutils-libelf-devel \
3  libstdc++ libstdc++-devel libXp make compat-libcap1\
4  compat-libstdc++-33 libaio-devel sysstat unixODBC unixODBC-devel ksh
5do
6  rpm -q $i &>/dev/null || F="$F $i"
7done ;echo $F;unset F’
复制

缺少的包,用YUM安装就可以。

4.修改内核参数

vi /etc/sysctl.conf 到末尾,以下只出自oracle-rdbms-server-11gR2-preinstall自动做的修改。
用#注释掉kernel.shmmax和kernel.shmall开头的两行。
添加如下:

 1kernel.shmmax = 4398046511104
2kernel.shmall = 1073741824
3kernel.shmmni = 4096
4kernel.sem = 250 32000 100 128
5net.ipv4.ip_local_port_range = 9000 65500
6net.core.rmem_default = 262144
7net.core.rmem_max = 4194304
8net.core.wmem_default = 262144
9net.core.wmem_max = 1048576
10fs.aio-max-nr = 1048576
11fs.file-max = 6815744
12vm.swappiness=10
复制

以上参数为使用Oracle验证包自动配置的参数结果,vm.swappiness=10为减少使用SWAP,该值默认是60。
kernel.shmall:表示共享内存总量,以页为单位;
kernel.shmmax:参数用来定义单个共享内存段的最大值,单位为Byte(字节)。

可以用一下脚本,设置kernel.shmall,kernel.shmmax参数值,其它值不用修改。

 1#!/bin/bash
2

3page_size=`getconf PAGE_SIZE`
4phys_pages=`getconf _PHYS_PAGES`
5
6if [ -z "$page_size" ]; then
7  echo Error:  cannot determine page size
8  exit 1
9fi
10
11if [ -z "$phys_pages" ]; then
12  echo Error:  cannot determine number of memory pages
13  exit 2
14fi
15
16shmall=`expr $phys_pages`
17shmmax=`expr $shmall \* $page_size`
18
19echo \# Maximum shared segment size in bytes
20echo kernel.shmmax = $shmmax
21echo \# Maximum number of shared memory segments in pages
22echo kernel.shmall = $shmall
复制

5.修改的Oracle用户限制

vi /etc/security/limits.conf 末尾添加:

1oracle   soft   nofile   1024
2oracle   hard   nofile   65536
3oracle   soft   nproc    16384
4oracle   hard   nproc    16384
5oracle   soft   stack    10240
6oracle   hard   stack    32768
复制

6.修改的/etc/pam.d/login

vi /etc/pam.d/login 末尾添加:

1session    required     pam_limits.so
复制

7.关闭的防火墙和selinux

关闭的防火墙:
linux6:
service iptables stop
chkconfig iptables off

linux7:
systemctl stop firewalld
systemctl mask firewalld

禁用selinux:
setenforce 0
getenforce
vi /etc/selinux/config 确保以下内容
SELINUX=disabled

8.更改ulimit设置

vi /etc/profile 末尾添加:

1if [ /$USER = "oracle" ]; then
2    if [ /$SHELL = "/bin/ksh" ]; then
3        ulimit -p 16384
4        ulimit -n 65536
5    else
6        ulimit -u 16384 -n 65536
7    fi
8    umask 022
9fi
复制

9.建立组合用户

1groupadd -g 501 oinstall
2groupadd -g 502 dba
3
4useradd -u 501 -g oinstall -G dba  oracle -d /home/oracle
5passwd oracle
复制

10.建立安装目录

1[root@ ~]#
2mkdir -p /u01/app/oracle/product/11.2.0/db_1
3mkdir -p /oracle/oradata
4chmod -R 775 /oracle
5chmod -R 775 /u01
6chown -R oracle:oinstall /oracle
7chown -R oracle:oinstall /u01
复制

11.设置Oracle用户的环境变量

su - oracle
vi .bash_profile 末尾添加:

1export ORACLE_BASE=/u01/app
2export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
3export ORACLE_SID=crmdb
4export PATH=$PATH:$ORACLE_HOME/bin
5export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
6export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
7export ORACLE_UNQNAME=crmdb
8export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
复制

如果是UT8,可以设置:

1export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
复制

12.swap分区设置

1fallocate -l 250M /swapfile
2chmod 600 /swapfile
3mkswap /swapfile
4swapon /swapfile
5swapon -s
复制

在/etc/fstab中添加以下内容:
/swapfile swap swap sw 0 0

13.获取软件安装配置文件

INVENTORY_LOCATION不要存放在ORACLE_BASE之下。

 1cat db_install.rsp |grep -v "#"|sed    '/^ *$/d'
2
3oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
4oracle.install.option=INSTALL_DB_SWONLY
5ORACLE_HOSTNAME=cbov10-tidb57-206
6UNIX_GROUP_NAME=oinstall
7INVENTORY_LOCATION=/u01/app/oraInventory
8SELECTED_LANGUAGES=en,zh_CN
9ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
10ORACLE_BASE=/u01/app/oracle
11oracle.install.db.InstallEdition=EE
12oracle.install.db.EEOptionsSelection=false
13oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
14oracle.install.db.DBA_GROUP=dba
15oracle.install.db.OPER_GROUP=oinstall
16SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
17DECLINE_SECURITY_UPDATES=true
18oracle.installer.autoupdates.option=SKIP_UPDATES
19
20./runInstaller -silent -showProgress -responseFile /u01/soft/database/response/dbinstall.rsp
复制

14.配置监听

 1export DISPLAY=127.0.0.1:1.0
2netca -silent -responsefile /u01/soft/database/response/netca.rsp
3
4在/u01/app/oracle/product/11.2.0/db_1/network/admin目录下创建tnsnames.ora文件
5CRMDB =
6  (DESCRIPTION =
7    (ADDRESS = (PROTOCOL = TCP)(HOST = cbov10-tidb57-206)(PORT = 1521))
8    (CONNECT_DATA =
9      (SERVER = DEDICATED)
10      (SERVICE_NAME = crmdb)
11    )
12  )
复制

如果监听一直出不来,可以使用alter system register手工注册。

15.DBCA静默建库

 1[GENERAL]
2RESPONSEFILE_VERSION = "11.2.0"
3OPERATION_TYPE = "createDatabase"
4[CREATEDATABASE]
5GDBNAME = "crmdb"
6SID="crmdb"
7TEMPLATENAME = "General_Purpose.dbc"
8CHARACTERSET = "ZHS16GBK"
9TOTALMEMORY = "512"
10SYSPASSWORD = "oracle"
11SYSTEMPASSWORD = "oracle"
复制

/u01/app/oracle/product/11.2.0/db_1/assistants/dbca/templates/General_Purpose.dbc
在上述文件中,可以修改数据库文件,redo,归档模式,Controlfile存放位置和大小。

dbca -silent -initParams log_archive_dest_1=‘location=/oracle/archivelog’ -responseFile /u01/soft/database/response/db_create.rsp

设置timestamp时间显示格式:
alter system set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’ scope=spfile;

/u03/app/oracle/product/11.2.0/db_1/assistants/dbca/templates/General_Purpose.dbc文件修改。

 1<?xml version = '1.0'?>
2<DatabaseTemplate name="General_Purpose" description="" version="11.1.0.0.0">
3   <CommonAttributes>
4      <option name="OMS" value="false"/>
5      <option name="JSERVER" value="true"/>
6      <option name="SPATIAL" value="true"/>
7      <option name="IMEDIA" value="true"/>
8      <option name="XDB_PROTOCOLS" value="true">
9         <tablespace id="SYSAUX"/>
10      </option>
11      <option name="ORACLE_TEXT" value="true">
12         <tablespace id="SYSAUX"/>
13      </option>
14      <option name="SAMPLE_SCHEMA" value="false"/>
15      <option name="CWMLITE" value="true">
16         <tablespace id="SYSAUX"/>
17      </option>
18      <option name="EM_REPOSITORY" value="true">
19         <tablespace id="SYSAUX"/>
20      </option>
21      <option name="APEX" value="true"/>
22      <option name="OWB" value="true"/>
23      <option name="DV" value="false"/>
24   </CommonAttributes>
25   <Variables/>
26   <CustomScripts Execute="false"/>
27   <InitParamAttributes>
28      <InitParams>
29         <initParam name="db_name" value=""/>
30         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
31         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
32         <initParam name="compatible" value="11.2.0.0.0"/>
33         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
34         <initParam name="processes" value="150"/>
35         <initParam name="undo_tablespace" value="UNDOTBS1"/>
36         <initParam name="control_files" value="("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/flash_recovery_area/{DB_UNIQUE_NAME}/control02.ctl")"/>
37         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
38         <initParam name="db_recovery_file_dest" value="{ORACLE_BASE}/flash_recovery_area"/>
39         <initParam name="audit_trail" value="db"/>
40         <initParam name="memory_target" value="250" unit="MB"/>
41         <initParam name="db_block_size" value="8" unit="KB"/>
42         <initParam name="open_cursors" value="300"/>
43         <initParam name="db_recovery_file_dest_size" value="" unit="MB"/>
44         <initParam name="nls_date_format" value="yyyy-mm-dd hh24:mi:ss"/>
45      </InitParams>
46      <MiscParams>
47         <databaseType>MULTIPURPOSE</databaseType>
48         <maxUserConn>20</maxUserConn>
49         <percentageMemTOSGA>40</percentageMemTOSGA>
50         <customSGA>false</customSGA>
51         <archiveLogMode>true</archiveLogMode>
52         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
53      </MiscParams>
54      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
55   </InitParamAttributes>
56   <StorageAttributes>
57      <DataFiles>
58         <Location>{ORACLE_HOME}/assistants/dbca/templates/Seed_Database.dfb</Location>
59         <SourceDBName>seeddata</SourceDBName>
60         <Name id="1" Tablespace="SYSTEM" Contents="PERMANENT" Size="670" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf</Name>
61         <Name id="2" Tablespace="SYSAUX" Contents="PERMANENT" Size="440" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf</Name>
62         <Name id="3" Tablespace="UNDOTBS1" Contents="UNDO" Size="25" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf</Name>
63         <Name id="4" Tablespace="USERS" Contents="PERMANENT" Size="5" autoextend="true" blocksize="8192">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf</Name>
64      </DataFiles>
65      <TempFiles>
66         <Name id="1" Tablespace="TEMP" Contents="TEMPORARY" Size="20">{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf</Name>
67      </TempFiles>
68      <ControlfileAttributes id="Controlfile">
69         <maxDatafiles>100</maxDatafiles>
70         <maxLogfiles>16</maxLogfiles>
71         <maxLogMembers>3</maxLogMembers>
72         <maxLogHistory>1</maxLogHistory>
73         <maxInstances>8</maxInstances>
74         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
75         <image name="control02.ctl" filepath="{ORACLE_BASE}/flash_recovery_area/{DB_UNIQUE_NAME}/"/>
76      </ControlfileAttributes>
77      <RedoLogGroupAttributes id="1">
78         <reuse>false</reuse>
79         <fileSize unit="KB">51200</fileSize>
80         <Thread>1</Thread>
81         <member ordinal="0" memberName="redo01a.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
82         <member ordinal="1" memberName="redo01b.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
83      </RedoLogGroupAttributes>
84      <RedoLogGroupAttributes id="2">
85         <reuse>false</reuse>
86         <fileSize unit="KB">51200</fileSize>
87         <Thread>1</Thread>
88         <member ordinal="0" memberName="redo02a.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
89         <member ordinal="1" memberName="redo02b.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
90      </RedoLogGroupAttributes>
91      <RedoLogGroupAttributes id="3">
92         <reuse>false</reuse>
93         <fileSize unit="KB">51200</fileSize>
94         <Thread>1</Thread>
95         <member ordinal="0" memberName="redo03a.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
96         <member ordinal="1" memberName="redo03b.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
97      </RedoLogGroupAttributes>
98   </StorageAttributes>
99</DatabaseTemplate>
复制

16.安全配置

解除密码180天有效期限制,这个一步非常重要。

1alter profile default limit password_life_time unlimited;  
复制
最后修改时间:2020-08-28 10:21:00
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

筱悦星辰
暂无图片
1年前
评论
暂无图片 0
记住了,成功并非偶然! 所有逆袭,都是有备而来; 所有光芒,都需要时间才能被看到; 所有幸运,都是努力埋下的伏笔!
1年前
暂无图片 点赞
评论