CentOS6.5x64採用靜默模式安裝64位Oracle 11g
1、下載 64位版本Oracle11g的源檔案,並上傳到Linux伺服器。
2、Package安裝檢查安裝:
通過yum工具直接安裝:
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers
安裝完成後檢查未能成功安裝的包,若安裝失敗後可根據包名在網上自行下載:
# 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 | grep "not installed"
3、 增加資料庫組和使用者
# id oracle (確認oracle使用者是否存在)
# /usr/sbin/groupadd oinstall (建立產品清單管理組)
# /usr/sbin/groupadd dba (建立資料庫安裝組)
# /usr/sbin/groupadd asmadmin (建立ASM管理組)
# /usr/sbin/groupadd asmdba (建立Grid管理組)
# /usr/sbin/useradd -g oinstall -G dba,asmdba oracle -d /home/oracle (oinstall為主要組,確保/home/oracle原不存在)
# id oracle (記住oracle使用者的uid和gid)
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),504(asmdba)
# passwd oracle
4、調整OS核心參數
設定原則:
kernel.shmmax 為 4GB-1byte或一半的實體記憶體, 哪個值更低用哪個;
fs.file-max 為512 * PROCESSES.
# vi /etc/sysctl.conf (增加或修改以下參數, 參考值為最小需求, kernel.shmmax預設即可無需設定 )
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 = 1048586
# /sbin/sysctl -p (設定參數立即生效)
5、增加shell限制
為了提升效能增加oracle使用者的shell限制.
# vi /etc/security/limits.conf (在檔案最後增加或修改以下參數)
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi /etc/pam.d/login (在檔案最後增加或修改以下參數)
session required pam_limits.so
# vi /etc/profile (在檔案最後增加或修改以下指令碼)
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/sh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
6、建立必需目錄
# more /etc/oratab (確認原來是否存在Oracle主目錄)
# more /etc/oraInst.loc (確認原來是否存在Oracle產品清單目錄)
# mkdir -p /u01/app/oracle/
# chown -R oracle: oinstall /home/oracle
# chown -R oracle: oinstall /u01
# chmod -R 775 /home/oracle
# chmod -R 775 /u01
7、設定oracle使用者環境變數
如果伺服器有多網卡, 注意設定ORACLE_HOSTNAME為某網卡IP對應的主機名稱, 參照/etc/hosts檔案.
# su - oracle
$ vi ~/.bash_profile
umask 022
export ORACLE_HOSTNAME=rhel5
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
#source ~/.bash_profile(使環境變數生效)
8、切換到oracle賬戶,解壓oracle11g壓縮板1和2到同一目錄,並產生回應檔模板
$ unzip linux.x64_11gR2_database_*.zip /u01/database/
$vi /u01/database/db_swonly.rsp
建立相應檔案,粘貼如下內容即可:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
各參數含義如下:
-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許可權的組名
9、開始安裝oracle軟體
通過response檔案靜默安裝:
$ ./runInstaller -silent -force -noconfig -responseFile /u01/database/db_swonly.rsp -ignorePrereq
直到出現以下提示則表示安裝完成:
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_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.
10、運行orainstRoot.sh和root.sh
若本機第一次安裝oracle軟體, 則執行orainstRoot.sh來建立oraInst.loc檔案和修改許可權:
$ su -
# /u01/app/oracle/oraInventory/orainstRoot.sh
# more /etc/oraInst.loc
執行$ORACLE_HOME下的root.sh來建立oratab,dbhome,oraenv,coraenv檔案, 如果提示則一直斷行符號:
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
# more /etc/oratab
11、開機啟動設定 --(可以不做)
1)vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
ORACLE_HOME_LISTNER=$1
修改為:
ORACLE_HOME_LISTNER=$ORACLE_HOME
2)vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER=$1
修改為:
ORACLE_HOME_LISTNER=$ORACLE_HOME
12、編寫開機開機檔案 --(可以不做)
#vi /etc/init.d/oracle
添加以下內容:
View Code
編寫完成後依次執行如下命令:
# chmod 750 /etc/init.d/oracle
# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle
# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle
# chkconfig --level 345 oracle on
# chkconfig --add oracle
[root@localhost ~]# service oracle start
Oracle Start Succesful!OK.
[root@localhost ~]# service oracle stop
Oracle Stop Succesful!OK.
安裝readline
# yum -y install readline*
下載、安裝rlwrap 目前最高版本為:rlwrap-0.42.tar.gz
這個是個加強工具,可以不下載安裝
# tar -zxvf rlwrap-0.42.tar.gz
# cd rlwrap-0.42
# ./configure
# make
# make install
# vi /etc/bashrc
#添加如下資訊:
alias sqlplus='/usr/local/bin/rlwrap sqlplus'
alias rman='/usr/local/bin/rlwrap rman'
13、編輯靜默建庫回應檔
切換到oracle使用者
#su - oracle
$cd /u01/database/response
$cp dbca.rsp dbca_dbcsk.rsp //改名為dbca_資料庫名.rsp
14、靜默配置監聽
$netca /silent /responsefile /u01/database/response/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /u01/database/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
成功運行後,在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin目錄下產生sqlnet.ora和listener.ora兩個檔案。
啟動監聽:
$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER
通過netstat -tlnp 命令,看到
tcp 0 0 :::1521 :::* LISTEN 5477/tnslsnr
說明監聽器已經在1521連接埠上開始工作了。
15、靜默建立新庫(同時也建立一個對應的執行個體)
修改 /u01/database/response/dbca_dbcsk.rsp,設定如下:
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME = "oracle11g.dbcsk.cn" //資料庫的名字
SID = "ORAC" //對應的執行個體名字
TEMPLATENAME = "General_Purpose.dbc" //建庫用的模板檔案
SYSPASSWORD = "oracle1234" //SYS管理員密碼
SYSTEMPASSWORD = "oracle1234" //SYSTEM管理員密碼
DATAFILEDESTINATION = /home/oracle/oradata //資料檔案存放目錄
RECOVERYAREADESTINATION=/home/oracle/oradata_back //恢複資料存放目錄
CHARACTERSET = "AL32UTF8" //字元集,重要!!! 建庫後一般不能更改,所以建庫前要確定清楚。
TOTALMEMORY = "10240" //oracle記憶體10G,也可小一些為5120M
靜默建庫命令如下
$ dbca -silent -responseFile /u01/database/response/dbca_dbcsk.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.
至此為止,建庫完成, 查看監聽狀態
$ lsnrctl status