#linux执行因换行符兼容问题会报错,需要删除换行符,用如下命令: #sed -i 's/\r$//' 脚本名 #全局变量配置 #主机名 HOST_NAME=rac1 #实例名 ORACLESID=racdb1 #软件安装主目录 INSTALL_DIRECTORY=/u01 #私有网卡名字 PRIV_CARD=enp0s8 #sga大小,单位GB,必需要小于hugepages,sga*1024/2+1024 SGA=5 #————————————————————脚本执行开始—————————————————————————————— #setup hostname hostnamectl set-hostname $HOST_NAME #清空/etc/hosts配置 cat /dev/null >/etc/hosts #配置host IPV6地址 cat >> /etc/hosts <<EOF ::1 localhost.localdomain localhost #public ip fd17:625c:f037:2:d782:1527:c883:2211 rac1 fd17:625c:f037:2:553e:78bf:a220:b86b rac2 #private ip fd17:625c:f037:a801:51f6:635a:fa15:5831 rac1-priv fd17:625c:f037:a801:392c:3f53:d008:9462 rac2-priv #vip fd17:625c:f037:2:bf7a:53c8:d92:e6b1 rac1-vip fd17:625c:f037:2:b494:e9a5:c94c:bff7 rac2-vip #scan ip fd17:625c:f037:2:723f:5f7f:402e:18db rac-scan #网关地址 #fe80::5054:ff:fe12:3500 EOF #setup /etc/sysconfig/network echo "HOSTNAME=`hostname`">>/etc/sysconfig/network echo "NOZEROCONF=yes">>/etc/sysconfig/network #setup /dev/shm echo "tmpfs /dev/shm tmpfs rw,exec 0 0">>/etc/fstab #setup /etc/sysctl.conf HUGE=`bc -q << EOF $SGA*1024/2+1024 EOF` echo " fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 30073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 vm.nr_hugepages = $HUGE ">> /etc/sysctl.conf && sysctl -p #关闭并禁用防火墙 systemctl stop firewalld.service systemctl disable firewalld.service #可能会触发BUG,安装检测建议禁用 systemctl stop avahi-daemon.service systemctl disable avahi-daemon.service #关闭chronyd时间同步服务 systemctl stop chronyd systemctl disable chronyd mv /etc/chrony.conf /etc/chrony.conf.bak #设置时区 timedatectl set-timezone Asia/Shanghai #禁用selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #Linux 6 上的默认磁盘调度算法为CFQ(完全公平排队I/O调度算法),该算法的I/O分配是基于进程/线程平均分配的, #并不适用于数据库这样希望大部分I/O都应用到数据库进程的系统。DEADLINE算法(截止时间调度)确保一个截止时间内服务请求, #更适用与数据库系统。但是LINUX 7已经将默认的磁盘调度算法更改为DEADLINE。查看ASM磁盘的调度算法: for i in b c d e f g h i; do echo deadline > /sys/block/sd$i/queue/scheduler cat /sys/block/sd$i/queue/scheduler done #setup transparent huge pages 关闭透明大页 if cat /sys/kernel/mm/transparent_hugepage/enabled | grep "\[never\]" >> /dev/null then echo "transparent huge pages readly closed!" else sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg fi #check disk I/O scheduler for i in `ls /sys/block|grep -v ^loop|grep -v ^ram` do printf "%-20s %40s\n" "$i" "`cat /sys/block/${i}/queue/scheduler`" done #start nscd systemctl start nscd systemctl enable nscd #setup SSH sed -i 's/#LoginGraceTime 2m/LoginGraceTime 0/' /etc/ssh/sshd_config #setup user and group groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54324 backupdba groupadd -g 54325 dgdba groupadd -g 54326 kmdba groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin groupadd -g 54330 racdba useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba grid echo "oracle"|passwd oracle --stdin echo "grid"|passwd grid --stdin #setup /etc/security/limits.conf echo " oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft nofile 65536 grid hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 grid soft stack 10240 grid hard stack 32768 oracle soft memlock -1 oracle hard memlock -1 grid soft memlock -1 grid hard memlock -1 root soft memlock -1 root hard memlock -1" >>/etc/security/limits.conf #setup /etc/profile echo " if [ \$USER = \"oracle\" ] || [ \$USER = \"grid\" ] || [ \$USER = \"root\" ]; then if [ \$SHELL = \"/bin/ksh\" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi">>/etc/profile #create directory mkdir -p $INSTALL_DIRECTORY/app/12.2.0/grid mkdir -p $INSTALL_DIRECTORY/app/grid mkdir -p $INSTALL_DIRECTORY/app/oracle chown -R grid:oinstall $INSTALL_DIRECTORY chown oracle:oinstall $INSTALL_DIRECTORY/app/oracle chmod -R 775 $INSTALL_DIRECTORY #setup user profile echo "export PATH export ORACLE_BASE=$INSTALL_DIRECTORY/app/oracle export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0/db_1 export ORACLE_SID=$ORACLESID export PATH=\$ORACLE_HOME/bin:\$PATH export TNS_ADMIN=\$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32:/lib/usr/lib:/usr/local/lib export TEMP=/tmp export TMP=/tmp export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export NLS_OS_CHARSET=ZHS16GBK export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK set -o vi stty erase ^h if [ -t 0 ]; then stty intr ^C fi umask 022">>/home/oracle/.bash_profile echo "export PATH export ORACLE_BASE=$INSTALL_DIRECTORY/app/grid export ORACLE_HOME=$INSTALL_DIRECTORY/app/12.2.0/grid export ORACLE_SID=+ASM1 export PATH=\$ORACLE_HOME/bin:\$PATH export TNS_ADMIN=\$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$ORACLE_HOME/lib32:/lib/usr/lib:/usr/local/lib export TEMP=/tmp export TMP=/tmp export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export NLS_OS_CHARSET=ZHS16GBK export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK set -o vi stty erase ^h if [ -t 0 ]; then stty intr ^C fi umask 022" >>/home/grid/.bash_profile #install soft umount /dev/cdrom mount /dev/cdrom /mnt echo " [LOCAL] name = LOCAL baseurl=file:///mnt/ gpgcheck=0 enabled=1">/etc/yum.repos.d/local.repo yum install binutils.x86_64 compat-libcap1.x86_64 glibc.x86_64 glibc.i686 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.x86_64 libaio.i686 libaio-devel.i686 libaio-devel.x86_64 libgcc.x86_64 libgcc.i686 libstdc++.x86_64 libstdc++.i686 libstdc++-devel.x86_64 libstdc++-devel.i686 libxcb.i686 libxcb.x86_64 libX11.x86_64 libX11.i686 libXau.i686 libXau.x86_64 libXi.x86_64 libXi.x86_64 libXtst.x86_64 libXtst.i686 make.x86_64 net-tools.x86_64 smartmontools.x86_64 gcc-c++ nscd -y #挂载磁盘 partprobe udevadm control --reload-rules udevadm trigger --type=devices --action=change #检查nscd状态 systemctl list-unit-files | grep nscd systemctl -all | grep nscd #检查透明大页是否关闭 cat /sys/kernel/mm/transparent_hugepage/enabled #时区检查 timedatectl | grep "Asia/Shanghai"
复制
注意:请将上面的文本复制到shell脚本中通过文件执行,直接复制在命令行执行,部份变量可能会被错误替换。
最后修改时间:2020-02-22 00:27:13
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
682次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
634次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
543次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
491次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
488次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
473次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
468次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
417次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
352次阅读
2025-05-05 19:28:36