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和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