Oracle12c 部署脚本

Oracle Linux7.8 下离线 一键静默安装Oracle12c 这里写自定义目录标题安装前的准备最小安装OracleLinux7.8(centos7.8一样)安装oracle需要的依赖包准备Oracle安装包准备一键安装脚本 并执行脚本使用安装前配置问题及解决方法:错误码ORA-28040 之前下载centos8.2 来安装oracle12c 发现怎么都装不成功,最后发现 oracle官方Linux7 系列之支持oracle 最高版本到18c linux8系列 只有oracle 19c支持。故果断下载oracle linux 7.8(跟centos7.8安装类似 ) 阅读详情

脚本实现自动化一键部署,包括创建用户、依赖安装、日志生成等。
脚本分为三个部分,执行脚本就一个,执行之前要配置主机映射、挂盘操作,默认挂盘目录为/u01
脚本适用Oracle Linux 以及 CentOS Linux,改动内容见README.txt
详细源码见百度云:
链接:https://pan.baidu.com/s/1mnxUr2qAmhAtuJ7nZqYc0A 评论领取提取码
附上脚本代码:
1、执行脚本Deploy_Oracle.sh :

#!/bin/sh
set -o errexit
#Set up Linux and oracle
echo "Deploying Oracle..."

if [[ "$1" != "" ]] ; then
        DEFAULT_PWD=$1
        echo "Using user specified default password"
else
        DEFAULT_PWD=passW0RD 
fi

echo "Install prereqs..."
sh prereq.sh
echo "Install prereqs...done."
echo "Install Oracle..."
sh install.sh $DEFAULT_PWD
echo "Install Oracle...done."
echo "Set up Oracle..."
sh setup_db.sh $DEFAULT_PWD
echo "Set up Oracle...done."
echo "Deploying Oracle...done."

2、步骤代码1:prereq.sh

#!/bin/sh
#set -o errexit
#This scripts configures Linux for Oracle 12c
echo "Configure Linux for Oracle 12c..."

#directories, assuming these exist
SCRIPTDIR=$(pwd)
oracle_path=/u01
ORACLE_INSTALL_FILES=${oracle_path}/install_files
rpm_packages=${oracle_path}/rpm_packages
oracle_install=${oracle_path}/oracle12cR2_install
#confgure SELINUX if needed
SELINUX_CFG=/etc/selinux/config
cat $SELINUX_CFG  |grep "SELINUX=enforcing" > /dev/null
if [[ $? -eq 0 ]] ; then
        sed -e 's/SELINUX=enforcing/SELINUX=disabled/g' $SELINUX_CFG  > $SELINUX_CFG.tmp && mv $SELINUX_CFG.tmp $SELINUX_CFG    
        #Set SELINUX to Permissive in this session
        setenforce 0
fi

function create_swap(){
info=`swapon -s`
if [ -z "$info" ]; then
    echo "create swap file to oracle"
# you can change the value of " of =   bs=  count= " 单位g
    dd if=/dev/zero of=/u01/swapfile bs=1024 count=8388608 &> /dev/null
sleep 1
echo "/u01/swapfile create file success......"
/sbin/mkswap /u01/swapfile & > /dev/null
sleep 1
echo "swapfile文件格式化并转换为swap分区......" 
/sbin/swapon /u01/swapfile & > /dev/null
sleep 1
echo "挂载并激活分区......"
chmod -R 0600 /u01/swapfile & > /dev/null
echo "请手动将新的swap分区添加到/etc/fstab里(/var/swapfile swap swap defaults 0 0)......"
free=`free -h | grep wap: | awk -F " " '{print $2}'`
echo "swap大小为$free"

fi
}

#install Oracle prereq RPM
#this one adds oracle-user and configure kernel values and such
#cd /etc/yum.repos.d
#wget --no-check-certificate https://public-yum.oracle.com/public-yum-ol6.repo
#wget --no-check-certificate https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
#yum install -y bind-utils bind-utils  compat-libstdc++-33 glibc-devel ksh libaio-devel libstdc++-devel net-tools nfs-utils psmisc smartmontools sysstat unzip xorg-x11-utils xorg-x11-xauth
cd $rpm_packages
yum install *.rpm -y
cd $oracle_install
rpm -ivh oracle-database-server-12cR2-preinstall-1.0-2.el7.x86_64.rpm
#cd $SCRIPTDIR

if [ ! -e $ORACLE_INSTALL_FILES ];then
  mkdir -p $ORACLE_INSTALL_FILES
fi

cd ${oracle_path}
#unzip database files
#cd $ORACLE_INSTALL_FILES
#unzip linuxamd64_12102_database_1of2.zip
#unzip linuxamd64_12102_database_2of2.zip
unzip -d $ORACLE_INSTALL_FILES linuxx64_12201_database.zip
#cd $SCRIPTDIR
echo "开始创建swap文件"
create_swap
echo "Linux configured." 


步骤代码2 install.sh:

#!/bin/sh
#this script installs Oracle 12c database
#assumes unzipped Oracle 12c installfiles in dir /u01/install_files/database
#and Linux configured as per Oracle installation guide
#see script prereq.sh

echo "Silent Service: installing Oracle..."

if [[ "$1" != "" ]] ; then
        DEFAULT_PWD=$1
        echo "Using user specified default password"
else
        DEFAULT_PWD=passW0RD 
fi
SCRIPTDIR=$(pwd)
ORACLE_INSTALL_FILES=/u01/install_files

HOSTNAME=$(hostname -s)
DOMAINNAME=$(hostname -d)

ORCL_USR=oracle
ORCL_GRP=oinstall
ORCL_USR_GRP=$ORCL_USR:$ORCL_GRP
ORCL_HOME_DIR=/home/$ORCL_USR
ORCL_PORT=1521
ORCL_SID=orcl12c
ORCL_IGNORE_PREREQ=0

#change owner of /u01 directory
chown -R $ORCL_USR_GRP /u01
chmod -R 775 /u01

#set up oracle password
echo $DEFAULT_PWD | passwd --stdin $ORCL_USR > /dev/null

#modify default install response file
RESPONSE_FILE=db.rsp
sed -e "s/%HOSTNAME%/$HOSTNAME/g" $RESPONSE_FILE  > $RESPONSE_FILE.tmp && mv $RESPONSE_FILE.tmp $RESPONSE_FILE

cp $RESPONSE_FILE $ORCL_HOME_DIR/$RESPONSE_FILE
chown $ORCL_USR_GRP $ORCL_HOME_DIR/$RESPONSE_FILE

#install oracle silently using response file
if [[ $ORCL_IGNORE_PREREQ -eq 0 ]] ; then
      su - $ORCL_USR -c "cd $ORACLE_INSTALL_FILES/database;./runInstaller -silent -ignorePrereq -responseFile $ORCL_HOME_DIR/$RESPONSE_FILE" > runinstaller.log
else
      su - $ORCL_USR -c "cd $ORACLE_INSTALL_FILES/database;./runInstaller -silent -responseFile $ORCL_HOME_DIR/$RESPONSE_FILE" > runinstaller.log
fi

#wait until log dir exists
echo "Wait until log dir exists..."
ls -t /u01/app/oraInventory/logs &> /dev/null
while [[ $? -ne 0 ]] ; do
    ls -t /u01/app/oraInventory/logs &> /dev/null
done
LOGDIR=$(ls -t /u01/app/oraInventory/logs)
echo "Wait until log dir exists...done"

#wait until log dir is not empty
echo "Wait until log dir is not empty..."
while [[ -z $LOGDIR ]] ; do
    LOGDIR=$(ls -t /u01/app/oraInventory/logs)
done
echo "Wait until log dir is not empty...done"

LOGFILE=$(echo /u01/app/oraInventory/logs/$(ls -t /u01/app/oraInventory/logs | head -n 1))
echo "Waiting for Oracle installer to finish in background...."
echo "See log file $LOGFILE"
SHUTDOWN_TXT="Shutdown Oracle Database 12c"
grep -q "$SHUTDOWN_TXT" $LOGFILE
while [[ $? -ne 0 ]] ; do
        grep -q "$SHUTDOWN_TXT" $LOGFILE
done

echo "Executing oracle root scripts"
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0/dbhome_1/root.sh
echo "Oracle is now installed"

echo "Set up environment variables for user oracle"

echo "#Oracle settings" >> $ORCL_HOME_DIR/.bash_profile
echo "export ORACLE_BASE=/u01/app/oracle" >> $ORCL_HOME_DIR/.bash_profile
echo "export ORACLE_SID=$ORCL_SID" >> $ORCL_HOME_DIR/.bash_profile
echo "export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1" >> $ORCL_HOME_DIR/.bash_profile
echo "export PATH=\$ORACLE_HOME/bin:\$PATH" >> $ORCL_HOME_DIR/.bash_profile
chown $ORCL_USR_GRP $ORCL_HOME_DIR/.bash_profile

#create database
echo "Creating oracle database"
RESPONSE_FILE=dbca.rsp
#GDBNAME=$HOSTNAME.$DOMAINNAME
GDBNAME=$ORCL_SID
sed -e "s/%GDBNAME%/$GDBNAME/g" $RESPONSE_FILE  > $RESPONSE_FILE.tmp && mv $RESPONSE_FILE.tmp $RESPONSE_FILE
sed -e "s/%PWD%/$DEFAULT_PWD/g" $RESPONSE_FILE  > $RESPONSE_FILE.tmp && mv $RESPONSE_FILE.tmp $RESPONSE_FILE
sed -e "s/%SID%/$ORCL_SID/g" $RESPONSE_FILE  > $RESPONSE_FILE.tmp && mv $RESPONSE_FILE.tmp $RESPONSE_FILE
cp $RESPONSE_FILE $ORCL_HOME_DIR/$RESPONSE_FILE
chown $ORCL_USR_GRP $ORCL_HOME_DIR/$RESPONSE_FILE
su - $ORCL_USR -c "dbca -silent -createDatabase -responseFile $ORCL_HOME_DIR/$RESPONSE_FILE"

#create network listener
echo "Creating network listener"
RESPONSE_FILE=netca.rsp
sed -e "s/%PORT%/$ORCL_PORT/g" $RESPONSE_FILE  > $RESPONSE_FILE.tmp && mv $RESPONSE_FILE.tmp $RESPONSE_FILE
cp $RESPONSE_FILE $ORCL_HOME_DIR/$RESPONSE_FILE
chown $ORCL_USR_GRP $ORCL_HOME_DIR/$RESPONSE_FILE
su - $ORCL_USR -c "export DISPLAY=$HOSTNAME:0.0;netca -silent -responseFile $ORCL_HOME_DIR/$RESPONSE_FILE"

#Open firewall for Oracle
echo "Configuring firewall..."
iptables -I INPUT 1 -p tcp -m tcp --dport $ORCL_PORT -j ACCEPT 
iptables -I INPUT 1 -p tcp -m tcp --sport $ORCL_PORT -j ACCEPT 
iptables -I OUTPUT 1 -p tcp -m tcp --sport $ORCL_PORT -j ACCEPT
iptables -I OUTPUT 1 -p tcp -m tcp --dport $ORCL_PORT -j ACCEPT
#save firewall rules
/sbin/service iptables save 
/sbin/service iptables restart

echo "Silent Service: installing Oracle... done." 

步骤代码3:setup_db.sh

#!/bin/sh

#set up Oracle database
if [[ "$1" != "" ]] ; then
        DEFAULT_PWD=$1
        echo "Using user specified default password"
else
        DEFAULT_PWD=passW0RD 
fi
ORCL_USR=oracle
ORCL_GRP=oinstall
ORCL_USR_GRP=$ORCL_USR:$ORCL_GRP
ORCL_HOME_DIR=/home/$ORCL_USR


#add user to database
echo "Add user '$ORCL_USR' to database..."
ORCL_DB_USR=$ORCL_USR
SQLFILE=$ORCL_HOME_DIR/createuser.txt
echo "CONNECT sys/$DEFAULT_PWD as sysdba;" >> $SQLFILE
echo "CREATE USER $ORCL_DB_USR IDENTIFIED BY $DEFAULT_PWD;" >> $SQLFILE
echo "GRANT CONNECT TO $ORCL_DB_USR;" >> $SQLFILE
echo "GRANT RESOURCE TO $ORCL_DB_USR;" >> $SQLFILE
echo "GRANT CREATE VIEW TO $ORCL_DB_USR;" >> $SQLFILE
echo "DISCONNECT;" >> $SQLFILE
echo "QUIT;" >> $SQLFILE
chown $ORCL_USR_GRP $SQLFILE
su - oracle -c "cat $SQLFILE | sqlplus /nolog" > sql.log
echo "Add user '$ORCL_USR' to database...done."

脚本内容待完善,欢迎大家给予见解,互相进步!

CentOS7通过shell脚本 由于经常需要部署oracle12c环境,我就将部署过程编写成shell脚本来,提高安装部署的效率,自动安装部署的脚本分为两部分,第一部分oracle_software.sh的作用是安装oracle软件环境;第二部分是listener_dbca.sh,作用是安装监听、配置oracle系统启停服务、配置数据库实例,临时表空间,数据表空间及授权。完成这两个脚本之后,最后的操作就是将待导入的dmp备份文件... 阅读详情

相关推荐

Redhat 6,7,8,9,10系(复刻系列) 一键部署Oracle12c zip

Oracle 12c是甲骨文公司推出的一款关系数据库管理系统,它引入了多项创新特性,如多租户架构、大数据处理和云部署,适用于企业级应用。

极致,细节 841

centos7.6通过oracle-database-server-12cR2-preinstall安装oracle12R2官方建议参数

入职新坑使用的都是oracle12C,决定好好的研究下,oracle数据库版本升级太快,现在官网已经到了oracle 19C,现在oracle12c也慢慢的被大家认可,一些新特性也很实用,今天把oracle-database-server-12cR2-preinstall安装oracle12c官方参数分享给大家。详细的安装过程我会发在另一篇文章中。 首先我们要知道oracle-database-server-12cR2-preinstall为我们做了什么 (1)自动安装oracle所需的RPM包 (2

shilukun的博客 4053

openEuler 22.03,24.03 一键部署Oracle12c zip

Oracle 12c是甲骨文公司推出的一款关系数据库管理系统,它引入了多项创新特性,如多租户架构、大数据处理和云部署,适用于企业级应用。

极致,细节 987

Linux下RedHat7.6/7.9安装Oracle12C与11G

Linux下centos7安装oracle12c完整手册

weixin_45522759的博客 5016

PowerShell install 一键部署Oracle12c

Oracle 12c是甲骨文公司推出的一款关系数据库管理系统,它引入了多项创新特性,如多租户架构、大数据处理和云部署,适用于企业级应用。

极致,细节 714

Oracle 19C单机部署脚本指南(兼容12c版本)

本文还有配套的精品资源,点击获取 简介:Oracle 19C是数据库领域的重要更新,对12C版本进行了优化和增强。部署Oracle 19C可以通过脚本自动化,简化安装流程并减少错误。本指南涵盖了从系统要求检查到安全设置,再到最终测试与维护的全过程。提供了详细的步骤说明,包括操作系统准备、用户和组的创建、软件下载与解压、环境变量配置、数据库目录创建、部署脚本运行、安全和测试验...

weixin_42591413的博客 1905

CentOS7通过shell脚本自动部署oracle12c

前言 由于客户环境经常需要部署oracle12c环境,这里我就将部署过程编写成shell脚本来提高安装部署的效率。 自动安装部署的脚本分为两部分: 第一部分oracle_software.sh的作用是安装oracle软件环境; 第二部分是listener_dbca.sh,作用是安装监听、配置oracle系统启停服务、配置数据库实例,临时表空间,数据表空间及授权。 完成这两个脚本之后,最后的操作就是将待导入的dmp备份文件上传到服务器,操作expdp还原即可。 脚本的内容具体如下 1、oracle数据库软件自

u011635437的博客 724

oracle-database-server-12cR2-preinstall

oracle database server 12cR2 preinstall x86_64 rpm

脚本实现Oracle12c单实例自动安装部署

项目地址:https://github.com/domdanrtsey/Oracle12c_autoinstall 项目原因:原来自动安装部署我采用两个脚本分别实现安装oracle软件与单实例部署,文章地址: 但在使用上总是嫌弃其麻烦,现在我修改为单脚本实现软件与单实例安装部署。 脚本内容如下,具体实现过程请查看github上的README.md说明,使用上有什么问题,请反馈问题到我邮箱,谢谢!! 说明:脚本已经配置oracle服务自启动,并配置为系统服务,启动与停止时使用root用户操作 停止 #serv

u011635437的博客 563

Oracle12c一键安装脚本 ./zyzoracleinstall.sh -h查看帮助

[root@localhost zz]# ./zyzoracleinstall.sh -h 参数说明: --help, -h : 帮助 oracle_home =${oracle_base}/product/${oracle_version}/dbhome

oracle12c利用shell脚本一键自动化安装

脚本内容除了oracle数据包需要在网盘下载之外,已经包含所有依赖包,可以用作离线环境一键安装使用,除安装路径酌情修改之外,其他无需修改,oracle安装版本为12.2.0.1,安装之前请看下README.txt文件内容,如果需要oracle19c一键安装脚本可以额外联系我,本部署包已经在生产环境中使用,经得起考验,各位按需下载即可!

oracle12c 脚本建库,【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性...

这是一篇oracle小白由于领导压迫,不堪折磨,苦苦挣扎研究所作。详细安装文档在上篇博客,安装中可能遇到的错误以及亲测可用的解决方式已给出。Oracle12C与11g版本的差异在创建用户时遇到一个问题(我的发现都是根据遇到的问题来研究的):问题描述:在创建服务所需用户时提示ORA-65096:公用用户名或角色无效。问题原因:根据Oracle官方文档得知,12C版本创建公有用户名(CDB用户)必须以...

weixin_39718890的博客 262

oracle-database-server-12cR2-preinstall-1.0-3.el7.x86_64.rpm

oracle-database-server-12cR2-preinstall-1.0-3.el7.x86_64.rpm

终极Docker容器方案:docker-oracle-12c让数据库部署变简单

docker-oracle-12c是一个强大的Docker镜像方案,它将Oracle Database 12c集成到容器中,为开发者和数据库管理员提供了简单、高效的数据库部署体验。无论是开发环境搭建还是测试环境配置,这个方案都能显著降低Oracle数据库的部署难度。 ## 为什么选择docker-oracle-12c? 对于新手来说,传统的Oracle数据库安装过程往往复杂且耗时,涉及多个步骤

gitblog_00655的博客 654

ZBrush 2021来了

这次给大家带来的是:zbrush2021.1.1 win安装教程 1.下载压缩包之后解压到文件夹当中,然后打开ZBrush_2021_Installer.exe进行软件安装, 如下图 2.在这里我们保持默认的简体中文版即可,然后点击确认,如下图 3.第三步我们点击前进即可,如下图 4.第四步我们来到许可协议,在这里我们点击我接受此协议,然后点击前进,如下图 5.第五步我们来到安装目录,在这里我们可以设置安装路径,如下图 6.在这里我将安装目录修改安装到E盘为例,然后点击下一

3D游戏建模 1189

Android7以上抓取https数据包-无需root

手机内装一个虚拟机,然后在虚拟机内运行我需要抓包的应用,该虚拟机内是不需要证书验证的。完美解决android7.0以上https无法抓包的问题。

qq_45764684的博客 1459

构建oracle12c的Docker镜像

1. 准备工作 需要下载oracle相关的东东,例如安装文件,dockerfile。这些都可以从oracle 的github 上面找到。https://github.com/oracle/docker-images/tree/master/OracleDatabase 下载完成以后,新建一个目录,我这里是/oracle12c,把dockerfile(其实是一个shell脚本b...

weixin_30783629的博客 875

机器学习 -- 信用卡评分模型 -- 互联网金融风控

互联网金融主要分为资金类和资产类。资金类主要是理财产品,吸储,主要指标是用户转化、留存和复投,重在客户运营。资产类主要是贷款,包括消费金融和现金贷,小额贷款属于此类,主要目的是用户转化,还款和风险控制,信用卡评分模型就属于风险控制。 信用评分作用是对贷款申请人(信用卡申请人)做风险评估分值的方法。 信用卡评分是以大量数据的统计结果为基础,根据客户提供的资料和历史数据对客户的信用进行评估,评分卡模型...

XiaoMaEr66的博客 2420

oracle 常用安装脚本以及步骤

oracle 常用脚本以及语句 一、oracle 安装10G 单机初始化环境: #!/bin/bash #关闭selinuxsed -i 's\SELINUX=enforcing\SELINUX=disabled\' /etc/selinux/configsetenforce 0 #关闭防火墙service iptables stopchkconfig iptables off ...

weixin_38168484的博客 590

LCL滤波器参数设计实战:从理论约束到工程选型指南

本文提供了LCL滤波器参数设计的实战指南,从理论约束到工程选型逐步拆解。核心在于平衡总电感量、电感比与电容值,确保谐振频率落在安全区间,以满足并网电流谐波标准并维持系统稳定。文章以10kW并网逆变器为例,给出了具体的参数计算流程与选型步骤,并强调了寄生参数、阻尼设计等工程实现细节。

c6d7e8f9g的博客 923

AI原生SaaS应用的自动化运维体系构建

随着ChatGPT掀起的AI原生应用浪潮,越来越多SaaS(软件即服务)产品开始以"AI优先"的方式设计——从用户交互到核心功能,都深度依赖机器学习模型(如推荐算法、智能客服)、实时数据流(如用户行为分析)和弹性算力(如大模型推理)。这类应用的运维需求与传统SaaS完全不同:传统运维像"修水管",哪里漏了补哪里;AI原生运维则像"照顾会成长的宠物",需要实时感知模型状态、数据变化和流量波动,主动调整资源。

AI天才研究院 1080

安装oracle12c与配置,Oracle12C静默安装与配置

Oracle 12C已经发布...下面我将跟大家一起学习静默安装与配置Oracle 12C以及示例用户。Oracle 12C已经发布...下面我将跟大家一起学习静默安装与配置Oracle 12C以及示例用户。相关阅读:Linux-6-64下安装Oracle 12C笔记Oracle 12C新特性之翻页查询解读 Oracle 12C 的 12 个新特性1. 获取Oracle 12C从链接地址获取Ora...

weixin_28901327的博客 577

UE5 Niagara基础知识讲解

在UE5版本中,Niagara粒子系统引入了许多可添加的模块,分别用于控制发射器的生成和更新、粒子的生成和更新以及渲染效果。本文采用虚幻5.2.1版本,以图文方式对Niagara基础知识进行讲解。

一碗清深的博客 2472

biee12c连接hive_Oracle BIEE 12c 配置

0.biee部署biee实际上就是一个weblogic 应用,所以安装biee 12c实际上要先安装全套的oracle fusionmiddleware.装好之后,先启动weblogic服务,然后把obiee部署到一个managedserver上。这里的server是个逻辑的概念,未必需要单独一台机器。​部署obiee应用,要选择合适的domain模板.oralce要求先构建一个domain,然后...

weixin_39670441的博客 159

HTML满屏跳动的爱心(完整代码)

HTML语言实现满屏跳动爱心的完整代码。

AIGC 12万+

关于DEJA_VU3D - Cesium功能集专栏说明

专栏主要目的是对工作中基于Cesium实现过的功能进行整合,暂时打算一周2-3更的样子来更新,每一篇都会奉上完整源代码(尽可能把代码简洁一些)。功能实现大多数是自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小130个左右的功能,后续也会不断的更新。..........................................

总得学点什么的博客 2万+
上一篇: RPM包及其依赖下载到本地并离线安装
下一篇: Linux下增加、删除和设置Swap文件以及创建Swap文件的脚本
lcm_linux
博客等级 码龄7年 7258粉丝 73原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值