Oracle11gR2靜默安裝
Oracle11g靜默安裝-----linux環境
1.操作系統及oracle版本
Linux版本:CentOS release 6.5
Oracle版本:1.ORACLE11G
2.linux.x64_11gR2_database_1of2.zip
下載地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_1of2.zi 3.linux.x64_11gR2_database_2of2.zip
下載地址:wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_database_2of2.zip
2.硬件檢測
物理內存不少於1G
硬盤可以空間不少於5G
Sqap分區空間不少於2G
支持256色以上顯卡
Cpu主頻不少於550mHZ
cat /etc/issue ---查看linux系統
Uanme -r
Grep MemTotal /proc/meminfo
Grep SwapTotal /proc/meminfo
Grep “model name” /proc/cpuinfo
Free
df -k /tmp
3.檢查安裝依賴系統包
操作系統依賴的具體包,請參考官方安裝文檔。
以下為 Asianux 3, Oracle Linux 5, Red Hat Enterprise Linux 5, CentOS 5 操作系統依賴的包
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
修改后,使設置生效
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 /u01/oracle
chown -R oracle:oinstall /u01/oracle
chmod -R 775 /u01/oracle
8.創建/etc/oraInst.loc文件,內容如下
inventory_loc=/u01/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=/u01/oracle
export ORACLE_SID=orcl
注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不設置任何oracle相關環境變量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。
使設置生效
source .bash_profile
檢查環境變量:
env
10.解壓oracle安裝文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
11.復制響應文件模板
mkdir etc
cp /u01/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 // 29 安裝類型
ORACLE_HOSTNAME=oracle // 37 主機名稱(hostname查詢)
UNIX_GROUP_NAME=oinstall // 42 安裝組
INVENTORY_LOCATION=/home/oracle/oraInventory //47 INVENTORY目錄(不填就是默認值) 注意:這里inventory目錄最好不要填寫與oracle安裝路徑一致的目錄,會報錯
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 78 選擇語言
ORACLE_HOME=/u01/oracle/product/11.2.0/dbhome // 83 oracle_home
ORACLE_BASE=/u01/oracle // 88 oracle_base
oracle.install.db.InstallEdition=EE // 99 oracle版本
oracle.install.db.isCustomInstall=false //自定義安裝,否,使用默認組件
oracle.install.db.DBA_GROUP=dba // 143 dba用戶組
oracle.install.db.OPER_GROUP=oinstall // 147 oper用戶組
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE // 160 數據庫類型
oracle.install.db.config.starterdb.globalDBName=orcl // 165 globalDBName
oracle.install.db.config.starterdb.SID=orcl // 170 SID
oracle.install.db.config.starterdb.memoryLimit=81920 // 200 自動管理內存的內存(M)
oracle.install.db.config.starterdb.password.ALL=oracle // 233 設定所有數據庫用戶使用同一個密碼
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false // 376(手動寫了false)
DECLINE_SECURITY_UPDATES=true // 385 設置安全更新(貌似是有bug,這個一定要選true,否則會無限提醒郵件地址有問題,終止安裝。PS:不管地址對不對)
開始靜默安裝
cd /u01/oracle/database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
這個命令,一直執行失敗,失敗錯誤:
參考下面,我是直接加入了
-ignorePrereq命令,就可以了。
[FATAL] [INS-13013] Target environment do not meet some mandatory requirements
上面的參考文章解決是:安裝命令中加入選項-ignorePrereq
三、安裝完畢遇到了,啟動監聽失敗
一般情況下是 oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
hostname出錯了,修改為ip 就可以解決
vim /etc/hosts
172.19.60.193 oracle
服務器ip地址 主機名(hostname查看)
從新修改安裝命令:
./runInstaller -ignorePrereq -silent -force -responseFile /home/oracle/etc/db_install.rsp
報錯:[FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
CAUSE: The central inventory location provided is not empty.
ACTION: Please provide another location for the inventory, or clean up the current location.
解決方法:
vim /etc/oralnst.loc
inventory_loc=/home/oracle/oralnventory
inst_group=oinstall
還有另一種錯誤,就是你已經加入了上邊的文件內容,但是安裝時還是報同樣的錯誤。解決方法如下:
進入到oracle安裝目錄
cd /u01/oracle/
ls查看下目錄下有沒有一個oralnventory文件(我估計這個文件是剛開始執行的時候然后保存下來的或者是以前安裝時未刪除干凈的)
如果有將這個文件目錄刪除掉rm -rf oraInventory/
然后將/etc/oralnst.loc更改
[root@oracle ~]# cat /etc/oralnst.loc
inventory_loc=/home/oracle/oralnventory
inst_group=oinstall
執行下
source /etc/oralnst.loc
解決了問題,安裝完成之后,就會出現如下界面:
安裝完成之后 系統會提示我們用root用戶運行如下兩個腳本 。
[root@oracle database]$ sh /u01/oracle/oralnventory/orainstRoot.sh
[root@oracle ~]# sh /u01/oracle/product/11.2.0/dbhome/root.sh
su - oracle
[oracle@oracle ~]$ cat .bash_profile
# .bash_profile
umask 022
TMP=/u01/oracle/tmp
TMPDIR=/u01/oracle/tmp
export TMP TMPDIR
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/u01/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome
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
[oracle@oracle ~]$ source .bash_profile
靜默配置網絡
[oracle@oracle ~]$ /u01/oracle/product/11.2.0/dbhome/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/oracle/product/11.2.0/dbhome/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
14.靜默安裝數據庫
靜默安裝數據庫實例 (在oracle 用戶安裝)
在這里需要配置靜默安裝數據庫響應的模板文件,也是在安裝軟件包中解壓在database下的response 目錄下的 dbca_rsp 文件,具體配置如下:
[oracle@localhost response]# vim dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "lanmao" #全局數據庫的名字
SID = "orcl" # 數據庫實例,根據上面的你寫的SID 一樣的,隨便寫。
TEMPLATENAME = "General_Purpose.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%安裝完成之后就是安裝了。
有關詳細信息, 請參閱日志文件 /u01/oracle/cfgtoollogs/dbca/lanmao/lanmao.log"。
15.修改oracle啟動配置文件
su - oracle
vi /etc/oratab
orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
這樣就可以通過dbstart 啟動此實例,監聽器。
dbstart $ORACLE_HOME
此時所有oracle的進程關閉,監聽器也停止。
dbshut $ORACLE_HOME
再次查看監聽器狀態。
lsnrctl start ---啟動監聽
lsnrctl status ----查看監聽
如果使用歸檔日志
Oracle”startup”時報錯:
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/oracle/product/11.2.0/dbhome/dbs/initorcl.ora'
解決方法:
/u01/oracle/product/11.2.0/dbhome/srvm/admin/init.ora
cd /u01/oracle/product/11.2.0/dbhome/srvm/admin
init.ora /u01/oracle/product/11.2.0/dbhome/dbs/initorcl.ora
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn / as sysdba ---進入系統管理用戶
SQL> startup ; ---啟動oracle實例
SQL> shutdown immediate; ---停掉oracle實例
SQL> create tablespace oracle datafile 'oracle.dbf' size 100M reuse, 'oracle2.dbs' size 100M reuse default storage (initial 500K next 300K pctincrease 20); ----創建表空間
SQL> create user duan identified by "duan" default tablespace oracle profile default account unlock; -----創建用戶
SQL> grant dba to duan; ----授權用戶dba權限
Grant succeeded.
SQL> grant unlimited tablespace to duan;
Grant succeeded.
SQL> create table z_test(id number,name varchar(20)); ----創建表
SQL> insert into z_test select 1,'a' from dual; ---插入表數據
SQL> select name from v$database; ---查看實例名
SQL> select username,default_tablespace from user_users; ---查看當權用戶所在表空間
select table_name from all_tables where TABLESPACE_NAME='表空間' ---查看表空間中的所有表(表空間名字一定要大寫。)
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要啟用數據庫閃回功能則執行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新編譯所有可能失效對象)
SQL> alter system archive log current; (手工歸檔測試)
)
select table_name from dba_tables;
成功!!!
通過sql查詢日志文件位置
SQL> show parameter dump_dest
NAME TYPE
·------------------------------------ ----------------------
· VALUE
· ------------------------------
· background_dump_dest string
· /home/oracle/oracle/admin/TESTDB/bdump
· core_dump_dest string
· /home/oracle/oracle/admin/TESTDB/cdump
· user_dump_dest string
· /home/oracle/oracle/admin/TESTDB/udump