Oracle 11g 靜默安裝

ywxj_001發表於2018-01-07
1.作業系統及Oracle版本:
Linux版本:CentOS release 6.6 (Final)
Oracle版本:Oracle Database 11g Release 2 (11.2.0.3.0) for Linux x86-64(p10404530_112030_Linux-x86-64_1of7.zip、p10404530_112030_Linux-x86-64_2of7.zip)
如果是Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64版本,見下文連結:
http://m.blog.itpub.net/29510932/viewspace-1135313/

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

我是64位系統,也可以這樣弄:

線上打rpm

64位

yum install -y binutils* glibc* nss-softokn-freebl* compat-libstdc* gcc-c* glibc-common* glibc-devel* glibc-headers* elfutils-libelf* elfutils-libelf-devel* gcc-c* libaio* libaio-devel* libgcc* libstdc* libstdc++-devel* make* numactl-devel* sysstat* compat-libcap*

32位

yum install -y libgcc*i686* libstdc++-4*i686* libstdc++-devel-4*i686* compat-libstdc++-33*i686* glibc-2*i686*  nss-softokn-freebl-3*i686*  glibc-devel-2*i686*  libaio-0*i686*  libaio-devel-0*i686*  compat-libcap1-*i686*

4.建立所需的作業系統組和使用者,設定些服務:

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
設定oracle使用者密碼
 
passwd oracle

root下執行:

chkconfig iptables off

chkconfig NetworkManager off

service iptables stop

service NetworkManager stop

vi /etc/sysconfig/network

HOSTNAME=test

setenforce 0

vi /etc/selinux/config

SELINUX=disabled

vi /etc/hosts      (hosts裡必須要有127.0.0.1 localhost,否則安裝會報錯)

最下面新增

192.168.72.21         主機名
比如:
10.0.40.78              test

5.修改核心引數
在/etc/sysctl.conf 檔案中,使用文字編輯器或vi命令增加或修改以下引數
[root@test ~]# vi /etc/sysctl.conf 
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
修改後,使設定生效

/etc/sysctl -p

6.修改使用者限制
root使用者下面:
在/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
[root@test ~]# source /etc/profile

7.建立安裝目錄(可根據情況,選擇比較多空間的目錄建立)
root下:
mkdir -p /usr/oracle
chown -R oracle:oinstall /usr/oracle
chmod -R 775 /usr/oracle
 
8.建立/etc/oraInst.loc檔案,內容如下
root下:
vi /etc/oraInst.loc
inventory_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“
如果有以下報錯,按如下辦法處理:
[root@test etc]# xhost +
-bash: xhost: command not found
[root@test etc]# yum whatprovides "*/xhost"
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.cn99.com
 * updates: mirrors.163.com
base/filelists_db                                                                                              | 6.4 MB     00:00     
extras/filelists_db                                                                                            |  26 kB     00:00     
updates/filelists_db                                                                                           | 3.3 MB     00:00     
xorg-x11-server-utils-7.7-14.el6.x86_64 : X.Org X11 X server utilities
Repo        : base
Matched from:
Filename    : /usr/bin/xhost

[root@test etc]# yum install xorg-x11-server-utils-7.7-14.el6.x86_64
安裝完成後:
[root@test etc]# xhost +10.0.40.78:0.0
xhost:  unable to open display ""
[root@test etc]# xhost + 10.0.40.78:0.0
xhost:  unable to open display ""
[root@test etc]# xhost +
xhost:  unable to open display ""

如果是圖形化安裝需要裝jdk
yum install java-1.7.0-openjdk-devel.x86_64 -y

10.解壓oracle安裝檔案
root@test ~]# ll
total 3398348
-rw-------. 1 root root       1283 Nov  2  2008 anaconda-ks.cfg
-rw-r--r--. 1 root root      27632 Nov  2  2008 install.log
-rw-r--r--. 1 root root       7572 Nov  2  2008 install.log.syslog
-rw-r--r--. 1 root root 1358454646 Dec  9  2016 p10404530_112030_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root root 1142195302 Dec  9  2016 p10404530_112030_Linux-x86-64_2of7.zip
-rw-r--r--. 1 root root  979195792 Dec  9  2016 p10404530_112030_Linux-x86-64_3of7.zip
[root@test ~]# cp p10404530_112030_Linux-x86-64_1of7.zip /home/oracle/
[root@test ~]# cp p10404530_112030_Linux-x86-64_2of7.zip /home/oracle/
[root@test ~]# ll /home/oracle/
total 2442044
-rw-r--r--. 1 root root 1358454646 Jan  2 19:30 p10404530_112030_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root root 1142195302 Jan  2 19:30 p10404530_112030_Linux-x86-64_2of7.zip
[root@test ~]# chown -R oracle:oinstall /home/oracle/
[root@test ~]# ll /home/oracle/
total 2442052
-rw-r--r--. 1 oracle oinstall 1358454646 Jan  2 19:30 p10404530_112030_Linux-x86-64_1of7.zip
-rw-r--r--. 1 oracle oinstall 1142195302 Jan  2 19:30 p10404530_112030_Linux-x86-64_2of7.zip
[root@test ~]# su - oracle
[oracle@test ~]$ ll
total 2442052
-rw-r--r--. 1 oracle oinstall 1358454646 Jan  2 19:30 p10404530_112030_Linux-x86-64_1of7.zip
-rw-r--r--. 1 oracle oinstall 1142195302 Jan  2 19:30 p10404530_112030_Linux-x86-64_2of7.zip
[oracle@test ~]$ unzip p10404530_112030_Linux-x86-64_1of7.zip
[oracle@test  ~]$ ll
total 2442056
drwxr-xr-x. 8 oracle oinstall       4096 Sep 22  2011 database
-rw-r--r--. 1 oracle oinstall 1358454646 Jan  2 19:30 p10404530_112030_Linux-x86-64_1of7.zip
-rw-r--r--. 1 oracle oinstall 1142195302 Jan  2 19:30 p10404530_112030_Linux-x86-64_2of7.zip
[oracle@test  ~]$ unzip p10404530_112030_Linux-x86-64_2of7.zip 

11.複製響應檔案模板
oracle使用者下: 
[oracle@test ~]$mkdir etc
mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/
設定響應檔案許可權
 
su - root
chmod 700 /home/oracle/etc/*.rsp(注意所有者,oinstall)
[oracle@test ~]$ cd etc
[oracle@test etc]$ ll
total 80
-rwx------. 1 oracle oinstall 44533 Jan  3 11:41 dbca.rsp
-rwx------. 1 oracle oinstall 25205 Jan  4 11:49 db_install.rsp
-rwx------. 1 oracle oinstall  5871 Jan  3 11:41 netca.rsp

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.isCustomInstall=false這句指令碼在11.2.0.3裡面沒有,11.2.0.3裡面是這句指令碼:
oracle.install.db.EEOptionsSelection=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:不管地址對不對)


oracle.install.db.EEOptionsSelection=false這指令碼相關配置情況:
# This variable is used to enable or disable custom install and is considered
# only if InstallEdition is EE.
#
# true  : Components mentioned as part of 'optionalComponents' property
#         are considered for install.
# false : Value for 'optionalComponents' is not considered.
#------------------------------------------------------------------------------
#oracle.install.db.isCustomInstall=false


oracle.install.db.EEOptionsSelection=false      表示按預設安裝企業安裝元件






#------------------------------------------------------------------------------
# This variable is considered only if 'EEOptionsSelection' is set to true.
#
# Description: List of Enterprise Edition Options you would like to enable.
#
#              The following choices are available. You may specify any
#              combination of these choices.  The components you choose should
#              be specified in the form "internal-component-name:version"
#              Below is a list of components you may specify to enable.
#
#              oracle.oraolap:11.2.0.3.0 - Oracle OLAP
#              oracle.rdbms.dm:11.2.0.3.0 - Oracle Data Mining
#              oracle.rdbms.dv:11.2.0.3.0 - Oracle Database Vault
#              oracle.rdbms.lbac:11.2.0.3.0 - Oracle Label Security
#              oracle.rdbms.partitioning:11.2.0.3.0 - Oracle Partitioning
#              oracle.rdbms.rat:11.2.0.3.0 - Oracle Real Application Testing
#------------------------------------------------------------------------------
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.dv:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0

oracle靜默安裝應答檔案詳解:

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0//標註響應檔案版本
oracle.install.option=INSTALL_DB_SWONLY//.只裝資料庫軟體
ORACLE_HOSTNAME=主機名
UNIX_GROUP_NAME=oinstall//指定oracle inventory目錄的所有者
INVENTORY_LOCATION=/u01/app/oraInventory指定產品清單oracle inventory目錄的路徑
SELECTED_LANGUAGES=en,zh_CN//指定語言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1//設定ORALCE_HOME的路徑
ORACLE_BASE=/u01/app/oracle//指定ORALCE_BASE的路徑
oracle.install.db.InstallEdition=EE//安裝資料庫軟體的版本,企業版
oracle.install.db.EEOptionsSelection=false//手動指定企業安裝元件
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0//如果上面選true,這些就是手動指定的元件
oracle.install.db.DBA_GROUP=dba//指定擁有DBA使用者組,通常會是dba組
oracle.install.db.OPER_GROUP=oper//指定oper使用者組
oracle.install.db.CLUSTER_NODES=//指定所有的節點
oracle.install.db.isRACOneInstall=false//是否是RACO方式安裝
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=//選擇資料庫的用途,一般用途/事物處理,資料倉儲
oracle.install.db.config.starterdb.globalDBName=指定GlobalName
oracle.install.db.config.starterdb.SID=//你指定的SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8//設定資料庫編碼
oracle.install.db.config.starterdb.memoryOption=true//11g的新特性自動記憶體管理,也就是SGA_TARGET和PAG_AGGREGATE_TARGET都,不用設定了,Oracle會自動調配兩部分大小
oracle.install.db.config.starterdb.memoryLimit=指定Oracle自動管理記憶體的大小
oracle.install.db.config.starterdb.installExampleSchemas=false是否載入模板示例
oracle.install.db.config.starterdb.enableSecuritySettings=true  是否啟用安全設定
oracle.install.db.config.starterdb.password.ALL=123456所有使用者名稱的密碼
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資料庫本地管理工具DB_CONTROL,遠端集中管理工具GRID_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=GRID_CONTROL需要設定grid control的遠端路徑URL
oracle.install.db.config.starterdb.automatedBackup.enable=false設定自動備份
oracle.install.db.config.starterdb.automatedBackup.osuid=.自動備份會啟動一個job,指定啟動JOB的系統使用者ID
oracle.install.db.config.starterdb.automatedBackup.ospwd=自動備份會開啟一個job,需要指定OSUser的密碼
oracle.install.db.config.starterdb.storageType=要求指定使用的檔案系統存放資料庫檔案還是ASM
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=使用檔案系統存放資料庫檔案才需要指定資料檔案、控制檔案、Redo log的存放目錄
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=使用檔案系統存放資料庫檔案才需要指定備份恢復目錄
oracle.install.db.config.asm.diskGroup=使用ASM存放資料庫檔案才需要指定存放的磁碟組
oracle.install.db.config.asm.ASMSNMPPassword=使用ASM存放資料庫檔案才需要指定ASM例項密碼
MYORACLESUPPORT_USERNAME=指定metalink賬戶使用者名稱
MYORACLESUPPORT_PASSWORD=指定metalink賬戶密碼
SECURITY_UPDATES_VIA_MYORACLESUPPORT=使用者是否可以設定metalink密碼
DECLINE_SECURITY_UPDATES=true是否設定安全更新,
PROXY_HOST=代理伺服器名
PROXY_PORT=代理伺服器埠
PROXY_USER=代理伺服器使用者名稱
PROXY_PWD=代理伺服器密碼
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=自動更新
oracle.installer.autoupdates.downloadUpdatesLoc=自動更新下載目錄
AUTOUPDATES_MYORACLESUPPORT_USERNAME=自動更新的使用者名稱
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=自動更新的密碼

開始靜默安裝:
11.2.0.1的辦法:
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

11.2.0.3的辦法:
[oracle@test ~]$ cd database/
[oracle@test database]$ ll
total 64
drwxr-xr-x. 12 oracle oinstall  4096 Sep 19  2011 doc
drwxr-xr-x.  4 oracle oinstall  4096 Sep 22  2011 install
-rwxr-xr-x.  1 oracle oinstall 28122 Sep 22  2011 readme.html
drwxr-xr-x.  2 oracle oinstall  4096 Sep 22  2011 response
drwxr-xr-x.  2 oracle oinstall  4096 Sep 22  2011 rpm
-rwxr-xr-x.  1 oracle oinstall  3226 Sep 22  2011 runInstaller
drwxr-xr-x.  2 oracle oinstall  4096 Sep 22  2011 sshsetup
drwxr-xr-x. 14 oracle oinstall  4096 Sep 22  2011 stage
-rwxr-xr-x.  1 oracle oinstall  5466 Aug 23  2011 welcome.html
[oracle@test database]$ ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp 
Starting Oracle Universal Installer...


Checking Temp space: must be greater than 120 MB.   Actual 112296 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8191 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-01-03_05-57-21PM. Please wait ...[oracle@budget-db-t database]$ [FATAL] [INS-10105] The given response file /home/oracle/etc/db_install.rsp is not valid.
   CAUSE: Syntactically incorrect response file. Either unexpected variables are specified or expected variables are not specified in the response file.
   ACTION: Refer the latest product specific response file template
   SUMMARY:
       - cvc-complex-type.2.4.d: Invalid content was found starting with element 'oracle.install.db.isCustomInstall'. No child element is expected at this point.


A log of this session is currently saved as: /tmp/OraInstall2018-01-03_05-57-21PM/installActions2018-01-03_05-57-21PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
從報錯看就是oracle.install.db.isCustomInstall的原因,修改為oracle.install.db.EEOptionsSelection=false就可以了。
[oracle@test database]$ ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp 
Starting Oracle Universal Installer...


Checking Temp space: must be greater than 120 MB.   Actual 112295 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8191 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-01-04_11-52-04AM. Please wait ...[oracle@budget-db-t database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /tmp/OraInstall2018-01-04_11-52-04AM/installActions2018-01-04_11-52-04AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /tmp/OraInstall2018-01-04_11-52-04AM/installActions2018-01-04_11-52-04AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /usr/oracle/oraInventory/logs/installActions2018-01-04_11-52-04AM.log
The installation of Oracle Database 11g was successful.
Please check '/usr/oracle/oraInventory/logs/silentInstall2018-01-04_11-52-04AM.log' for more details.


As a root user, execute the following script(s):
        1. /usr/oracle/product/11.2.0/db_1/root.sh




Successfully Setup Software.
可以按了回車後再用root執行指令碼。
[oracle@test database]$
[root@test ~]# /usr/oracle/product/11.2.0/db_1/root.sh
Check /usr/oracle/product/11.2.0/db_1/install/root_budget-db-t_2018-01-04_12-11-16.log for the output of root script
[root@test oraInventory]# more /usr/oracle/product/11.2.0/db_1/install/root_budget-db-t_2018-01-04_12-11-16.log


Performing root user operation for Oracle 11g 


The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /usr/oracle/product/11.2.0/db_1


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
增加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
這裡如果沒建立密碼檔案,之後用sys使用者遠端連線資料庫會報錯。
那時候需要重建密碼檔案:orapwd file=orapw$ORACLE_SID password=oracle entries=30
ora-01031:insufficient privileges:

sqlplus "/ as sysdba" 連不上,報ora-01031:insufficient privileges解決方法


注意多個資料庫例項時候,set ORACLE_SID='',

1、檢查sqlnet.ora(WINDOWS下位於%ORACLE_HOME%NETWORKADMIN目錄)是否包含這句:SQLNET.AUTHENTICATION_SERVICES=(NTS),沒有的話加上


2、檢查登陸windows的使用者(administrator或安裝oracle時候使用的使用者)是不是在包含在ORA_DBA組中,域使用者沒有連上域伺服器時就可能出現這種現象。

3. 要保證 remote_login_passwordfile 引數 = EXCLUSIVE .

4. 看看是否需要使用orapassw生成口令檔案 .


一種解決方法案例:

1、檢查系統引數:
SQL> show parameter password

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE
2、
select * from v$pwfile_users;
SQL>
為空

3、
SQL> grant sysdba to sys;
grant sysdba to sys
*
ERROR at line 1:
ORA-01994: GRANT failed: password file missing or disabled
4、建立password檔案
D:/>orapwd file="D:/oracle/product/10g/db_1/database/PWDoratest.ora" password=gp
oswong entries=10
5、
SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE
SYS正常顯示出來。
6、重新在遠端以SYSDBA登入,可正常使用。


如果口令檔案建立的有問題,也是會報如下的錯誤:

ora-01031:insufficient privileges

口令檔案的命名格式應為orapwsid,並且sid是區分大小寫的。由於Target Database連線Auxiliary Database時需要驗證口令,
如果違反了以上規則,將會提示ORA-01031: insufficient privileges。


我在用linux建立duplicate資料庫的時候 就是因為口令檔案建立的路徑和名稱不對才遇到這個錯誤。

修改新引數檔案裡面的<$ORACLE_HOME>為絕對路徑,然後把db_name之類的東西改成自己的就好~
[oracle@test dbs]$ pwd
/usr/oracle/product/11.2.0/db_1/dbs
[oracle@test dbs]$ cat initORCL.ora
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/usr/oracle/admin/ORCL/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/usr/oracle/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/usr/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/usr/oracle/oradata/ORCL/ora_control01.ctl,/usr/oracle/oradata/ORCL/ora_control02.ctl)
compatible ='11.2.0'

然後就可以啟動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/ORCL

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

建庫指令碼如下:
[oracle@test ~]$ cat create_db.sql
CREATE DATABASE ORCL
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE
GROUP 1 ('/usr/oracle/oradata/ORCL/redo01.log') SIZE 512m,
GROUP 2 ('/usr/oracle/oradata/ORCL/redo02.log') size 512m,
GROUP 3 ('/usr/oracle/oradata/ORCL/redo03.log') size 512m,
GROUP 4 ('/usr/oracle/oradata/ORCL/redo04.log') size 512m,
GROUP 5 ('/usr/oracle/oradata/ORCL/redo05.log') size 512m
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 200
MAXDATAFILES 10000
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
datafile '/usr/oracle/oradata/ORCL/system01.dbf' size 1024M  REUSE
sysaux datafile '/usr/oracle/oradata/ORCL/sysaux01.dbf' size 1024M REUSE
default temporary tablespace temp
tempfile '/usr/oracle/oradata/ORCL/temp01.dbf' size 512M REUSE
undo tablespace UNDOTBS1
datafile '/usr/oracle/oradata/ORCL/undotbs01.dbf' size 1024M  REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED
default tablespace users
datafile '/usr/oracle/oradata/ORCL/users01.dbf' size 8192M  REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED;

如果沒問題,接下來就建立資料字典和pl/sql包,
sqlplus "/as sysdba"
SQL>@?/rdbms/admin/catalog.sql;
SQL>@?/rdbms/admin/catproc.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要對上!

[oracle@test admin]$ pwd
/usr/oracle/product/11.2.0/db_1/network/admin
[oracle@test admin]$ ll
total 16
-rw-r--r--. 1 oracle oinstall  363 Jan  4 16:32 listener.ora
drwxr-xr-x. 2 oracle oinstall 4096 Jan  4 11:53 samples
-rw-r--r--. 1 oracle oinstall  205 May 11  2011 shrept.lst
-rw-r--r--. 1 oracle oinstall  175 Jan  4 16:36 tnsnames.ora
[oracle@test admin]$ cat listener.ora
# listener.ora Network Configuration File: /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


ADR_BASE_LISTENER = /usr/oracle
[oracle@test admin]$ cat tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = test)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

然後用sqlplus,使用sys或者system登入進去,show parameter;或者select table_name from dba_tables看看是否正常~~
oracle使用者下面再看看監聽是否正常。
[oracle@test ~]$ lsnrctl status


LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2018 16:31:08


Copyright (c) 1991, 2011, Oracle.  All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                04-JAN-2018 16:34:42
Uptime                    2 days 23 hr. 56 min. 26 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /usr/oracle/diag/tnslsnr/test/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully

整個oracle 11g 11.2.0.3的單例項的靜默安裝過程就是這樣。

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

相關文章