linux安裝Oracle11G 本教程使用的環境是: 1H2C2G Centos7 64位 檢查硬體環境 記憶體要求 1GB(最好是2GB),交換記憶體大於物理記憶體的1.5倍,硬碟空間大於16GB。 下麵是通過root用戶操作 如果交換記憶體比較小,我們文件作為swap分區來增加swap大小 修改下各種 ...
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
註意此處,必須使用/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
以靜默方式建立新庫,同時也建立一個對應的實例
[oracle@myYUn ~]$ vim /home/oracle/response/dbca.rsp
修改文件中以下參數:
[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"
進行靜默配置:
[oracle@myYUn ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
建庫後進行實例進程檢查:
[oracle@myYUn ~]$ ps -ef | grep ora_ | grep -v grep
查看監聽狀態:
[oracle@myYUn ~]$ lsnrctl status
資料庫創建完成。
有關詳細信息, 請查看以下位置的日誌文件: /data/oracle/cfgtoollogs/dbca/orcl/orcl.log。
資料庫信息:
全局資料庫名:orcl.oracledb
系統標識符 (SID):orcl
登錄查看實例狀態:
[oracle@myYUn ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
【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