CentOS 7 Oracle 11g 스크립트 무인 설치
(Last Updated On: December 15, 2021)
- 2021년에 올리는 오래된 운영체제인 CentOS 7 에 오래된 데이터베이스인 오라클 11g을 무인응답파일을 사용하여 스크립트 설치하기
- 11g를 설치하는 사람은 없겠지만 본 포스트는 백업용이기 때문에 작동에 문제가 있으므로 사용시 스크립트 검토를 요한다
# 실패시 중단 set -e # 배시프로필 지정 # useradd로 생성하면 기본 배시프로필 가지는듯 export oraroot=/app/oracle # CentOS Dependencies yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel yum -y install glibc glibc-common glibc-devel glibc-headers gcc gcc-c++ libaio-devel yum -y install libaio libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel yum -y install unzip yum -y install compat-libstdc++-33.x86_64 binutils elfutils-libelf elfutils-libelf-devel # 망할 SELinux 끄기 setenforce 0 selinuxpath='/etc/sysconfig/selinux' selinuxtemppath='/tmp/tmpselinux' sed 's/SELINUX=enforcing/SELINUX=disabled/' $selinuxpath > $selinuxtemppath cat > $selinuxpath < $selinuxtemppath # 커널 파라미터 수정 (...) cat >> /etc/sysctl.conf << _EOL_ # /proc/sys/kernel/suid_dumpable # /proc/sys/fs/suid_dumpables # /proc/sys/kernel/core_setuid_ok _EOL_ set +e userdel ora-user; groupdel dba; userdel oper; groupdel oper; # 오라클 사용자 및 그룹 생성 groupadd -g 5000 dba useradd -g dba ora-user #passwd ora-user groupadd oper useradd -g oper oper usermod -aG oper ora-user set -e #.bash_profile은 안되는것같음: 이유느ㅡㄴ? cat >> /home/ora-user/.bashrc << _EOL_ export ORACLE_BASE=$oraroot export ORACLE_HOME=\$ORACLE_BASE/product/11g export ORACLE_SID=ora333 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib export PATH=\$PATH:\$ORACLE_HOME/bin # alias alias ss='sqlplus / as sysdba' _EOL_ # 설치에 필요한 그룹과 사용자 생성 ? #생략. ora-user사용 # grid infrastructure를 설치할 경우 grid계정을 추가해서 작업한는것을 권장한다고 한다 # 유저의 자원 사용 제한 cat >> /etc/security/limits.conf << _EOL_ ora-user soft nproc 2048 ora-user hard nproc 65536 ora-user soft nofile 1024 ora-user harad nofile 65536 _EOL_ cat >> /etc/pam.d/login << _EOL_ session required pam_limits.so _EOL_ # 앱디렉터 생성 mkdir -p $oraroot chown -R ora-user:dba $oraroot # 압축해제 echo zip복사 sleep 1 cp -f ./'Oracle Database 11.2.0.1.0 for Linux x86-64 V17530-01_1of2.zip' $oraroot/.. cp -f ./'Oracle Database 11.2.0.1.0 for Linux x86-64 V17530-01_2of2.zip' $oraroot/.. chown -R ora-user:dba $oraroot/.. cd $oraroot/.. pwd # ./database 디렉터리가 만들어진다... unzip 'Oracle Database 11.2.0.1.0 for Linux x86-64 V17530-01_1of2.zip' unzip 'Oracle Database 11.2.0.1.0 for Linux x86-64 V17530-01_2of2.zip' mv ./database/* ./ # orInst (로그파일 저장위치) cat > /etc/oraInst.loc << _EOL_ inventory_loc=$oraroot/oraInventory inst_group=dba _EOL_ chown ora-user:dba /etc/oraInst.loc chown -R ora-user:dba /home/ora-user # 응답파일 cd response cat >> db_install.rsp << _EOL_ oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba INVENTORY_LOCATION=$oraroot/oraInventory SELECTED_LANGUAGES=en oracle.install.db.InstallEdition=EE oracle.install.db.customComponents=oracle.rdbms.partitioning:11.2.0.1.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true _EOL_ cd .. ################################################################### # 여기서 새로운 쉘을 열기 때문에 하단 스크립트가 진행이 안된다 su -l ora-user -c "cd $oraroot; cd ..; \ ./runInstaller -silent -ignorePrereq -responseFile $oraroot/../response/db_install.rsp" ################################################################### #설치 후 실행 $oraroot/product/11g/root.sh #su -l ora-user -c 'sqlplus / as sysdba' yum install -y ksh # db생성 cd $oraroot/database/response cat >> dbca.rsp << _EOL_ GDBNAME = "dba" SID = "ora333" SYSPASSWORD = "strongpassword123" CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET = "UTF8" SAMPLESCHEMA = TRUE _EOL_ su -l ora-user -c "\$ORACLE_HOME/bin/dbca -silent -responseFile $oraroot/database/response/dbca.rsp" sqlplus / as sysdba; select status from v$instance;