Linux Shell 半自动方式部署单机Oracle 21C

news2025/4/15 22:56:35

oracle前言

Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。此外,Oracle公司还开发其他应用程序和软件。同时,Oracle在英语里还是“神谕”的意思,意为“替神说话的”,寓指Oracle公司的发展目标和决心地位。

以下环境适用于Redhat 8 系列及复刻Redhat 8系列系统

download Oracle

oracle 21c 需要oralce 账号哦oracle 百度云下载地址文档
downloaddownload参考

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

oracle 依赖安装,内核配置,防火墙配置,用户,用户组,权限分配

  • root模式下执行,预计耗时5分钟

  • Linux系统创建的oracle用户名密码oracle/oracle@123

  • /u01/app/oracle 数据库安装目录

  • /etc/sysctl.d/50-oracle.conf 内核配置

  • /etc/security/limits.d/50-oracle.conf 添加以下行来在文件中设置用户oracle的shell限制

vi /oracle_basics_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/26
# root Lower execution

ORACLE_USER_CHECK=`compgen -u oracle`

install_oracle_basics (){

if [ -d $ORACLE_USER_CHECK ];then

	if [ $? -eq 0 ];then
	
echo "Install the Oracle dependent environment"
yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y binutils gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libgcc.i686 libstdc++ libstdc++-devel libXi libXtst libnsl make sysstat
yum install -y libmpc bc  libgomp compat-openssl10 elfutils-libelf 
yum install -y cpp isl libXrender libX11 libXau libnsl libxcb libibverbs policycoreutils policycoreutils-python-utils smartmontools

echo "Firewall port development"
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --add-port=1521/tcp --add-port=5500/tcp --permanent && firewall-cmd --reload

echo "Edit Kernel parameters"
cat > /etc/sysctl.d/50-oracle.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
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 = 1048576
EOF
sysctl --system

echo "Create an oracle user or user group"
i=54321; for group in oinstall dba oper backupdba dgdba kmdba asmdba asmoper asmadmin racdba; do
groupadd -g $i $group; i=$(expr $i + 1)
done

echo "Create an oracle user or user group"
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -d /usr/oracle oracle

echo "Add oracle users to users and user groups"
echo "oracle@123" | passwd --stdin oracle

echo "create oracle directory"
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app
chmod -R 755 /u01

echo "Add following lines to set shell limits for user oracle in file"
cat >>/etc/security/limits.d/50-oracle.conf<<EOF
# create new
oracle   soft   nofile   1024
oracle   hard   nofile   65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock  134217728
oracle   soft   memlock  134217728
oracle   soft   data     unlimited
oracle   hard   data     unlimited
EOF

		echo -e "\033[32mThe oralce Initialization Install Success...\033[0m" 
        else
            echo -e "\033[31mThe oracle Initialization Install Failed...\033[0m" 
            exit 1
        fi
    else
        echo -e "\033[33mThe oracle Initialization already...\033[0m"
    fi
}

main (){
    install_oracle_basics
}
 
main

执行依赖安装,内核配置,防火墙配置

sh /oracle_basics_install.sh

安装oracle 数据库

  • oracle 用户模式下执行,预计耗时10分钟
  • root下切换oracle用户不需要输入密码,因为root是老大
  •  ~/.bash_profile 环境变量信息,目录,数据库登录密码
  • oracle 数据库登录密码 Ciasm123
  • oracle_SID: orcl
  • /usr/oracle/database #oracle解压安装目录
  • /u01/app/oraInventory 指定存放库存文件的位置
  • /usr/oracle/database/runInstaller --help 获取安装参数的支持,版本不同参数不同
  • oracle_database 下载地址,以下是我自己内网的下载,官网下载需要oralce 账号,文档前有官方和百度云地址更改此处即可http://192.168.11.252:9999/ISO/oracle/LINUX.X64_213000_db_home.zip
  • HFSHTTP 文件服务器,拉取发布软件到程序即可 dowload
su - oracle
echo "oracle environment variable"
echo 'umask 022' >> ~/.bash_profile
echo 'export ORACLE_HOME=/usr/oracle/database' >> ~/.bash_profile
echo 'export ORACLE_BASE=/u01/app/oracle' >> ~/.bash_profile
echo 'export PATH=$PATH:$ORACLE_HOME/bin' >> ~/.bash_profile
echo 'export CV_ASSUME_DISTID=RHEL8.0'  >> ~/.bash_profile
echo 'export ORA_INVENTORY=/u01/app/oraInventory'  >> ~/.bash_profile
echo 'export ORACLE_SID=orcl'  >> ~/.bash_profile
echo 'export ORACEL_DATABASE_PASSWORD=Ciasm123'  >> ~/.bash_profile
echo 'export DISPLAY=":0.0"' >> ~/.bash_profile
source ~/.bash_profile

echo "download oracle"
mkdir -p $ORACLE_HOME
wget -N -P $ORACLE_HOME http://192.168.11.252:9999/ISO/oracle/LINUX.X64_213000_db_home.zip
chmod 777 $ORACLE_HOME/LINUX.X64_213000_db_home.zip
unzip -q $ORACLE_HOME/LINUX.X64_213000_db_home.zip -d $ORACLE_HOME

echo "Install Oracle Database"
cd $ORACLE_HOME
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile $ORACLE_HOME/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=$ORA_INVENTORY \
ORACLE_HOME=$ORACLE_HOME \
ORACLE_BASE=$ORACLE_BASE \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=oper \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
exit

得到了关于交换内存的警告,但它是可忽略的错误,您被要求以root用户运行两个脚本。一旦完成,就会安装二进制文件

  • root模式下执行,预计耗时10秒
sh /u01/app/oraInventory/orainstRoot.sh
sh /usr/oracle/database/root.sh

dbca 创建oracle库名称orcl,创建监听

  • oracle 用户模式下执行,预计耗时10分钟
  • root下切换oracle用户不需要输入密码,因为root是老大
  • 监听端口 1521
  • 监听文件位置/usr/oracle/database/netca.rsp
  • orcl 数据库名称
  • characterSet 字符集 AL32UTF8 ,以下支持的字符集,可以根据实际需求更改
#-------------------------------------------------------- 
#  AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,
#  EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,
#  BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,
#  AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,
#  IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
#  KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,
#  ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258
#--------------------------------------------------------
  • 启用em https管理数据库https://YOU_IP:5500/em {用户名密码sys/Ciasm123}
su - oracle
echo "creation netca.rsp"
cat >>$ORACLE_HOME/netca.rsp<<EOF
[GENERAL]
RESPONSEFILE_VERSION="21.0.0"
CREATE_TYPE="CUSTOM"

[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
EOF

#lsnrctl start

echo "start netca.rsp"
netca -silent -responsefile $ORACLE_HOME/netca.rsp

echo "Login with Oracle user and Create Database with [dbca] command."
dbca -silent -createDatabase \
-databaseConfigType SINGLE \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID}.$(hostname -d) \
-sid ${ORACLE_SID} \
-listeners LISTENER \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword ${ORACEL_DATABASE_PASSWORD} \
-systemPassword ${ORACEL_DATABASE_PASSWORD} \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName orclpdb \
-pdbAdminPassword ${ORACEL_DATABASE_PASSWORD} \
-databaseType MULTIPURPOSE \
-memoryPercentage 30 \
-storageType FS \
-datafileDestination "${ORACLE_BASE}/oradata/${ORACLE_SID}" \
-emConfiguration DBEXPRESS \
-emExpressPort 5500 
exit

创建oracle 系统启动服务脚本

  • root模式下,预计耗时10秒
  • 重启验证是否开机自启动oracle,开机稍微等待3分钟左右oralce 监听,库,em都会启动
  • netstat -lntp 查看端口是否全部启动,1521,5500
echo "Set this parameter in root mode"
sed -i "s#orcl:/usr/oracle/database:N#orcl:/usr/oracle/database:Y#" /etc/oratab

echo "oracle Boot script"
cat >>/usr/lib/systemd/system/orcl@oracledb.service<<EOF
# this is an example, modify for free
[Unit]
Description=Oracle Database service
After=network.target

[Service]
User=oracle
Type=forking
Environment=ORACLE_BASE=/u01/app/oracle
Environment=ORACLE_HOME=/usr/oracle/database
Environment=ORACLE_SID=orcl
ExecStart=/usr/oracle/database/bin/dbstart /usr/oracle/database
ExecStop=/usr/oracle/database/bin/dbshut /usr/oracle/database
Restart=always

[Install]
WantedBy=multi-user.target
EOF

echo "The startup setting is set after startup"
systemctl daemon-reload && systemctl enable orcl@oracledb

em 管理系统打开

  • https://(servers hostname or IP address):5500/em
  • sys/Ciasm123 em登录管理用户名密码

这是Enterprise Manager管理控制台

重启验证是否开机自启动oracle 数据库,监听,em

reboot 

netstat -lntp

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

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

相关文章

洗地机如何选购?洗地机十大名牌排行榜

洗地机是今年地面清洁领域热门的品类&#xff0c;如果你每天都要打扫家庭卫生的话&#xff0c;家里还有小孩子和有养宠物的话&#xff0c;如果你经常做饭&#xff0c;需要经常清洁厨房地面的话&#xff0c;那么你一定一定要配备一台洗地机在家里&#xff0c;它的高清洁力和便捷…

创新微MinewSemi厘米级定位精度的GNSS 模块—MS32SN4

近日&#xff0c;中国无线连接解决方案提供商MinewSemi推出了其GNSS模块系列-MS32SN4。MinewSemi表示&#xff0c;这些嵌入式模块为产品提供了一种易于使用、具有成本效益的解决方案&#xff0c;支持物联网&#xff08;IoT&#xff09;应用。 集成天线模块适用于消费者解决方案…

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑(官方手册有误)

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑&#xff08;官方手册有误&#xff09; 毫米波雷达有两种烧录方式&#xff1a; 搭配ICBOOST烧录雷达板自己烧录 搭配ICBOOST烧录时 需要配置为 MMWAVEICBOOST 模式 SOP都是下拉 而后通过 MMWAVEICBOOST 上的SO…

数据库基础——9.聚合函数

这篇文章来讲一下数据库中的聚合函数 目录 1. 聚合函数介绍 1.1 AVG和SUM函数 1.2 MIN和MAX函数 1.3 COUNT函数 2. GROUP BY 2.1 基本使用 2.2 使用多个列分组 2.3 GROUP BY中使用WITH ROLLUP 3. HAVING 3.1 基本使用 3.2 WHERE和HAVING的对比 4. SELECT的执…

Bugku CTF 矛盾 网站被黑

矛盾 打开链接&#xff0c;代码审计 使用get方式给num传参&#xff1b; 如果传入的不是数字&#xff0c;则会原样输出&#xff0c;比如我们传入abc 晃眼一看传入num等于1就可以输出flag&#xff0c;发现并不行 如果输入 注意&#xff0c;这里是两个等号 在php中&#xff0…

低代码会导致程序员失业吗?

低代码并不会导致程序员失业。低代码有价值&#xff0c;但请不要妖魔化。 虽然低代码开发&#xff0c;直到现在都没有清晰明确的定义&#xff0c;但低代码平台也不是先有定义再发展起来的事物。 低代码可以解决两个困扰已久的问题&#xff1a; 1、做开发&#xff0c;一定需要…

Cache性能,多核,一致性

cache performance影响因素&#xff1a; 1.cache size 2.block size 3.组相连度&#xff0c;4.替换策略 目标 1.减少miss rate(可以用一个指针指向不常用的数据结构) 2.减少miss penalty 3.减少hit cost 多核系统下的cache设计 分布or集中 集中 优点 缺点 资源竞争,不平等…

LabVIEWCompactRIO 开发指南第六章40 模块分类

模块分类 本节介绍不同类型的C系列I/O模块。需要了解这些模块是如何设计以正确实现计时和同步的。模块分类的基本类型如图6.6所示。 图6.6.C系列模块分类组织树 直接FPGA通信 在CompactRIO机箱中与FPGA直接通信的模块&#xff0c;将来自模块前部I/O连接器的信号通过模块背面…

机器学习常识 7: 决策树

摘要: 决策树是一种与人类思维一致, 可解释的模型. 1. 决策树的结构 人类的很多知识以决策规则的形式存储: 如果今天是阴天 (outlook overcast), 就去打球.如果今天出太阳 (outlook sunny) 而且湿度不高于 70% (humidity ≤ \le ≤ 70), 就去打球.如果今天出太阳 (outloo…

TDengine 基于Linux系统RPM安装

一、前文 TDengine 入门教程——导读 二、下载安装 再rpm安装&#xff0c;sudo rpm -ivh TDengine-server-<version>-Linux-x64.rpm安装的时候&#xff0c;会跳出两个提示 Enter FQDN:port&#xff0c;第一次安装&#xff0c;这个地方一定要直接回车跳过&#xff01;Ente…

基于javaweb jsp+SSM 校园点餐系统的视频演示

目录 一.项目介绍 二.环境需要 三.技术栈 四.使用说明 五. 运行截图 一.项目介绍 总菜单管理 用户前台 个人中心、美食大厅、购物车、福利中心 配送员面板 待配送订单、配送记录 商家管理 菜品管理&#xff08;类别、规格组、spu、sku&#xff09;、配送员管理、优惠券…

重学fetch

概述 Fetch是一种网络通信协议&#xff0c;用于在客户端和服务器之间传输数据。该协议使用HTTP请求和响应进行通信&#xff0c;与传统的AJAX方式相比&#xff0c;Fetch更加简单易用&#xff0c;并提供了许多现代化的功能。 使用Fetch可以方便地向服务器发送请求&#xff0c;并…

深入浅出Vite:如何开发一个Vite插件

说到自定义的能力&#xff0c;大家肯定很容易想到插件机制&#xff0c;利用一个插件来扩展构建工具自身的能力。在学习了 Vite 的插件机制后&#xff0c;我们接下来利用已掌握的Vite插件开发的基本知识来实战Vite插件的开发工作。 一、插件示例 Vite 插件与 Rollup 插件结构类…

利用pycocotools库计算MAP:生成coco格式 json文件数据集和计算map值

文章目录 1.划分val数据集2. xml to json3. coco格式json文件4. 生成coco格式json文件5.使用pycocotools计算map6. 讨论 在目标检测任务中&#xff0c;需要通过Map指标判断模型的精度。为了测试engine文件推理结果的精度&#xff0c;本文介绍了如何使用pycocotools库计算Map&am…

4年测试,裸辞后已失业3个月.....

我做测试4年&#xff0c;一线城市薪水拿到15K&#xff0c;中间还修了一个专升本&#xff0c;这个年限不说资深肯定也是配得上经验丰富的。今年行情不好人尽皆知&#xff0c;但我还是对我的薪水不是很满意&#xff0c;于是打算出去面试&#xff0c;希望可以搏一个高薪。 但真到面…

vscode使用git

文章目录 前言一、配置ssh-key二、GitHub上创建一个空的仓库三、链接GitHub&#xff0c;并提交本地文件 前言 从今天开始学习前端知识&#xff0c;学会先使用工具很重要&#xff0c;今天尝试了下用vscode链接GitHub&#xff0c;实现代码管理。 前提&#xff1a; 1、需要先下载…

科技云报道:2023年安全运营之风将吹向何方?

科技云报道原创。 在实战演练成为常态化的背景下&#xff0c;建立实战化安全运营能力是一个绕不开的话题。作为网络安全发展的时代产物&#xff0c;安全运营被认为是解决现有挑战的有利方法。 但随着有安全形势、政策导向、发展需求的变化&#xff0c;安全运营的理念也在不断演…

深度解析如何通过财务共享建设助推企业数智化转型

国务院国资委印发了《关于中央企业加快建设世界一流财务管理体系的指导意见》&#xff08;以下简称《意见》&#xff09;&#xff0c;文中明确指出了数智化转型的路径&#xff0c;即“积极探索依托财务共享实现财务数智化转型的有效路径&#xff0c;推进共享模式、流程和技术创…

Arnold图像置乱的MATLAB实现

这件事情的起因是这样的&#xff0c;我需要研究一下各种图像置乱的算法。然后在知乎上找到了一篇关于Arnold变化的文章&#xff0c;但是呢&#xff0c;这个人实际上是卖资料&#xff0c;代做大作业的。详细的代码根部不给你&#xff0c;则给我气坏了&#xff0c;必须要手动实现…

Java泛型 <T> T、 T、<T>的用法

我们聊聊Java泛型中的 T 是什么&#xff1f; T 在Java泛型中&#xff0c;被称作类型变量。那么什么又是类型变量&#xff1f; 类型变量在整个类的定义中用于指定方法的返回类型&#xff0c;同时也可以指定字段和局部变量的类型&#xff0c;我们可以用具体的类型来替换类型变量…