You are on page 1of 19

安裝 Oracle on linux

I. 安裝檔案下載位置.....................................................................................................................................................................1
II. 安裝前準備(root)......................................................................................................................................................................1
1.1 新增 group & install user.........................................................................................................................................1
1.2 建立安裝目錄...............................................................................................................................................................2
1.3 Oracle .bash...............................................................................................................................................................2
1.4 設定 yum......................................................................................................................................................................3
1.5 檢查 package..............................................................................................................................................................4
1.6 調整/etc/sysctl.conf..................................................................................................................................................6
1.7 調整/etc/security/limits.conf..................................................................................................................................7
1.8 關閉防火牆...................................................................................................................................................................8
III. 開始安裝(oracle).......................................................................................................................................................................8
1.1 確認參數.......................................................................................................................................................................8
1.2 解壓縮安裝檔案...........................................................................................................................................................9
1.3 (備註)直接上傳.rsp.....................................................................................................................................................9
1.4 調整 db_install.rsp.....................................................................................................................................................9
1.5 執行 db_install.rsp...................................................................................................................................................11
1.6 測試 db_install.rsp...................................................................................................................................................12
1.7 執行 netca.rsp...........................................................................................................................................................12
1.8 (備註)直接上傳 TNS.................................................................................................................................................12
1.9 修改 TNS....................................................................................................................................................................12
1.10 設定 dbca.rsp............................................................................................................................................................13
1.11 執行 dbca.rsp............................................................................................................................................................16
1.12 測試 dbca.rsp............................................................................................................................................................16
1.13 測試 db expressin....................................................................................................................................................17
IV. 建立 tablespace 指令.............................................................................................................................................................17
V. 開機自動重啟設定...................................................................................................................................................................17
1.1 修改/etc/oratab.......................................................................................................................................................18
1.2 修改/etc/rc.local......................................................................................................................................................18
1.3 檢查.............................................................................................................................................................................18
I. 安裝配置
安裝檔案放置位置:/tmp/oracle
安裝目錄:/ora01/app/oracle/product/12.2.0/db_1

II. 安裝檔案下載位置
Download:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

III. 安裝前準備(root)
1.1 新增 group & install user
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 -u 54321 -g oinstall \


-G dba,oper,backupdba,dgdba,kmdba,racdba oracle

passwd oracle
#Ab123456

1.2 建立安裝目錄
Directory structure,Create directory structure as user root
# ORACLE_BASE – /ora01/app/oracle
# ORACLE_HOME – /ora01/app/oracle/product/12.2.0/db_1
mkdir -p /ora01/app/oracle/product/12.2.0/db_1
chown oracle:oinstall -R /ora01 .
chown oracle:oinstall -R /ora01/app/oracle/product/12.2.0/db_1
chown -R oracle:oinstall /home/oracle .

1.3 Oracle .bash


Add following lines in .bash_profile for user oracle
vi /home/oracle/.bash_profile
# Oracle Settings
export TMP=/tmp
export ORACLE_HOSTNAME=oel7.dbaora.com
export ORACLE_UNQNAME=ORA12C
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=ORA12C

PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

alias cdob='cd $ORACLE_BASE'


alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'
alias envo='env | grep ORACLE'

umask 022

if [ $USER = "oracle" ]; then


if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

envo

1.4 (備註)設定 yum


device status 都要勾
# 先確認 yum 有沒有裝
yum repolist

# 沒有再執行下列
mkdir /media/rhel-repo-iso
mount /tmp/infa/rhel-server-7.6-x86_64-dvd.iso /media/rhel-repo-iso/
vi /etc/yum.repos.d/RHEL_Disc.repo
[RHEL_Disc]
name=RHEL_7_x86_64_Disc
baseurl="file:///media/rhel-repo-iso/"
gpgcheck=0
yum repolist

1.5 檢查 package
# Check which packages are installed and which are missing
# 方法 1
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'
binutils \
compat-libcap1 \
compat-libstdc++-33 \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
make \
nfs-utils \
smartmontools \
net-tools \
sysstat

# 方法 2
yum install compat-libcap1 -y

compat-libstdc++-33 下載位置
https://rpmfind.net/linux/rpm2html/search.php?query=compat-libstdc%2B%2B-33
cd /tmp/infa/oracle/rpm
yum install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm -y

yum install glibc -y


yum install glibc-devel -y
yum install ksh -y
yum install libaio-devel -y

yum install libaio -y


yum install libX11 -y
yum install libXau -y
yum install libXi -y
yum install libXtst -y

yum install libgcc -y


yum install libstdc++ -y
yum install libstdc++-devel -y
yum install libxcb -y

yum install make -y


yum install nfs-utils -y
yum install smartmontools -y
yum install net-tools -y

rpm -qa compat-libcap1


rpm -qa compat-libstdc++-33
rpm -qa glibc
rpm -qa glibc-devel

rpm -qa ksh


rpm -qa libaio-devel
rpm -qa libaio
rpm -qa libX11

rpm -qa libXau


rpm -qa libXi
rpm -qa libXtst

rpm -qa libgcc


rpm -qa libstdc++
rpm -qa libstdc++-devel
rpm -qa libxcb

rpm -qa make


rpm -qa nfs-utils
rpm -qa smartmontools
rpm -qa net-tools

# 方法 3
cd /tmp/oracle

rpm -qa > sourceRPM.txt


echo -e 'compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio-devel libaio libX11 libXau libXi
libXtst libgcc libstdc++ libstdc++-devel libxcb make nfs-utils smartmontools net-tools' | tr ' ' "\n" > findRPM.txt
#確認哪些 rpm 不存在
grep -owf findRPM.txt sourceRPM.txt | uniq | grep -vf - findRPM.txt | awk '{print $1}'
grep -owf findRPM.txt sourceRPM.txt | uniq | grep -vf - findRPM.txt | awk '{print $1}'| if [ $? != 0 ]; then xargs
yum install -y; fi
rm -rf findRPM.txt sourceRPM.txt

yum install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm -y

1.6 調整/etc/sysctl.conf
Add kernel parameters to /etc/sysctl.conf
vi /etc/sysctl.conf
# kernel parameters for 12gR2 installation
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
kernel.panic_on_oops=1

Apply kernel parameters


/sbin/sysctl -p
1.7 調整/etc/security/limits.conf
Add following lines to set shell limits for user oracle in file /etc/security/limits.conf
vi /etc/security/limits.conf
# shell limits for users oracle 12gR2
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728

1.8 關閉防火牆
# 關閉 Firewalld 防火牆指令:
systemctl stop firewalld.service
# 設定下次開機不會啟動防火牆
systemctl disable firewalld.service

IV. 開始安裝(oracle)
su - oracle

1.1 確認參數
alias envo cdob cdoh tns
envo

# run alias command cdob and cdoh


# to check ORACLE_BASE, ORACLE_HOME
cdob
pwd

cdoh
pwd

1.2 解壓縮安裝檔案
cd /tmp/infa/oracle
cp -rp linuxx64_12201_database.zip /home/oracle
cd /home/oracle
unzip linuxx64_12201_database.zip
cd database

1.3 (備註)直接上傳.rsp
記得改權限,用 root
cd /home/oracle/database/response
chown -R oracle:oinstall /home/oracle .
ls -l

1.4 調整 db_install.rsp
cd /home/oracle/database/response
ls
cp db_install.rsp db_install.rsp.bck

vi db_install.rsp
--------------------------------------------
-- force to install only database software
--------------------------------------------
oracle.install.option=INSTALL_DB_SWONLY

--------------------------------------------
-- set unix group for oracle inventory
--------------------------------------------
UNIX_GROUP_NAME=oinstall

--------------------------------------------
-- set directory for oracle inventory
--------------------------------------------
INVENTORY_LOCATION=/ora01/app/oraInventory

--------------------------------------------
-- set oracle home for binaries
--------------------------------------------
ORACLE_HOME=/ora01/app/oracle/product/12.2.0/db_1

--------------------------------------------
-- set oracle home for binaries
--------------------------------------------
ORACLE_BASE=/ora01/app/oracle

--------------------------------------------
-- set version of binaries to install
-- EE - enterprise edition
--------------------------------------------
oracle.install.db.InstallEdition=EE

--------------------------------------------
-- specify extra groups for database management
--------------------------------------------
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba

1.5 執行 db_install.rsp
一定要等
cd /home/oracle/database
./runInstaller -silent \
-responseFile /home/oracle/database/response/db_install.rsp
#用 root 執行
/ora01/app/oraInventory/orainstRoot.sh
cd /ora01/app/oracle/product/12.2.0/db_1/
/ora01/app/oracle/product/12.2.0/db_1/root.sh

看安裝 log
tail –n 10 /ora01/app/oraInventory/logs/installActions2019-10-08_10-08-40PM.log

1.6 測試 db_install.rsp
sqlplus / as sysdba
exit
還沒有 instance

1.7 執行 netca.rsp
Again based on response file Oracle Net will be configured
cd /home/oracle/database/response
cp netca.rsp netca.rsp.bck
netca -silent -responseFile /home/oracle/database/response/netca.rsp
1.8 (備註)直接上傳 TNS
記得改權限
cd /ora01/app/oracle/product/12.2.0/db_1/network/admin/
chown -R oracle:oinstall /ora01/app/oracle/product/12.2.0/db_1/network/admin/ .
ls -l

1.9 修改 TNS
cd /ora01/app/oracle/product/12.2.0/db_1/network/admin/
cp -rp listener.ora listener.ora.bak

# 把 listener.ora、tnsnames.ora 放到/ora01/app/oracle/product/12.2.0/db_1/network/admin/
# 修正 IP:ORA12C
vi listener.ora
# 修正 IP 和 server_name
vi tnsnames.ora

Check LISTENER status


lsnrctl start
lsnrctl status

1.10 設定 dbca.rsp
Configure database
mkdir /ora01/app/oracle/oradata
mkdir /ora01/app/oracle/flash_recovery_area
cd /home/oracle/database/response
cp dbca.rsp dbca.rsp.bck
vi dbca.rsp
--------------------------------------------
-- global database name
--------------------------------------------
gdbName=ORA12C.dbaora.com

--------------------------------------------
-- instance database name
--------------------------------------------
sid=ORA12C

--------------------------------------------
--create container database
--------------------------------------------
createAsContainerDatabase=true

--------------------------------------------
-- number of pluggable databases
--------------------------------------------
numberOfPDBs=1

--------------------------------------------
-- list of pluggable databases
--------------------------------------------
pdbName=PORA12C1

--------------------------------------------
-- pluggable administrator password
--------------------------------------------
pdbAdminPassword=Ab123456

--------------------------------------------
-- template name used to create database
--------------------------------------------
templateName=General_Purpose.dbc

--------------------------------------------
-- password for user sys
--------------------------------------------
sysPassword=Ab123456

--------------------------------------------
-- password for user system
--------------------------------------------
systemPassword=Ab123456

--------------------------------------------
-- configure dbexpress with port 5500
--------------------------------------------
emConfiguration=DBEXPRESS
emExpressPort=5500

--------------------------------------------
-- password for dbsnmp user
--------------------------------------------
dbsnmpPassword=Ab123456

--------------------------------------------
-- default directory for oracle database datafiles
--------------------------------------------
datafileDestination=/ora01/app/oracle/oradata

--------------------------------------------
-- default directory for flashback data
--------------------------------------------
recoveryAreaDestination=/ora01/app/oracle/flash_recovery_area

--------------------------------------------
-- storage used for database installation
-- FS - OS filesystem
--------------------------------------------
storageType=FS

--------------------------------------------
-- database character set
--------------------------------------------
characterSet=AL32UTF8

--------------------------------------------
-- national database character set
--------------------------------------------
nationalCharacterSet=AL16UTF16

--------------------------------------------
-- listener name to register database to
--------------------------------------------
listeners=LISTENER

--------------------------------------------
-- force to install sample schemas on the database
--------------------------------------------
sampleSchema=true

--------------------------------------------
--specify database type
--has influence on some instance parameters
--------------------------------------------
databaseType=OLTP

--------------------------------------------
-- force to use autmatic mamory management
--------------------------------------------
automaticMemoryManagement=FALSE
--------------------------------------------
-- defines size of memory used by the database
--------------------------------------------
totalMemory=1024

當物理內存總量大於 4GB 時,不允許使用自動內存管理選項


官方的 Administrator guide 上的說明,之前看 11g 的文檔多一些,11g 的文檔中,官方建議使用自動內存管理。但
是,在 12c 的官方文檔上,官方也建議使用自動內存管理,但是有個限制,SGA+PGA 不要超過 4G。

所以,
automaticMemoryManagement=FALSE

參考:https://www.twblogs.net/a/5ccda6e6bd9eee67a77e7578

TOTALMEMORY 实例内存,默认是服务器物理内存的 40%

參考:http://haibing.org/121

1.11 執行 dbca.rsp
dbca -silent -createDatabase \
-responseFile /home/oracle/database/response/dbca.rsp

1.12 測試 dbca.rsp
sqlplus / as sysdba
show parameter db_name;
# 要出現 oracle 12c 的字樣,出現 instance 要再去查原因

1.13 測試 db expressin
Check port status of db expressin root database
select DBMS_XDB_CONFIG.GETHTTPSPORT from dual;

alter session set container=PORA12C1;


show con_name
V. (備註)建立 tablespace 指令
alter session set "_ORACLE_SCRIPT"=true;
ORA-65096: 無效的通用使用者或角色名稱

oracle 12c 的特性,將_ORACLE_SCRIPT"=true",就不用加 C##在使用者名稱前面

參考:https://ithelp.ithome.com.tw/articles/10198007

# 去/ora01/app/oracle/oradata/ORA12C 看有哪些 mdf,沒有 temp01 或 user01,再加


cd /ora01/app/oracle/oradata/ORA12C

create tablespace TEMP


datafile '/ora01/app/oracle/oradata/ORA12C/TEMP.dbf' size 10000M
autoextend on next 1M maxsize 20000M
extent management local ;

VI. 開機自動重啟設定

開機自動重啟

oratab 是安裝 oracle 後產生的一個檔案,透過這個檔案的設定可以決定 Oracle 是否可以在系統開機時自動開啟,預


設值是「否」。oratab 可視為一個開關的命令,並不會實際執行啟動和關閉,具體的操作由
$ORACLE_HOME/bin/dbstart 和 dbshut 來實現。這兩個 script 在執行時會檢查/etc/oratab 檔裡的配置,為 Y 時才
能繼續執行。

參考:http://gini772.pixnet.net/blog/post/6270529-%E5%A6%82%E4%BD%95%E5%9C%A8linux
%E9%96%8B%E6%A9%9F%E6%99%82%E8%87%AA%E5%8B%95%E5%95%9F%E5%8B%95oracle-db
參考:https://www.server-world.info/en/note?os=CentOS_7&p=oracle12c&f=6

1.1 修改/etc/oratab
用 root,Edit the “/etc/oratab” file to set restart flag for ORA12C to ‘Y’.
vi /etc/oratab
ORA12C:/ora01/app/oracle/product/12..0/db_1:Y

1.2 修改/etc/rc.local
# su - oracle -c 'lsnrctl start' →以 Oracle_SID 的這個身分下指令把 listener 啟動(-c 就是 command)
# su - oracle -c 'dbstart' →以 Oracle_SID 的這個身分啟動 DB
# 用 root
vi /etc/rc.local
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'
sudo chmod +x /etc/rc.local

1.3 檢查
reboot
sqlplus / as sysdba
show parameter db_name
# 要出現 oracle 12c 的字樣,出現 instance 要再去查原因

lsnrctl status
# 要出現 success

You might also like