暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CentOS下Oracle数据库部署说明

数通畅联 2022-09-23
791

数据库作为数据存储单元,是应用系统开发、运行时必不可少的元素,而在实际项目中常用的数据库主要有Oracle、SQL Server、MySQL、PostgreSQL等,Oracle和SQL Server作为商业数据库,在数据量、性能和安全等方面相对更强大。在实际生产运行时,可以根据实际需要和使用情况进行数据库的选择。

公司产品开发时都是采用MySQL数据库,产品发布时候采用Oracle来做发版演示,实际项目也要对Oracle、PostgreSQL等数据库的支持,本次对Oracle的部署过程进行中梳理和记录,便于后续的环境搭建,供后续项目环境安装搭建参考。

整体说明
Oracle作为市场上使用率最高的商业性数据库之一,在系统功能、架构等方面相对于MySQL要复杂许多,并且需要部署在Linux服务器上,所以需要准备相应的服务器环境。

1部署环境

1.本次部署采用Linux服务器,系统为CentOS 7系统;
2.数据库采用Oracle11g R2版本数据库;
3.提前准备好服务器,采用虚拟机的方式;
4.下载Oracle 11g R2版本的数据库安装包,Linux版本。

2系统准备

系统采用CentOS系统,版本保证CentOS 7,可以采用虚拟机的方式:
1.通过Vmware Workstation的虚拟机工具部署虚拟机,具体过程参考相关资料,这里不做具体说明;
2.由于部署过程通过命令行的方式静默安装,所以可以不安装图形化界面;
3.由于Oracle数据库需要很多软件依赖,建议服务器开启外网连接,能够更新相关软件依赖。

3软件依赖

1.先下载并安装pdksh安装包:
2.服务器安装其他环境依赖:
前置条件

在进行Oracle数据库安装前,需要建立相关的用户、目录,并且进行权限分配,避免安装时出现异常提示等问题。

1添加用户

1.添加oracle用户和分组:
2.查看oracle用户:
3.为oracle 用户设置密码:

2系统内核

1.修改服务器的内核信息:
注:kernel.shmmax参数建议配置为内存的一半
2.使修改后的系统参数生效:

3权限限制

1.编辑limits.conf:
2.在limits.conf最后添加配置:
3.编辑login:
4.在login最后添加配置:
5.编辑profile:
6.在profile最后添加配置:
7.生效profile:

4创建目录

创建Oracle数据库的安装目录:

5环境变量

1.切换oracle用户,并且进入root目录下:
2.在.bash_profile最后添加配置:
3.生效.bash_profile:
安装部署
Linux服务器下Oracle数据库的部署方式可以分为两种:一是采用图形化的方式,通过安装命令调用Oracle安装页面,但是需要Linux服务器提供图形化界面;二是完全通过命令采用静默安装,不需要图形化界面,本次采用静默安装的方式。

1解压安装包

1.切换root用户,unzip解压缩:
2.复制配置修改,修改安装配置文件:
3.修改安装参数:

2静默安装

1.先切换到Oracle用户,进入安装目录:
2.执行安装命令:
注:需要添加swap:参见后文添加临时swap。
3.按照提示信息,查看日志:
4.安装成功的输出信息:
5.切换root用户,执行文件:

3配置监听

1.切换Oracle用户,启动监听:
2.查看监听端口:

4创建数据库

1.修改数据库配置文件:
2.修改配置参数:
注:建议TOTALMEMORY 设置为总内存的80%
3.分配权限(如果没有权限,切换root):
4.执行静默建库:
5.查看oracle实例进程:
6.查看监听状态:

5
登录测试

其他配置
测试通过后,说明Oracle数据库已经部署成功,但是在实际项目中,为了保证访问安全性,一般会隐藏Oracle默认的1521端口,一般是通过Nginx代理方式切换非常用端口进行访问。

1Nginx代理

1.在nginx中添加stream配置进行端口代理:
2.$nginx_home/conf/stream.d/oracle.conf:

2防火墙处理

1.如果未使用Nginx代理:开放1521端口;
2.如果使用Nginx代理:开发Nginx代理后的端口。

3产品连接

产品需要连接Oracle数据库,通过管理员账号建立Oracle用户和命名空间,分配权限和数据库。
测试验证
Oracle数据库安装完成后,通过相关的SQL命令对数据库进行相关功能测试,验证常用SQL语句。

1创建用户

1.创建用户:
2.分配权限:
3.连接登录验证。

2SQL验证

1.用户登录:
2.建表:
3.新增数据:
4.查询数据:
5.修改数据:
6.删除数据:
7.删除数据表:

3远程连接

1.系统管理员SYS:
1)检查登录参数:
2)创建远程登录密码文件:
2.普通用户:
注:需要开启防火墙1521端口或者开启Nginx代理端口;

4问题记录

1.Oracle安装初始化校验需要swap支持,需要开启swap或者添加临时swap
注:如果是和K8S同时部署,安装完成后需要关闭swap,避免影响K8S进程,关闭命令如下:
2.登录Oracle数据库后,执行命令时提示:ORACLE not available,这是由于数据库实例未启动,执行startup启动数据库:
对应的停止命令:
3.登录Oracle数据库后,执行命令时提示:could not open parameter,一般发生在首次登录,需要手动添加数据库配置文件,命令如下:
4.登录Oracle数据库后,执行命令时提示:cannot mount database in EXCLUSIVE mode,需要进行数据库目录挂载
1)先停止数据库:
2)切换root用户,kill相关pid释放文件lk<SID>文件:
3)重新启动数据库:
总结分析
Oracle作为常用的数据库之一,在实际项目中会根据项目实际需求进行部署,所以在日常工作中,也要熟悉Oracle数据库的安装部署和常用命令,同时也要能对Oracle相关的SQL熟练掌握。

1升级验证

本次部署采用的是Oracle 11gR2的版本,也是比较常用的版本之一,但是基于实际产品需要,是需要升级到12c版本,相对于11g,12c提供了新特性以支持varchar2、nvarchar2和raw的长度从之前的4K扩展到32K,以满足更大的数据存储而不是用CLOB。
相对于11g版本,12c版本增加了多租户环境,并通过CDB和PDB进行环境规划,而用户也分成了公用用户和本地用户,所以无论是部署安装还是用户、数据库的配置都和11g有所区别,所以12c的升级需要进行对应调整。

2对比分析

相对于MySQL数据库,Oracle数据库的结构和管理方式相对复杂,并且和MySQL区别比较大,MySQL数据库服务下直接就是数据库,而建立用户分配数据库权限就能进行数据库访问;而Oracle数据库下有数据库实例、用户、表空间等区分,Oracle数据库服务支持多实例,实例支持多用户,而用户和表空间可以相互关联,形成多对多的关系,所以Oracle数据库要做好规划和却分,以支持不同的产品和服务。

3个人总结

由于产品在开发多数情况下采用MySQL数据库,所以产品本身适配MySQL数据库,而在进行Oracle数据库适配时一般使用本地数据库,部署Window版本,而本次主要是基于CentOS系统部署的服务器版本,相对而言,Linux下部署需要手动修改配置文件,配置过程相对繁琐,但同时对于相关命令、配置参数也有了更加清晰的了解,对于后续Oracle数据库配置以及优化也有一定的帮助。

数据库作为应用系统运行的数据支撑,在开发、测试、实施过程中都是非常重要的,所以熟练掌握数据库的部署、测试、使用、优化是技术人员必备的技术能力之一,也是支撑项目交付的关键环节,所以在工作中要加强对数据库的学习和使用,充分掌握数据库的使用与维护,以满足日常工作的需要。

推荐阅读

文章转载自数通畅联,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论