1. 程式人生 > >Linux靜默安裝oracle11gR2

Linux靜默安裝oracle11gR2

靜默安裝Oracle11gR2 ------------------------------------------------------ 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.修改核心引數 在/etc/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/catproc.sql; SQL>@?/rdbms/admin/utlrp.sql; SQL>conn system/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~