淮南做网站推广,asp.net 大网站,网站开发浏览器分辨率,河南做网站公司汉狮在成功体验了 Windows 版本的Oracle 11g 后#xff0c;这几天心血来潮#xff0c;决定再挑战一下Linux 环境下的安装#xff0c;特别是在考虑到部门内部虚拟机无法联网的情况下#xff0c;我选择了在CentOS 7上进行离线安装。这次安装之旅#xff0c;主要参考了下面大佬的… 在成功体验了 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?pwdkyx0 提取码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 权限只能连接数据库不能创建表
1GRANT CONNECT, RESOURCE TO hr;
2GRANT 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_NAMESSERVICE_NAMES 的查询方法如下得出来 orcl11g.us.oracle.com终于连上了。 查询结果 看起来仅通过 sqlPlus 查询乱码使用PL/SQL 连接查看都正常又问了DBA大佬说是字符集问题接着开始设置字符集期间试过下面三种方法但都不好使。 export NLS_LANGAMERICAN_AMERICA.ZHS16GBK、 export NLS_LANGZHS16GBK、 export NLS_LANGSIMPLIFIED CHINESE_CHINA.ZHS16GBK 最后通过下面的方法解决了乱码问题目前通过 PL/SQL 和 SqlPlus 查询正常基本大功告成了。
vim /etc/profile# 在最后面输入下面一行
export NLS_LANGSIMPLIFIED 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_NAMEorcl11g)(ORACLE_HOME/u01/app/oracle/product/11.2.0/db_1)(GLOBAL_DBNAME orcl11g)))LISTENER (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOSTserver01)(PORT1521)))2、tnsnames.ora内容
orcl(DESCRIPTION(ADDRESS(PROTOCOLTPC)(HOSTserver01)(PORT1521)(KEYEXTPROC1521))(CONNECT_DATA(SERVER DEDICATED)(SERVICE_NAMEorcl11g.us.oracle.com)))orcl11g(DESCRIPTION(ADDRESS(PROTOCOLTPC)(HOSTserver01)(PORT1521)(KEYEXTPROC1521))(CONNECT_DATA(SERVER DEDICATED)(SERVICE_NAMEorcl11g))) 其中server01通过 hostname 命令得出也可通过命令 vim /etc/hostname 修改。 第六步数据导入与权限问题
在尝试使用hr用户导入表结构时我遇到了权限不足的错误。在改用system用户后导入操作顺利完成。看来在进行数据库操作时务必注意用户的权限设置。
imp system/123456 file/tmp/importData/backup.dmp fromuserca touserhr
如果要使用 hr 用户导入那么需要给 hr 用户赋权限
grant imp_full_database to hr; 至此Linux 环境下 Oracle 11g 的离线安装与配置工作基本完成。这次经历不仅让我掌握了Oracle数据库在Linux环境下的安装与配置方法还让我对数据库的权限管理、字符集设置等有了更深刻的理解。