​​​​Linux Shell 实现一键部署Oracle21 zip包方式

news2024/12/22 14:09:06

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模式下执行安装,预计耗时50分钟
  • Linux系统创建的oracle用户名密码oracle/oracle@123
  • oracle 数据库登录密码 Ciasm123
  • /u01/app/oracle 数据库安装目录
  • /etc/sysctl.d/50-oracle.conf 内核配置
  • /etc/security/limits.d/50-oracle.conf 添加以下行来在文件中设置用户oracle的shell限制
  •  ~/.bash_profile 环境变量信息,目录
  • oracle_SID: orcl #数据库名称
  • /usr/oracle/database #oracle解压安装目录
  • /u01/app/oraInventory 指定存放库存文件的位置
  • /usr/oracle/database/runInstaller --help 获取安装参数的支持,版本不同参数不同
  • root下切换oracle用户不需要输入密码,因为root是老大
  • 监听端口 1521,监听文件位置/usr/oracle/database/netca.rsp
  • characterSet 字符集 AL32UTF8 ,以下支持的字符集,可以根据实际需求更改
  • 重启验证是否开机自启动oracle,开机稍微等待3分钟左右oralce 监听,库,em都会启动
  • netstat -lntp 查看端口是否全部启动,1521,5500
  • em https管理数据库https://YOU_IP:5500/em {用户名密码sys/Ciasm123}
  • oracle_database 下载地址,以下是我自己内网的下载,官网下载需要oralce 账号,文档前有官方和百度云地址更改此处即可http://192.168.11.252:9999/ISO/oracle/LINUX.X64_213000_db_home.zip
  • HFSHTTP 文件服务器,拉取发布软件到程序即可 dowload
vim /oracle21c_install.zip.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/05/29
# The oracle database is installed in zip mode

ORACLE_ORACLEHOME_CHECK=/u01/app/oracle/homes/OraDB21Home1

install_oracle (){

if [ ! -d $ORACLE_ORACLEHOME_CHECK ];then

	if [ $? -eq 0 ];then
	
oracle_user=oracle
oracle_user_password=oracle@123

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

useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -d /usr/oracle $oracle_user

echo "Add oracle users to users and user groups"
echo "$oracle_user_password" | passwd --stdin $oracle_user

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 "oracle environment variable"
su - oracle << EOF
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=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/oracle/database/bin' >> ~/.bash_profile
echo 'export CV_ASSUME_DISTID=RHEL8.0'  >> ~/.bash_profile
echo 'export ORA_INVENTORY=/u01/app/oraInventory'  >> ~/.bash_profile
echo 'export DISPLAY=":0.0"' >> ~/.bash_profile
source ~/.bash_profile

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

echo "Install Oracle Database"
cd /usr/oracle/database
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile /usr/oracle/database/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_HOME=/usr/oracle/database \
ORACLE_BASE=/u01/app/oracle \
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
EOF

echo "I got warnings about swap memory but it’s ignorebale error,you are asked to run two scripts as user root. Once it’s done binaries are installed"
sh /u01/app/oraInventory/orainstRoot.sh
sh /usr/oracle/database/root.sh

echo "creation netca.rsp"
su - oracle sh -c cat >>/usr/oracle/database/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"
su - oracle <<EOF 
netca -silent -responsefile /usr/oracle/database/netca.rsp

echo "Login with Oracle user and Create Database with [dbca] command."
dbca -silent -createDatabase \
-databaseConfigType SINGLE \
-templateName General_Purpose.dbc \
-gdbname orcl.host \
-sid orcl \
-listeners LISTENER \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword Ciasm123 \
-systemPassword Ciasm123 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName orclpdb \
-pdbAdminPassword Ciasm123 \
-databaseType MULTIPURPOSE \
-memoryPercentage 30 \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/orcl" \
-emConfiguration DBEXPRESS \
-emExpressPort 5500 
EOF

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

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

main (){
    install_oracle
}
 
main

 执行Oracle21c 一键安装,预计50分钟

  • sh /oracle21c_install.zip.sh 2>&1 | tee /var/log/oracle_install.log #日志输出参考
sh /oracle21c_install.zip.sh

 em 管理系统打开

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

这是Enterprise Manager管理控制台

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

reboot 

netstat -lntp

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

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

相关文章

ABeam News|ABeam荣获「SAP BTP 卓越业务分析奖」

近日&#xff0c;「云铸数卯&#xff0c;榫合万象」SAP BTP 客户与生态峰会在桂林圆满落幕。此次年度峰会以全面的视角展现 RISE with SAPSAP BTP如何构建“新型中国企业”数字底座。 ABeam Consulting作为SAP金牌合作伙伴受邀出席&#xff0c;大中华区董事长兼总经理中野洋辅…

Ubuntu Go语言环境配置【GPT-4版】

目录 go语言的培训网课安装goGPT-4给出的过程在VSCode里怎样正确配置好Go的调试相关设置&#xff1f;如果我在Visual Studio Code中安装Go语言的相关工具总是失败怎么办&#xff1f;我已重启Visual Studio Code&#xff0c;接下来应该怎样检查日志&#xff1f;如果我还是不能成…

Vue2中给对象添加新属性界面不刷新

Vue2中给对象添加新属性界面不刷新? Vue2.x的响应式 实现原理 对象类型&#xff1a;通过Object.defineProperty()对属性的读取、修改进行拦截&#xff08;数据劫持&#xff09;。数组类型&#xff1a;通过重写更新数组的一系列方法来实现拦截。&#xff08;对数组的变更方法…

敏捷世界还需要有QA吗?

敏捷开发模型现在已经被越来越多的公司熟知并使用&#xff0c;很多公司会选择敏捷开发模式的转型&#xff0c;其主要目的就是为了不断适应变化以及客户快速交付的诉求。为什么敏捷开发能够被诸多大众接受&#xff1f;可以从两个维度来看&#xff1a; 首先&#xff0c;从开发人员…

条码系统(PC/PDA)对接NC接口功能

条码系统功能清单功能模块功能菜单明细菜单支持终端功能描述业务流程框架pc端框架搭建 PC端整体框架工具搭建,提供字典配置,PDA端的参数配置,NC数据源,NC接口调用工具等 PDA端框架搭建 PDA端安卓端框架基础功能APP创建,数据源,功能菜单等 服务器环境部署 PC端/PDA端pc端/P…

使用YOLOV8实现滑块缺口验证码识别,并使用Fastdeploy快速部署,精度高达99%!!

前言:首先大家对滑块缺口验证码的识别应该有很多经验了,大部分人可能阅读过我的文章或者其他人的文章,能从各方了解到,滑块缺口的各种实现方式,例如模板匹配、边缘检测、提取透明通道、yolov5,paddledection等,此篇文章将会讲解yolov8的使用和训练,yolov8相对于yolov5有…

真心牛x,阿里出品2023最新版Spring全家桶进阶笔记流出,堪称Java程序员跳槽神器

最近小伙伴在我后台留言是这样的&#xff1a; ​现在就这光景&#xff0c;不比以前&#xff0c;会个CRUD就有人要&#xff0c;即使大部分公司依然只需要做CRUD的事情......现在去面试&#xff0c;只会CRUD还要被吐槽&#xff1a; ​面试造火箭&#xff0c;工作拧螺丝&#xff0…

六级备考23天|CET-6|翻译技巧5|2019年12月真题|翻译荷花lotus|11:05-12:05

目录 一、中文 句子1 PRACTICE ANSWER 句子2 PRACTICE ANSWER 句子3 ​ PRACTICE ANSWER 句子4 PRACTICE ANSWER 句子5 PRACTICE ANSWER 句子6 PRACTICE ANSWER ​ 答案整合​ 一、中文 句子1 荷花是中国的名花之一&#xff0c;深受人们喜爱。 PRACTICE Lotus is one…

CMakeLists.txt 文件详解

目录 CMakeLists.txt 常见内容和结构: 文件中的命令和配置&#xff1a; 官方文档&#xff1a; CMakeLists.txt CMakeLists.txt 文件是用于描述 CMake 构建过程和项目配置的文件。它包含了一系列 CMake 命令、变量设置和流程控制结构&#xff0c;用于告诉 CMake 如何生成适合…

pycharm中关于debug模式中按钮的介绍

文章目录 前言一、pycharm中debug的按钮介绍&#xff08;横排按钮&#xff09;二、pycharm中debug的按钮介绍&#xff08;竖排按钮&#xff09;总结 前言 遇到了debug模式下的调试按钮问题。 一、pycharm中debug的按钮介绍&#xff08;横排按钮&#xff09; 步过&#xff1a;s…

七人拼团系统开发模式,助力企业三个月新增超十万会员!

现在市场上最不缺的就是好产品&#xff0c;产品在市场上目前已经趋于饱和。要想让自己的产品或企业快速打入市场&#xff0c;最好的办法是结合好的营销模式&#xff0c;让企业快速起步裂变提升销量。现在就有这么一款模式&#xff0c;助力企业在三个月内就新发展了超十万会员&a…

MySql高可用方案

MySql高可用方案 1、主从、主主(互为主从)keepalived 2、MHA MHA&#xff08;Master High Avaliable&#xff09; 是一款 MySQL 开源高可用程序&#xff0c;MHA 在监测到主实例无响应后&#xff0c;可以自动将同步最靠前的 Slave 提升为 Master&#xff0c;然后将其他所有的 S…

【JavaSE】Java基础语法(三十三):File 一文详解

文章目录 1. File类概述和构造方法2. 绝对路径和相对路径3. File类创建功能【应用】4. File类删除功能【应用】5. File类判断和获取功能【应用】6. 6File类练习一【应用】7. File类练习二【应用】 1. File类概述和构造方法 File类介绍 它是文件和目录路径名的抽象表示文件和目录…

阿里面试测试工程师,水太深,我把握不住了......

前言 去阿里面试测试工程师&#xff0c;这里面水太深&#xff0c;什么未来规划&#xff0c;职业发展的东西都是虚拟的&#xff0c;作者还太年轻&#xff0c;没有那个经历&#xff0c;把握不住。项目只有几个&#xff0c;开心快乐就行&#xff0c;不PK&#xff0c;文明PK。 很多…

组合总和 II

1题目 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates [10,1…

搭建LightPicture开源免费图床系统「公网远程控制」

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 转载自cpolar极点云的文章&#xff1a;【搭建私人图床】使用LightPicture开源…

Parasoft亮相上海国际嵌入式展

全球自动化软件测试解决方案的领导者Parasoft宣布参加6月14日至16日在上海举行的首届embedded world China上海国际嵌入式展&#xff0c;此次Parasoft联合检测认证领域的领导者-莱茵技术&#xff08;上海&#xff09;有限公司共同参展&#xff0c;为嵌入式行业提供符合功能安全…

电子表格的武侠江湖里,有VBA加持的Excel,也只能算一把菜刀

Excel&#xff0c;都用过吧&#xff1f; 没用过肯定也听说过。 这可是Windows里颇具传奇色彩的软件&#xff0c;堪称一把九天陨铁淬炼而成的菜刀。 普通人&#xff0c;用它做表格&#xff0c; 进行简单的数据汇总。 职场人&#xff0c;继续用它做表格&#xff0c; 开始求和…

请问下大家PMP证书值得考嘛?

做项目的去考&#xff0c;项目经理、产品经理这些&#xff0c;或者有往项目管理领域发展的去考。其他行业有空可以学习下 不一定要考证了。 PMP证书更多的是 “敲门砖”作用&#xff0c;大部分公司招聘的门槛都要去了这个证书。 当然现在PMP管理模式也很热门&#xff0c;各大…

国产的高精度ADC HX711 CS1237 TM7707等如何选型

最近小伙伴们咨询我&#xff0c;国产很多高精度的ADC&#xff0c;如何选型使用呢&#xff1f;这里我们主要讨论几款24位差分输入。 ADC/DAC相关名词解释 ADC输入范围ADC转换速度ADC稳定位数 在我们选的时候主要考虑上面三个参数 ADC参数对比 型号输入范围输出速率建立时间PG…