您好,登錄后才能下訂單哦!
Linux 命令符下安裝Oracle
之前都是使用腳本直接安裝,這樣很容易出現(xiàn)出現(xiàn)問(wèn)題 不知道排錯(cuò), 于是嘗試在linux 下手動(dòng)分步安裝, 內(nèi)部有些原理并不是很懂, 待慢慢完善, 最好是多安裝幾次圖形化安裝,理解原理。
一、準(zhǔn)備安裝的環(huán)境:
1.硬件: centos 6.5
Oracle database 11g
/db 分區(qū)大于10G
/free 內(nèi)存大于2G
2.Oracle 的安裝的兩個(gè)軟件包:
linux.x64_11gR2_database_2of2.zip
linux.x64_11gR2_database_1of2.zip
下載地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip
--http-user=$usr --http-password=$code
wgethttp://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zip
--http-user=$usr --http-password=$code
注意: 這里提供一個(gè)下載的地址是本公司的軟件下載地址,也可以去oracle 官網(wǎng)上下
64 位的11g 版本的。
3.安裝oracle 的必須依賴(lài)包(必須檢查,否則安裝后會(huì)報(bào)錯(cuò)):
檢查所有依賴(lài)包是否有安裝
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc ksh libstdc++-devel libstdc++ make numactl-devel sysstat compat-gcc-34 compat-gcc-34-c++ gcc libXp openmotif compat-db glibc.i686
使用rpm 檢查”not“ 沒(méi)有安裝的,使用yum -y install 安裝即可, 安裝完之后最好
使用rpm 再檢查一下。
4. 填寫(xiě)hosts 文件及主機(jī)名, 因?yàn)?/span>oracle 會(huì)根據(jù)hosts 進(jìn)行綁定,不填好會(huì)報(bào)錯(cuò),創(chuàng)
建不了參數(shù)及實(shí)例,如下:
5. 關(guān)閉iptables 和selinux
二 、 進(jìn)入安裝
1. 建立oracle 的用戶(hù), Oracle 需要有自己的用戶(hù)操作:
groupadd oinstall
groupadd dba
useradd -d /home/oracle -g oinstall -G dba -m oracle
2. 建立數(shù)據(jù)庫(kù)的目錄db, 如果業(yè)務(wù)用,需要足夠的空間,最好的單獨(dú)的分區(qū)。
mkdir -p /db/oracle11g/product/11.2.0/db
chmod -R 775 /db
chown -R oracle:oinstall /db
3. 修改內(nèi)核參數(shù),以便支持oracle
1)在/etc/sysctl.conf 文件中, 使用vim進(jìn)行編輯, 省事,直接在最后增加上就行,
參數(shù)如下:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
如下:
是更改的內(nèi)核生效:
/sbin/sysctl -p
2) 修改用戶(hù)的限制:
修改 /etc/security/limits.conf 文件, 直接在最后面增加就行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
再在/etc/pam.d/login 的文件中修改,直接在最后面增加就行:
session required /lib64/security/pam_limits.so
session required pam_limits.so
最后在/etc/profile 文件中, 添加如下,使之以上限制用戶(hù)的生效(一下首字母是小
寫(xiě),由于文本格式的問(wèn)題自動(dòng)調(diào)成小寫(xiě)了)。
If [ $USER = “oracle” ];then
If [ $SHELL = “/bin/ksh”];then
Ulimit -p 16384
Ulimit -n 65536
Else
Ulimit -u 16384 -n 65536
Fi
Fi
使之生效
Source /etc/profile
4. 設(shè)置oracle 用戶(hù)的環(huán)境變量,這里要小心特別注意,一個(gè)沒(méi)注意就會(huì)導(dǎo)致沒(méi)有權(quán)限
安裝。如下:
Vi /home/oracle/.bash_profile
export ORACLE_BASE=/db/oracle11g #這個(gè)是聲明數(shù)據(jù)庫(kù)的目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db # 這個(gè)是數(shù)據(jù)庫(kù)的家
目錄
export ORACLE_SID="benguo" #這個(gè)是指安裝oracle 的實(shí)例名字,可隨你業(yè)務(wù)
名字寫(xiě)或者公司, 如果你需要一次性將實(shí)例也
安裝上, 可以在這里添加sid , 否則你后面
也要寫(xiě), 如果忘寫(xiě)了就可能會(huì)出錯(cuò)。
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #這個(gè)在環(huán)境,oracle 家目錄
的變量,否則在安裝數(shù)據(jù)庫(kù)
的時(shí)候就會(huì)找不sqlplus ,
造成安裝不成功。
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib #這個(gè)是指oracle 的庫(kù),也
需要指明,否則造成依賴(lài)庫(kù)找不到
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #字符集
export
注意: 添加完oracle 的環(huán)境變量就需要進(jìn)行生效,命令如下:
Source /home/oracle/.bash_profile
實(shí)驗(yàn)如下圖:
5. 解壓oracle 的安裝文件包,如下:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
提醒: 在這里我說(shuō)明一下我的軟件包安裝的路徑, 因?yàn)檫@個(gè)解壓后的安裝包,在后面
還需要被用上, 所以也需要特別的注意權(quán)限的問(wèn)題。我的環(huán)境如下:
我在/db 下創(chuàng)建了一個(gè)soft 目錄,并給oracle 用戶(hù)遞歸的所有權(quán)限, 將兩個(gè)安裝的軟件包放在soft 下,進(jìn)行加壓得到database 目錄。
Mkdir -p /db/soft
Chown -R Oracle:oinstall /db/soft
Chmod -R 755 /db/soft
6. 靜默安裝數(shù)據(jù)庫(kù)軟件:
1) 靜默安裝需要相應(yīng)文件模板的文件, 在解壓后的安裝軟件包的database 的目錄下有一個(gè)response響應(yīng)目錄下的db_install.rsp , 修改步驟如下:
Su - oracle
Vim /db/soft/database/response/db_install.rsp 修改響應(yīng)安裝數(shù)據(jù)庫(kù)的模塊,如下:
[root@server161 response]# egrep -v "#|^$" db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY #安裝數(shù)據(jù)庫(kù)的類(lèi)型
ORACLE_HOSTNAME=localhost.localdomain #主機(jī)的名稱(chēng)(hostname)查詢(xún)
UNIX_GROUP_NAME=oinstall #安裝組
INVENTORY_LOCATION=/db/oraInventory #可以是默認(rèn)值, inventory 目錄
SELECTED_LANGUAGES=en #選擇安裝的語(yǔ)言
ORACLE_HOME=/db/oracle11g/product/11.2.0/db #oracle 的家目錄,你設(shè)置的oracle 環(huán)境
中是多少就寫(xiě)多少
ORACLE_BASE=/db/oracle11g #Oracle安裝目錄
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=
oracle.install.db.DBA_GROUP=dba #dba 用戶(hù)組
oracle.install.db.OPER_GROUP=oinstall #oper 用戶(hù)組
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false #手動(dòng)寫(xiě)了false
DECLINE_SECURITY_UPDATES=true #設(shè)置安全更新(貌似是有bug,這個(gè)一定
要選true ,否則會(huì)無(wú)限制提醒郵件地址有問(wèn)題,
終止安裝,)
PROXY_HOST=
PROXY_PORT=
以上未寫(xiě)的可以空著。
開(kāi)始靜默安裝
Cd /db/soft/database
./runInstaller -ignorePrereq -silent -responseFile /db/soft/database/response/db_install.rsp -force
安裝的時(shí)候有出現(xiàn)一些info waring 的信息, 不用再意,主要注意error 的信息,出現(xiàn)以下信息是安裝完畢。如下:
注意: 如果沒(méi)有安裝終止了,則根據(jù)靜默安裝的日志進(jìn)行查看解決。
注:安裝完數(shù)據(jù)庫(kù)庫(kù)之后則需要測(cè)試能否能進(jìn)數(shù)據(jù)庫(kù), sqlplus / as sysdba 如果提示sqlplus 命令找不到,可以在oracle 用戶(hù)命令下進(jìn)行查看$PATH,看是否有路徑,如果沒(méi)有,則需要查看以下oracle 用戶(hù)的環(huán)境變化ORACLE_HOME 變量是否被加入到PATH 中, 如下:
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
2) 安裝完數(shù)據(jù)庫(kù)之后則需要進(jìn)行更改以下配置, 在這里只需要使用root 用戶(hù)去執(zhí)行自帶的腳本就可以,如以下兩個(gè)腳本:
/db/oraInventory/orainstRoot.sh
以上這個(gè)腳本是自動(dòng)去配置系統(tǒng)安裝配置文件/etc/oralnst.loc ,并給予權(quán)限的。 注意如果在安裝數(shù)據(jù)之前就進(jìn)行了配置這個(gè)文件, 安裝的數(shù)據(jù)庫(kù)的時(shí)候不會(huì)生成這個(gè)腳本和自帶的默認(rèn)腳本。具體的配置如下:
Vim /etc/oraInst.loc
Nventory_loc=/db/oraInventory #這個(gè)路徑指的是數(shù)據(jù)庫(kù)放inventory 的路徑。
inst_group=oinstall #這個(gè)是安裝組
注意 在這里需要進(jìn)行查看權(quán)限,
Chown oracle:oiinstall /etc/oraInst.loc
Chmod 644 /etc/oraInst.loc
Sh /db/oracle11g/product/11.2.0/db/root.sh (使用root 下進(jìn)行執(zhí)行)
這個(gè)腳本是具體關(guān)于一些更改參數(shù)的設(shè)置,具體可以自己打開(kāi)看。
7、 進(jìn)行靜默配置網(wǎng)絡(luò)監(jiān)聽(tīng)
$ORACLE_HOME/bin/netca /silent /responseFile /db/soft/database/response/netca.rsp
注意: 這個(gè)模板使用默認(rèn)的就可以,oracle 的監(jiān)聽(tīng)文件在安裝完實(shí)例之后進(jìn)行配置添加。
在這個(gè)安裝完之后在/db/oracle11g/product/11.2.0/db/network/admin/ 下會(huì)出現(xiàn)一些監(jiān)聽(tīng)的文件,如下:
[root@server161 ~]# ll /db/oracle11g/product/11.2.0/db/network/admin/
總用量 16
-rw-r--r--. 1 oracle oinstall 536 4月 7 15:46 listener.ora
drwxr-xr-x. 2 oracle oinstall 4096 4月 7 11:03 samples
-rw-r--r--. 1 oracle oinstall 187 5月 7 2007 shrept.lst
-rw-r--r--. 1 oracle oinstall 213 4月 7 15:37 sqlnet.ora
8. 靜默安裝數(shù)據(jù)庫(kù)實(shí)例 (在oracle 用戶(hù)安裝)
在這里需要配置靜默安裝數(shù)據(jù)庫(kù)響應(yīng)的模板文件,也是在安裝軟件包中解壓在database下的response 目錄下的 dbca_rsp 文件,具體配置如下:
[root@spider101 ~]# egrep -v "#|^$" /vol/ora11g/dbca_benguo.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "benguo" #全局?jǐn)?shù)據(jù)庫(kù)的名字
SID = "benguo" # 數(shù)據(jù)庫(kù)實(shí)例,根據(jù)上面的你寫(xiě)的SID 一樣的,隨便寫(xiě)。
TEMPLATENAME = "benguo.dbc" # 這個(gè)可以是默認(rèn)的模板,不會(huì)寫(xiě)默認(rèn)的,最好是默認(rèn),
這里是我們dba 寫(xiě)的,所以就用上了。
SYSPASSWORD = "2011@oracle"
SYSTEMPASSWORD = "2011@oracle"
SYSMANPASSWORD = "2011@oracle"
DBSNMPPASSWORD = "2011@oracle" # 前面這四個(gè)都可以不管,默認(rèn)就行
CHARACTERSET = "ZHS16GBK" #編碼
NATIONALCHARACTERSET=“UTF8” #編碼
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
INSTANCENAME = "orcl11g"
SYSDBAUSERNAME = "sys"
配置完模板之后,進(jìn)行靜默安裝數(shù)據(jù)庫(kù)
$ORACLE_HOME/bin/dbca -silent -responseFile /db/soft/database/response/dbca.rsp
等到100%安裝完成之后就是安裝了。
9. 安裝數(shù)據(jù)庫(kù)的實(shí)例之后,進(jìn)行配置數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)以及監(jiān)聽(tīng)文件。
1)修改監(jiān)聽(tīng)文件,添加命令如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = benguo)
(ORACLE_HOME = /db/oracle11g/product/11.2.0/db)
(SID_NAME = benguo)
)
)
實(shí)驗(yàn)如下圖:
2)修改實(shí)例啟動(dòng)配置文件,如下圖,將”N”改成”Y”就好了。這樣就可以通過(guò)dbstart 啟動(dòng)實(shí)例,監(jiān)聽(tīng)器。
Su - oracle
10 。安裝到這一步的時(shí)候就算是安裝成功了, 可以進(jìn)行netstat 進(jìn)行查看oracle 的監(jiān)聽(tīng)程序是否已經(jīng)啟動(dòng), 默認(rèn)情況下,安裝完實(shí)例就是啟動(dòng)的狀態(tài)。
或者是進(jìn)入數(shù)據(jù)庫(kù)內(nèi)進(jìn)行查看數(shù)據(jù)庫(kù)的狀態(tài):
Su - oracle
Sqlplus / as sysdba
Select status from v$instance;
如是open的狀態(tài)即是正常啟動(dòng)的,如圖:
在這里你的數(shù)據(jù)庫(kù)就是正常的安裝了,并且還正??梢赃\(yùn)行。
三 數(shù)據(jù)庫(kù)的一些功能的使用。
1. 設(shè)置數(shù)據(jù)庫(kù)自啟動(dòng),在/etc/rc.d/init.d/oracle 下
#!/bin/bash
#
# oracle Starts Oracle Database Server
#
#
# chkconfig: 345 80 20
# description: Oracle Database Server
### BEGIN INIT INFO
# Provides: $oracle
### END INIT INFO
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - oracle -c dbshut >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbshut >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo "Done."
echo -n "Restarting Oracle Listeners: "
su - oracle -c "lsnrctl stop" >> /var/log/oracle
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
Esac
Chmod 755 /etc/rc.d/init.d/oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle
2. 安裝數(shù)據(jù)庫(kù)之后, 需要?jiǎng)?chuàng)建表空間才能正能使用。
注意: 在創(chuàng)建表空間之前,首先創(chuàng)建表空間名字存放的數(shù)據(jù)文件目錄,如下:
Mkdir -p /db/oracle11g/oradata/zebra
并設(shè)置權(quán)限,如下:
Chown orale:oinstall /db/oracle11g/oradata/zebra
實(shí)驗(yàn)如下圖:
創(chuàng)建表空間
create tablespace tyfo datafile '/db/oracle11g/oradata/tyfo/tyfo01.dbf' size 500m autoextend on next 500m maxsize 31g logging online permanent extent management local;
創(chuàng)建用戶(hù)
create user zebra identified by zebra default tablespace zebra temporary tablespace temp;
設(shè)置權(quán)限
grant dba,connect, create session, resource to zebra;
創(chuàng)建備份文件,設(shè)置權(quán)限
CREATE DIRECTORY back AS '/home/oracle';
GRANT READ,WRITE ON DIRECTORY back to zebra;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
alter system set audit_trail=false scope=spfile;
shutdown abort;
startup;
今天就寫(xiě)到這為止, 有新的需求在再寫(xiě)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。