Oracle 12c 静默安装:
1.操作系统及Oracle版本:
Linux版本:CentOS release 6.6 (Final)
Oracle版本:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip
2.硬件检测:
物理内存不少于1G
硬盘可以空间
不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ
cat /etc/issue
uname -r (版本)
grep MemTotal /proc/meminfo (内存大小)
grep SwapTotal /proc/meminfo (交换区大小)
grep "model name" /proc/cpuinfo (CPU信息)
free (可用内存)
配置yum源:
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 16
-rw-r--r--. 1 root root 2492 11月 10 20:16 CentOS6-Base-163.repo
-rw-r--r--. 1 root root 2323 11月 10 20:10 Centos-6.repo.bak
-rw-r--r--. 1 root root 358 11月 10 19:48 redhat.repo
-rw-r--r--. 1 root root 529 4月 14 2016 rhel-source.repo.bak
[root@localhost yum.repos.d]# cat CentOS6-Base-163.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
#name=CentOS-6 - Base - 163.com
name=CentOS-6.10
baseurl=http://vault.centos.org/6.10/os/$basearch/
#baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-6
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.10
#name=CentOS-6 - Updates - 163.com
baseurl=http://vault.centos.org/6.10/updates/$basearch/
#baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=updates
gpgcheck=1
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.10
baseurl=http://vault.centos.org/6.10/extras/$basearch/
#name=CentOS-6 - Extras - 163.com
#baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=extras
gpgcheck=1
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.10
baseurl=http://vault.centos.org/6.10/extras/$basearch/
#name=CentOS-6 - Plus - 163.com
#baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.10
baseurl=http://vault.centos.org/6.10/extras/$basearch/
#name=CentOS-6 - Contrib - 163.com
#baseurl=http://mirrors.163.com/centos/6/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-6
centos6的yum源比较难找。
yum clean all
yum makecache
yum update
3.检查安装依赖系统包
rpm -q 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 unzip
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 unzip
# 也可以分段执行,避免遗漏
yum install -y compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686
yum install -y glibc*.i686 glibc-devel glibc-devel*.i686
yum install -y ksh libaio*.i686 libaio-devel libaio-devel*.i686
yum install -y libX11 libX11*.i686 libXau libXau*.i686 libXi libXi*.i686
yum install -y libXtst libXtst*.i686 libgcc*.i686 libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686
yum install -y libxcb libxcb*.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel
yum install -y gcc gcc-c++ libXext libXext*.i686 zlib-devel zlib-devel*.i686 unzip
4.创建所需的操作系统组和用户,设置些服务:
groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracle设置oracle用户密码 passwd oracle
root下执行:
chkconfig iptables off
chkconfig NetworkManager off
service iptables stop
service NetworkManager stop
vi /etc/sysconfig/network
HOSTNAME=test
setenforce 0
vi /etc/selinux/config
SELINUX=disabled
vi /etc/hosts (hosts里必须要有127.0.0.1 localhost,否则安装会报错)
最下面添加
192.168.72.21 主机名
比如:
10.0.40.78 test
5.修改内核参数
在/etc/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数
[root@test ~]# vi /etc/sysctl.conf
/etc/sysctl -p
root用户下面:
[root@test ~]# source /etc/profile
vi /etc/oraInst.loc
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
#oracle数据库安装目录
ORACLE_BASE=/usr/oracle
#oracle数据库路径
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1
#oracle启动数据库实例名
ORACLE_SID=oramid
#添加系统环境变量
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
#添加系统环境变量
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
# 该部分重要,后续错误一般是该步骤造成
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
同时,在使用静默安装的时候会检查DISPLAY的设置,如果经常说检查DISPLAY不行的话,到root用户下执行“xhost + 你的ip:0.0“
如果有以下报错,按如下办法处理:
[root@test etc]# xhost +
-bash: xhost: command not found
[root@test etc]# yum whatprovides "*/xhost"
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.cn99.com
* updates: mirrors.163.com
base/filelists_db | 6.4 MB 00:00
extras/filelists_db | 26 kB 00:00
updates/filelists_db | 3.3 MB 00:00
xorg-x11-server-utils-7.7-14.el6.x86_64 : X.Org X11 X server utilities
Repo : base
Matched from:
Filename : /usr/bin/xhost
[root@test etc]# yum install xorg-x11-server-utils-7.7-14.el6.x86_64
安装完成后:
[root@test etc]# xhost +10.0.40.78:0.0
xhost: unable to open display ""
[root@test etc]# xhost + 10.0.40.78:0.0
xhost: unable to open display ""
[root@test etc]# xhost +
xhost: unable to open display ""
如果是图形化安装需要装jdk
yum install java-1.7.0-openjdk-devel.x86_64 -y
10.解压oracle安装文件
[root@
test
~]# chown -R oracle:oinstall /home/oracle/
[root@
test
~]# ll /home/oracle/
[root@
test
~]# su - oracle
[oracle@
test
~]$ ll
unzip linuxamd64_12102_database_1of2.zip
unzip linuxamd64_12102_database_2of2.zip
[oracle@test ~]$mkdir etc
[oracle@test ~]$ cd etc
[oracle@test etc]$ ll
total 80
-rwx------. 1 oracle oinstall 44533 Jan 3 11:41 dbca.rsp
-rwx------. 1 oracle oinstall 25205 Jan 4 11:49 db_install.rsp
-rwx------. 1 oracle oinstall 5871 Jan 3 11:41 netca.rsp
oracle.install.db.isCustomInstall=false这句脚本在11.2.0.3里面没有, 11.2.0.3里面是这句脚本:
oracle.install.db.EEOptionsSelection=false
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)
开始静默安装:
12.1.0.2的办法:
[oracle@ebsmiddb database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 500 MB。 实际为 39495 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 4095 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2022-11-11_10-20-23PM. 请稍候...[oracle@ebsmiddb database]$ [WARNING] [INS-13014] 目标环境不满足一些可选要求。
原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2022-11-11_10-20-23PM/installActions2022-11-11_10-20-23PM.log
操作: 从日志 /tmp/OraInstall2022-11-11_10-20-23PM/installActions2022-11-11_10-20-23PM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。
可以在以下位置找到本次安装会话的日志:
/u01/app/oraInventory/logs/installActions2022-11-11_10-20-23PM.log
Oracle Database 12c 的 安装 已成功。
请查看 '/u01/app/oraInventory/logs/silentInstall2022-11-11_10-20-23PM.log' 以获取详细资料。
以 root 用户的身份执行以下脚本:
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/12.1.0/db_1/root.sh
Successfully Setup Software.
[oracle@ebsmiddb database]$ exit
logout
[root@localhost ~]# sh /u01/app/oraInventory/orainstRoot.sh
更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。
更改组名/u01/app/oraInventory 到 oinstall.
脚本的执行已完成。
[root@localhost ~]# sh /u01/app/oracle/product/12.1.0/db_1/root.sh
Check /u01/app/oracle/product/12.1.0/db_1/install/root_ebsmiddb_2022-11-11_22-23-38.log for the output of root script
到这里,oracle12c的数据库实例就算是装好了,接下来配置数据库实例的基本参数文件~
cd $ORACLE_HOME/dbs
找到默认的init.ora,然后创建一个新的init.ora:
cat init.ora|grep -v ^$|grep -v ^# >init$ORACLE_SID.ora
这里如果没建立密码文件,之后用sys用户远程连接数据库会报错。
那时候需要重建密码文件:
orapwd file=orapw
$ORACLE_SID
password=oracle entries=30
修改新参数文件里面的<$ORACLE_HOME>为绝对路径,然后把db_name之类的东西改成自己的就好~
[oracle@ebsmiddb dbs]$ cat initoramid.ora
db_name='ORAMID'
memory_target=58G
processes = 2000
audit_file_dest='/usr/oracle/admin/oramid/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/usr/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/usr/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORAMIDXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/usr/oracle/oradata/oramid/ora_control01.ctl,/usr/oracle/oradata/oramid/ora_control02.ctl)
compatible ='11.2.0'
然后就可以启动oracle实例了,用sqlplus "/as sysdba"登录进去,然后startup nomount;
如果说MEMORY_TARGET太大了,那么可以在参数文件里面改小一点(这里设置的是81960M,80G),或者修改shm的大小、
用df -h能看到/dev/shm的大小
用mount -o size=102400M -o nrinodes=1000000 -o noatime,nodiratime -o remount /dev/shm来修改shm的大小
然后创建spfile
create spfile from pfile;(具体的这两个东西的资料可以参考我的另一篇文章,spfile和pfile那点事)
如果一切正常,那么会显示出数据库的一些池和缓存的信息,接下来就是创建数据库了,
先创建必要目录
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
mkdir -p $ORACLE_BASE/oradata/ORAMID
PS:稍微注意一下的是,/usr/local/bin下面,几个目录的权限,记得要改成oracle和oinstall的(chown -R oracle:oinstall *),否则启动的时候会提示错误,权限啊,目录操作失败云云
建库脚本如下:
[oracle@ebsmiddb dbs]$ cat create_db.sql
CREATE DATABASE ORAMID
USER SYS IDENTIFIED BY www
USER SYSTEM IDENTIFIED BY www
LOGFILE
GROUP 1 ('/usr/oracle/oradata/oramid/redo01.log') SIZE 512m,
GROUP 2 ('/usr/oracle/oradata/oramid/redo02.log') size 512m,
GROUP 3 ('/usr/oracle/oradata/oramid/redo03.log') size 512m,
GROUP 4 ('/usr/oracle/oradata/oramid/redo04.log') size 512m,
GROUP 5 ('/usr/oracle/oradata/oramid/redo05.log') size 512m
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 10000
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
datafile '/usr/oracle/oradata/oramid/system01.dbf' size 1024M REUSE
sysaux datafile '/usr/oracle/oradata/oramid/sysaux01.dbf' size 1024M REUSE
default temporary tablespace temp
tempfile '/usr/oracle/oradata/oramid/temp01.dbf' size 512M REUSE
undo tablespace UNDOTBS1
datafile '/usr/oracle/oradata/oramid/undotbs01.dbf' size 1024M REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED
default tablespace users
datafile '/usr/oracle/oradata/oramid/users01.dbf' size 8192M REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED;
如果没问题,接下来就创建数据字典和pl/sql包,
sqlplus "/as sysdba"
SQL>@?/rdbms/admin/catalog.sql;
SQL>@?/rdbms/admin/catproc.sql; //视图等
SQL>@?/rdbms/admin/utlrp.sql; //数据字典
SQL>conn system/*****;
SQL>@?/sqlplus/admin/pupbld.sql;
(这几个脚本放在$ORACLE_HOME/rdbms/admin下,也可以先进这个目录,然后直接@脚本就好)
最后shutdown immediate 然后startup吧~
数据库正确open之后,就是配置监听器了,
把\network\admin\listener.ora 和\network\admin\tnsname.ora里面的LOCALHOST改成IP,把SID SID_NAME改成实例名,重启数据库,重启监听
PS:参数文件的service和监听器的service要对上
[oracle@ebsmiddb ~]$ cd /usr/oracle/product/12.1.0/db_1/network/admin/
[oracle@ebsmiddb admin]$ ll
总用量 16
-rw-r--r--. 1 oracle oinstall 373 11月 13 01:42 listener.ora
drwxr-xr-x. 2 oracle oinstall 4096 11月 11 22:20 samples
-rw-r--r--. 1 oracle oinstall 373 10月 31 2013 shrept.lst
-rw-r--r--. 1 oracle oinstall 183 11月 13 01:44 tnsnames.ora
[oracle@ebsmiddb admin]$ cat listener.ora
# listener.ora Network Configuration File: /usr/oracle/product/12.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.116.15)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /usr/oracle
[oracle@ebsmiddb admin]$ cat tnsnames.ora
ORAMID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.116.15)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORAMID)
)
)
[oracle@ebsmiddb admin]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 13-NOV-2022 01:45:38
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.116.15)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
[oracle@ebsmiddb admin]$ lsnrctl start
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 13-NOV-2022 01:45:45
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Starting /u01/app/oracle/product/12.1.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 12.1.0.2.0 - Production
System parameter file is /u01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ebsmiddb/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.116.15)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.116.15)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 13-NOV-2022 01:45:45
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/ebsmiddb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.116.15)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@ebsmiddb admin]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 13-NOV-2022 01:46:08
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.116.15)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date 13-NOV-2022 01:45:45
Uptime 0 days 0 hr. 0 min. 23 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/ebsmiddb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.116.15)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORAMID" has 1 instance(s).
Instance "oramid", status READY, has 1 handler(s) for this service...
Service "ORAMIDXDB" has 1 instance(s).
Instance "oramid", status READY, has 1 handler(s) for this service...
The command completed successfully
整个oracle 12c 12.1.0.2的单实例的静默安装过程就是这样。