最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)

一、环境准备

1、安装环境
Centos7虚拟机,4CPU+4GMEM,磁盘40G,需要有图形界面

补充图形界面安装方法:
以命令 yum groupinstall “GNOME Desktop” “Graphical Administration Tools” 获取并安装CentOS默认的图形界面GNOME程序包

#  yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

PS:
若安装期间出现错误,比如提示某个目录下的包文件 xxx.noarch 冲突,则使用命令 yum -y remove xxx.noarch 移除该冲突文件后,再以命令 yum groupinstall “GNOME Desktop” “Graphical Administration Tools” 安装GNOME图形模块
需要以命令 systemctl set-default graphical.target 修改为图形界面模式
修改模式命令:

# systemctl set-default graphical.target  # 将默认模式修改为图形界面模式
# systemctl set-default multi-user.target # 将默认模式修改为命令行模式
# reboot                      #重启自动进入图形界面

Oracle软件版本:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

2、需安装软件包

# yum install -y binutils*
# yum install -y compat-libstdc*
# yum install -y elfutils-libelf*
# yum install -y gcc*
# yum install -y glibc*
# yum install -y ksh*
# yum install -y libaio*
# yum install -y libgcc*
# yum install -y libstdc*
# yum install -y make*
# yum install -y sysstat*
# yum install libXp* -y
# yum install -y glibc-kernheaders

检查安装完成情况

# rpm -q --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" \ compat-libstdc++-33 glibc-kernheaders glibc-headers libaio libgcc glibc-devel xorg-x11-deprecated-libs

3、网络、系统参数调整及说明
以下所有相关操作需要root用户执行,并且重启动操作系统才能完全生效。
(1)编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。

# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
# sysctl -p

(2)编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。在该文件中添加如下行。

# vim /etc/security/limits.conf
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
oracle           hard    stack   10240

(3)开启操作系统异步IO(AIO)
前面部分第2点需要安装的包已经包含了libaio-0.3.106,默认开启异步I/O。
检查在操作系统中AIO是否运行,运行命令及显示结果类似如下:

# cat /proc/slabinfo | grep kio
kioctx     51    120    320   12    1 : tunables   54   27    8 : slabdata    10    10    0
kiocb      30     30    256   15    1 : tunables  120   60    8 : slabdata    2      2    0

注:如数据库使用的是文件系统,且要使用异步IO,则需要修改该数据库的初始化参数
a.设置disk_asynch_io参数值为TRUE(默认值)
b.设置filesystemio_options参数值为ASYNCH

4、目录结构及空间规划
(1)存储设置
PC Server的数据库存储一般不会使用高端存储(vg物理分区推荐为32M),所以vg物理分区(PE Size)大小为操作系统安装时默认的32M,或者256M(中低端存储vg物理分区推荐值)均可。

(2)临时目录
/tmp:至少1GB空间,推荐5GB,用于存放Oracle软件安装时产生的日志。

(3)交换要求
交换区(SWAP):按照操作系统推荐配置,根据内存大小,为物理内存的1-1.5倍。推荐:创建2个大小相同、且分布在不同盘(pv)上的SWAP空间。

(4)数据库软件安装目录
Oracle软件安装目录建议设置为单独的文件系统,挂载的目录名定为/tpsys,实际安装的主目录为/tpsys/app/oracle,大小一般配置为20GB,目录的owner要求为oracle:oinstall。

(5)数据库空间规划
Oracle数据库空间用表空间(tablespace)表示,如默认的:SYSAUX、SYSTEM、TEMP、UNDOTBS1、USERS等;表空间的组成单位是数据文件(datafile)。我们定义基于文件系统的文件来创建Oracle的数据文件,并定义回滚表空间、临时表空间和数据表空间单个数据文件的大小为10G。
数据库使用的文件目录及相应用途和对应文件系统大小规划如下(假设数据库名称为test,在实际操作中,斜体的test需要替换为实际定义的数据库名):
/data/oracle/data:系统及数据表空间对应数据文件存放路径;/oracle/app/oracle
/data/oracle/redolog/ :redo重做日志文件存放路径;
/data/oracle/archive/ :归档日志文件存放路径;
/data/oracle/tempfile/ :tempfile文件存放路径(n为顺序中最后一个编号)。
/data/oracle/backup/data:备份目录
……
注意:以上文件系统挂载在二级目录上,即,挂载的目录是:/data/oracle/data、/data/oracle/redolog/、/data/oracle/archive/、/data/oracle/tempfile/等
另外,根据实际使用需要,还可能要有用于闪回区的文件目录和对应文件系统:
/data/oracle/flashback:闪回区目录,建议100GB
如果需要将数据库备份到硬盘,则要创建用于存放数据库备份的文件目录及文件系统:
/data/oracle/backup:备份目录,根据将来数据量大小,建议大于数据表空间容量
注意:以上文件系统挂载在二级目录上
以上所有目录的owner要求为oracle:oinstall。

5、数据库软件的安装和数据库的创建配置
(1)数据库安装用户和组的创建
使用root用户,进行如下操作:
创建oinstall组

# groupadd  -g 5000 oinstall

创建dba组

# groupadd  -g 501 dba

创建oracle用户

#useradd -g oinstall  -G  dba  oracle

(2)数据库安装用户的profile文件的设置
首先确定数据库名及数据库实例名,对于单实例(非RAC)环境下,两者一般是一致的。
假设数据库(实例)名为test,使用oracle用户,编辑/home/oracle/.bash_profile,加入以下内容

# su - oracle
$ vim /home/oracle/.bash_profile
#added by timman for oracle
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=powerdes
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/lib
export LANG=en_US.gbk
export NLS_LANG=american_america.ZHS16GBK
export EDITOR=vi

(3)创建相应的文件系统(或安装目录)并改变相应的权限

# mkdir -p /oracle/app/oracle
# chown -R oracle:oinstall /oracle/app/oracle
# chmod -R 775 /oracle/app/oracle

6、准备vnc远程连接linux桌面

# yum install tigervnc tigervnc-server
# vncserver

New 'h1:1 (root)' desktop is h1:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/h1:1.log
# export DISPLAY=h1:1
# xdpyinfo |grep "name"
name of display:    h1:1
# xhost + 
access control disabled, clients can connect from any host

最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第1张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第2张图片

二、安装步骤

1、开始安装
(1)解压缩

# cd /home/oracle
# unzip linux.x64_11gR2_database_1of2.zip
# unzip linux.x64_11gR2_database_2of2.zip

(2)启动启动命令(要在VNC进行)

# su - oracle
$ export DISPLAY=h1:1
$ xdpyinfo |grep "name"
$ xhost + 
$ cd /home/oracle/database/
$ ./runInstaller

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 21658 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed

Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-01-23_12-18-01PM. Please wait ...

等待弹出安装界面

(2)安装步骤
去掉I wish to receive security updates via My Oracle Surrport选项,点击Next。
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第3张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第4张图片
选择Install database software only,点击Next。
选择Single instance database installation,点击Next。
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第5张图片
在Available Languages中点选English、Simplified Chinese、Traditional Chinese,点击两个框中间的>,将选中的语言加入到右边的Selected Languages中,然后点击Next。
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第6张图片
选择企业版本
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第7张图片
填写oracle的软件路径和基本路径(默认)
选择安装日志目录
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第8张图片
如果没有这个目录,需创建并授权

# ll /oracle/app/
总用量 0
drwxrwxrwx. 8 oracle oinstall 111 1月  20 14:22 oracle
drwxrwxrwx  5 oracle oinstall 144 1月  20 11:39 oraInventory

选择dba组
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第9张图片
继续下一步安装操作
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第10张图片
可以忽略,因为centos版本较高,所以11g check的时候不识别高版本lib包
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第11张图片
继续安装
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第12张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第13张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第14张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第15张图片

三、配置数据库

1、创建数据库
(1)配置监听(VNC操作)

# su - oracle
$ netca

等待弹出页面
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第16张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第17张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第18张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第19张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第20张图片
等待,监听成功
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第21张图片

(2)创建数据库

# su - oracle
$ dbca

等待弹出页面
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第22张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第23张图片
选择Custom Database
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第24张图片
Global Database Name框:输入前面确定的数据库名
SID框:自动出现和数据库名相同的内容作为数据库实例名,单实例情况下不作改动
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第25张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第26张图片
Database Credentials
Use Different Administrative Passwords
表格的Password和Confirm Password列中分别为User Name列SYS、SYSTEM、DBSNMP和SYSMAN用户输入口令并重复一次输入(如密码设置过于简单,下一步前会有弹出窗口提示确认接受安全风险)
sys和system密码设置可以在数据库建立后修改。
密码:123456
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第27张图片
Database File Locations
Storage Locations:选择Use Common Location for All Database Files
Database File Location框:输入/oracle/data_ora
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第28张图片
Recovery Configuration
Specify Fast Recovery Area
如果前面Management Options步骤选择了自动备份,则保留勾选,并在下方:
Fast Recovery Area框:修改为快速恢复区的目录名
Fast Recovery Area Size框:调整快速恢复区的大小
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第29张图片
Enable Archiving
根据是否归档日志的实际需求决定是否选择(重要的生产系统必须打开归档,测试系统一般关闭归档节省服务器空间)
点击旁边的Edit Archive Mode Parameters…,在弹出窗口中:
Automatic Archiving:保持默认勾选
Archive Log File Format框:修改为%t_%s_%r.arc
Archive Log Destinations表格:第一行中输入/oracle/data_ora/archive
点击OK返回主窗口
Database Content
Database Components页面

Initialization Parameters,内存分配20%(测试库所以分小一些,生产库可以分配较大的比如40%60%等),字符集选择兼容utf8的选项
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第30张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第31张图片
点击File Location Variables,里面可以看到一些基础参数信息,返回,然后直接下一步,如下图所示:
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第32张图片
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第33张图片
选择Generate Database Creation Scripts,默认为 /oracle/app/oracle/admin/powerdes/scripts,如下图:
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第34张图片
点击Finish按钮,如下图所示:
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第35张图片
点击OK按钮,有报错说/etc/oratab读取错误,报错如下图所示
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第36张图片
所以去建立下这个目录

# mkdir /etc/oratab
# chown -R oracle.oinstall /etc/oratab

之后点击OK按钮,开始创建数据库,如下图所示:
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第37张图片
数据库创建完毕,之后点击,如下所示:
最全Centos7安装ORACLE 11g(含静默安装、静默安装脚本、oracledb_exporter监控)_第38张图片

四、验证

$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 20 16:09:04 2021

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

Connected to an idle instance.

SP2-0158: unknown SHOW option "databases"
SQL> create table z_test(id number,name varchar(20));
create table z_test(id number,name varchar(20))
*
ERROR at line 1:
ORA-01034: ORACLE not available                       #报错,不可用
Process ID: 0
Session ID: 0 Serial number: 0
SQL> exit

报错解决

$ lsnrctl status                         #检查是否有监听

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-JAN-2021 09:13:40

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=h1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                20-JAN-2021 11:50:38
Uptime                    0 days 21 hr. 23 min. 16 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /oracle/app/oracle/diag/tnslsnr/h1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=h1.localdomain)(PORT=1521)))
Services Summary...
Service "test" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
Service "testXDB" has 1 instance(s).
  Instance "test", status READY, has 1 handler(s) for this service...
The command completed successfully
$ sqlplus  /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 21 09:15:02 2021

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

SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initpowerdes.ora'
SQL> exit
Disconnected
$ cd /oracle/app/oracle/product/11.2.0/dbhome_1/dbs/
$ ls                            #没有initpowerdes.ora文件
hc_DBUA0.dat  hc_test.dat  init.ora  lkTEST  orapwtest  spfiletest.ora
$ exit
登出
# find / -name init.ora.*
/oracle/app/oracle/admin/test/pfile/init.ora.0202021154933
/oracle/app/oracle/admin/test/scripts/init.ora
# cp /oracle/app/oracle/admin/test/pfile/init.ora.0202021154933 /oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initpowerdes.ora
[root@h1 oracle]# chmod -R 777 /oracle
[root@h1 oracle]# chown -R oracle:oinstall /oracle
[root@h1 oracle]# su - oracle
上一次登录:三 1月 20 16:09:02 CST 2021pts/0 上
[oracle@h1 ~]$ sqlplus  /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 21 09:19:59 2021

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

SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2217952 bytes
Variable Size		  490735648 bytes
Database Buffers	  335544320 bytes
Redo Buffers		    6606848 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode                  #报错,挂载失败

分析原因:
一、在HA系统中,已经有其他节点启动了实例,将双机共享的资源(如磁盘阵列上的裸设备)占用了;
二、说明Oracle被异常关闭时,有资源没有被释放,一般有以下几种可能,
1、 Oracle的共享内存段或信号量没有被释放;
2、 Oracle的后台进程(如SMON、PMON、DBWn等)没有被关闭;
3、 用于锁内存的文件lk和sgadef.dbf文件没有被删除。

SQL> shutdown immediate;
ORA-01507: database not mounted
SQL> exit

查看共享内存段
$ ipcs -map

------ Message Queues PIDs --------
msqid      owner      lspid      lrpid     

------ Shared Memory Creator/Last-op PIDs --------
shmid      owner      cpid       lpid      
2          gdm        1760       1972      
5          gdm        1760       1232      
10         root       2415       2440      
11         root       2415       2238      
32784      root       2415       2238      
19         root       2667       2238      
20         root       2648       2238      
21         root       2415       2238      
25         root       2997       8676      
26         root       2415       2238      
27         root       2415       2238      
131101     oracle     24017      40120     
131102     oracle     24017      40120     
131103     oracle     24017      40120     
32805      oracle     8861       9190      
131112     oracle     39892      40104     
131113     oracle     39892      40104     
131114     oracle     39892      40104     
43         root       2667       2238      
32827      root       2415       2238      

根据ID号清除共享内存段
$ ipcrm -m 131101
$ ipcrm -m 131102
$ ipcrm -m 131103
$ ipcrm -m 32805
$ ipcrm -m 131112
$ ipcrm -m 131113
$ ipcrm -m 131114
$ ipcrm -m 32805
$ ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x50ee8dc8 17         oracle     660        154       
0x42a7fc44 25         oracle     660        154       

$ ipcrm -s 17
$ ipcrm -s 25
$ ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     

$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 2          gdm        777        16384      1          dest         
0x00000000 5          gdm        777        2129920    2          dest         
0x00000000 10         root       777        16384      1          dest         
0x00000000 11         root       777        3145728    2          dest         
0x00000000 32784      root       777        1769472    2          dest         
0x00000000 19         root       600        524288     2          dest         
0x00000000 20         root       600        524288     2          dest         
0x00000000 21         root       777        3145728    2          dest         
0x00000000 25         root       600        16777216   2          dest         
0x00000000 26         root       600        524288     2          dest         
0x00000000 27         root       777        1769472    2          dest         
0x00000000 32805      oracle     777        180000     2          dest         
0x00000000 43         root       600        524288     2          dest         
0x00000000 32827      root       777        1441792    2          dest       

重新测试

$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jan 21 09:30:07 2021

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

Connected to an idle instance.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2217952 bytes
Variable Size		  490735648 bytes
Database Buffers	  335544320 bytes
Redo Buffers		    6606848 bytes
Database mounted.
Database opened.
SQL> create table z_test(id number,name varchar(20));

Table created.

SQL> insert into z_test select 1,'a' from dual;

1 row created.

SQL> select * from z_test;

	ID NAME
---------- ----------------------------------------
	 1 a

SQL> commit;

Commit complete.

静默安装:https://blog.csdn.net/oschina_41140683/article/details/81510709?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.no_search_link
静默安装脚本:https://blog.csdn.net/cpc84938/article/details/100234674
oracle报错解决:https://blog.csdn.net/yanjian_0809/article/details/85060706
oracledb_exporter报错解决:
https://blog.csdn.net/zhangtao0417/article/details/116989944
https://blog.csdn.net/qq_45464560/article/details/121767427

你可能感兴趣的:(Oracle,oracle,linux,centos)