来源:架构师技术之栈
原文出处: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数据库。
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;
复制
评论
