1. 程式人生 > 其它 >Linux安裝Oracle12c操作手冊

Linux安裝Oracle12c操作手冊

1、基本環境

伺服器:64位、16核CPU、384G記憶體、16T硬碟

作業系統:CentOS 7.4

Oracle版本:12c (版本號12.1.0.2.0)

2、安裝必要的軟體包

檢視rpm包是否安裝:rpm -qa | grep 名稱

rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm

rpm -ivh cpp-4.8.5-16.el7.x86_64.rpm

rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm

rpm -ivh libstdc++-devel-4.8.5-16.el7.x86_64.rpm

rpm -ivh gcc-c++-4.8.5-16.el7.x86_64.rpm

rpm -ivh ksh-20120801-34.el7.x86_64.rpm

rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm

3、建立oracle使用者

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle (注意需要輸入兩遍密碼)

4、建立oracle和oradata目錄

1)建立安裝目錄

mkdir -p /u01/app/oracle

chown -R oracle:dba /u01/

chmod -R 775 /u01/

mkdir -p /u01/app/oraInventory

chown -R oracle:oinstall /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

2)建立表空間目錄和許可權

mkdir -p /data/oradata/

chown -R oracle:dba /data/oradata/

chmod -R 775 /data/oradata/

chown -R oracle:dba /home/oracle/

chmod -R 775 /home/oracle/

5、關閉selinux防火牆

輸入命令:

setenforce 0

getenforce

setenforce是Linux的selinux防火牆配置命令,執行setenforce 0 表示關閉selinux防火牆。

setenforce命令是單詞set(設定)和enforce(執行)連寫,另一個命令getenforce可檢視selinux的狀態。

getenforce可能返回結果有三種:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表僅記錄安全警告但不阻止可疑行為,Enforcing 代表記錄警告且阻止可疑行為。

setenforce [ Enforcing | Permissive | 1 | 0 ]

該命令可以立刻改變 SELinux 執行狀態,在 Enforcing 和 Permissive 之間切換,結果保持至關機。一個典型的用途是看看到底是不是 SELinux 導致某個服務或者程式無法執行。若是在 setenforce 0 之後服務或者程式依然無法執行,那麼就可以肯定不是 SELinux 導致的。

若是想要永久變更系統 SELinux 執行環境,可以通過更改配置檔案 /etc/sysconfig/selinux 實現。注意當從 Disabled 切換到 Permissive 或者 Enforcing 模式後需要重啟計算機併為整個檔案系統重新建立安全標籤(touch /.autorelabel && reboot)。

vi /etc/selinux/config

需要註釋掉SELINUX=enforcing和SELINUXTYPE=targeted;並新增SELINUX=disabled

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

# SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

# SELINUXTYPE=targeted

6、修改核心引數

(參考:

修改前最後先備份一下/etc/sysctl.conf,以防萬一。

備份檔案:cp /etc/sysctl.conf /etc/sysctl.conf.bak

vi /etc/sysctl.conf

在檔案末尾新增:

kernel.shmmax = 408021893120

kernel.shmall = 99614720

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 16777216

net.core.wmem_default = 262144

net.core.wmem_max = 16777216

fs.aio-max-nr = 1048576

fs.file-max = 6815744

備註:上述紅色數字是以380G記憶體計算而來。

如果以252G記憶體計算,那麼

kernel.shmmax = 270582939648

kernel.shmall = 66060288

如果以7.5G記憶體計算,那麼

kernel.shmmax = 8053063680

kernel.shmall = 1966080

使配置的核心引數生效,使用sysctl -p命令

sysctl -p

7、修改oracle使用者限制

vi /etc/security/limits.conf

在檔案末尾新增:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 2047

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 32768

8、修改/etc/pam.d/login

vi /etc/pam.d/login

在檔案末尾新增:

session required pam_limits.so

session required /lib64/security/pam_limits.so

9、更改安裝所有者的ulimit設定

(Linux下增大可開啟檔案描述符的最大數)

vi /etc/profile

在檔案末尾新增:

if [ /$USER = "oracle" ]; then

if [ /$SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

10、設定oracle使用者環境變數,SID與資料庫服務名稱一致

(切換到oracle使用者)

su oracle

cd ~

vi .bash_profile

在檔案末尾新增:

export TMP=/tmp

export TMPDIR=/tmp

export ORACLE_UNQNAME=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1

export ORACLE_SID=orcl

export PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin:/usr/bin:/usr/local/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

使用source命令是環境變數生效:

source .bash_profile

11、安裝Oracle12c資料庫

11.1、通過Xshell、Xmanager遠端進入Oracle資料庫安裝介面

1)安裝Xshell和Xmanager軟體

2)設定Xshell

3)輸入命令: echo $DISPLAY #檢視當前連線的顯示器

DISPLAY環境變數格式如下host:NumA.NumB, host指Xserver所在的主機主機名或者ip地址, 圖形將顯示在這一機器上, 可以是啟動了圖形介面的Linux/Unix機器, 也可以是安裝了Exceed, X-Deep/32等Windows平臺執行的Xserver的Windows機器. 如果Host為空, 則表示Xserver運行於本機, 並且圖形程式(Xclient)使用unix socket方式連線到Xserver, 而不是TCP方式. 使用TCP方式連線時, NumA為連線的埠減去6000的值, 如果NumA為0, 則表示連線到6000埠; 使用unix socket方式連線時則表示連線的unix socket的路徑, 如果為0, 則表示連線到/tmp/.X11-unix/X0 . NumB則幾乎總是0.

如果不修改此設定則無法顯示圖形介面。

輸入命令:export DISPLAY=xx.xx.xx.xx:0.0

其中xx.xx.xx.xx是執行xshell客戶端的ip地址,0.0標識客戶端的第1個顯示器。

4)輸入命令:export LANG=en_US

此選項是設定當前使用的語言,否則oracle的安裝介面會出現亂碼。

5)開啟本機的軟體:Xmanager – Passive

6)通過Xshell、Xmanager遠端進入Oracle資料庫安裝介面

建立資料夾:mkdir -p /data/software/

將Oracle資料庫安裝包,通過Xftp軟體拷貝至/data/software/資料夾下,並通過unzip命令解壓安裝包。

cd /data/software/

chown -R oracle:dba /data/software/

chmod -R 775 /data/software/

unzip linuxamd64_12102_database_1of2.zip ; unzip linuxamd64_12102_database_2of2.zip

/data/software/database/runInstaller

連續選擇“是(Y)”

遠端進入Oracle資料庫安裝介面,如下:

11.2、安裝Oracle資料庫

圖中重疊部分如下圖所示:

用Xshell重新開一個視窗,切換到root管理員帳號,並執行手機號碼買賣平臺地圖圖片上的命令。

/u01/app/oraInventory/orainstRoot.sh

/u01/app/oracle/product/12.1.0/dbhome_1/root.sh

執行命令之後,點選圖片上的OK。

安裝完畢!

11.3、重啟Oracle監聽服務

遇到問題:

使用plsql連線資料庫伺服器:“ORA-12514 TNS 監聽程式當前無法識別連線描述符中請求服務”

解決辦法:

1.修改vi /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora中的localhost改為192.168.78.130

2.修改vi /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora中的localhost 改為192.168.78.130

3.修改後,重啟oracle,監聽,並註冊,就可以遠端連線資料庫了。

具體操作步驟如下:

通過Xshell軟體,用oracle使用者登入linux。

lsnrctl stop #先關閉監聽服務

lsnrctl start #開啟監聽服務

lsnrctl status #檢視監聽狀態

sqlplus / as sysdba #登入資料庫

shutdown immediate; #立即關閉資料庫服務

startup; #開啟資料庫服務

alter system register; #註冊

exit #退出資料庫

其它命令:

啟動資料庫:startup mount;

開啟資料庫:alter database open;

上述兩個命令等效等於startup;