oracle11g靜默安裝(修正)

we6100發表於2016-03-23
1.作業系統及Oracle版本
Linux版本:CentOS release 6.3 (Final)
Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 (linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip)
 
2.硬體檢測:
實體記憶體不少於1G
硬碟可以空間不少於5G
swap分割槽空間不少於2G
支援256色以上顯示卡
cpu主頻不小於550mHZ
 
cat /etc/issue
uname -r (版本)
grep MemTotal /proc/meminfo (記憶體大小)
grep SwapTotal /proc/meminfo (交換區大小)
grep "model name" /proc/cpuinfo (CPU資訊)
free (可用記憶體)
 
3.檢查安裝依賴系統包
作業系統依賴的具體包,請參考官方安裝文件。
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11 (32-bit) or later
unixODBC-devel-2.2.11 (64-bit) or later
unixODBC-2.2.11 (64-bit) or later
 
檢查依賴包
 
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果包有顯示is not installed(沒安裝),就用yum install 命令安裝,如:
 
yum install compat-libstdc++-33
 
4.建立所需的作業系統組和使用者
 
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
設定oracle使用者密碼
 
passwd oracle
 
5.修改核心引數
在/sbin/sysctl.conf 檔案中,使用文字編輯器或vi命令增加或修改以下引數
 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
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 = 1048576
修改後,使設定生效
 
/sbin/sysctl -p
 
6.修改使用者限制
在/etc/security/limits.conf 檔案中,使用文字編輯器或vi命令增加或修改以下引數
 
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
在/etc/pam.d/login 檔案中,使用文字編輯器或vi命令增加或修改以下內容
 
session required /lib/security/pam_limits.so
session required pam_limits.so
在/etc/profile 檔案中,使用文字編輯器或vi命令增加或修改以下內容
 
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
7.建立安裝目錄(可根據情況,選擇比較多空間的目錄建立)
 
mkdir -p /usr/oracle
chown -R oracle:oinstall /usr/oracle
chmod -R 775 /usr/oracle
 
8.建立/etc/oraInst.loc檔案,內容如下
 
nventory_loc=/usr/oracle/oraInventory
inst_group=oinstall
更改檔案的許可權
 
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
 
9.設定oracle環境變數
 
su - oracle
 
vi ~/.bash_profile
 
在最後加上以下內容
 
export ORACLE_BASE=/usr/oracle
export ORACLE_SID=orcl
注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不設定任何oracle相關環境變數(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。
 
使設定生效
 
source /home/oracle/.bash_profile
檢查環境變數: 
env

同時,在使用靜默安裝的時候會檢查DISPLAY的設定,如果經常說檢查DISPLAY不行的話,到root使用者下執行“xhost + 你的ip:0.0“
 
10.解壓oracle安裝檔案
 
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
 
11.複製響應檔案模板
 
mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/
設定響應檔案許可權
 
su - root
chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)
12.靜默安裝Oracle軟體
 
su - oracle
修改安裝Oracle軟體的響應檔案/home/oracle/etc/db_install.rsp
 
oracle.install.option=INSTALL_DB_SWONLY // 安裝型別
ORACLE_HOSTNAME=db // 主機名稱(hostname查詢)
UNIX_GROUP_NAME=oinstall // 安裝組
INVENTORY_LOCATION=/usr/oracle/oraInventory //INVENTORY目錄(不填就是預設值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 選擇語言
ORACLE_HOME=/usr/oracle/product/11.2.0/db_1 // oracle_home
ORACLE_BASE=/usr/oracle // oracle_base
oracle.install.db.InstallEdition=EE // oracle版本
oracle.install.db.isCustomInstall=false //自定義安裝,否,使用預設元件
oracle.install.db.DBA_GROUP=dba // dba使用者組
oracle.install.db.OPER_GROUP=oinstall // oper使用者組
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //資料庫型別
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl //SID
oracle.install.db.config.starterdb.memoryLimit=81920 //自動管理記憶體的記憶體(M)
oracle.install.db.config.starterdb.password.ALL=oracle //設定所有資料庫使用者使用同一個密碼
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手動寫了false)
DECLINE_SECURITY_UPDATES=true //設定安全更新(貌似是有bug,這個一定要選true,否則會無限提醒郵件地址有問題,終止安裝。PS:不管地址對不對)

開始靜默安裝
 
cd database
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
安裝中,如果提示[WARNING]不必理會,此時安裝程式仍在進行,如果出現[FATAL],則安裝程式已經停止了。
檢視安裝日誌資訊瞭解安裝進度
 
cd $ORACLE_BASE/oraInventory/logs
tail -f installActions*.log
出現類似如下提示表示安裝完成:
#-------------------------------------------------------------------
/usr/oracle/oraInventory/orainstRoot.sh
/usr/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window 
2. Log in as "root" 
3. Run the scripts 
4. Return to this window and hit "Enter" key to continue
 
Successfully Setup Software.
#-------------------------------------------------------------------
 
使用root使用者執行指令碼

這裡是有兩個指令碼要執行,跑一下就好
 
su root
/usr/oracle/product/11.2.0/db_1/root.sh
/usr/oracle/oraInventory/orainstRoot.sh

增加oracle環境變數
 
su - oracle
 
vi ~/.bash_profile
 
在最後加上以下內容
 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
使設定生效
 
source /home/oracle/.bash_profile
 
到這裡,oracle11g的資料庫例項就算是裝好了,接下來配置資料庫例項的基本引數檔案~
cd $ORACLE_HOME/dbs

找到預設的init.ora,然後建立一個新的init.ora:
cat init.ora | grep -V ^# | grep -V ^$ | > init$ORACLE_SID.ora

修改新引數檔案裡面的<$ORACLE_HOME>為絕對路徑,然後把db_name之類的東西改成自己的就好~

然後就可以啟動oracle例項了,用sqlplus "/as sysdba"登入進去,然後startup nomount;
如果說MEMORY_TARGET太大了,那麼可以在引數檔案裡面改小一點(這裡設定的是81960M,80G),或者修改shm的大小、
用df -h能看到/dev/shm的大小
用mount -o size=102400M -o nrinodes=1000000 -o noatime,nodiratime -o remount /dev/shm來修改shm的大小

然後建立spfile
create spfile from pfile;(具體的這兩個東西的資料可以參考我的另一篇文章,spfile和pfile那點事)

如果一切正常,那麼會顯示出資料庫的一些池和快取的資訊,接下來就是建立資料庫了,

先建立必要目錄
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
mkdir -p $ORACLE_BASE/oradata

PS:稍微注意一下的是,/usr/local/bin下面,幾個目錄的許可權,記得要改成oracle和oinstall的(chown -R oracle:oinstall *),否則啟動的時候會提示錯誤,許可權啊,目錄操作失敗云云

建庫指令碼如下:
CREATE DATABASE orcl 
USER SYS IDENTIFIED BY sys 
USER SYSTEM IDENTIFIED BY system 
LOGFILE 
GROUP 1 ('/usr/oracle/oradata/redo01.log') SIZE 1024M, 
GROUP 2 ('/usr/oracle/oradata/redo02.log') size 1024m, 
GROUP 3 ('/usr/oracle/oradata/redo03.log') size 1024m, 
GROUP 4 ('/usr/oracle/oradata/redo04.log') size 1024m, 
GROUP 5 ('/usr/oracle/oradata/redo05.log') size 1024m
MAXLOGFILES 5 
MAXLOGMEMBERS 5 
MAXLOGHISTORY 200 
MAXDATAFILES 10000
MAXINSTANCES 1 
CHARACTER SET AL32UTF8 
NATIONAL CHARACTER SET AL16UTF16 
datafile '/usr/oracle/oradata/system01.dbf' size 2048M  REUSE
EXTENT MANAGEMENT LOCAL
sysaux datafile '/usr/oracle/oradata/sysaux01.dbf' size 2048M REUSE
default temporary tablespace temp 
tempfile '/usr/oracle/oradata/temp01.dbf' size 2048M REUSE
undo tablespace UNDOTBS1 
datafile '/usr/oracle/oradata/undotbs01.dbf' size 4096M  REUSE
AUTOEXTEND off
default tablespace DATA
datafile '/usr/oracle/oradata/data01.dbf' size 8192M  REUSE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;


使用Extend和Segment的管理,懶人+水B表示自己管理的技巧暫時沒空學,全部交給oracle自己管理.....

如果沒問題,接下來就建立資料字典和pl/sql包,
sqlplus "/as sysdba"
SQL>@?/rdbms/admin/catalog.sql;
SQL>@?/rdbms/admin/cataproc.sql;
SQL>@?/rdbms/admin/utlrp.sql;
SQL>conn system/*****;
SQL>@?/sqlplus/admin/pupbld.sql;
(這幾個指令碼放在$ORACLE_HOME/rdbms/admin下,也可以先進這個目錄,然後直接@指令碼就好)
最後shutdown immediate 然後startup吧~


資料庫正確open之後,就是配置監聽器了,
把\network\admin\listener.ora 和\network\admin\tnsname.ora裡面的LOCALHOST改成IP,把SID SID_NAME改成例項名,重啟資料庫,重啟監聽
PS:引數檔案的service和監聽器的service要對上!

然後用sqlplus,使用sys或者system登入進去,show parameter;或者select table_name from dba_tables看看是否正常~~

The End! Happy Oracle 11g~

PS:由於我是從oracle官網下載的oracle11g,不知道是否是這個原因,導致資料庫型別不寫GENERAL_PURPOSE 的話,安裝一定會因為電子郵件地址的緣故終止╮(╯_╰)╭

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27500440/viewspace-2062620/,如需轉載,請註明出處,否則將追究法律責任。

相關文章