Centos7にORACLE database11.2.0.4 SEoneをさくっとサイレントインストールしてみる
GUIを使用せずに簡単にORACLE DATABASEを作成する。
SIDはorcl
で作成。
環境
今回はdockerを使用する。
dockerのデフォルトshmsizeが64MBで小さすぎてORACLEインスタンス起動できなかったので
--shm-size
を指定できるversion1.10を使用。
# docker --version Docker version 1.10.3, build 20f81dd
とりあえずcentos7立ち上げる
docker run --privileged -it --shm-size=512m centos bash
パッケージ取得
yum -y install wget vim sudo epel-release rlwrap vim sudo
さくっとインストールまで
# groupadd -g 501 oinstall # groupadd -g 502 dba # useradd -u 501 -g oinstall -G dba oracle
- ディレクトリ作成
# mkdir -p /opt/app/oracle # chown -R oracle. /opt/app/oracle # chown -R oracle. /opt/app # mkdir -p /opt/app/oraInventory # chown -R oracle. /opt/app/oraInventory # chown -R oracle. /data/orabin ↑ (ここにPSRを置く予定)
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle # cd /etc/yum.repos.d/ # wget http://public-yum.oracle.com/public-yum-ol7.repo # yum -y install oracle-rdbms-server-11gR2-preinstall
preinstallRPMのログはここ /var/log/oracle-rdbms-server-11gR2-preinstall/results
↓のようなログ
Adding group oinstall with gid 54321 groupadd: group 'oinstall' already exists Adding group dba groupadd: group 'dba' already exists User oracle is already present uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) Creating oracle user passed Verifying kernel parameters as per Oracle recommendations... Adding fs.file-max = 6815744 Adding kernel.sem = 250 32000 100 128 Adding kernel.shmmni = 4096 Adding kernel.shmall = 1073741824 Adding kernel.shmmax = 4398046511104 Adding kernel.panic_on_oops = 1 Adding net.core.rmem_default = 262144 Adding net.core.rmem_max = 4194304 Adding net.core.wmem_default = 262144 Adding net.core.wmem_max = 1048576 Adding net.ipv4.conf.all.rp_filter = 2 Adding net.ipv4.conf.default.rp_filter = 2 Adding fs.aio-max-nr = 1048576 Adding net.ipv4.ip_local_port_range = 9000 65500 Setting kernel parameters as per oracle recommendations... Altered file /etc/sysctl.conf Original file backed up at /etc/sysctl.conf.orabackup Verifying & setting of kernel parameters passed ・ ・ ・
Adding kernel.shmall = 1073741824 Adding kernel.shmmax = 4398046511104
は各自調整
- getMOSPatch.sh取得
# cd /data/orabin # wget --no-check-certificate -nv https://raw.github.com/MarisElsins/TOOLS/master/Shell/getMOSPatch.sh && chmod 755 getMOSPatch.sh
- 11.2.0.4のPSRをダウンロード
# ./getMOSPatch.sh patch=13390677 ←パッチ番号を指定する(13390677は11.2.0.4.0 PATCH SET FOR ORACLE DATABASE SERVER) Oracle Support Userid: xxxx@gmail.com ←サポートのユーザID入力 Oracle Support Password: ←サポートのパスワード入力 Getting the Platform/Language list Available Platforms and Languages: 537P - Acme Packet 1100 529P - Acme Packet 3820 ・ ・ 46P - Linux x86 226P - Linux x86-64 912P - Microsoft Windows (32-bit) 208P - Microsoft Windows Itanium (64-bit) ・ ・ 106L - Icelandic (IS) 46L - Indonesian (IN) 108L - Italian (I) 15L - Japanese (JA) 16L - Korean (KO) 43L - Vietnamese (VN) 999L - Worldwide Spanish (ESW) Comma-delimited list of required platform and language codes: 226P,15L ←プラットフォームと言語を選択 Configuration saved Getting list of files for patch 13390677 for "Linux x86-64" 1 - p13390677_112040_Linux-x86-64_1of7.zip 2 - p13390677_112040_Linux-x86-64_2of7.zip 3 - p13390677_112040_Linux-x86-64_3of7.zip 4 - p13390677_112040_Linux-x86-64_4of7.zip 5 - p13390677_112040_Linux-x86-64_5of7.zip 6 - p13390677_112040_Linux-x86-64_6of7.zip 7 - p13390677_112040_Linux-x86-64_7of7.zip Comma-delimited list of files to download: 1,2 ←ダウンロードするものを選択 Files to download: p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip Downloading the patches: Downloading file p13390677_112040_Linux-x86-64_1of7.zip ... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1330M 100 1330M 0 0 5230k 0 0:04:20 0:04:20 --:--:-- 3534k p13390677_112040_Linux-x86-64_1of7.zip completed with status: 0 Downloading file p13390677_112040_Linux-x86-64_2of7.zip ... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1097M 100 1097M 0 0 2362k 0 0:07:55 0:07:55 --:--:-- 2500k p13390677_112040_Linux-x86-64_2of7.zip completed with status: 0 # unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip # ls database getMOSPatch.sh p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip
ダウンロード完了。
- サイレントインストール
- レスポンスファイル作成
# su - oracle $ cat << EOS > ~/ora.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME= UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/app/oraInventory SELECTED_LANGUAGES=en,ja ORACLE_HOME=/opt/app/oracle/product/11.2.0.4/dbhome_1 ORACLE_BASE=/opt/app/oracle oracle.install.db.InstallEdition=SEONE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac: 1.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0 oracle.install.db.DBA_GROUP=oinstall oracle.install.db.OPER_GROUP=oinstall oracle.install.db.CLUSTER_NODES= oracle.install.db.isRACOneInstall= oracle.install.db.racOneServiceName= oracle.install.db.config.starterdb.type= oracle.install.db.config.starterdb.globalDBName= oracle.install.db.config.starterdb.SID= oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryOption=true oracle.install.db.config.starterdb.memoryLimit= oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL= oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation= oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation= oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT=true DECLINE_SECURITY_UPDATES=true PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= PROXY_REALM= COLLECTOR_SUPPORTHUB_URL= oracle.installer.autoupdates.option= oracle.installer.autoupdates.downloadUpdatesLoc= AUTOUPDATES_MYORACLESUPPORT_USERNAME= AUTOUPDATES_MYORACLESUPPORT_PASSWORD= EOS
$ /data/orabin/database/runInstaller -silent -responseFile ~/ora.rsp -ignoresysprereqs -ignoreprereq -force -waitforcompletion Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 94285 MB Passed Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-03-25_10-12-37AM. Please wait ...[WARNING] - My Oracle Support Username/Email Address Not Specified You can find the log of this install session at: /opt/app/oraInventory/logs/installActions2016-03-25_10-12-37AM.log The installation of Oracle Database 11g was successful. Please check '/opt/app/oraInventory/logs/silentInstall2016-03-25_10-12-37AM.log' for more details. As a root user, execute the following script(s): 1. /opt/app/oraInventory/orainstRoot.sh 2. /opt/app/oracle/product/11.2.0.4/dbhome_1/root.sh Successfully Setup Software.
dockerであると事前チェックエラーがいくつか発生してインストールできないので-ignoresysprereqs
と-ignoreprereq
を追加してインストールしている。
# /opt/app/oraInventory/orainstRoot.sh # /opt/app/oracle/product/11.2.0.4/dbhome_1/root.sh
これでインストールは完了。
データベースを作成する
- bash_profile編集
# su - oracle $ cat << EOS >> ~/.bash_profile export ORACLE_BASE=/opt/app/oracle export ORACLE_SID=orcl export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0.4/dbhome_1 export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS' export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$ORACLE_HOME/lib export PATH=\$PATH:\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch export NLS_LANG=Japanese_Japan.AL32UTF8 export LANG=ja_JP.UTF-8 EOS $ source ~/.bash_profile
- ディレクトリ作成
$ mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/adump $ mkdir -p ${ORACLE_BASE}/flash_recovery_area $ mkdir -p ${ORACLE_BASE}/oradata/${ORACLE_SID}/
- 初期化ファイル作成
$ cat << EOS >> $ORACLE_HOME/dbs/init${ORACLE_SID}.ora db_name='${ORACLE_SID}' memory_target=512M processes = 150 audit_file_dest='${ORACLE_BASE}/admin/${ORACLE_SID}/adump' audit_trail ='none' db_block_size=8192 db_domain='' db_recovery_file_dest='${ORACLE_BASE}/flash_recovery_area' db_recovery_file_dest_size=2G diagnostic_dest='${ORACLE_BASE}' dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)' open_cursors=300 remote_login_passwordfile='EXCLUSIVE' undo_tablespace='UNDOTBS1' control_files = '${ORACLE_BASE}/control01.ctl' compatible ='11.2.0' EOS
- ORACLE起動し、データベース作成
$ echo "startup nomount" | sqlplus / as sysdba $ echo "create spfile from pfile;" | sqlplus / as sysdba $ echo -e "CREATE DATABASE orcl USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle LOGFILE GROUP 1 ('/opt/app/oracle/oradata/orcl/redo01.log') SIZE 10M, GROUP 2 ('/opt/app/oracle/oradata/orcl/redo02.log') SIZE 10M, GROUP 3 ('/opt/app/oracle/oradata/orcl/redo03.log') SIZE 10M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 1024 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/opt/app/oracle/oradata/orcl/system01.dbf' SIZE 325M REUSE SYSAUX DATAFILE '/opt/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE users DATAFILE '/opt/app/oracle/oradata/orcl/users01.dbf' SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp1 TEMPFILE '/opt/app/oracle/oradata/orcl/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs1 DATAFILE '/opt/app/oracle/oradata/orcl/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;" | sqlplus / as sysdba
- 動的VIEW作成スクリプト実行
$ echo -e "@?/rdbms/admin/catalog.sql;" | sqlplus / as sysdba $ echo -e " @?/rdbms/admin/catproc.sql; " | sqlplus / as sysdba $ echo -e "@?/sqlplus/admin/pupbld.sql;" | sqlplus / as sysdba $ echo -e "@?/rdbms/admin/utlrp.sql" | sqlplus / as sysdba $ echo -e "@?/sqlplus/admin/pupbld.sql" | sqlplus system/oracle
これでデータベース作成完了。