最全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

在这里插入图片描述
在这里插入图片描述

二、安装步骤

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。
在这里插入图片描述
在这里插入图片描述
选择Install database software only,点击Next。
选择Single instance database installation,点击Next。
在这里插入图片描述
在Available Languages中点选English、Simplified Chinese、Traditional Chinese,点击两个框中间的>,将选中的语言加入到右边的Selected Languages中,然后点击Next。
在这里插入图片描述
选择企业版本
在这里插入图片描述
填写oracle的软件路径和基本路径(默认)
选择安装日志目录
在这里插入图片描述
如果没有这个目录,需创建并授权

# 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组
在这里插入图片描述
继续下一步安装操作
在这里插入图片描述
可以忽略,因为centos版本较高,所以11g check的时候不识别高版本lib包
在这里插入图片描述
继续安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、配置数据库

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

# su - oracle
$ netca

等待弹出页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待,监听成功
在这里插入图片描述

(2)创建数据库

# su - oracle
$ dbca

等待弹出页面
在这里插入图片描述
在这里插入图片描述
选择Custom Database
在这里插入图片描述
Global Database Name框:输入前面确定的数据库名
SID框:自动出现和数据库名相同的内容作为数据库实例名,单实例情况下不作改动
在这里插入图片描述
在这里插入图片描述
Database Credentials
Use Different Administrative Passwords
表格的Password和Confirm Password列中分别为User Name列SYS、SYSTEM、DBSNMP和SYSMAN用户输入口令并重复一次输入(如密码设置过于简单,下一步前会有弹出窗口提示确认接受安全风险)
sys和system密码设置可以在数据库建立后修改。
密码:123456
在这里插入图片描述
Database File Locations
Storage Locations:选择Use Common Location for All Database Files
Database File Location框:输入/oracle/data_ora
在这里插入图片描述
Recovery Configuration
Specify Fast Recovery Area
如果前面Management Options步骤选择了自动备份,则保留勾选,并在下方:
Fast Recovery Area框:修改为快速恢复区的目录名
Fast Recovery Area Size框:调整快速恢复区的大小
在这里插入图片描述
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的选项
在这里插入图片描述
在这里插入图片描述
点击File Location Variables,里面可以看到一些基础参数信息,返回,然后直接下一步,如下图所示:
在这里插入图片描述
在这里插入图片描述
选择Generate Database Creation Scripts,默认为 /oracle/app/oracle/admin/powerdes/scripts,如下图:
在这里插入图片描述
点击Finish按钮,如下图所示:
在这里插入图片描述
点击OK按钮,有报错说/etc/oratab读取错误,报错如下图所示
在这里插入图片描述
所以去建立下这个目录

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

之后点击OK按钮,开始创建数据库,如下图所示:
在这里插入图片描述
数据库创建完毕,之后点击,如下所示:
在这里插入图片描述

四、验证

$ 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<sid>和sgadef<sid>.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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值