Linux环境下Oracle 11g的离线安装与配置历程

embedded/2024/10/18 18:16:12/

        在成功体验了 Windows 版本的Oracle 11g 后,这几天心血来潮,决定再挑战一下Linux 环境下的安装,特别是在考虑到部门内部虚拟机无法联网的情况下,我选择了在CentOS 7上进行离线安装。这次安装之旅,主要参考了下面大佬的详尽教程,并结合自身实践进行了必要的补充与调整。

参考文章:     Linux 下静默安装/无网络安装/ Oracle 11g 11.2.0 步骤(CentOS 7)_centos7离线安装oracle数据库-CSDN博客

        好了,说干就干。

第一步:构建基础环境

首先,我安装了VMware 17.5.1 build-23298084作为虚拟机平台,随后下载并安装了CentOS 7操作系统,以便为下载 oracle 基础安装包做准备。虽然寻找合适的安装包稍显繁琐,但系统的安装过程却相当顺畅。

说明:所需的安装包以及第二步所需基础安装包均已上传,地址如下:

链接:https://pan.baidu.com/s/1qctZHfXG1v6xu2olWTlAEw?pwd=kyx0 
提取码:kyx0

第二步:准备 Oracle 所需基础安装资源

在无法联网的环境下,我提前下载并上传好了Oracle 11g所需的所有安装包及依赖库,确保安装过程中不会因缺少资源而中断。

yum install --downloadonly --downloaddir=/tmp/ compat-libstdc++-33 elfutils-libelf-devel gcc* glibc-* ksh libaio libaio-devel libstdc++-devel unixODBC unixODBC-devel sysstat -y

第三步:静默安装Oracle 11g

依据参考文章中的步骤,我顺利完成了Oracle 11g的离线安装。安装完成后,我立即创建了hr 用户及其对应的表空间,为后续操作打好了基础。

-- 使用 dba 身份免密登录
sqlplus / as sysdba-- 新建用户 hr
create user hr identified by 123456;-- 赋权限(使用第1个即可,session 权限只能连接数据库,不能创建表)
(1)GRANT CONNECT, RESOURCE TO hr;
(2)GRANT CREATE SESSION TO hr;-- 创建表空间
CREATE TABLESPACE hr_data  
DATAFILE '/u01/app/oracle_data/hr_data01.dbf' -- 替换为实际的文件路径  
SIZE 100M -- 初始大小,可以根据需要调整  
AUTOEXTEND ON -- 开启自动扩展  
NEXT 50M -- 下一次自动扩展的大小,可以根据需要调整  
MAXSIZE UNLIMITED; -- 设置最大空间大小不限制

第四步:客户端连接与字符集问题

在尝试通过PL/SQL和sqlPlus连接数据库时,我遇到了连接问题。详情如下:

使用 sqlPlus hr/123456 命令登录,新建了一个t_user_test 测试表,新增了2条数据,然后去查询,发现乱码了。

INSERT INTO t_user_test VALUES(1, '张三');
INSERT INTO t_user_test VALUES(2, '李四');SELECT * FROM t_user_test;

通过 sqlPlus 查询乱码,那通过本地客户端 PL/SQL 会怎样呢?首先是连接数据库,刚开始一直连不上,问了DBA大佬,数据库地址是XXX.XXX.XXX.XXX:1521/SERVICE_NAMES,SERVICE_NAMES 的查询方法如下,得出来 orcl11g.us.oracle.com,终于连上了。

查询结果:

看起来仅通过 sqlPlus 查询乱码,使用PL/SQL 连接查看都正常,又问了DBA大佬,说是字符集问题,接着开始设置字符集,期间试过下面三种方法但都不好使。

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK、

export NLS_LANG=ZHS16GBK、

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK",

最后通过下面的方法解决了乱码问题,目前通过 PL/SQL 和 SqlPlus 查询正常,基本大功告成了。

vim /etc/profile# 在最后面输入下面一行
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"# 最后执行source 命令使生效
source /etc/profile

第五步:重启测试与问题排查

这一步是重启测试,在重启系统后,我发现无法通过 sqlPlus 以hr 用户身份登录,使用 dba 身份免密登录时提示实例不存在。但奇怪的是,通过本地 PL/SQL 客户端却能正常连接并查询。通过重启服务器并监控连接状态,我排除了连接错误的可能性,并最终确定是Oracle 实例在重启后未能正确启动。

最后怀疑是自启动问题,去掉oracle 自启动后,重启机器,然后开始手动重启 oracle.

好了,启动完成,SqlPlus 也能正常登录了。

但问题又来了,本地的 PL/SQL 又连不上了,提示了下面的错误,没有监听器。对于第一次安装和使用oracle 来说,确实有点崩溃了,这是在修水管吗,这点修好那点坏?

好在oracle 社区群体比较庞大,很快找到了问题解决方法,操作和截图如下:

lsnrctl status # 查看监听器状态
lsnrctl start  # 开启监听器,如果重启后,不开启监听器,那么客户端就连接不上

当然,这里也重新配置了 tnsnames.ora 和 listener.ora,内容如下:

1、listener.ora内容: 
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=orcl11g)(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)(GLOBAL_DBNAME = orcl11g)))LISTENER =(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server01)(PORT=1521)))2、tnsnames.ora内容
orcl=(DESCRIPTION=(ADDRESS=(PROTOCOL=TPC)(HOST=server01)(PORT=1521)(KEY=EXTPROC1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=orcl11g.us.oracle.com)))orcl11g=(DESCRIPTION=(ADDRESS=(PROTOCOL=TPC)(HOST=server01)(PORT=1521)(KEY=EXTPROC1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=orcl11g)))

其中,server01通过 hostname 命令得出,也可通过命令 vim /etc/hostname 修改。

第六步:数据导入与权限问题

在尝试使用hr用户导入表结构时,我遇到了权限不足的错误。在改用system用户后,导入操作顺利完成。看来,在进行数据库操作时,务必注意用户的权限设置。

imp system/123456 file=/tmp/importData/backup.dmp fromuser=ca touser=hr

如果要使用 hr 用户导入,那么需要给 hr 用户赋权限:

grant imp_full_database to hr;

        至此,Linux 环境下 Oracle 11g 的离线安装与配置工作基本完成。这次经历不仅让我掌握了Oracle数据库在Linux环境下的安装与配置方法,还让我对数据库的权限管理、字符集设置等有了更深刻的理解。


http://www.ppmy.cn/embedded/58733.html

相关文章

仕考网:公务员考试面试时间一般多长?

公务员考试主要分为笔试与面试两个阶段,其中面试是笔试通过的下一关,面试的具体安排通常由相关考试机构或招录单位负责发布并通知考生。 公务员面试的持续时间一般在30分钟至1小时之间,具体时长可能因地区和招录单位的不同而有所变化。常见的…

深入理解 Cowboy WebSocket:使用 Erlang/OTP 构建高效的即时通讯(IM)应用

深入理解 Cowboy WebSocket:使用 Erlang/OTP 构建高效的即时通讯(IM)应用 引言 实时通信技术在现代 Web 应用中扮演着核心角色,而 WebSocket 作为其中的关键技术,已成为即时通讯(IM)系统不可或缺的一部分。Cowboy,这个基于 Erla…

图数据库 - Neo4j详解

深入理解 Neo4j 与 Cypher 语法 什么是 Neo4j Neo4j 是一个基于图的数据库管理系统,它使用图形理论来表示数据关系。这种数据库与传统的关系型数据库不同,它更适合处理高度互联的数据结构。 基本概念 图:在 Neo4j 中,数据以图的…

人脸检测+调整分辨率+调整帧率

初始检测:只在视频的前几秒内进行一次人脸检测,以确定主持人的大致位置。计算裁剪框:基于检测到的主持人位置,计算一个以主持人面部为中心的固定裁剪框。视频裁剪:使用计算出的裁剪框对整个视频进行裁剪,将…

EasyExcel文档链接与使用示例

文档链接 注解 https://blog.csdn.net/estelle_belle/article/details/134508223 官方文档地址 https://github.com/alibaba/easyexcel/tree/master?tabreadme-ov-file 使用示例 依赖版本 <dependency><groupId>com.alibaba</groupId><artifactId>…

单例模式的实现

1. 引言 1.1 背景 当在应用程序中需要控制资源共享、进行配置管理和日志记录等操作时&#xff0c;一种常见的需求是希望通过一个全局访问点&#xff0c;让程序无论在哪个地方&#xff0c;只要能够访问到&#xff0c;就可以通过这个全局访问点&#xff0c;来获取相关实例信息。…

第一关:Linux基础知识

Linux基础知识目录 前言LinuxInternStudio 关卡1. InternStudio开发机介绍2. SSH及端口映射2.1 什么是SSH&#xff1f;2.2 如何使用SSH远程连接开发机&#xff1f;2.2.1 使用密码进行SSH远程连接2.2.2 配置SSH密钥进行SSH远程连接2.2.3 使用VScode进行SSH远程连接 2.3. 端口映射…

【区块链 + 智慧政务】一体化政务数据底座平台 | FISCO BCOS应用案例

为进一步贯彻落实《全国一体化政务大数据体系建设方案》、《中共中央国务院关于构建数据基础制度更好发挥 数据要素作用的意见》精神&#xff0c;一体化政务数据底座平台结合相应城市的数字经济现状基础、当前任务及未来发展 战略&#xff0c;规划建设数据底座&#xff0c;持续…