1. 程式人生 > >Centos 7上安裝新版數據庫Oracle12c

Centos 7上安裝新版數據庫Oracle12c

red 外連接 工作 運行 windows 密碼 防止 lang bash

Oracle 是一個數據庫管理系統,是Oracle公司的核心產品。其在數據安全性與安整性控制方面的優越性能,以及跨操作系統、跨硬件平臺的數據操作能力。基於“客戶端/服務器”(Client/Server)系統結構。

主要特點:

1.支持多用戶、大事務量的事務處理。

2.在保持數據安全性和完整性方面性能優越。

3.支持分布式數據處理。將公布在不同物理位置的數據庫用通信網絡連接起來,組成一個邏輯上統一的數據庫,完成數據處理任務。

4.具有可移植性。Oracle可以在Windows、Linux等多個操作系統平臺上使用。
Oracle基本概念:

1.數據庫。這裏的數據庫是磁盤上存儲數據的集合,在物理上表現為數據文件、日誌文件和控制文件等。在邏輯上以表空間形式存在。必須首先創建數據庫,然後才能用Oracle。可以在Database Configuation Assistant上創建。

2.全局數據庫名。用於區分一個數據庫的標識。它由數據庫名稱和域名構成,類似網絡中的域名,使數據庫的命名在整個網絡環境中唯一。

3.數據庫實例。每個啟動的數據庫都對應一個數據庫實例,由這個實例來訪問數據庫中的數據。

4.表空間。每個數據庫都是由若幹個表空間構成的,用戶在數據庫中建立的所有內容都被存儲到表空間中。一個表空間可以由多個數據文件組成,但一個數據文件只能屬於一個表空間。

5.數據文件。擴展名是.dbf,是用於存儲數據庫數據的文件。一個數據文件中可能存儲很多個表的數據,而一個表的數據也可以存放在多個數據文件中。數據文件和數據庫表不存在一對一的關系。

6.控制文件。技展名.ctl,是一個二進制文件。控制文件是數據庫啟動及運行所必需的文件。存儲數據文件和日誌文件的名稱和位置。Oracle 11g默認包含三個控制文件。

7.日誌文件。擴展名.log,它記錄了數據的所有更改信息,並提供了一種數據恢復機制,確保在系統崩潰或其他意外出現後重新恢復數據庫。在工作過程中,多個日誌文件組之間循環使用。

8.模式和模式對象。模式是數據庫對象(表、索引等,也稱模式對象)的集合。

Oracle數據類型:

1、字符數據類型:

1)char數據類型。當需要固定長度字符串時,使用char。長度1~2000字節。如果沒有指定大小,默認1字節。如果用戶輸入的值小於指定的大小,系統用空格填充。如果大於,報錯。

2)varchar2數據類型,支持可變長度的字符串。大小為1~4000字節。如果用戶輸入的值小於指定的大小,不用填充,varchar2數據類型可以節省磁盤空間。如果varchar2想根據定義的長度存儲相應的漢字個數

如:varchar2(10 char)

3)nchar數據類型,即國家字符集,使用方法和char相同。用來存儲Unicode字符集類型,即雙字節字符數據。最小單位1字符。

4)nvarchar2與nchar類似,只是可變長度的。

2.數值數據類型number:

number數據類型可以存儲正數、負數、零、定點數、精度為38信的浮點數。

語法:number(p,s) --如果不寫p,s內容,是否是沒有限制?

p 為精度,表示數字的有效位數,在1~38之間,從左邊第一個不為0的數算起,小數點和負號不計入有效位數。

s 為範圍,表示小數右邊數字的位數,在-84~+127之間。

規則:首先精確到小數中右邊s位,並四舍五入。如果精確後值的有效位數<=p,則正確;否則報錯。

3.日期時間數據類型:用於存儲日期值和時間值

1)date數據類型,用於存儲表中的日期和時間數據。使用7字節固定長度,每個字節分別存儲世紀、年、月、日、時、分和秒。sysdate函數的功能是返回當前的日期和時間。

2)timestamp數據類型,用於存儲日期的年、月、日以及時間的小時、分和秒。秒值精確到小數小後6位,包含時區信息。systimestamp函數的功能是返回當前日期、時間和時區。

改變日期格式:

Oracle中的SQL窗口:alter session set nls date format=’YYYY-MM-DD HH24:MI:SS’;//只對當前窗口有效。

環境變量:鍵:nls_date_format

值:YYYY-MM-DD HH24:MISS

4.遊標類型,SYS_REFCURSOR類型是Oracle提供的系統遊標類型。

如下,過程返回一個遊標類型:

CREATE OR REPLACE PROCEDURE get_sals(

cur_salary OUT SYS_REFCURSOR

)

IS

BEGIN

OPEN our_salary FOR 

SELECT empno, sal FROM employee;

END;

簡單介紹後我們開始安裝!!!
前提條件:database包和flash-player-npapi-26.0.0.131-release.x86_64.rpm包

一、關閉防火墻自啟動,以及相關功能和增強性安全功能

[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0

二、創建xfs格式文件系統並且進行掛載,創建/orc目錄為掛載目錄

[root@localhost~]#mkfs -t xfs /dev/sdb1
[root@localhost~]#mount /dev/sdb1 /orc
註:這裏需要在虛擬機中添加一塊不小於15G的硬盤,重啟後生效

三、更改主機名,添加用戶地址

[root@localhost ~]#vim /etc/hostname  //更改主機名Oracle
HOSTNAME=oracle    //重啟虛擬機後生效
[root@localhost ~]#vim /etc/hosts
local_host_ip Oracle   //本機地址和用戶,’O‘為大寫 

四、安裝軟件環境包

[root@localhost ~]#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

五、調整內核參數

[root@localhost ~]#vim /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@localhost ~]#sysctl -p   //重新加載配置文件

六、用戶環境配置

[root@localhost ~]#groupadd oinstall
[root@localhost ~]#groupadd dba
[root@localhost ~]#useradd -g oinstall -G dba oracle
[root@localhost ~]#passwd oracle  //密碼123123
[root@localhost ~]#mkdir -p /orc/app/oracle
[root@localhost ~]#chown -R oracle:oinstall /orc/app/
[root@localhost ~]#chmod -R 755 /orc/app/oracle/

七、oracle用戶環境配置

[root@localhost ~]#vim /home/oracle/.bash_profile 
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

八、oracle用戶資源限制,使用pam_limits認證模式

註:這裏編輯的內容在末行插入即可,不需要改變原有內容

[root@localhost ~]#vim /etc/pam.d/login
session    required     /lib/security/pam_limits.so
session    required     pam_limits.so
[root@localhost ~]#vim /etc/security/limits.conf
oracle        soft    nproc           2047       #單用戶可使用的進程數量
oracle        hard    nproc           16384
oracle        soft    nofile          1024       #用戶可打開的文件數量
oracle        hard    nofile          65536
oracle        soft    stack           10240      #堆棧設置
[root@localhost ~]#vim /etc/profile
if [ $USER = "oracle" ]
 then
   if [ $SHELL = "/bin/ksh" ]
     then
       ulimit -p 16384       #緩沖區大小
       ulimit -p 65536
   else
     ulimit -u 16384 -n 65536    #進程數  文件數
   fi
fi

九、oracle安裝,把解壓的database包掛載在/abc目錄

[root@localhost ~]#mount database  /abc

十、在圖形化界面操作

[root@localhost ~]#xhost +   //以root用戶在圖形化界面操作
[root@localhost ~]#su - oracle   //切換oracle用戶
[oracle@localhost ~]$cd /abc
[oracle@localhost abc]$export DISPLAY=:0.0
[oracle@localhost database]$./runInstall //執行安裝

掛載flash的rpm包安裝
[root@localhost ~]#rpm -ivh flash-player-npapi-26.0.0.131-release.x86_64.rpm

使用火狐瀏覽打開
https://Oracle:5500/em
登錄名:sys 密碼:abc123 勾選:as sysdba
可能遇到問題的解決方案:
1、安裝中在進程72%左右彈窗處理

[oracle@localhost ~]$su - root
[root@localhost ~]#/orc/app/oraInventory/orainstRoot.sh
[root@localhost ~]#/orc/app/oracle/product/12.2.0/dbhome_1/root.sh

技術分享圖片

2、報錯磁盤空間不夠
①檢查添加硬盤的空間大小,不能小於15G
②oracle數據庫安裝成功後,執行./runInstall命令,可以再次安裝,所以這裏要避免重復安裝
註意事項:
1、只有切換成oracle用戶才可以安裝,不要在root用戶下安裝
2、更改主機名時需重啟生效,之前的掛載項需要重新掛載
3、界面訪問登陸不上,需重新關閉防火墻和網絡安全性增強功能
[root@localhost ~]#setenforce 0
技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

Centos 7上安裝新版數據庫Oracle12c