当前位置: 首页 > news >正文

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

        在成功体验了 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.lryc.cn/news/398424.html

相关文章:

  • 上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)
  • 容器是线程不安全的,如果多线程下不加锁直接使用容器会发什么
  • 配置光源——笔记
  • Java---SpringBoot详解一
  • MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级
  • Springboot 配置 log4j2 时的注意事项
  • 微服务-初级篇
  • 批量制作word表格
  • 代码随想录算法训练营:27/60
  • Redis 中String类型操作命令(命令演示,时间复杂度,返回值,注意事项)
  • 2024亚太杯中文赛B题洪水灾害的数据分析与预测原创论文分享
  • Oracle 19c 统一审计表清理
  • PostgreSQL(二十二)缓冲区管理器
  • 流程制造业与离散制造业有何差异?流程行业智能制造关注什么?
  • 【论文速读】《面向深度学习的联合消息传递与自编码器》,无线AI的挑战和解决思路
  • C++从入门到起飞之——输入输出!
  • 米文AD10配置gmsl摄像头操作
  • 【Selenium配置】WebDriver安装浏览器驱动(ChromeEdge)
  • 预测算法面试
  • 号称世界上第一个开源实时翻译的 App,微软开源GraphRAG:极大增强大模型问答、摘要、推理,以及开源基于ChatGPT的超级文本代码智能体(附代码地址)
  • PyTorch 2-深度学习-模块
  • 【MyBatis】MyBatis 理论 40 问(二)
  • 数据分析——Python网络爬虫(三){爬虫基本原理}
  • Linux 忘记root密码,通过单用户模式修改
  • 安卓热门面试题二
  • agents 分类
  • 【期末考试复习】概率论与数理统计(知识点模式 - 复习题2)
  • Jetpack Compose实现一个简单的微信UI
  • myeclipse开发ssm框架项目图书管理系统 mysql数据库web计算机毕业设计项目
  • 网络安全防御 -- 防火墙安全策略用户认证综合实验