理論+實驗 詳解Oracle安裝部署過程

Mr_ChenWJ發表於2020-10-22

一 Oracle簡介

1.1 最流行的大型資料庫

●由甲骨文公司出品,目前最新版本為Oracle19c(測試版本)
●官方網站:https://www.oracle.com/cn
●採用C/S模式,支援SQL查詢語言
●在穩定性,高效能,安全性等方面優於其他資料庫,因此常用於政府及企業

1.2 安裝CentOS7作業系統要求

●防火牆的配置選項:禁用
●SELinux設定:禁用
●預設安裝:軟體開發
●核心:3.10.0.54.0.1.e17.x86_64及以上版本

1.3 系統及配置要求

●實體記憶體,不少於1GB
●交換分割槽:物理分割槽為1-2GB時,設定交換記憶體為實體記憶體的1.5-2倍;實體記憶體為2-16GB時,設定為與實體記憶體大小相同
●磁碟空間,不少於15GB
●擁有固定的FQDN名稱,安裝後不建議再更改

二 實驗步驟及要求

2.1 關閉防火牆自啟動,以及相關功能和增強性安全功能,更改使用者名稱

[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled

2.2 更改使用者名稱以及域名解析

[root@localhost ~]# hostnamectl set-hostname oracle        //更改主機名Oracle
[root@localhost ~]# su
[root@oracle ~]# vi /etc/hosts
20.0.0.21       oracle
[root@oracle ~]# ping oracle
PING oracle (20.0.0.21) 56(84) bytes of data.
64 bytes from oracle (20.0.0.21): icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from oracle (20.0.0.21): icmp_seq=2 ttl=64 time=0.029 ms

2.3 建立xfs檔案系統並且進行掛載(不少於15G)

##新增一塊硬碟
[root@oracle ~]# fdisk -l

Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000ab94d

[root@oracle ~]# fdisk /dev/sdb      //建立一個主分割槽

[root@oracle ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x63f07f51

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   209715199   104856576   83  Linux

[root@oracle ~]# vi /etc/fstab          //orc目錄為掛載目錄
/dev/sdb1       /orc    xfs     defaults        0 0

[root@oracle ~]# mkdir /orc
[root@oracle ~]# mount -a
[root@oracle ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda3      xfs        50G   12G   39G  24% /
devtmpfs       devtmpfs  3.8G     0  3.8G   0% /dev
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs     3.9G   13M  3.8G   1% /run
tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda5      xfs       242G   37M  241G   1% /home
/dev/sda1      xfs      1014M  174M  841M  18% /boot
tmpfs          tmpfs     781M   12K  781M   1% /run/user/42
tmpfs          tmpfs     781M     0  781M   0% /run/user/0
/dev/sdb1      xfs       100G   33M  100G   1% /orc

2.4 安裝軟體環境包

[root@oracle ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

2.5 核心引數調整

[root@oracle ~]# vi /etc/sysctl.conf

fs.aio-max-nr = 1048576   #非同步IO請求數目 推薦值是:1048576 其實它等於 1024*1024 也就是 1024K 個
fs.file-max = 6815744   #開啟的檔案控制程式碼的最大數量,防止檔案描述符耗盡的問題
kernel.shmall = 2097152 #共享記憶體總量 頁為單位,記憶體除以4K所得
kernel.shmmax = 4294967295  
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128  #SEMMSL: 每個訊號集的最大訊號數量 SEMMNS:用於控制整個 Linux 系統中訊號的最大數 SEMOPM: 核心引數用於控制每個 semop 系統呼叫可以執行的訊號操作的數量 SEMMNI :核心引數用於控制整個 Linux 系統中訊號集的最大數量
net.ipv4.ip_local_port_range = 9000 65500  #用於向外連線的埠範圍  
net.core.rmem_default = 262144 #套接字接收緩衝區大小的預設值
net.core.rmem_max = 4194304   #套接字接收緩衝區大小的最大值
net.core.wmem_default = 262144 #套接字傳送緩衝區大小的預設值
net.core.wmem_max = 1048576   #套接字傳送緩衝區大小的最大值


[root@oracle ~]# sysctl -p    //重新載入配置檔案
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128  #SEMMSL:
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

2.6 使用者環境設定

[root@oracle ~]# groupadd oinstall
[root@oracle ~]# groupadd dba
[root@oracle ~]# useradd -g oinstall -G dba oracle
[root@oracle ~]# passwd oracle           //密碼為‘abc123’

[root@oracle ~]# mkdir -p /orc/app/oracle
[root@oracle ~]# chown -R oracle:oinstall /orc/app/
[root@oracle ~]# chmod -R 755 /orc/app/oracle/

[root@oracle ~]# vim /home/oracle/.bash_profile    //oracle使用者環境配置

umask 022            #反掩碼`在這裡插入程式碼片`
ORACLE_BASE=/orc/app/oracle
ORACLE_HOME=/orc/app/oracle/product/12.2.0/dbhome_1/
ORACLE_SID=orcl
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8         #安裝時用簡體中文

export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID

2.7 oracle使用者資源限制

##使用pam_limits認證模組
[root@oracle ~]# vim /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       substack     system-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
#pam_selinux.so close should be the first session rule
session    required     /lib/security/pam_limits.so                                     //新增的
session    required     pam_limits.so                                                        //新增的
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
#pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so


[root@oracle ~]# vim /etc/security/limits.conf 
#- stack - max stack size (KB)
#- maxsyslogins - max number of logins on the system
#- priority - the priority to run user process with
#- locks - max number of file locks the user can hold
#- sigpending - max number of pending signals
#- msgqueue - max memory used by POSIX message queues (bytes)
#- nice - max nice priority allowed to raise to values: [-20, 19]
#- rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

#End of file

oracle        soft    nproc           2047       #單使用者可使用的程式數量
oracle        hard    nproc           16384
oracle        soft    nofile          1024       #使用者可開啟的檔案數量
oracle        hard    nofile          65536
oracle        soft    stack           10240      #堆疊設定

[root@oracle ~]# vim /etc/profile

if [ $USER = "oracle" ]
 then
   if [ $SHELL = "/bin/ksh" ]
     then
       ulimit -p 16384       #緩衝區大小
       ulimit -n 65536
   else
     ulimit -u 16384 -n 65536    #程式數  檔案數
   fi
fi
[root@oracle ~]# source /etc/profile

2.8 oracle安裝

[root@oracle ~]# mkdir /abc
[root@oracle ~]# cd /abc/
[root@oracle abc]# unzip linuxx64_12201_database.zip          //把之前傳好的包源解壓壓到/abc中


##在圖形化介面操作
xhost +   //以root使用者在圖形化介面操作

su - oracle   //切換oracle使用者

cd /abc 
[oracle@oracle ~]$ export DISPLAY=:0.0         //初始化畫素調整
[oracle@oracle ~]$ cd /abc/
[oracle@oracle abc]$ ls
database  linuxx64_12201_database.zip
[oracle@oracle abc]$ cd database/
[oracle@oracle database]$ ls
install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[oracle@oracle database]$ ./runInstaller    //執行安裝程式

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

##切換 root  使用者
[root@oracle app]# /orc/app/oraInventory/orainstRoot.sh 
更改許可權/orc/app/oraInventory.
新增組的讀取和寫入許可權。
刪除全域性的讀取, 寫入和執行許可權。

更改組名/orc/app/oraInventory 到 oinstall.
指令碼的執行已完成。
[root@oracle app]# /orc/app/oracle/product/12.2.0/dbhome_1/root.sh 

2.9 用瀏覽器測試

  1. 用瀏覽器輸入:https://Oracle:5500/em
    在這裡插入圖片描述
    注意:瀏覽器需要有Flash外掛

  2. 登入名:sys 密碼:abc123 勾選:as sysdba
    在這裡插入圖片描述

  3. 使用命令列介面用oracle使用者登入

[root@oracle ~]# su - oracle 
Last login: Thu Oct 22 23:16:11 CST 2020
[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 10月 22 23:30:01 2020

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


連線到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> help index     (檢視命令列表,sql中不區分大寫小寫)

SQL> show user       (檢視當前使用者)

三 啟動資料庫

3.1 啟動Oracle例項(非裝載階段)

● SQL>start nomount;

3.2 由例項裝載資料庫(裝載階段)

● SQL>Alter Database MOUNT;

3.3 開啟資料庫(開啟階段)

● SQL>Alter Database OPEN;

四 關閉資料庫

在這裡插入圖片描述

五 啟動監聽

●作用:客戶端訪問Oracle例項

[oracle@Oracle ~]$ lsnrctl 
LSNRCTL> start
TNS-01106: 使用名稱LISTENER的監聽程式已經啟動

六 關閉監聽

[oracle@Oracle ~]$ lsnrctl stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle)(PORT=1521)))
命令執行成功

相關文章