1. 程式人生 > >Oracle 12 C 靜默安裝

Oracle 12 C 靜默安裝

Oracle靜默安裝

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係型資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關係資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。

環境配置

1、安裝centos6.5作業系統

實體記憶體不少於1.5G

硬碟可以空間不少於5G

swap分割槽空間不少於2G

支援256色以上顯示卡

cpu主頻不小於550mHZ

2.下載安裝包linuxx64_12201_database.zip的oracle12c第二版本

5N17QWTC`WWWI1V[}GVM@V9.png                                                

3.配置hosts檔案

格式:ip    主機名

4.配置yum源

使用預設yum源即可

yum clean all  && yum makecache

5.關閉selinux&iptables

       Vim /etc/selinux/config

       SELINUX=disabled

       /etc/init.d/iptables stop

chkconfig iptables off

安裝部署

1、安裝oracle依賴包關係

yum install -y  binutils  compat-libcap1  compat-libstdc++-33  compat-libstdc++-33.i686  glibc  glibc.i686 glibc-devel glibc-devel.i686 ksh  libaio  libaio.i686  libaio-devel  libaio-devel.i686  libX11  libX11.i686  libXau  libXau.i686 libXi  libXi.i686  libXtst  libXtst.i686  libgcc  libgcc.i686  libstdc++  libstdc++.i686  libstdc++-devel  libstdc++-devel.i686  libxcb  libxcb.i686  make  nfs-utils  net-tools  smartmontools  sysstat  unixODBC  unixODBC-devel    gcc   gcc-c++   libXext   libXext.i686   zlib-devel   zlib-devel.i686

2、修改核心引數

  核心引數調整體現在/etc/sysctl.conf檔案中。主要包括對記憶體排程、埠範圍、開啟檔案數、I/O請求等相關的一些設定,相關數值不可低於安裝要求。修改完畢後通過執行sysctl–p命令使新配置立即生效。

vim /etc/sysctl.conf  請根據自己實際情況修改,核心引數如下
fs.file-max = 6815744  
kernel.sem = 250 32000 100 128  
kernel.shmmni = 4096  
kernel.shmall = 1073741824  
kernel.shmmax = 4398046511104  
kernel.panic_on_oops = 1  
net.core.rmem_default = 262144  
net.core.rmem_max = 4194304  
net.core.wmem_default = 262144  
net.core.wmem_max = 1048576  
net.ipv4.conf.all.rp_filter = 2  
net.ipv4.conf.default.rp_filter = 2  
fs.aio-max-nr = 1048576  
net.ipv4.ip_local_port_range = 9000 65500

SJ_IU6ZLPS1[`1NQ$[LL%IC.png

各引數詳解:

fs.aio-max-nr:

此引數限制併發未完成的請求,應該設定避免I/O子系統故障。

fs.file-max:

該引數決定了系統中所允許的檔案控制代碼最大數目,檔案控制代碼設定代表linux系統中可以開啟的檔案的數量。

kernel.shmall:

該引數控制可以使用的共享記憶體的總頁數。Linux共享記憶體頁大小為4KB,共享記憶體段的大小都是共享記憶體頁大小的整數倍。一個共享記憶體段的最大大小是16G,那麼需要共享記憶體頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB實體記憶體,設定kernel.shmall = 4194304才符合要求.

kernel.shmmax:

是核心引數中最重要的引數之一,用於定義單個共享記憶體段的最大值。設定應該足夠大,設定的過低可能會導致需要建立多個共享記憶體段,這樣可能導致系統性能的下降。至於導致系統下降的主要原因為在例項啟動以及ServerProcess建立的時候,多個小的共享記憶體段可能會導致當時輕微的系統性能的降低(在啟動的時候需要去建立多個虛擬地址段,在程序建立的時候要讓程序對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。

官方建議值:

32位linux系統:可取最大值為4GB(4294967296bytes)-1byte,即4294967295。建議值為多於記憶體的一半,所以如果是32為系統,一般可取值為4294967295。

64位linux系統:可取的最大值為實體記憶體值-1byte,建議值為多於實體記憶體的一半,例如,如果為12GB實體記憶體,可取12*1024*1024*1024-1=12884901887。

kernel.shmmni:

該引數是共享記憶體段的最大數量。shmmni預設值4096,一般肯定是夠用了。

kernel.sem:

以kernel.sem = 250 32000 100 128為例:

   250是引數semmsl的值,表示一個訊號量集合中能夠包含的訊號量最大數目。

   32000是引數semmns的值,表示系統內可允許的訊號量最大數目。

    100是引數semopm的值,表示單個semopm()呼叫在一個訊號量集合上可以執行的運算元量。

    128是引數semmni的值,表示系統訊號量集合總數。

net.ipv4.ip_local_port_range:

表示應用程式可使用的IPv4埠範圍。

net.core.rmem_default:

表示套接字接收緩衝區大小的預設值。

net.core.rmem_max:

表示套接字接收緩衝區大小的最大值。

net.core.wmem_default:

表示套接字傳送緩衝區大小的預設值。

net.core.wmem_max:

表示套接字傳送緩衝區大小的最大值。

終端執行:

/sbin/sysctl -p    重新整理核心引數表

3、修改核心限制引數

 vim /etc/security/limits.d/20-nproc.conf 
# Default limit for number of user's processes to prevent  
# accidental fork bombs.  
# See rhbz #432903 for reasoning.  
  
*          soft    nproc     4096  
root       soft    nproc     unlimited  
oracle   soft   nofile    1024  
oracle   hard   nofile    65536  
oracle   soft   nproc    16384  
oracle   hard   nproc    16384  
oracle   soft   stack    10240  
oracle   hard   stack    32768  
oracle   hard   memlock    134217728  
oracle   soft   memlock    134217728

KXU)@IB[%ZE]~WNHZ($1331.png

第1行是設定程序數軟限制;

第2行是設定程序數硬限制;

第3行是設定檔案數軟限制;

第4行是設定檔案數硬限制

4、建立oracle帳號和組

[[email protected] ~]# unzip linuxx64_12201_database.zip ^C  
[[email protected] ~]# groupadd -g 54321 oinstall  
[[email protected] ~]# groupadd -g 54322 dba  
[[email protected] ~]# groupadd -g 54323 oper  
[[email protected] ~]# useradd -u 54321 -g oinstall -G dba,oper oracle  
[[email protected] ~]# passwd oracle

5、建立相關資料庫目錄

    mkdir /u01
    mkdir /u01/app
    mkdir -p /u01/app/oracle/oradata         //存放資料庫的資料目錄
    mkdir -p /u01/app/oracle/oradata_back    //存放資料庫備份檔案
         chmod -R 775 /u01/app                                        //許可權
         chown -R oracle:oinstall /u01                    //屬主屬組

6、修改oracle環境變數

  vim /etc/proile         (檔案最後加入)
# .bash_profile
 
# Get the aliases and functions 
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs 
 
PATH=$PATH:$HOME/.local/bin:$HOME/bin
 
export PATH 
# Oracle Settings 
export TMP=/tmp                                   #日誌存放位置
export TMPDIR=$TMP
 
export ORACLE_HOSTNAME=Oracle                #主機名
export ORACLE_UNQNAME=cdb1                  #庫名稱
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=cdb1                     #庫名稱
 
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib  
export PATH=/usr/sbin:$PATH  
export PATH=$ORACLE_HOME/bin:$PATH  
  
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib  
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

7、解壓oracle二進位制包至/opt目錄下  (解壓的目錄預設名為database)

unzip linuxx64_12201_database.zip /u01
chown -R oracle:oinstall /u01

8、修改配置檔案並

進入response目錄下,編輯應答檔案:

配置檔案設定--->http://blog.chinaunix.net/uid-23886490-id-3565908.html

vim /u01/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0  
oracle.install.option=INSTALL_DB_SWONLY                     //30行安裝型別,只裝資料庫軟體
UNIX_GROUP_NAME=oinstall                                              //35行主機名稱(hostname查詢)
INVENTORY_LOCATION=/u01/app/oracle/oraInventory  //42行INVENTORY目錄(不填就是預設值)
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1   //46行oracle目錄
ORACLE_BASE=/u01/app/oracle                                          //51行
oracle.install.db.InstallEdition=EE                                                 //63行oracle版本
oracle.install.db.OSDBA_GROUP=dba                                //80行
oracle.install.db.OSOPER_GROUP=oper                                      //86行 自定義安裝,否,使用預設元件
oracle.install.db.OSBACKUPDBA_GROUP=dba                          //91行  
oracle.install.db.OSDGDBA_GROUP=dba                                   //96行
oracle.install.db.OSKMDBA_GROUP=dba                          //101行
oracle.install.db.OSRACDBA_GROUP=dba                        //106行
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE         //180行資料庫型別
oracle.install.db.config.starterdb.globalDBName=cdb1     //185行
oracle.install.db.config.starterdb.SID=cdb1                       //190行
oracle.install.db.config.starterdb.characterSet=AL32UTF8   //216行
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false                     //384行
DECLINE_SECURITY_UPDATES=true                                //398行//設定安全更新(貌似是有bug,這個一定要選true,否則會無限提醒郵件地址有問題,終止安裝。PS:不管地址對不對)

9、開始安裝oracle    提醒:切換至oracle使用者

cd /u01/database
 ./runInstaller -force -silent -noconfig -responseFile /u01/database/response/db_install.rsp  
 
Starting Oracle Universal Installer...  
  
Checking Temp space: must be greater than 500 MB.   Actual 11715 MB    Passed  
Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed  
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-04-15_08-36-48PM. P[[email protected] database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.  
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.  
You can find the log of this install session at:  
 /u01/app/oracle/oraInventory/logs/installActions2017-04-15_08-36-48PM.log     #日誌位置
The installation of Oracle Database 12c was successful.  
Please check '/u01/app/oracle/oraInventory/logs/silentInstall2017-04-15_08-36-48PM.log' for more details.

可以邊裝邊檢視日誌

tail –f /u01/app/oracle/oraInventory/logs/installActions2017-04-15_08-36-48PM.log

報錯:

找不到主機名

7R$ZTTKHW9{E$5KQ2PYQU7C.png

Hostname檢視一下本機的主機名稱是否和/etc/host&/home/oracle/.bash_profile環境變數裡的主機名一致

退出oracle使用者的時候會顯示一下資訊報告指令碼位置

As a root user, execute the following script(s):  
        1. /u01/app/oracle/oraInventory/orainstRoot.sh  
        2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh  
        
        
Successfully Setup Software.

_ZEDQ_A`X08428F(]OP7{}Y.png

報錯:

此指令碼必須為跟,必須是使用跟root使用者來執行

N1NNVXB~~%]R{G~]B6H1SIA.png

10,執行指令碼   提醒:切換至oracle使用者

執行兩個指令碼:注意是用root使用者執行的

[[email protected] ~]# /u01/app/oracle/oraInventory/orainstRoot.sh  
Changing permissions of /u01/app/oracle/oraInventory.  
Adding read,write permissions for group.  
Removing read,write,execute permissions for world.  
  
Changing groupname of /u01/app/oracle/oraInventory to oinstall.  
The execution of the script is complete.  
 
[[email protected] ~]# /u01/app/oracle/product/12.2.0.1/db_1/root.sh  
Check /u01/app/oracle/product/12.2.0.1/db_1/install/root_Oracle_2017-04-15_20-56-27-813321685.log for the output of root script

11,靜默配置監聽     提醒:切換至oracle使用者

 netca -silent -responsefile /u01/database/response/netca.rsp

    備註: netca命令是oracle提供的命令,如果顯示找不到命令請檢查環境變數

WJ{R)5S_P_%%SU~EF`56K$Y.png

12,通過netstat -tlnp 命令檢視監聽地址      提醒:切換至oracle使用者

  tcp  0   0 :::1521        :::*      LISTEN      5477/tnslsnr

13,靜默建立新庫提醒:切換至oracle使用者 (如果一下各引數在/u01/database/response/dbca.rsp檔案中    重複出現,可以全改)

修改/u01/database/response/dbca.rsp,設定如下:

vim /u01/database/response/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0//21行不可更改
gdbName=cdb1                    //32
sid=cdb1                      //42
databaseConfigType=SI                  //52
policyManaged=false                //74
createServerPool=false                 //88
force=false                    //127
createAsContainerDatabase=true           //163
numberOfPDBs=1                   //172
pdbName=cdb1pdb                  //182
useLocalUndoForPDBs=true  //192
templateName=/u01/app/oracle/product/12.2.0.1/db_1/assistants/dbca/templates/General_Purpose.dbc                                //223
emExpressPort=5500                 //273
runCVUChecks=false                 //284
omsPort=0                     //313
dvConfiguration=false               //341
olsConfiguration=false               //391
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/           //401
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/           //411
recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}    //421
storageType=FS                                         //431
characterSet=AL32UTF8                                        //468字符集建立庫之後不可更改
nationalCharacterSet=AL16UTF16                                        //478
registerWithDirService=false                                          //488
listeners=LISTENER                                            //526
variables=DB_UNIQUE_NAME=cdb1,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=cdb1,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=cdb1           //546
 
initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=2780MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=cdb1XDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_CDB1,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300                     //555
 
sampleSchema=false                //565
memoryPercentage=40                //574
databaseType=MULTIPURPOSE                  //584
automaticMemoryManagement=true          //594
totalMemory=0                   //604

14,靜默建庫命令如下 (dbca是oracle命令,如果提示命令找不到,檢查環境變數)

cd /u01/database
[[email protected] response]$ dbca -silent -createDatabase  -responseFile  /u01/database/response/dbca.rsp  
  
[WARNING] [DBT-06801] Specified Fast Recovery Area size (2,780 MB) is less than the recommended value.  
   CAUSE: Fast Recovery Area size should at least be three times the database size (2,730 MB).  
   ACTION: Specify Fast Recovery Area Size to be at least three times the database size.  
[WARNING] [DBT-11209] Current available physical memory is less than the required physical memory (796MB) for creating the database.  
Enter SYS user password:          #超級管理員密碼
  
Enter SYSTEM user password:         #管理員密碼
  
Enter PDBADMIN User Password:        #庫密碼
  
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.  
   CAUSE:  
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].  
b.The password entered is a keyword that Oracle does not recommend to be used as password  
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.  
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.  
   CAUSE:  
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].  
b.The password entered is a keyword that Oracle does not recommend to be used as password  
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.  
[WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.  
   CAUSE:  
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].  
b.The password entered is a keyword that Oracle does not recommend to be used as password  
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.  
[WARNING] [DBT-06801] Specified Fast Recovery Area size (2,780 MB) is less than the recommended value.  
   CAUSE: Fast Recovery Area size should at least be three times the database size (3,571 MB).  
   ACTION: Specify Fast Recovery Area Size to be at least three times the database size.  
Copying database files  
1% complete  
13% complete  
25% complete  
Creating and starting Oracle instance  
26% complete  
30% complete  
31% complete  
35% complete  
38% complete  
39% complete  
41% complete  
Completing Database Creation  
42% complete  
43% complete  
44% complete  
46% complete  
49% complete  
50% complete  
Creating Pluggable Databases  
55% complete  
75% complete  
Executing Post Configuration Actions  
100% complete  
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for further details.

  資料庫資訊:

      全域性資料庫名:

      系統識別符號 (SID):   如有相關顯示  則表明成功

15,檢查oracle程序狀態

 ps -ef | grep ora_ | grep -v grep
 lsnrctl status  (lsnrctl是oracle命令)

16,登入資料庫  提醒:切換至oracle使用者

[[email protected] response]$ sqlplus / as sysdba  
SQL*Plus: Release 12.2.0.1.0 Production on Sat Apr 15 23:07:08 2017  
  
Copyright (c) 1982, 2016, Oracle.  All rights reserved.  
  
  
Connected to:  
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production  
  
SQL> select open_mode from v$database;  
  
OPEN_MODE  
--------------------  
READ WRITE  
  
SQL> select status from v$instance;  
  
STATUS  
------------  
OPEN  
 
Oracle庫操作
 
sqlplus / as sysdba                   // 登入資料庫
alter user sys identified by oracle;   //改sys超級管理員密碼
alter user system identified by oracle; //改system管理員密碼
exit                           // 退出資料庫
sqlplus sys/oracle as sysdba       //使用sys超級管理員登入資料庫
startup                  // 啟動資料庫

ZA)~3JON(K@BM00VN]E0FJG.png

Select name from v$database;         //檢視資料庫
Shutdown abort                //關閉資料庫

4ID)5E3L2{S~EAE%IP7`$4F.png

Conn system/oracle               //切換使用者conn後面直接跟使用者名稱和密碼就可以

17,修改oracle啟動配置檔案

完成oracle11g資料庫的安裝後,相關伺服器會自動啟用,但並不表示下次開機後oracle伺服器仍然可用。下面將介紹oracle的基本服務元件,以及如何編寫服務指令碼來控制oracle資料庫系統的自動執行。

根據上面的安裝過程,oracle11g的資料庫軟體將安裝在變數ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各種伺服器元件程式(也包括sqlplus命令)正是位於其中的bin子目錄下。

Oracle11g資料庫的基本服務元件如下所述:(注:oracle服務元件最好以oracle使用者身份執行如:su - oracle)

lsnrctl:監聽器程式,用來提供資料庫訪問,預設監聽TCP 1521埠。

dbstart、dbshut:資料庫控制程式,用來啟動、停止資料庫例項。

emctl:管理器控制工具,用來控制OEM平臺的開啟與關閉,OEM平臺通過1158埠提供HTTPS訪問,5520埠提供TCP訪問。

為了方便執行oracle11g的服務元件程式,建議對所有使用者的環境配置作進一步的優化調整、補充PATH路徑、oracle終端型別等變數設定。除此以外,還應該修改/etc/oratab配置檔案,以便執行dbstart時自動啟用資料庫例項。

$vim /etc/oratab

    racl:/u01/app/oracle/product/11.2.0/db_1:Y  //把“N”改成“Y”

    這樣就可以通過dbstart 啟動此例項,也可以通過dbshut關閉此例項了。

    $ dbshut /u01/app/oracle/product/11.2.0/db_1/

    Processing Database instance "hello": log file     /u01/app/oracle/product/11.2.0/db_1/shutdown.log

    此時所有oracle的程序關閉,監聽器也停止。

    $dbstart /u01/app/oracle/product/11.2.0/db_1/

    Processing Database instance "hello": log file     /u01/app/oracle/product/11.2.0/db_1/startup.log

    此時監聽器工作,hello例項執行,再次檢視監聽器狀態。