安裝Oracle 12c
Oracle資料庫部署:
Ø 學會使用Oracle軟體
Ø 學會使用DBCA工具安裝Oracle資料庫
Ø 學會啟動、關閉Oracle資料庫
Ø 學會啟動資料庫監聽程序
在centos7安裝Oracle要求:
防火牆禁用
Selinux禁用
[root@oracle ~]# systemctl stop firewalld.service
[root@oracle ~]# setenforce 0
[root@oracle ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@oracle ~]# vim /etc/selinux/config
[root@oracle ~]# getenforce
Permissive
預設安裝設定為軟體開發
前置條件準備:
系統及配置要求:Oracle12c支援centos05~7版本。通過此目錄檢視版本:
[root@oracle ~]# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)
Linux作業系統要求:
實體記憶體:必須高於1GB,Vmware虛擬機器建議不少於2GB。
交換空間:越高越好。Oracle吃記憶體
[root@oracle ~]# grep MemTotal /proc/meminfo
MemTotal: 3865552 kB
[root@oracle ~]# grep SwapTotal /proc/meminfo
SwapTotal: 4063228 kB
Ps:實驗環境Oracle需要至少準備15G的硬碟空間。
[root@oracle ~]# df –hT
安裝Oracle資料庫前,規劃好指定主機名和IP。
Ps:安裝成功儘量不在修改主機名。
軟體環境要求:
建議使用安裝有GNOMEZ中文桌面環境。
yum -y install binutils compat-* gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
調整核心引數,在末尾寫入一下引數
[root@oracle ~]# vim /etc/sysctl.conf
[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
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
Oracle使用者環境要求:
[root@oracle ~]# groupadd -g 54321 oinstall #安裝組
[root@oracle ~]# groupadd -g 54322 dba #管理組
[root@oracle ~]# useradd -u 54321 -g oinstall -G dba oracle #建立執行使用者
[root@oracle ~]# passwd oracle #設定密碼如:Oracle
[root@oracle ~]# mkdir -p /u01/app/oracle #建立Oracle基本目錄
[root@oracle ~]# chown -R oracle:oinstall /u01/app/ #更改屬組
[root@oracle ~]# chmod -R 755 /u01/app/oracle #更改許可權
調整oracle使用者的環境配置以滿足要求,在末尾加入即可:
[root@oracle ~]# vim /home/oracle/.bash_profile
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/
ORACLE_SID=orcl
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID
export DISPLAY=:0.0
Oracle使用者資源限制要求
[root@oracle ~]# vim /etc/pam.d/login #末尾新增即可
ession required /lib/security/pam_limits.so
session required pam_limits.so
[root@oracle ~]# vim /etc/pam.d/login
oracle soft nproc 2047 #程序數軟限制
oracle hard nproc 16384 #程序數硬限制
oracle soft nofile 1024 #檔案數軟限制
oracle hard nofile 65536 #檔案數硬限制
oracle soft stack 10240 #Oracle軟堆疊限制
[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
ps:不配做Oracle使用者資源限制部分,也不會影響Oracle的安裝。但是若有糟糕的SQL語句對伺服器的資源無限制佔用,會導致長時間對使用者請求無響應,建議限制Oracle使用者資源。
Oracle 12c安裝過程:
[root@oracle ~]# mkdir /tmp/oracle
[root@oracle ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 防寫,將以只讀方式掛載
[root@oracle ~]# cp /mnt/linuxx64_12201_database.zip /tmp/oracle/
[root@oracle ~]# cd /tmp/oracle/
[root@oracle oracle]# unzip linuxx64_12201_database.zip
[root@oracle oracle]# ls
database linuxx64_12201_database.zip
ps:Oracle 12c通過runlnstaller指令碼進行。
所有前置條件準備好以後,就可以正式開始安裝了,如果當前的圖形桌面環境是以其他使用者的身份(如root)登入的,則還應新增授權以允許oracle使用圖形終端。例如:“xhost + oracle@localhost”表示允許使用者oracle從本機訪問,執行“xhost +”表示取消所有限制。
[root@oracle oracle]# su - root
上一次登入:二 6月 30 11:23:13 CST 2020:0 上
最後一次失敗的登入:二 6月 30 11:44:49 CST 2020從 :0:0 上
最有一次成功登入後有 1 次失敗的登入嘗試。
[root@oracle ~]# xhost + ps:不要再終端軟體上執行
access control disabled, clients can connect from any host
[root@oracle ~]# su - oracle
[oracle@oracle ~]$ cd /tmp/oracle/database/
[oracle@192 database]$ export DISPLAY=:0.0 (可省略)
[oracle@oracle database]$ ./runInstaller
正在啟動 Oracle Universal Installer...
資料庫安裝分為 典型安裝 高階安裝。
初學者建議 典型安裝 我們以此為例。
Ps:桌面適合於個人 伺服器:企業環境
根據自己的需求進行選擇。
https://blog.csdn.net/qq482929763/article/details/107043575
驗證安裝結構:
Ps:訪問網址需要flash外掛。
https://192.168.1.62:5500/em/login
使用SQL*plus在命令列介面訪問Oracle
Ps:注意使用者
sys是Oracle的最高管理員,以sys使用者登入一般都加上as sysdba,而其他使用者則不需要。
其他使用者執行如下:
Sqlplus 使用者名稱/密碼
SQL> help index #檢視支援的指令列表
SQL> show user #檢視當前使用者
Ps:在sql模式,不區分大小寫,但linux提示符下區分大小寫。
Oracle 12c 資料庫的建立方法:
通過圖形化介面建立、CREATE DATABASE
建立資料庫的步驟如下:
[oracle@oracle ~]$ dbca
Oracle 12c資料庫的啟動與關閉
資料庫啟動的步驟:
Ø 啟動Oracle例項(非裝載階段)
Ø 由例項裝載資料庫(裝載階段)
Ø 開啟資料庫(開啟階段)
在startup nomout
SQL> startup nomount #啟動單個例項
SQL> ALTER DATABASE MOUNT; #啟動實列並安裝資料庫
SQL> ALTER DATABASE OPEN; #開啟資料庫
SQL> startup #正常啟動(一條命令搞定)
ORACLE 例程已經啟動。
Total System Global Area 1593835520 bytes
Fixed Size 8793256 bytes
Variable Size 1023411032 bytes
Database Buffers 553648128 bytes
Redo Buffers 7983104 bytes
資料庫裝載完畢。
資料庫已經開啟。
關閉資料庫
SQL> shutdow normal
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
Ps:發出該命令後,任何新的連線都將不再允許連線到資料庫。在資料庫關閉之前,oracle將等待目前連線的所有使用者都從資料庫中退出後才開始關閉資料庫。採用這種方式關閉資料庫,在下一次啟動時不需要進行任何的例項恢復。但需要注意的是,採用這種方式時,也許關閉一個數據庫需要幾天或更長的時間。
檢視例項名:SQL> show parameter name
SQL> shutdown immediate 最常用的關閉方式
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
剩下的兩種就不一一實驗了。
3)shutdown transactional
shutdown transactional 命令常用來計劃關閉資料庫,它會等待當前連線到系統且正在活動的事務執行完畢,執行該命令後,任何新的連線和事務都是不允許的。它所有活動的事務執行完成後,資料庫將以和shutdown immediate同樣的方式關閉資料庫。
4)shutdown abort
shutdown abort是關閉資料庫方式的最後選擇,是在沒有任何辦法關閉資料庫的情況下不得不採用的方式,一般不要採用。在下列情況出現時可以考慮採用這種方式關閉資料庫。
資料庫處於一種非正常工作狀態,不能用shutdown normal或shutdown immediate命令關閉資料庫;
需要立即關閉資料庫;
在啟動資料庫例項時遇到問題。
發出該命令後,所有正在執行的SQL語句將立即中止,所有未提交的事務將不回滾,oracle也不等待目前連線到資料庫的使用者退出系統;下一次啟動資料庫時需要例項恢復,因此,下一次啟動可能比平時需要更多的時間。
在關閉資料庫時最好使用shutdown immediate方式,因為這種方式安全且相對較快。不是萬不得已不要使用shutdown abort 方式,因為這種方式會造成資料丟失,並且恢復資料庫也需要較長時間。
啟動、關閉oracle監聽程序
當oracle資料庫例項啟動完成後,為了使客戶端使用者能連線到oracle例項,DBA還需要在oracle所在的伺服器上使用lsnrctl命令啟動監聽程序。如果資料庫例項關閉,一般也要關閉監聽程序。
[oracle@oracle ~]$ lsnrctl
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 30-6月 -2020 12:38:07
Copyright (c) 1991, 2016, Oracle. All rights reserved.
LSNRCTL> start #啟動監聽
TNS-01106: 使用名稱LISTENER的監聽程式已經啟動
[oracle@oracle ~]$ lsnrctl start #啟動監聽(第二種方法)
[oracle@oracle ~]$ lsnrctl stop #關閉監聽
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 30-6月 -2020 12:40:37
Copyright (c) 1991, 2016, Oracle. All rights reserved.
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
命令執行成功