您好,登錄后才能下訂單哦!
Linux 命令符下安裝Oracle
之前都是使用腳本直接安裝,這樣很容易出現出現問題 不知道排錯, 于是嘗試在linux 下手動分步安裝, 內部有些原理并不是很懂, 待慢慢完善, 最好是多安裝幾次圖形化安裝,理解原理。
一、準備安裝的環境:
1.硬件: centos 6.5
Oracle database 11g
/db 分區大于10G
/free 內存大于2G
2.Oracle 的安裝的兩個軟件包:
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
注意: 這里提供一個下載的地址是本公司的軟件下載地址,也可以去oracle 官網上下
64 位的11g 版本的。
3.安裝oracle 的必須依賴包(必須檢查,否則安裝后會報錯):
檢查所有依賴包是否有安裝
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“ 沒有安裝的,使用yum -y install 安裝即可, 安裝完之后最好
使用rpm 再檢查一下。
4. 填寫hosts 文件及主機名, 因為oracle 會根據hosts 進行綁定,不填好會報錯,創
建不了參數及實例,如下:
5. 關閉iptables 和selinux
二 、 進入安裝
1. 建立oracle 的用戶, Oracle 需要有自己的用戶操作:
groupadd oinstall
groupadd dba
useradd -d /home/oracle -g oinstall -G dba -m oracle
2. 建立數據庫的目錄db, 如果業務用,需要足夠的空間,最好的單獨的分區。
mkdir -p /db/oracle11g/product/11.2.0/db
chmod -R 775 /db
chown -R oracle:oinstall /db
3. 修改內核參數,以便支持oracle
1)在/etc/sysctl.conf 文件中, 使用vim進行編輯, 省事,直接在最后增加上就行,
參數如下:
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
如下:
是更改的內核生效:
/sbin/sysctl -p
2) 修改用戶的限制:
修改 /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 文件中, 添加如下,使之以上限制用戶的生效(一下首字母是小
寫,由于文本格式的問題自動調成小寫了)。
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. 設置oracle 用戶的環境變量,這里要小心特別注意,一個沒注意就會導致沒有權限
安裝。如下:
Vi /home/oracle/.bash_profile
export ORACLE_BASE=/db/oracle11g #這個是聲明數據庫的目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db # 這個是數據庫的家
目錄
export ORACLE_SID="benguo" #這個是指安裝oracle 的實例名字,可隨你業務
名字寫或者公司, 如果你需要一次性將實例也
安裝上, 可以在這里添加sid , 否則你后面
也要寫, 如果忘寫了就可能會出錯。
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #這個在環境,oracle 家目錄
的變量,否則在安裝數據庫
的時候就會找不sqlplus ,
造成安裝不成功。
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib #這個是指oracle 的庫,也
需要指明,否則造成依賴庫找不到
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #字符集
export
注意: 添加完oracle 的環境變量就需要進行生效,命令如下:
Source /home/oracle/.bash_profile
實驗如下圖:
5. 解壓oracle 的安裝文件包,如下:
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
提醒: 在這里我說明一下我的軟件包安裝的路徑, 因為這個解壓后的安裝包,在后面
還需要被用上, 所以也需要特別的注意權限的問題。我的環境如下:
我在/db 下創建了一個soft 目錄,并給oracle 用戶遞歸的所有權限, 將兩個安裝的軟件包放在soft 下,進行加壓得到database 目錄。
Mkdir -p /db/soft
Chown -R Oracle:oinstall /db/soft
Chmod -R 755 /db/soft
6. 靜默安裝數據庫軟件:
1) 靜默安裝需要相應文件模板的文件, 在解壓后的安裝軟件包的database 的目錄下有一個response響應目錄下的db_install.rsp , 修改步驟如下:
Su - oracle
Vim /db/soft/database/response/db_install.rsp 修改響應安裝數據庫的模塊,如下:
[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 #安裝數據庫的類型
ORACLE_HOSTNAME=localhost.localdomain #主機的名稱(hostname)查詢
UNIX_GROUP_NAME=oinstall #安裝組
INVENTORY_LOCATION=/db/oraInventory #可以是默認值, inventory 目錄
SELECTED_LANGUAGES=en #選擇安裝的語言
ORACLE_HOME=/db/oracle11g/product/11.2.0/db #oracle 的家目錄,你設置的oracle 環境
中是多少就寫多少
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 用戶組
oracle.install.db.OPER_GROUP=oinstall #oper 用戶組
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 #手動寫了false
DECLINE_SECURITY_UPDATES=true #設置安全更新(貌似是有bug,這個一定
要選true ,否則會無限制提醒郵件地址有問題,
終止安裝,)
PROXY_HOST=
PROXY_PORT=
以上未寫的可以空著。
開始靜默安裝
Cd /db/soft/database
./runInstaller -ignorePrereq -silent -responseFile /db/soft/database/response/db_install.rsp -force
安裝的時候有出現一些info waring 的信息, 不用再意,主要注意error 的信息,出現以下信息是安裝完畢。如下:
注意: 如果沒有安裝終止了,則根據靜默安裝的日志進行查看解決。
注:安裝完數據庫庫之后則需要測試能否能進數據庫, sqlplus / as sysdba 如果提示sqlplus 命令找不到,可以在oracle 用戶命令下進行查看$PATH,看是否有路徑,如果沒有,則需要查看以下oracle 用戶的環境變化ORACLE_HOME 變量是否被加入到PATH 中, 如下:
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
2) 安裝完數據庫之后則需要進行更改以下配置, 在這里只需要使用root 用戶去執行自帶的腳本就可以,如以下兩個腳本:
/db/oraInventory/orainstRoot.sh
以上這個腳本是自動去配置系統安裝配置文件/etc/oralnst.loc ,并給予權限的。 注意如果在安裝數據之前就進行了配置這個文件, 安裝的數據庫的時候不會生成這個腳本和自帶的默認腳本。具體的配置如下:
Vim /etc/oraInst.loc
Nventory_loc=/db/oraInventory #這個路徑指的是數據庫放inventory 的路徑。
inst_group=oinstall #這個是安裝組
注意 在這里需要進行查看權限,
Chown oracle:oiinstall /etc/oraInst.loc
Chmod 644 /etc/oraInst.loc
Sh /db/oracle11g/product/11.2.0/db/root.sh (使用root 下進行執行)
這個腳本是具體關于一些更改參數的設置,具體可以自己打開看。
7、 進行靜默配置網絡監聽
$ORACLE_HOME/bin/netca /silent /responseFile /db/soft/database/response/netca.rsp
注意: 這個模板使用默認的就可以,oracle 的監聽文件在安裝完實例之后進行配置添加。
在這個安裝完之后在/db/oracle11g/product/11.2.0/db/network/admin/ 下會出現一些監聽的文件,如下:
[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. 靜默安裝數據庫實例 (在oracle 用戶安裝)
在這里需要配置靜默安裝數據庫響應的模板文件,也是在安裝軟件包中解壓在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" #全局數據庫的名字
SID = "benguo" # 數據庫實例,根據上面的你寫的SID 一樣的,隨便寫。
TEMPLATENAME = "benguo.dbc" # 這個可以是默認的模板,不會寫默認的,最好是默認,
這里是我們dba 寫的,所以就用上了。
SYSPASSWORD = "2011@oracle"
SYSTEMPASSWORD = "2011@oracle"
SYSMANPASSWORD = "2011@oracle"
DBSNMPPASSWORD = "2011@oracle" # 前面這四個都可以不管,默認就行
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"
配置完模板之后,進行靜默安裝數據庫
$ORACLE_HOME/bin/dbca -silent -responseFile /db/soft/database/response/dbca.rsp
等到100%安裝完成之后就是安裝了。
9. 安裝數據庫的實例之后,進行配置數據庫實例啟動以及監聽文件。
1)修改監聽文件,添加命令如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = benguo)
(ORACLE_HOME = /db/oracle11g/product/11.2.0/db)
(SID_NAME = benguo)
)
)
實驗如下圖:
2)修改實例啟動配置文件,如下圖,將”N”改成”Y”就好了。這樣就可以通過dbstart 啟動實例,監聽器。
Su - oracle
10 。安裝到這一步的時候就算是安裝成功了, 可以進行netstat 進行查看oracle 的監聽程序是否已經啟動, 默認情況下,安裝完實例就是啟動的狀態。
或者是進入數據庫內進行查看數據庫的狀態:
Su - oracle
Sqlplus / as sysdba
Select status from v$instance;
如是open的狀態即是正常啟動的,如圖:
在這里你的數據庫就是正常的安裝了,并且還正常可以運行。
三 數據庫的一些功能的使用。
1. 設置數據庫自啟動,在/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. 安裝數據庫之后, 需要創建表空間才能正能使用。
注意: 在創建表空間之前,首先創建表空間名字存放的數據文件目錄,如下:
Mkdir -p /db/oracle11g/oradata/zebra
并設置權限,如下:
Chown orale:oinstall /db/oracle11g/oradata/zebra
實驗如下圖:
創建表空間
create tablespace tyfo datafile '/db/oracle11g/oradata/tyfo/tyfo01.dbf' size 500m autoextend on next 500m maxsize 31g logging online permanent extent management local;
創建用戶
create user zebra identified by zebra default tablespace zebra temporary tablespace temp;
設置權限
grant dba,connect, create session, resource to zebra;
創建備份文件,設置權限
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;
今天就寫到這為止, 有新的需求在再寫。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。