CentOS7安裝Oracle 11g資料庫

一、準備

1. Oracle11g安裝包:

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

 

2. 虛擬機配置參考:

虛擬機安裝CentOS7具體過程參見://blog.51cto.com/14451009/2428059?source=dra

 

 

 

 

 

 

 

我的配置方案是40G的硬碟/boot(系統啟動目錄)6個G,/(根目錄)20個G,/home(存放所有用戶文件的根目錄)10個G,swap(虛擬記憶體)4個G。

 

二、CentOS7配置

首先確認關閉防火牆和Selinux,不知道可百度。

1. 創建用戶組和用戶

[root@localhost /]# groupadd oinstall
[root@localhost /]# groupadd dba
[root@localhost /]# user-g oinstall -G dba -m oracle  #創建oracle用戶,歸屬oinstall和dba兩個組
[root@localhost /]# groups oracle  # 驗證oracle對應的組
oracle : dba
[root@localhost /]# id oracle
uid=1001(oracle) gid=1002(dba) groups=1002(dba)  #少了oinstall,再用usermod把用戶加到oinstall組

[root@localhost /]# usermod -a -G oinstall oracle
[root@localhost /]# id oracle
uid=1001(oracle) gid=1002(dba) groups=1002(dba),1001(oinstall)
[root@localhost /]# groups oracle
oracle : dba oinstall

2. 創建目錄

[root@localhost /]# mkdir -p /data/oracle
[root@localhost /]# mkdir -p /data/oraInventory
[root@localhost /]# mkdir -p /data/database
[root@localhost /]# cd /data  #驗證創建情況
[root@localhost data]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul 11 11:36 database
drwxr-xr-x. 2 root root 6 Jul 11 11:36 oracle
drwxr-xr-x. 2 root root 6 Jul 11 11:36 oraInventory
[root@localhost data]# cd ..
[root@localhost /]# chown -R oracle:oinstall /data/oracle  #改變目錄屬主為oracle
[root@localhost /]# chown -R oracle:oinstall /data/oraInventory
[root@localhost /]# chown -R oracle:oinstall /data/database
[root@localhost /]# ll /data
total 0
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 database
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oracle
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oraInventory

3. 修改內核版本名稱

因為oracle默認不支援在centos7上安裝,所以改為redhat-7

[root@localhost /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@localhost /]# cp /etc/redhat-release /etc/redhat-release.bak #備份
[root@localhost /]# vi /etc/redhat-release
redhat-7

4. 安裝依賴包

[root@localhost /]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers gl ibc-static kernel-headers libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

Oracle前提校驗依賴pdksh,但yum雲上沒有,網上查了說可以用ksh代替,這裡單獨安裝

[root@localhost /]# yum -y install pdksh

5. 修改內核參數

參考:Linux 下安裝Oracle 時,/etc/sysctl.conf 內核參數設置詳解 //blog.csdn.net/weixin_34239169/article/details/89830714

[root@localhost /]# cp /etc/sysctl.conf /etc/sysctl.conf.bak
[root@localhost /]# vi /etc/sysctl.conf
# 添加下面內容
kernel.shmall = 2097152
kernel.shmmax = 2147483648  # 也可以是kernel.shmmax = 4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[root@localhost /]# /sbin/sysctl -p  # 執行立即生效
[root@localhost /]# cat /proc/sys/kernel/shmmax  # 驗證是否生效

6. 修改用戶oracle限制參數,提高軟體運行性能

[root@localhost /]# cp /etc/security/limits.conf /etc/security/limits.conf.bak
[root@localhost /]# vi /etc/security/limits.conf
# 在最後添加下面幾行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

7. 修改用戶oracle環境變數

[root@localhost /]# cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
[root@localhost /]# vi /home/oracle/.bash_profile
......
# 注釋下面兩行
# PATH=$PATH:$HOME/.local/bin:$HOME/bin  

# export PATH 

# 添加下面內容
export ORACLE_BASE=/data/oracle  # 資料庫安裝路徑
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
export ORACLE_SID=orcl  # 實例名
export ORACLE_TERM=xterm 
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

退出後用root用戶執行下面命令,使該配置文件即時生效。

[root@localhost /]#source /home/oracle/.bash_profile

 

三、安裝Oracle資料庫

1. 將oracle11g安裝包拷貝到centos,解壓到/data/database

[root@localhost data]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database
[root@localhost data]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database
[root@localhost data]# chown -R oracle:oinstall /data/database  # 修改所有者
[root@localhost data]# ll /data/database
total 0
drwxr-xr-x. 7 oracle oinstall 136 Aug 27  2013 database

2. 開始安裝oracle資料庫

[root@localhost data]# su oracle  #切換到oracle用戶安裝
[oracle@localhost data]$ cd /database/database  #進入解壓後的路徑
[oracle@localhost database]$ ./runInstaller  #執行安裝程式

 

 

 

 

 

 

僅安裝資料庫軟體

 

單實例安裝

 

語言添加Simplified Chinese

 

安裝路徑和.bash_properties環境變數配置中的一致

 

 

這裡提示pdksh缺失,因為已經安裝了ksh,所以可以ignore all,然後點擊Next。

 

 最後一步,保留安裝過程,新開一個xshell窗口,按提示要求用root登錄並執行以下腳本,然後回到此介面點擊OK。

[root@localhost /]# /data/oraInventory/orainstRoot.sh
Changing permissions of /data/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /data/oraInventory to oinstall.
The execution of the script is complete.
[root@localhost /]# /data/oracle/product/11.2.0/db_1/root.sh
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /data/oracle/product/11.2.0/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 ...
......

遇到報錯:

 

解決方案: 保留安裝過程,另外開啟一個終端窗口,找到$ORACLE_HOME/sysman/lib /ins_emagent.mk文件,將

$(MK_EMAGENT_NMECTL)

替換為

$(MK_EMAGENT_NMECTL) -lnnz11

然後在安裝過程中點擊Retry即可。

到此,oracle資料庫軟體安裝完成,下面要創建監聽和實例。

四、創建Oracle實例

參考://blog.csdn.net/lia17/article/details/82256565

1. 創建監聽:

使用oracle用戶登錄,執行netca 命令進入可視化監聽配置介面,一路Next完成

[oracle@localhost database]$ whereis netca
netca: /data/oracle/product/11.2.0/db_1/bin/netca
[oracle@localhost database]$ cd /data/oracle/product/11.2.0/db_1
[oracle@localhost db_1]$ netca

 

 

 

 

 

 

 

監聽配置完成。

 

2. 創建實例:

[oracle@localhost db_1]$ dbca  #執行配置程式

 

 

 

 

 

配置實例名orcl

 

 

 

 

 

配置sys和system密碼

 

Memory Size要在40%~60%之間

 

 

Charater sets要選擇ZHS16GBK,否則顯示中文會亂碼

 

點擊OK,結束創建實例!至此,可以正常使用oracle11g資料庫了。

五、創建Oracle登錄用戶

1. 在centos中用sys用戶登錄,驗證是否正常能正常登陸

[oracle@localhost db_1]$ sqlplus sys/password as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 11 14:07:00 2020

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> SELECT * FROM v$pwfile_users;

SQL> exit;

 

2. 退出後用PL/SQL訪問登錄,用sys用戶登錄

-- 創建表空間
--  默認設置表空間自動擴展,且每次擴展空間大小為100M,限制最大空間為5G,注:datafile後面是表空間的物理存儲路徑,文件名的後綴可以隨便.
create tablespace test_user01 datafile '/data/oracle/oradata/orcl/test_user01.dbf' size 200M autoextend on next 100m maxsize 5G;

-- 創建用戶
create user test_user01 identified by test_user01;
-- 分配表空間到用戶
alter user test_user01 default tablespace test_user01;

-- 賦權sysdba許可權
grant sysdba to test_user01;

-- 賦權其他許可權,否則無法登錄
grant create session,create table,create view,create sequence,connect,resource,unlimited tablespace to test_user01; 

-- 嘗試用test_user01登錄
-- conn test_user01/test_user01; 

-- 登錄之後查詢用戶所具有的許可權
select * from session_privs; 

/*-- 刪除用戶及其相關對象,刪除之前先斷開相關鏈接
drop user username cascade;*/

 

參考鏈接:

中國:

//www.cnblogs.com/dudu99/p/11074489.html

//blog.csdn.net/lia17/article/details/82256565

//blog.csdn.net/csgd2000/article/details/100224722

//www.cnblogs.com/MicleZhou2020/p/12200622.html

 

國外:

//dbaora.com/install-oracle-11g-release-2-11-2-on-centos-linux-7/

//oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-7

 

Oracle官方:

//www.oracle.com/cn/technical-resources/articles/hunter-rac11gr2-iscsi2.html#13