第一次接触Centos与ORACLE,网上找了很多资料,虚拟机安装过程也碰到了很多问题,终于初步安装成功,但是其中也发现很多步骤只是单纯照着做,并没有了解其中的原由,故记录一下,以便后期的回顾,也希望能够帮助有和我一样情况的人,文中有很多疑问,希望了解的大佬能够帮忙解答一下,谢谢~
环境参数
系统:Centos6.10(确保安装图形界面)
ORACLE:Oracle 11R2
安装步骤
我并没有使用VMware,使用的是Oracle公司的Virtual box,只是单纯偶然网上找到了Virtual box,在使用过程中也并没有发现什么问题,而且Virtual box似乎更加小巧。
- 下载安装Virtual box,下载Centos镜像文件
注意:这里我下载的是Centos 6镜像文件,并没有采用最新的Centos 7,我曾使用Centos 7搭建环境安装Oracle,但是发现出现了一个内核问题 -- OS Kernel Parameter: semmni,网上有人说是Centos 7的问题,也有人说这个问题如果你已经做了内核设置了,可以直接忽略。为了偷懒,而且网上大多数教程都是针对Centos 6的,我就又重新下载了Centos 6重新进行了安装。
![596774788f685e5d1bafc60c4f6b5048.png](https://i-blog.csdnimg.cn/blog_migrate/8dee77f000b0498d3c496d8986435064.jpeg)
- 搭建Centos虚拟机环境
![be1545c3e8bd0d33dd560230e51d4ab2.png](https://i-blog.csdnimg.cn/blog_migrate/0ad04b43b2c2cb3e401a80067426daab.jpeg)
按着知道依次完成虚拟机配置后,点击启动,会提示没有系统镜像文件,此时选择之前下载好的镜像文件进行安装即可。
安装完成后,先关闭系统,需要进行如下两个操作,完成虚拟机网络配置及鼠标配置。安装完成后的虚拟机是无法与本地电脑互相ping通,且Centos系统安装完成后,鼠标指针无法显示。
安装了virtual box后,会新增一个虚拟网卡,我这边将虚拟网卡设置了一个静态IP。
![aa3d4d2968160675dcf1c75893fa0207.png](https://i-blog.csdnimg.cn/blog_migrate/f5e173208a3bea9a06956e1c046d66ce.jpeg)
在系统设置中,修改指定设备
![3f40bf0750ba7f3fd33a96b1f9cade43.png](https://i-blog.csdnimg.cn/blog_migrate/d2776323998b7e50f9ae3b8d2e480abe.jpeg)
在网络设置中,网卡1设置为NAT网络,新增网卡,并将连接方式设置为 仅主机(Host-Only)网络
![5d64651bc47070bb57ed433a9f6450bd.png](https://i-blog.csdnimg.cn/blog_migrate/9fea909e26fea83c5960a69d91cd6b2e.jpeg)
完成上述设置后,重新进入Centos系统即可正常使用网络与鼠标。
- 虚拟机空间调整
在虚拟机创建完成后,发现磁盘空间分配存在许多问题,当前文件系统采用的是LVM形式,相关LVM中挂载盘进行大小调整的方法,可参考我之前发布的总结文章。
杰米尼:LVM——让Linux磁盘空间的弹性管理zhuanlan.zhihu.com- 检查SSH服务是否正常开启(为了后续文件传输及通过XShell能够访问服务器)
1. rpm -qa | grep ssh 指令进行ssh服务包检测。
2. 若未检测到 已安装了SSH包,则可通过命令 yum install yopenssh-server 进行安装。
3. 若SSH已安装,则通过命令 service sshd status(/etc init.d/sshd status) 来确定SSH服务是否正在运行。
4. 查看22端口正在SSH使用,`netstat -antp | grep sshd`。会打印当前ssh正在端口号。
5. 检查SSH是否为自启动,chkconfig --list sshd。若2、3、4、5三项都为启动则说明已设置为开机启动,否则通过命令『chkconfig --level 2345 sshd on』设置即可。
6. 设置SSH服务为开机自动启动,『chkconfig sshd on』。
- 检查Oracle安装的依赖包是否安装
需要安装的软甲包如下:
① binutils ② compat-libstdc++-33 ③ elfutils-libelf ④ elfutils-libelf-devel ⑤ gcc
⑥ gcc-c++ ⑦ glibc ⑧ glibc-common ⑨ glibc-devel ⑩ glibc-headers
⑪ pkdsh(找不到) ⑫ cvuqdisk(找不到) ⑬ libaio ⑭ libaio-devel ⑮ libgcc
⑯ libgomp ⑰ libstdc++ ⑱ libstdc++-devel ⑲ make ⑳ numactl-devel ㉑ sysstat ㉒ unixODBC ㉓ unixODBC-devel
其中有部分软件包找不到,就跳过了安装,希望知道这些软件包左右的大佬能够指点迷津,小弟只是单纯的按着官方文档或者一些博客论坛教程模仿操作,知其然不知其所以然。
⑴ 服务器能够访问Internet的情况下
使用 『 rpm -qa | grep 软件包名』检测是否安装软件包;
也可以直接使用 『 yum install 软件包名』的方式直接安装软件包,若软件包已安装会自动退出。
⑵ 服务器无法访问Internet的情况下
通过挂载linux对应的安装镜像ISO文件,将对应的镜像文件Package文件夹中的rpm安装文件拷贝到系统中后,通过『 rpm -ivh 软件包名』方式进行安装,若在Package中找不到,则需要通过网络下载后进行安装。
- Linux下的环境配置
1. 创建用户组 oinstall、dba
[root]$ groupadd oinstall
[root]$ groupadd dba
2. 新建用户 oracle ,并加入 oinstall、dba 用户组,并初始化密码
[root]$ useradd -g oinstall -G dba oracle
[root]$ passwd oracle
- 配置Linux内核参数
在root用户模式下修改内核配置文件 『/etc/sysctl.conf』,在文档最后增加如下内容
# 异步 I/O 的请求数目
fs.aio-max-nr = 1048576
# 一个进程可以打开的文件句柄的最大数目
fs.file-max = 6815744
# 控制共享内存页数
kernel.shmall = 2097152
# 共享内存段的最大尺寸
kernel.shmmax = 4294967295
# 共享内存段的最大数量
kernel.shmmni = 4096
# 设置的信号量
kernel.sem = 250 32000 100 128
# 指定了应用程序所能使用的IPV4的端口范围
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
设置完成后保存,使用如下指令设置生效
[root@localhost]# sysctl -p
相关的内核变量含义可参考如下链接:
安装Oracle需要调整的linux内核参数 - colben - 博客园www.cnblogs.com- 配置资源使用情况
修改配置文件『/etc/security/limits.conf』,官方配置文档键入如下修改:
在文档最后添加如下配置信息:
#oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 1024
oralce hard stack 32768
小弟不才,对于某些内存、硬件知识不了解,所以相关参数意义并不是特别理解,(希望了解这些参数设置意义的大神能帮我解答下疑惑)详情可以自行百度或者参考如下链接:
linux系统资源限制 - Mr.Sylar - 博客园www.cnblogs.com- 关闭Selinux与防火墙
⑴ Centos 中关闭防火墙的方法
# 关闭防火墙
[root]$ service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root]$ chkconfig iptables off
# 关闭Selinux
[root]$ /usr/sbin/sestatus –v
[root]$ vi /etc/selinux/config
SELINUX=disabled
⑵ RHEL 7 中关闭防火墙的方法
[root]$ systemctl stop firewalld.service
- 创建相关目录结构,修改对应的权限信息
需要创建如下两个目录:
① oracle 的基准目录(base directory),该目录根据个人情况创建即可,后续再oracle图形界面安装的时候会使用到
[root]$ mkdir -p /oracle/app/oracle
[root]$ chown -R oracle:oinstall /oracle
- 配置oracle用户环境变量
该步骤可在ORACLE安装完成后进行,具体配置信息根据oracle实际安装路径进行配置。
① 切换至oracle,进入home目录,编辑 .bash_profile 文件
[root]$ su oralce
[oracle]$ cd ~
[oracle]$ vi .bash_profile
② 在文件最后添加如下信息
export ORACLE_BASE=/oracle/app/oracle # oracle的安装根目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 # oracle文件目录
export ORACLE_SID=oracledb # oracle 的SID名称
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin # 配置PATH变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LANG="en_US.UTF-8" # 为了防止oracle安装过程中出现中文乱码情况
③ 修改完成后保存,并使用『source .bash_profile』命令应用配置文件
- 上传 oracle 安装包,解压后进行安装
① 上传安装包,我使用的是xftp工具,百度搜索便可下载
② 确保使用oracle用户进行上传,否则在文件解压时,或者安装oracle时会有权限问题,记得将文件上传到oralce的home目录下,确保用户具有权限
③ 使用解压命令『unzip 文件名称』解压文件
- 安装oracle
① 进入解压目录,执行『./runinstaller』指令安装oracle
在实际安装过程中,在虚拟机中我发现所有的弹窗报错和提示信息都很小,无法看到,这里在网上找到一个解决方法
https://blog.csdn.net/sdut406/article/details/81463758blog.csdn.net使用如下指令安装:
『./runInstaller -jreLoc /etc/alternatives/jre_1.8.0』
② 取消安全更新选项勾选,进入下一步
![bcfb819fc8501f9d367d3ba83b54711e.png](https://i-blog.csdnimg.cn/blog_migrate/d01629bcd60de15616207fddd41a40d4.jpeg)
③ 选择安装数据库,不创建数据库实例
![e5c1c4d188350ec8783587f9d9bed1c7.png](https://i-blog.csdnimg.cn/blog_migrate/f53fdf7cb97481c16b572b2fe9a0ab04.jpeg)
![a0506f6d0b3b23596e886e0ef0744554.png](https://i-blog.csdnimg.cn/blog_migrate/2c06bb2ae6654ad7f4c0a117a39313aa.jpeg)
![fb5d1ede7fda7ca5bc7d31665888eb27.png](https://i-blog.csdnimg.cn/blog_migrate/96beaad2b0f50886c67b908c31d388b5.jpeg)
![843bbe4497fa6ce8407afc1314805427.png](https://i-blog.csdnimg.cn/blog_migrate/66c9d77c00f214e4f8f35d47fb5d3435.jpeg)
④ 安装路径如下设置
![27c74dd974b8df8ad74660aa7d2494bb.png](https://i-blog.csdnimg.cn/blog_migrate/5b234e0e36696f4d0d2f24ef665cb773.jpeg)
![2cc8762923fb70bb9239c7ba38c69394.png](https://i-blog.csdnimg.cn/blog_migrate/ed632140a196bf060392882955561e7b.jpeg)
![02d833986dc4d319a5c7723e3a584296.png](https://i-blog.csdnimg.cn/blog_migrate/4cff860af5764e18e4dcf38e9ac115a1.jpeg)
⑤ 进入下一步检测相关内核参数及插件安装时,会提示很多条件不符合,但是实际已经安装过了,在查阅一些资料后,发现在某些发行版中会出现这个问题,只要默认忽略即可。
⑥ 运行完成后即可完成数据库软件安装。
安装过程中我曾遇到过的错误问题:
⑴ 86%报错:Error in invoking target 'agent nmhs' of makefile
![99c66d88113b84f559a9b709549977d3.png](https://i-blog.csdnimg.cn/blog_migrate/3dc8473ebcae325926ad267604616e36.jpeg)
解决方案:修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11 (注意修改文件前,先将源文件备份,以防修改后出现程序问题)
[oracle]$ cd $ORACLE_HOME/sysman/lib
[oracle]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle]$ vi ins_emagent.mk
通过 /搜索词 搜索对应位置后,进行修改
完成上述修改后保存,点击retry继续安装
参考链接:
【Oracle】Linux7安装11g Error in invoking target 'agent nmhs' of makefileblog.itpub.net![cba93406f9a9be524f9fbe4211bf61cc.png](https://i-blog.csdnimg.cn/blog_migrate/3edae3b8b199735b1a6b4bf1b0ecd963.jpeg)
- 创建数据库
① 在控制台中输入『dbca』运行 Database Configuration Assistant(数据库配置助手),完成如下配置,创建数据库实例。
![b691f26e61fc6a8bf087473f9efd4345.png](https://i-blog.csdnimg.cn/blog_migrate/7ebff46199d131e605917cb60a15ef5e.jpeg)
![ec9275e8615d98417feae4f54157d70a.png](https://i-blog.csdnimg.cn/blog_migrate/de6d63cfa4e66b039b7f2a49bd1e0a62.jpeg)
![e647ea66392c0a18a87ac591e4a348ff.png](https://i-blog.csdnimg.cn/blog_migrate/b56869143979de74d560c84876161765.jpeg)
创建数据库过程中我曾遇到过的错误问题:
⑴ 报TNS-12532: TNS:invalid argument错误
解决方案:设置密码时使用了 “@”符号,修改即可
参考链接:
Oracle报错TNS-12532: TNS:invalid argumentwww.cnblogs.com- 修改监听服务配置文件,设置IP
①编辑 $ORACLE_HOME/network/admin/tnsnames.ora 文件,在文件最后添加如下内容
OracleDB= # 任意名称
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 本机ip地址)(PORT = 1521)) #设置本地IP地址
)
(CONNECT_DATA =
(SERVICE_NAME = oracledb) # ORACLE_SID名称
)
)
② 设置完成后,重启监听服务 『lsnrctl 』及数据库服务
# 重启监听服务
[oracle]$ lsnrctl stop
[oracle]$ lsnrctl start
# 重启数据库服务
SQL> shutdown immediate
SQL> startup
启动数据库实例时遇到问题:
⑴ Oracle报ORA-01078和LRM-00109错解决方法
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2/db_1/dbs/initorcl.ora'
解决方案:
11G Oracle报ORA-01078和LRM-00109错解决方法blog.itpub.net⑵
⑶ ORA-01102 的解决办法
SQL> startup
ORACLE instance started.
Total System Global Area 1.7103E+10 bytes
Fixed Size 2243608 bytes
Variable Size 8455717864 bytes
Database Buffers 8623489024 bytes
Redo Buffers 21712896 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
解决方案:
ORA-01102 的解决办法_ITPUB博客blog.itpub.net- window安装 PL/SQL 后进行服务器连接测试
具体方法可参考我之前的文章:
杰米尼:PLSQL连接ORACLE配置说明zhuanlan.zhihu.com- ORACLE EMCTL服务的创建与开启
ORACLE10之后,添加了EMCTL功能,便于用户通过网页登录ORACLE管理页面,检测ORACLE相关性能问题,完成上述所有操作后,ORACLE已可以正常使用,但是我发现EMCTL是没有开启的,测试方法是,通过浏览器访问网址: https://localhost:1158/em ,若能打开配置界面则说明 EMCTL 服务正常。
通过查找相关资料,发现如下解决方法:
① 首先通过命令 检测是否能够正常开启 EMCTL 服务
[oracle@test ~]$ emctl start dbconsole
OC4J Configuration issue. /u01/app/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_test_orcl not found.
② 若出现步骤1中错误,则需要重新配置 EMCTL 服务
[oracle@test ~]$ emca -config dbcontrol db
# 按提示完成输入相关属性值后完成设置即可
③ 通过网页 https://localhost:1158/em 观察能否正确打开EMCTL控制页面
常见的 EMCTL操作
emca -repos create创建一个EM资料库
emca -repos recreate重建一个EM资料库
emca -repos drop删除一个EM资料库
emca -config dbcontrol db配置数据库的 Database Control
emca -deconfig dbcontrol db删除数据库的 Database Control配置
emca -reconfig ports 重新配置db control和agent的端口
emctl start console启动EM console服务,使用前需要先设置ORACLE_SID环境变量
emctl stop console停止EM console服务,使用前需要先设置ORACLE_SID环境变量
注:通过查看$ORACLE_HOME/install/portlist.ini 文件可以知道当前dbcontrol正在使用的端口,默认dbcontrol http端口1158,agent端口3938。如果要重新配置端口,可以使用如下命令:
emca -reconfig ports -dbcontrol_http_port 1159
emca -reconfig ports -agent_port 3939
使用命令行工具emctl可以启动/停止console服务,察看服务状态等。
参考链接:
https://blog.csdn.net/pilearn/article/details/8817937blog.csdn.net