centos7.8安装oralce11g

news2024/9/24 1:27:20

文章目录

  • 环境安装文件准备
  • 添加用户
  • 操作系统环境配置
  • 解压
  • 安装
  • 问题解决
  • 创建用户远程连接

为了熟悉rman备份操作,参照大神的博客在centos中安装了一套oracle11g,将安装步骤记录如下

环境安装文件准备

这里准备一台centos7.8 虚拟机 配置ip 192.168.18.100 主机名:oracle100
下载oralce linux 安装包(需要网盘地址请留言) 包含两个部分,下载完成后上传到 centos 虚拟机中备用。
在这里插入图片描述

添加用户

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

操作系统环境配置

安装 pdksh

wget  http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

安装环境依赖

yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel

检验依赖是否安装完整

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"

内核配置优化

vi /etc/sysctl.conf
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 2147483648
kernel.sem=250 32000 100 128
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

kernel.shmmax为内存的一半,比如内存为4G,则kernel.shmmax=210241024*1024=2147483648
使配置生效

sysctl -p

配置oracle用户权限
vi /etc/security/limits.conf
增加如下内容

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

vi /etc/pam.d/login
增加如下内容

session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

vi /etc/profile
增加如下内容

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

创建目录
创建 oracle 的安装备份目录,注意如果是root用户创建的 最后要修改 目录所有者为oracle:oinstall,否则安装时提示没有权限或找不到文件

mkdir -p /db/app/oracle/product/11
mkdir /db/app/oracle/oradata
mkdir /db/app/oracle/inventory
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db/app/oracle
chmod -R 775 /db/app/oracle
mkdir -p /u01/app/oracle/inventory
chown -R oracle:oinstall /u01/app/oracle/inventory

配置oralce用户环境变量
切换到 oracle 用户
su oracle
用户目录下 编辑文件.bash_profile 增加如下内容
vi .bash_profile
注意目录信息等 配置 要结合自己的实际

umask 022
export ORACLE_HOSTNAME=oracle100
export ORACLE_BASE=/db/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11/
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

编辑 home/oracle/.bashrc 也增加上述内容

解压

解压安装包,分别解压两个部分的压缩包,最终会解压到一个 database 目录。复制这个目录到 /db 目录如下,更改目录所有者为

total 0
drwxr-xr-x 3 oracle oinstall  20 Jun  9 03:06 app
drwxr-xr-x 8 oracle oinstall 128 Aug 21  2009 database
drwxr-xr-x 2 oracle oinstall  61 Jun  9 04:00 etc
[oracle@oracle100 db]$ pwd
/db
chown -R oracle:oinstall  /db/app 
chown -R oracle:oinstall  /db/database
chown -R oracle:oinstall  /db/etc

创建 /db/etc 目录 并 复制 /db/database/response/ 下的文件到 /db/etc

mkdir /db/etc/
cp /db/database/response/* /db/etc/

编辑 /db/etc/db_install.rsp 增加如下内容
vi /db/etc/db_install.rsp

#-----------------add-----------------
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle100
ORACLE_HOME=/db/app/oracle/product/11
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

安装

执行安装程序
使用oralce 用户,执行 /db/etc/db_install.rsp 安装oracle,如果提示文件没有权限那么通过chmod 为文件增加 执行权限

[oracle@oracle100 database]$ ./runInstaller -silent -ignorePrereq -responseFile /db/etc/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 6827 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2021-06-09_03-49-04AM. Please wait ...[oracle@oracle100 database]$ You can find the log of this install session at:
 /u01/app/oracle/inventory/logs/installActions2021-06-09_03-49-04AM.log
The following configuration scripts need to be executed as the "root" user. 
 #!/bin/sh 
 #Root scripts to run

/u01/app/oracle/inventory/orainstRoot.sh
/db/app/oracle/product/11/root.sh
To execute the configuration scripts:
         1. Open a terminal window 
         2. Log in as "root" 
         3. Run the scripts 
         4. Return to this window and hit "Enter" key to continue 

Successfully Setup Software.

根据日志提示 使用root用户 执行如下命令 ,完成安装

Changing groupname of /u01/app/oracle/inventory to oinstall.
The execution of the script is complete.
[root@oracle100 ~]# /db/app/oracle/product/11/root.sh
Check /db/app/oracle/product/11/install/root_oracle100_2021-06-09_03-53-21.log for the output of root script
[root@oracle100 ~]#

可以查看 输出的 日志文件内容 判定执行结果

配置监听
oralce 用户 执行如下命令 配置监听 ,配置后可以看到 oralce 监听 1521 端口

[oracle@oracle100 database]$ netca /silent /responsefile /db/etc/netca.rsp
Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /db/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /db/app/oracle/product/11/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
oracle@oracle100 database]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::1521                 :::*                    LISTEN      13052/tnslsnr       
[oracle@oracle100 database]$ 

创建数据库
编辑/db/etc/dbca.rsp 增加如下内容

vi /db/etc/dbca.rsp
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/db/app/oracle/oradata
RECOVERYAREADESTINATION=/db/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "3277"

执行如下命令创建数据库,这里所有密码都填oracle
[oracle@oracle100 etc]$ dbca -silent -responseFile /db/etc/dbca.rsp
Enter SYS user password:
Enter SYSTEM user password:
Copying database files
1% complete

Creating and starting Oracle instance
40% complete

Completing Database Creation

85% complete

查看进程

[oracle@oracle100 etc]$ lsnrctl status               

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUN-2021 04:03:27

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                09-JUN-2021 03:57:00
Uptime                    0 days 0 hr. 6 min. 27 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /db/app/oracle/product/11/network/admin/listener.ora
Listener Log File         /db/app/oracle/diag/tnslsnr/oracle100/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle100)(PORT=1521)))
Services Summary...
Service "orcl11g.us.oracle.com" has 1 instance(s).
  Instance "orcl11g", status READY, has 1 handler(s) for this service...
Service "orcl11gXDB.us.oracle.com" has 1 instance(s).
  Instance "orcl11g", status READY, has 1 handler(s) for this service...
The command completed successfully

问题解决

could not open parameter 错误
sqlplus conn / as sysdba 成功登录
执行 startup 命令 报错

could not open parameter file '/db/app/oracle/product/11/dbs/initORCL.ora'

只需复制 /initORCL.ora 到指定目录如下:

[root@oracle100 oracle]# cp /db/app/oracle/admin/orcl11g/pfile/init.ora.5920214210 /db/app/oracle/product/11/dbs/initORCL.ora
[root@oracle100 dbs]# chown oracle:oinstall initORCL.ora 
[root@oracle100 dbs]# ll
total 28
-rw-rw---- 1 oracle oinstall 1544 Jun  9 04:01 hc_DBUA0.dat
-rw-rw---- 1 oracle oinstall 1544 Jun  9 04:02 hc_orcl11g.dat
-rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora
-rw-r----- 1 oracle oinstall 1805 Jun  9 04:16 initORCL.ora
-rw-r----- 1 oracle oinstall   24 Jun  9 04:01 lkORCL11G
-rw-r----- 1 oracle oinstall 1536 Jun  9 04:02 orapworcl11g
-rw-r----- 1 oracle oinstall 2560 Jun  9 04:02 spfileorcl11g.ora

MEMORY_TARGET not supported on this system
再次执行 startup 报错:EMORY_TARGET not supported on this system
使用root用户执行如下命令:

mount -t tmpfs shmfs -o size=7g /dev/shm

再次执行 startup 可以正常启动

SQL> startup
ORACLE instance started.

cannot mount database in EXCLUSIVE mode

执行sql 报错:cannot mount database in EXCLUSIVE mode

先关闭数据库

ORA-01102: cannot mount database in EXCLUSIVE mode
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

执行如下命令 fuser -u lk +数据库名(每个人可能不一样)

[root@oracle100 dbs]# fuser -u lkORCL11G
/db/app/oracle/product/11/dbs/lkORCL11G: 13517(oracle) 13521(oracle) 13523(oracle) 13527(oracle) 13529(oracle) 13531(oracle) 13533(oracle) 13535(oracle) 13537(oracle) 13539(oracle) 13541(oracle) 13572(oracle) 13589(oracle) 13603(oracle) 13605(oracle) 13640(oracle)
[root@oracle100 dbs]# fuser -k lkORCL11G
/db/app/oracle/product/11/dbs/lkORCL11G: 13517 13521 13523 13527 13529 13531 13533 13535 13537 13539 13541 13572 13589 13603 13605 13640
[root@oracle100 dbs]# 

如果 提示 fuser 命令不存在则需要通过yum 进行安装

[root@oracle100 dbs]# yum install -y psmisc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.bfsu.edu.cn
 * epel: mirror.earthlink.iq
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn

处理完成后再次启动数据库 执行查询sql 可以查询数据了

SQL> startup 
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size                  2212736 bytes
Variable Size             704646272 bytes
Database Buffers          452984832 bytes
Redo Buffers                9306112 bytes
Database mounted.
Database opened.

SQL> select * from dual;

DU
--
X

创建用户远程连接

创建用户并赋权登录建表

SQL> create user zxm identified by zxm;
SQL> grant create session,create table,dba to zxm;
Grant succeeded.
SQL> connect zxm/zxm
Connected.
SQL> create table test (name varchar(10));
Table created
SQL> insert into test values('zhangsan');
1 row created.
SQL> select * from test
  2  ;
NAME
--------------------
zhangsan

使用dbever 连接工具,这种工具比plsql配置简单很多,方便易用。建立oracle连接,如下:
使用dbever时需要配置驱动,把oraclejava驱动jar上传。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】软件安装(三分钟教会你如何在linux下安装软件)

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️小林爱敲代码       🛰️博客专栏:✈️Linux之路       🛰️社区:✈️进步学堂 目录&…

MySQL中对于单表和多表的操作

一、单表查询素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等显示所有职工的基本信息。mysql8.0 [chap03]>select * from worker;查询所有职工所属部门的部门号,不显示重复的部门号。mysql8.0 [cha…

C++100-C++拓展001-异常平方根计时功能

文章目录C100-C拓展-异常平方根计时功能摘要C异常实现C异常简介C异常捕获捕获异常捕获指定异常 std::out_of_range e捕获throw的异常抛出int异常并捕获除数为0的异常捕获C实现求平方和平方根利用math.h的pow求平方和平方根利用math.h求开根号自定义pow函数实现求平方完成循环计…

NSSCTF Round#8 web专项赛

文章目录MyPage方法一: pearcmd.php方法二:多级连接绕过方法三: PHP Base64 Filter 宽松解析MyDoorUpload_gogoggoez_nodeMyPage Where is my page? 拿到题目就是这个样子 感觉就是文件包含 可以读取,可以用filter协议…

AXI-Stream 学习笔记

参考 https://wuzhikai.blog.csdn.net/article/details/121326701 https://zhuanlan.zhihu.com/p/152283168 AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主要有AXI4_LITE、AXI4_FULL、AXI4_STREAM三种。 AXI4_LITE&#xff1…

Vue3.0文档整理:一、简介

1.1:什么是vue? Vue是一款用于构建用户界面的javascript框架;它基于标准HTML、CSS和Javascript构建,并提供了一套声明式、组件化的编程模型,帮助你高效的开发用户界面。 1.2:MVVM工作原理 MVVM指的是model、view和vie…

TCP协议原理一

文章目录一、TCP协议二、TCP工作机制1.确认应答2.超时重传3.连接管理三次握手四次挥手一、TCP协议 我们的TCP协议相比于UDP协议复杂不少,今天我们就来一起学习一下TCP协议报文和原理 首先我们报头第一行里的端口号和UDP的端口号是一致的,都是用两个字节…

进大厂必备的Java面试八股文大全(2023最新精简易懂版,八股文中的八股文)

为什么同样是跳槽,有些人薪资能翻三倍?” 最近一个粉丝发出了灵魂拷问,类似的问题我收到过很多次,身边也确实有认识的同事、朋友们有非常成功的跳槽经历和收益,先说一个典型例子: 学弟小 A 工作一年半&am…

智云通CRM:买对了吗——大客户采购的方案实施

一旦采购合同签署后,供应商就要履行合同,按时交付产品进场使用,或实施服务方案。不过,无论对供应商还是客户来说,双方的合作并没有就此结束。 在这个阶段,客户会评估此次合作的供应商做事是否靠谱&#x…

Spring面试重点(四)——Spring事务

Spring事务 事务的方式 spring中使用事务有两种方式,一种是编程式事务,一种是声明式事务。编程式事务推荐使用TransactionTemplate,实现TransactionCallback接口,需要编码实现;声明式事务只需要在函数增加注解Transa…

【项目设计】—— 基于Boost库的搜索引擎

目录 前言 一、项目的相关背景 1. 什么是Boost库 2. 什么是搜索引擎 3. 为什么要做Boost搜索引擎 二、搜索引擎的宏观原理 三、搜索引擎技术栈和项目环境 四、正排索引 VS 倒排索引 —— 搜索引擎的具体原理 1. 正排索引(forword index) 2. 倒…

Linux tcpdump

tcpdump - 转储网络上的数据流 是不是感觉很懵?全方位描述tcpdump: 通俗:tcpdump是一个抓包工具,用于抓取网络中传输的数据包形象:tcpdump如同国家海关,凡是入境和出境的货物,海关都要抽样检查&#xff0…

新瑞鹏“狂飙”,宠物医疗是门好生意吗?

宠物看病比人还贵,正在让不少年轻一族陷入尴尬境地。在知乎上,有个高赞提问叫“你愿意花光积蓄,给宠物治病吗”,这个在老一辈人看来不可思议的魔幻选择,真实地发生在当下的年轻人身上。提问底下,有人表示自…

虹科分享 | 流浪地球背后:运载火箭行业的高性能计算!

当长征系列运载火箭直冲云霄时,你想到的是什么? 是嫦娥奔月,是技术革新,是一望无际的星空,是伟大的航天员 还是流浪地球中用火箭推进太空天梯的科幻场景 我 想到的是运载火箭行业背后的高性能计算 …… 是无数次的计算…

从写下第1个脚本到年薪30W,我的自动化测试心路历程

我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。 你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。 …

vue3.0 响应式数据

目录1.什么是响应式2. 选项式 API 的响应式数据3.组合式 API 的响应式数据3.1 reactive() 函数3.2 toref() 函数3.3 toRefs() 函数3.4ref() 函数总结1.什么是响应式 这个术语在今天的各种编程讨论中经常出现,但人们说它的时候究竟是想表达什么意思呢?本质…

spark03-读取文件数据分区数量个数原理

代码val conf: SparkConf new SparkConf().setMaster("local").setAppName("wordcount")val sc: SparkContext new SparkContext(conf)val rdd: RDD[String] sc.textFile("datas/1.txt",2)rdd.saveAsTextFile("output")数据格式 &a…

Docker 部署微服务项目

目录 一、前言 二、环境准备 1、安装 Docker 2、Docker 安装 MySQL 3、Docker 安装 Redis 4、Docker 安装 Nacos 5、Docker 安装 Nginx 三、部署后端服务 四、部署前端服务 感谢观看!! 一、前言 以谷粒学苑为例,使用 Docker 部署后…

【SpringBoot3.0源码】启动流程源码解析 • 上

文章目录初始化SpringBoot启动类: SpringBootApplication public class AppRun {public static void main(String[] args) {SpringApplication.run(AppRun.class, args);} }步入SpringApplication.run(AppRun.class, args)方法: 这里分为两步&#xff1…

【暴力量化】查找最优均线

搜索逻辑 代码主要以支撑概率和压力概率来判断均线的优劣 判断为压力: 当日线与测试均线发生金叉或即将发生金叉后继续下行 判断为支撑: 当日线与测试均线发生死叉或即将发生死叉后继续上行 判断结果的天数: 小于6日均线,用金叉或…