為 Linux 安裝 Oracle


linux安裝Oracle11G

本教程使用的環境是:

1H2C2G

Centos7 64位

檢查硬件環境

內存要求>1GB(最好是2GB),交換內存大於物理內存的1.5倍,硬盤空間大於16GB。

下面是通過root用戶操作

#查看當前的內存的使用,這個命令比較直觀
free -m

如果交換內存比較小,我們文件作為swap分區來增加swap大小

#創建存放充當swap分區文件的目錄
mkdir /swap
#創建充當swap分區的文件,文件大小就是要增加的swap大小,of是文件位置,這里我們增加2G內存=2048*1M
dd if=/dev/zero of=/swap/swapfile bs=1M count=2048
#格式化交換分區文件
mkswap /swap/swapfile
#給分區文件設置下權限:0600
chmod 0600 /swap/swapfile
{
#啟動交換分區文件
swapon /swap/swapfile
#如果提示設備或資源忙,先執行
swapoff /swap/swapfile
}
#然后設置開機自啟,編輯/etc/fstab追加:
/swap/swapfile swap swap defaults 0 0

修改下各種配置文件,也就是軟件環境

修改主機名,這個應該是規范化

hostnamectl set-hostname oracledb
echo "127.0.0.1     oracledb" >>/etc/hosts

關閉selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
#這個是使修改立即生效
setenforce 0

0、下載Orcle11G

官方網站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
根據自己的服務器,下載相應的軟件,我的系統是64位的,所以下載的是 Linux x86-64的,下載完的兩個文件如下

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

然后用sftp工具上傳到服務器

更換yum源,可以跳過

更換為阿里雲的yum源,使yum命令下載軟件更快

cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除緩存
yum clean all
#更新緩存
yum makecache

安裝oracle依賴庫

不想這樣的話,可以檢查下哪個沒裝

yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

最后再檢查下

rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

通過yum install pdksh -y 安裝缺少 package ,這個庫yum源中沒有,需要自己下載;

通過wget命令直接下載pdksh的rpm包,下載到至/tmp/

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
cd /tmp
#安裝
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

注意:**

安裝oracle時,可能會提示某些依賴庫沒有安裝(而實際上你安裝了),這個是因為oracle需要32位的軟件,而你安裝了64位。不過不要緊,我們可以忽略掉,這個不影響什么。

Centos7中pdksh庫就是ksh庫,這個也可以忽略。

添加oracle用戶組和用戶

如果要安裝Oracle數據庫,則需要以下本地操作系統組和用戶:

  • Oracle inventory組(通常為 oinstall)
  • OSDBA組 (通常為 dba)
  • OSOPER組 (通常為 oper)
  • Oracle軟件所有者(通常為 oracle)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
#驗證是否成功
id oracle
#給oracle用戶設置密碼
passwd oracle

修改內核參數

vi /etc/sysctl.conf
## 追加如下內容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmni = 4096
# kernel.shmmax 參數設置為物理內存的一半
kernel.shmmax = 1073741824
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 = 1048586
#使修改立即生效
sysctl -p

限制oracle用戶的shell權限

[root@localhost ~]# vi /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 ~]# vi /etc/pam.d/login
session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

修改/etc/profile文件

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

讓修改立即生效

[root@localhost ~]# source /etc/profile

開始安裝

創建安裝目錄和設置文件權限

[root@myYUn software]# mkdir -p /opt/oracle/product/11.2.0

[root@myYUn software]# mkdir /opt/oracle/oradata

[root@myYUn software]# mkdir /opt/oracle/oraInventory

[root@myYUn software]# mkdir /opt/oracle/fast_recovery_area

[root@myYUn software]# chown -R oracle:oinstall /opt/oracle

[root@myYUn software]# chmod -R 775 /opt/oracle

解壓安裝包

[root@myYUn install]# unzip linux.x64_11gR2_database_1of2.zip

[root@myYUn install]# unzip linux.x64_11gR2_database_2of2.zip

將解壓后的文件夾直接移動到/software目錄下:

mkdir /software

[root@myYUn install]# mv database/ /software/

[root@myYUn install]# cd /software

[root@myYUn install]# ll

復制應答文件到用戶目錄

cp -R /software/database/response /home/oracle
db_install.rsp:安裝應答

dbca.rsp:創建數據庫應答

netca.rsp:建立監聽、本地服務名等網絡設置的應答

參考文檔:https://blog.csdn.net/java3344520/article/details/8063785

此步跳過!創建 vi /etc/oraInst.loc

inventory_loc=/opt/oracle/oraInventory

inst_group=oinstall

並授權

chown oracle:oinstall /etc/oraInst.loc

chmod 664 /etc/oraInst.loc

執行了這一步,等會靜默安裝時,沒有orainstRoot.sh了。

設置oracle用戶環境變量

首先切換到oracle用戶下:

[root@myYUn software]# su -l oracle

[oracle@myYUn ~]$ vim .bash_profile

在末尾添加如下內容:

ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

注意,標紅處必須與創建的數據庫實例名稱一致,否則數據庫啟動后無法訪問。第一次配置完記得source一下。

[oracle@myYUn ~]$ source .bash_profile

編輯靜默安裝響應文件

[oracle@myYUn ~]$ cd response/

[oracle@myYUn response]$ vim db_install.rsp

需要修改的選項如下:

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=oracledb

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/opt/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/opt/oracle/product/11.2.0

ORACLE_BASE=/opt/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true
各參數含義如下:

-silent 表示以靜默方式安裝,不會有任何提示

-force 允許安裝到一個非空目錄

-noconfig 表示不運行配置助手netca

-responseFile 表示使用哪個響應文件,必需使用絕對路徑

oracle.install.responseFileVersion 響應文件模板的版本,該參數不要更改

oracle.install.option 安裝選項,本例只安裝oracle軟件,該參數不要更改

DECLINE_SECURITY_UPDATES 是否需要在線安全更新,設置為false,該參數不要更改

ORACLE_HOSTNAME 安裝主機名

UNIX_GROUP_NAME oracle用戶用於安裝軟件的組名

INVENTORY_LOCATION oracle產品清單目錄

SELECTED_LANGUAGES oracle運行語言環境,一般包括引文和簡繁體中文

ORACLE_HOME Oracle安裝目錄

ORACLE_BASE oracle基礎目錄

oracle.install.db.InstallEdition 安裝版本類型,一般是企業版

oracle.install.db.isCustomInstall 是否定制安裝,默認Partitioning,OLAP,RAT都選上了

oracle.install.db.customComponents 定制安裝組件列表:除了以上默認的,可加上Label Security和Database Vault

oracle.install.db.DBA_GROUP oracle用戶用於授予OSDBA權限的組名

oracle.install.db.OPER_GROUP oracle用戶用於授予OSOPER權限的組名

根據響應文件靜默安裝Oracle11g

[oracle@myYUn response]$ cd /software/database/

[oracle@myYUn database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq

執行成功:

[oracle@oracledb database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
正在啟動 Oracle Universal Installer...

檢查臨時空間: 必須大於 120 MB。   實際為 36560 MB    通過
檢查交換空間: 必須大於 150 MB。   實際為 4088 MB    通過
准備從以下地址啟動 Oracle Universal Installer /tmp/OraInstall2020-03-04_09-00-29AM. 請稍候...[oracle@oracledb database]$ 可以在以下位置找到本次安裝會話的日志:
 /opt/oracle/oraInventory/logs/installActions2020-03-04_09-00-29AM.log
以下配置腳本需要以 "root" 用戶的身份執行。
 #!/bin/sh 
 #要運行的 Root 腳本

/opt/oracle/product/11.2.0/root.sh
要執行配置腳本, 請執行以下操作:
	 1. 打開一個終端窗口
	 2. 以 "root" 身份登錄
	 3. 運行腳本
	 4. 返回此窗口並按 "Enter" 鍵繼續

Successfully Setup Software.

如果安裝失敗,可以查看日志文件,里面會列出原因。

orainstRoot.sh:
設置產品目錄位置與擁有該目錄的操作系統組,並產生/etc/oraInst.loc。

如果配置過/etc/oraInst.loc,就沒有這個腳本了

root.sh:
用來設置必要的操作系統權限,並將orahome,oraenv,coraenv復制到/usr/local/bin目錄下。生成/etc/oratab,其中存放一些數據庫相關信息。

執行這兩個腳本

可以在以下位置找到本次安裝會話的日志:/data/oracle/inventory/logs/installActions2018-05-13_02-14-55PM.log

按照要求執行腳本。

打開終端,退出到root身份登錄,執行腳本:

[oracle@iZ2f570bi1k56uZ database]$ exit

logout

[root@iZ2f570bi1k56uZ software]# sh /data/oracle/inventory/orainstRoot.sh

Changing permissions of /data/oracle/inventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /data/oracle/inventory to oinstall.

The execution of the script is complete.

[root@iZ2f570bi1k56uZ software]# sh /data/oracle/product/11.2.0/root.sh

Check /data/oracle/product/11.2.0/install/root_iZ2f570bi1k56uZ_2018-05-13_14-25-04.log for the output of root script

以靜默方式配置監聽

重新使用oracle用戶登錄

[root@myYUn software]# su -l oracle

Last login: Sun May 13 14:09:10 CST 2018 on pts/3

[oracle@myYUn ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp

img

注意此處,必須使用/silent /responseFile格式,而不是-silent -responseFile,因為是靜默安裝。

成功運行后,在/opt/oracle/product/11.2.0/network/admin中生成listener.ora和sqlnet.ora

通過netstat命令可以查看1521端口正在監聽。

Yum安裝netstat軟件,軟件包是在net-tools中。

[root@myYUn /]# yum install net-tools

[root@myYUn /]# yum install net-tools

img

以靜默方式建立新庫,同時也建立一個對應的實例

[oracle@myYUn ~]$ vim /home/oracle/response/dbca.rsp

修改文件中以下參數:

[復制代碼](javascript:void(0)😉

[GENERAL]

# oracle版本,不能更改
RESPONSEFILE_VERSION = "11.2.0"

# Description   : Type of operation
OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]

# Description   : Global database name of the database
# 全局數據庫的名字=SID+主機域名
# 第三方工具鏈接數據庫的時候使用的service名稱
GDBNAME = "orcl.oracledb"

# Description   : System identifier (SID) of the database
# 對應的實例名字
SID = "orcl"

# Description   : Name of the template
# 建庫用的模板文件
TEMPLATENAME = "General_Purpose.dbc"

# Description   : Password for SYS user
# SYS, 數據庫管理帳戶
SYSPASSWORD = "123456"

# Description   : Password for SYSTEM user
# SYSTEM, 數據庫管理帳戶
SYSTEMPASSWORD = "123456"

# Description   : Password for SYSMAN user
# SYSMAN,企業管理器帳戶
SYSMANPASSWORD = "123456"

# Description   : Password for DBSNMP user
# DBSNMP,目錄集成平台用戶
DBSNMPPASSWORD = "123456"

# Description   : Location of the data file's
# 數據文件存放目錄
DATAFILEDESTINATION =/opt/oracle/oradata

# Description   : Location of the data file's
# 恢復數據存放目錄
RECOVERYAREADESTINATION=/opt/oracle/fast_recovery_area

# Description   : Character set of the database
# 字符集,重要!!! 建庫后一般不能更改,所以建庫前要確定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "AL32UTF8"

# Description   : total memory in MB to allocate to Oracle
# oracle內存1638MB,物理內存2G*80%
TOTALMEMORY = "1638" 

[復制代碼](javascript:void(0)😉

進行靜默配置:

[oracle@myYUn ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp

img

建庫后進行實例進程檢查:

[oracle@myYUn ~]$ ps -ef | grep ora_ | grep -v grep

img

查看監聽狀態:

[oracle@myYUn ~]$ lsnrctl status

img

數據庫創建完成。

有關詳細信息, 請查看以下位置的日志文件: /data/oracle/cfgtoollogs/dbca/orcl/orcl.log。

數據庫信息:

全局數據庫名:orcl.oracledb

系統標識符 (SID):orcl

登錄查看實例狀態:

[oracle@myYUn ~]$ sqlplus / as sysdba

SQL> select status from v$instance;

img

linux 成功安裝oracle后,為其創建一個登錄賬戶

如果報錯:【ORA-12162: TNS:net service name is incorrectly specified】

錯誤原因:【這個錯誤是因為ORACLE_SID變量沒有傳進去造成的。】

解決方法:

1.查看當前ORACLE_SID

[oracle@iZ2f570bi1k56uZ ~]$ echo $ORACLE_SID

orcl

2.修改ORACLE_SID和/home/oracle/response/dbca.rsp中的一樣

[oracle@iZ2f570bi1k56uZ ~]$ export ORACLE_SID=orcl

3.如果遇到ORA-12162: TNS:net service name is incorrectly specified.錯誤

參考文章:【ORA-12162: TNS:net service name is incorrectly specified.

4.如果依然不能登陸,嘗試修改orcle文件夾的權限

【如果本地連接時,出現監聽錯誤,參考Linux中安裝Oracle11g后出現監聽的問題及解決辦法

命令行模式靜默刪除

1、首先查看dbca的幫助信息

dbca -help

修改/home/oracle/response/dbca.rsp文件里以下幾個參數,下面三個參數根據建庫實際情況進行修改:

OPERATION_TYPE = "deleteDatabase"

SOURCEDB = "orcl"

SYSDBAUSERNAME = "sys"

SYSDBAPASSWORD = "123456"

然后運行:

dbca -silent -responseFile /home/oracle/response/dbca.rsp

各參數含義如下:

-silent 表示以靜默方式刪除

-responseFile 表示使用哪個響應文件,必需使用絕對路徑

RESPONSEFILE_VERSION 響應文件模板的版本,該參數不要更改

OPERATION_TYPE 安裝類型,該參數不要更改

SOURCEDB 數據庫名,不是全局數據庫名,即不包含db_domain

很簡單數據庫卸載完成了,請注意,只是數據庫卸載完了,數據庫軟件還是在的。

2、使用DBCA卸載數據庫

dbca -silent -delete Database -responseFile dbca.rsp

a.選項-silent表示靜默安裝,免安裝交互,大部分安裝信息也不輸出

b.選項-responseFile指定應答文件,要求用絕對路徑

一些常用命令

進入到數據庫后執行,查詢數據庫服務的名稱

select global_name from global_name:

啟動監聽

lsnrctl start

關閉監聽

lsnrctl stop

查看監聽狀態

Lsnrctl status

進入到數據庫執行,關閉數據庫

shutdown

進入到數據庫執行,打開數據庫

startup

設置開機自啟

su - oracle
將下面兩個文件的ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME

vim /opt/oracle/product/11.2.0/bin/dbstart
vim /opt/oracle/product/11.2.0/bin/dbshut

#修改配置
vim /etc/oratab

orcl:/opt/oracle/product/11.2.0:X改為orcl:/opt/oracle/product/11.2.0:Y

#修改rc.local文件
chmod 755 /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
#在rc.local中添加:
su oracle -lc "/opt/oracle/product/11.2.0/bin/lsnrctl start"
su oracle -lc /opt/oracle/product/11.2.0/bin/dbstart

參考文檔:

https://juejin.im/post/5ca20514e51d4533e324a17f

https://www.jianshu.com/p/b4200e721bfd

https://blog.51cto.com/canonind/1883066

Centos7 防火牆開放 oracle 端口:

https://blog.csdn.net/fw19940314/article/details/80182762


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM