安裝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, 請鍵入"help"以獲得信息。
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)))
命令執行成功