🌞大家好!我是互聯網-小啊宇 ~主要從事運維相關作業,喜歡寫博客來記錄自己學習的點點滴滴,很高興可以把每篇文章分享給面前的你,如果對你有幫助不妨點個關注,
?這篇文章主要講解Linux服務器如何搭建Oracle 12c資料庫

官方檔案:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/index.html
Oracle 12C
- Vmware創建實驗所用Linux桌面化虛擬機(如果有機器則跳過)
- 新建虛擬機
- 開啟虛擬機,引導配置
- 設定網卡地址資訊、聯網
- 安裝Oracle 12C資料庫
- 主機資訊
- 1.關閉防火墻,禁止防火墻開機自啟
- 2.關閉selinux
- 3.yum安裝必要安裝包
- 4.創建 swap
- 5.創建 oracle 磁區(可選、我自己跳過了)
- 6.創建 oracle data 目錄(同第5步可選、我自己跳過了)
- 7.設定時區、升級系統、安裝桌面環境
- 8.創建oracle用戶與用戶組
- 9.引數配置
- 10.重啟服務器
- 11.下載或拷貝oracle檔案
- 12.配置環境變數
- 13.解壓并開始安裝
- 我先選擇典型安裝做示例:
- 高級安裝如下操作:
- 14.創建啟停腳本
- 15.啟動并測驗服務
- 16.創建Linux服務(可選、我跳過了)
Vmware創建實驗所用Linux桌面化虛擬機(如果有機器則跳過)
新建虛擬機







配置完畢后點關閉

開啟虛擬機,引導配置





點開以后什么都不需要設定,進來之后就點完成



設定root賬號密碼

創建普通用戶


等待安裝,,,

安裝完成




用root賬戶登錄



登錄后、一直前進

看到如下界面,安裝成功完畢!

設定網卡地址資訊、聯網

配置ip,查看自己網卡名稱



修改完成后:
ESC #退出編輯模式
:wq #保存并退出

重啟網路

測驗查看ip、聯網情況

成功
此時本機得xshell也可以進行連接虛擬機

安裝Oracle 12C資料庫
官方安裝檔案
https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-oracle-linux-6-and-7
首先下載安裝包
Oracle 12C安裝包
鏈接:https://pan.baidu.com/s/1GYgSF2gPhhHg94hsEfChcw
提取碼:p8u4
主機資訊
hostname: ol7-122.localdomain
hosts: 192.168.1.10 ol7-122.localdomain ol7-122
[root@localhost ~]# vi /etc/hosts

1.關閉防火墻,禁止防火墻開機自啟
# 關閉防火墻
systemctl stop firewalld.service
# 禁止防火墻開機啟動
systemctl disable firewalld.service
# 查看防火墻狀態
systemctl status firewalld.service
2.關閉selinux
# 編輯檔案
vi /etc/selinux/config
# 修改內容
SELINUX=disabled
3.yum安裝必要安裝包
使用 yum 批量安裝依賴包,若執行一遍失敗則繼續執行第二遍(多次執行不會出現其他問題)
yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
檢查是否安裝成功(31個安裝包)
rpm -q 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
4.創建 swap
我建議swap還是要重新創建一下,不然后面oracle典型安裝得時候swap空間不足報警;
高級安裝可以自定義記憶體大小;
下面以8G為例操作:(我設定得swap與運行記憶體相同)
如果你本來就又swap(不是0),也可以直接按下面的步驟進行,重新設定是沒有問題的,
1、查看當前記憶體
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 733M 5.3G 33M 1.6G 6.5G
Swap: 5.0G 0B 5.0G
2、創建用于交換磁區的檔案:增加2G大小的交換磁區,count等于想要的塊大小 (1024000x8)
[root@localhost ~]# dd if=/dev/zero of=/home/swap bs=1024 count=8192000
記錄了8192000+0 的讀入
記錄了8192000+0 的寫出
8388608000位元組(8.4 GB)已復制,26.9355 秒,311 MB/秒
3、設定交換磁區檔案
[root@localhost ~]# mkswap /home/swap
正在設定交換空間版本 1,大小 = 8191996 KiB
無標簽,UUID=e4a6e8b2-dedf-4075-a0a4-d96e1d0d8fbf
4、立即啟用交換磁區檔案
[root@localhost ~]# swapon /home/swap
swapon: /home/swap:不安全的權限 0644,建議使用 0600,
5、再查看記憶體情況,swap就出來了(下方的12G是把原來的5G加上了,都操作完重啟之后5G就沒了)
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 740M 126M 31M 6.8G 6.5G
Swap: 12G 2.0M 12G
如果想使得開機自啟動,想要修改檔案/etc/fastb 修改swap行
#
# /etc/fstab
# Created by anaconda on Mon Dec 6 20:50:25 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e4f255cc-23a0-49be-95a6-e8e80675aa9f /boot xfs defaults 0 0
/home/swap swap swap defaults 0 0
~
修改完之后重啟
[root@localhost ~]# reboot
[root@ol7-122 ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 402M 6.8G 16M 407M 6.9G
Swap: 7.8G 0B 7.8G
5.創建 oracle 磁區(可選、我自己跳過了)
如果你作業系統原有磁區都合適,這步可以忽略
# 查看硬碟及磁區資訊(啟動Disk開頭的就是硬碟,Device開頭的就是磁區)
fdisk -l
# 創建磁區(/dev/sdb 是硬碟,是你需要創建磁區的硬碟,創建磁區后會生成 /dev/sdb1,如果本來有sdb1,則會出現sdb2)
fdisk /dev/sdb
# 格式化新創建的磁區
mkfs.xfs /dev/sdb1
# 將磁區添加到 /etc/fstab 檔案中,使之開機自動掛載(編輯保存 fstab 檔案后不會立即生效)
vim /etc/fstab
/dev/sdb1 /u01 xfs defaults 0 0
6.創建 oracle data 目錄(同第5步可選、我自己跳過了)
# 創建目錄
mkdir /u01
# 重新加載檔案 /etc/fstab 所有內容,該操作會忽略所有已經完成的操作,所以多次執行,只會有第一次能看到效果,
mount -a
?
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 20G 12G 8.7G 57% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 13M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 2.0G 179M 1.9G 9% /boot
/dev/mapper/centos-home 10G 33M 10G 1% /home
tmpfs 781M 4.0K 781M 1% /run/user/42
tmpfs 781M 52K 781M 1% /run/user/0
/dev/sdb 20G 33M 20G 1% /u01
7.設定時區、升級系統、安裝桌面環境
(我們在上面創建的桌面化虛擬機所以這步跳過;
如果最開始安裝的是最小化的則需要安裝桌面化)
方式一:針對最小化安裝的系統
# 設定時區
timedatectl set-timezone Asia/Shanghai
# 升級系統
yum clean all && yum update -y
# 安裝桌面環境(兩個組包必須,不然安裝oracle會出現卡死現象)
yum groupinstall "GNOME Desktop" "Server with GUI" -y
# 安裝完畢設定開機啟動桌面環境
systemctl set-default graphical.target
方式2 : 預裝系統時勾選桌面環境功能
- Server with GUI
- Hardware Monitoring Utilities
- Large Systems Performance
- Network file system client
- Performance Tools
- Compatibility Libraries
- Development Tools
8.創建oracle用戶與用戶組
# 創建oinstall和dba組
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
# 創建oracle用戶
useradd -u 54321 -g oinstall -G dba,oper oracle
# 設定oracle密碼
passwd oracle
# 查看創建結果
[root@ol7-122 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) 組=54321(oinstall),54322(dba),54323(oper)
9.引數配置
配置內核引數(這些引數根據你機器的配置不同,有些引數需要再次修改,在安裝oralce程序中的check那一步,會給出提示,按要求逐個修改對應的推薦值即可)
[root@ol7-122 ~]# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
[root@ol7-122 ~]# sysctl -p
# 配置ulimit引數
vi /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
# 設定上面創建的資料目錄權限
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
10.重啟服務器
reboot
11.下載或拷貝oracle檔案
Oracle 12C安裝包
鏈接:https://pan.baidu.com/s/1GYgSF2gPhhHg94hsEfChcw
提取碼:p8u4
12.配置環境變數
mkdir /home/oracle/scripts
?
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=ol7-122.localdomain
export ORACLE_UNQNAME=zhufuc_sscp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=zhufuc_sscp
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
?
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
# 執行命令使環境變數生效
source /home/oracle/.bash_profile
13.解壓并開始安裝
假設 oracle 檔案已經下載到 /opt/linuxx64_12201_database.zip
使用圖形化安裝方式,你可以直接在原服務器上連接顯示幕安裝,或者使用其他 ssh 遠程安裝(不帶圖形化的靜默安找找度娘), 如果使用
Xshell 這種工具安裝(需要開啟X11,可以參考:Xshell 顯示圖形化界面)
[root@ol7-122 ~]# cd /opt
[root@ol7-122 opt]# ls
linuxx64_12201_database.zip rh
[root@ol7-122 opt]# unzip linuxx64_12201_database.zip
給oracle用戶安裝目錄的權限
[root@ol7-122 opt]# chown -R oracle:oinstall database/
[root@ol7-122 opt]# chmod -R 775 database/
[root@ol7-122 opt]# ll
總用量 3372752
drwxrwxr-x 7 oracle oinstall 117 1月 27 2017 database
-rw-r--r-- 1 root root 3453696911 12月 6 14:30 linuxx64_12201_database.zip
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
準備安裝的時候
切記!切記!切記!
如果是虛擬機請切換用戶重新登陸
如果是xshell也請切換用戶重新連接
不要使用su - oracle 后面執行安裝腳本會報錯!
虛擬機切換用戶:


xshell使用oracle用戶連接:
執行安裝
[oracle@ol7-122 ~]$ cd /opt
[oracle@ol7-122 opt]$ ./database/runInstaller
正在啟動 Oracle Universal Installer...
檢查臨時空間: 必須大于 500 MB, 實際為 25677 MB 通過
檢查交換空間: 必須大于 150 MB, 實際為 7999 MB 通過
檢查監視器: 監視器配置至少必須顯示 256 種顏色, 實際為 16777216 通過
準備從以下地址啟動 Oracle Universal Installer /tmp/OraInstall2021-12-06_02-40-45PM. 請稍候...
會自動彈出安裝界面







我先選擇典型安裝做示例:



會進行檢查,如果之前swap跟我一樣設定了這里不會報swap空間不足!如果沒有其他報錯!則成功跳轉下個界面,
如果選擇典型安裝,swap大小是根據你的運行記憶體大小而定!
如果選擇高級安裝,swap使用大小可以調整!

到這里就可以進行安裝了!安裝完就成功了!
高級安裝如下操作:






在高級安裝里可以自定義記憶體




我在創建虛擬機的時候磁盤沒給夠,所以我就不選擇恢復區了,直接下一步





安裝

根據提示操作使用root用戶
[root@ol7-122 /]# /u01/app/oraInventory/orainstRoot.sh
更改權限/u01/app/oraInventory.
添加組的讀取和寫入權限,
洗掉全域的讀取, 寫入和執行權限,
更改組名/u01/app/oraInventory 到 oinstall.
腳本的執行已完成,
[root@ol7-122 /]# /u01/app/oracle/product/12.2.0.1/db_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/12.2.0.1/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :
Oracle Trace File Analyzer (TFA - User Mode) is available at :
/u01/app/oracle/product/12.2.0.1/db_1/suptools/tfa/release/tfa_home/bin/tfactl
OR
Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script :
/u01/app/oracle/product/12.2.0.1/db_1/suptools/tfa/release/tfa_home/install/roottfa.sh
腳本執行完畢后,點擊確定繼續安裝,
如下圖:
證明安裝完畢,https://ol7-122.localdomain:5500/em
這個地址是Oracle的em地址,web界面
域名則對應的是你的Linux服務器IP

現在訪問不了可能是瀏覽器不支持flash

其實原頁面是這樣的:


安裝后
使用oracle用戶編輯“ /etc/oratab”檔案,將每個實體的重新啟動標志設定為“ Y”,
zhufuc:/u01/app/oracle/product/12.2.0.1/db_1:Y
14.創建啟停腳本
cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME
EOF
?
?
cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME
EOF
?
chown -R oracle.oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh
注釋:如果執行腳本報錯dbstart、dbshut找不到命令
可直接使用命令操作
dbstart /u01/app/oracle/product/12.2.0.1/db_1
dbshut /u01/app/oracle/product/12.2.0.1/db_1
15.啟動并測驗服務
su - oracle
~/scripts/start_all.sh # 啟動腳本
~/scripts/stop_all.sh # 停止腳本
?
# 使用 telnet 測驗服務埠
telnet 127.0.0.1 1521
?
# 使用 sqlplus 登錄資料庫
sqlplus /nolog
conn / as sysdba
16.創建Linux服務(可選、我跳過了)
創建一個新服務以自動啟動/停止Oracle資料庫,這是假定Oracle資料庫不使用Oracle重新啟動和“start_all.sh”和“stop_all.sh”腳本已經存在
創建名為“ /lib/systemd/system/dbora.service”的服務檔案,
vi /lib/systemd/system/dbora.service
[Unit]
Description=The Oracle Database Service
After=syslog.target network.target
?
[Service]
# systemd ignores PAM limits, so set any necessary limits in the service.
# Not really a bug, but a feature.
# https://bugzilla.redhat.com/show_bug.cgi?id=754285
LimitMEMLOCK=infinity
LimitNOFILE=65535
?
#Type=simple
# idle: similar to simple, the actual execution of the service binary is delayed
# until all jobs are finished, which avoids mixing the status output with shell output of services.
RemainAfterExit=yes
User=oracle
Group=oinstall
Restart=no
ExecStart=/bin/bash -c '/home/oracle/scripts/start_all.sh'
ExecStop=/bin/bash -c '/home/oracle/scripts/stop_all.sh'
?
[Install]
WantedBy=multi-user.target
?
systemctl daemon-reload
systemctl stop dbora.service
systemctl start dbora.service
systemctl enable dbora.service
至此,Oracle 資料庫安裝結束,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/374760.html
標籤:其他
上一篇:c++專案——聊天室——第一節
下一篇:Hadoop筆記(1)
