ORACLE 11g 靜默安裝

一、安裝準備

0)上傳安裝包

上傳安裝包到 /db目錄:

$ mkdir /db

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

1)解壓安裝包

$ cd /db
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip

2)安裝依賴

如果沒有互聯網環境無法使用 yum,可以掛載 CentOS-7-x86_64-Everything-2009.iso

$ mkdir /cdrom
$ mount -o loop /xxx/CentOS-7-x86_64-Everything-2009.iso /cdrom
// 查看是否掛載上
$ df -h 

安裝依賴:

yum -y install 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 \
ksh \
sysstat \
unixODBC \
unixODBC-devel

如果 pdksh 沒有安裝,可以忽略,已經安裝了 ksh

二、系統設置

0)創建 oracle 用戶

$ userdel -r oracle
$ groupadd -g 700 oinstall
$ groupadd -g 701 dba
$ useradd -g oinstall -G dba -u 700 oracle
$ passwd oracle // 設置oracle用戶密碼
$ id oracle
uid=700(oracle) gid=700(oinstall) 組=700(oinstall),701(dba)

1)限制 oracle 用戶的 shell 權限

添加以下配置:

$ vim /etc/security/limits.conf
oracle               soft     nproc    2047
oracle               hard     nproc    16384
oracle               soft     nofile   1024
oracle               hard     nofile   65536

limits.conf 配置說明:
<domain> <type> <resource> <value>
<domain>:

username 或 @groupname:設置需要被限制的用戶名,組名前面加 @ 與 用戶名 區別。 * 表示所有用戶(注意有的系統不支持)
<type>:
soft 指的是當前系統生效的設置值
hard 表明系統中所能設定的最大值(soft 的限制不能比 hard 限制高 )
- 就表明同時設置了 soft 和 hard 的值
<resource>:(針對 Oracle 的我們主要配置 nproc nofile):
as - 地址空間限制
rss - 最大持久設置大小
cpu - 以分鐘為單位的最多 CPU 時間
core - 限制內核文件的大小
date - 最大數據大小
stack - 最大棧大小
fsize - 最大文件大小
noproc - 進程的最大數目
nofile - 打開文件的最大數目
memlock - 最大鎖定內存地址空間
maxlogins - 此用戶允許登錄的最大數目
<value>:: 限制的值

2)優化 OS 內核參數

$ vi /etc/sysctl.conf

kernel.shmmni=4096
kernel.shmall=8388608
kernel.shmmax=34359738368

fs.aio-max-nr=1048576
fs.file-max=6815744
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

kernel.shmmni : 該參數為共享內存段的最大數量,缺省值為 4096 ,一般情況下無需調整。
kernel.shmall: shmall 表示共享內存總量,以頁為單位(ARM64 或者 Intel64 一頁=4K), shmall 不能低于 SGA 大小,若 shmall 低于 SGA 大小,實例啟動時會報:ORA-27123: unable to attach to shared memory segment 錯誤,無法啟動實例。
kernel.shmmax: shmmax 參數用來定義單個共享內存段的最大值,該值應該配置足夠大,能夠在一個共享內存段中容下整個的 SGA ,如果配置過低可能導致需要創建多個共享內存段,這樣可能會導致系統性能下降。
shmmni 缺省值為 4096 ,一般情況下無需調整
shmmax 的單位為 Byte (字節), 最小取值為一半的物理內存,以設置 shmmax 為 32G 為例:
32 * 1024 * 1024 * 1024 = 34359738368
shmall 的單位為頁(ARM64 或者 Intel64 一頁=4K),一頁 = 4k。一般取值 >= shmmax / 4096 = 8388608
參考:https://www.modb.pro/db/390568

kernel.sem:表示設置的信號量
fs.file-max // 表示一個進程可以打開的文件句柄的最大數量.
net.ipv4.ip_local_port_range// 專用服務器模式下與用戶進程通信時分配給用戶的端口區間
net.core.rmem_default // 默認接收緩沖區大小
net.core.rmem_max // 接收緩沖區最大值
net.core.wmem_default // 默認的發送緩沖區大小
net.core.wmem_max // 發送緩沖區最大值

使參數生效:

$ sysctl -p
查看參數情況
$ ipcs -l

3)創建安裝目錄

// 當前為 root 用戶

$ mkdir -p /db/oracle/product/11.2.0

$ mkdir /db/oracle/oradata

$ mkdir /db/oracle/oraInventory

$ mkdir /db/oracle/fast_recovery_area

$ chown -R oracle:oinstall /db/oracle

$ chmod -R 775 /db/oracle

// 切換到 oracle 用戶
$ su - oracle

// 打開配置文件
$ vim ~/.bash_profile

// 文件最后添加
export ORACLE_BASE=/db/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

$ source ~/.bash_profile
$ exit

三、安裝

0)開始安裝

準備 db_install.rsp 文件:

// 創建 /home/oracle/etc 目錄
$ mkdir /home/oracle/etc
// 復制 db_install.rsp 到 /home/oracle/etc 目錄下
$ cp db_install.rsp /home/oracle/etc/db_install.rsp
// 修改權限
$ chown -R oracle:oinstall /home/oracle/etc

開始靜默安裝:

// 切換到 oracle 用戶
$ su - oracle
$ /db/database/runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

Checking Temp space: must be greater than 120 MB.   Actual 39151 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 16383 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-07-30_11-42-23AM. Please wait ...

 [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-30011] The password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the ADMIN 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].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
[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-30011] The password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the ADMIN 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].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
You can find the log of this install session at:
 /db/oracle/oraInventory/logs/installActions2022-07-30_11-42-23AM.log

查看實時安裝日志:

// 另開一個終端
// root 用戶
$ tailf /db/oracle/oraInventory/logs/installAction>2022-XX-XX_XX-XX-XX.log
安裝進度

可能遇到的問題

[FATAL] [INS-35172] Target database memory (6144MB) exceeds the systems available shared memory (3908MB).
  CAUSE: The total available shared memory on the system (3908 MB) was less than the chosen target database memory (6144 MB).
  ACTION: Enter a value for target database memory that is less than 3908 MB.

假設系統物理內存為 8G,現在想分配 6G 給 ORACLE 使用,假設我們之前配置了 shmmax=6G,shmall=6G,這里為什么還會報錯?難道 shmmax 配置不起作用嗎?
這里要涉及到 Linux 系統共享內存的概念(/dev/shm),待補充!

簡單解釋: ORACLE 的系統全局區(SGA)是通過系統共享內存技術實現的,/dev/shm 分區的大小默認是系統物理內存的 50%(CentOS),具體大小可以通過 df -h 命令查看。

[root@centos-linux ~]df -h /dev/shm
文件系統        容量  已用  可用 已用% 掛載點
tmpfs           3.9G     0  3.9G    0% /dev/shm

假設系統內存 8G,那么可用共享內存大小就是 4G,接近上面報錯信息中的 3908M,所以才會報錯。
如果有需要,共享內存大小可以支持修改,修改 /etc/fstab 文件即可,修改 /dev/shm 所在行,沒有則新增:

tmpfs /dev/shm tmpfs defaults,size=6G 0 0
// 修改后重新掛載
[root@centos-linux ~]mount –o remount  /dev/shm
// 或者卸載再掛載
[root@centos-linux ~]umount /dev/shm
[root@centos-linux ~]mount -t tmpfs -o size=6G tmpfs /dev/shm

[root@centos-linux ~]df -h /dev/shm
文件系統        容量  已用  可用 已用% 掛載點
shmfs           6.0G     0  6.0G    0% /dev/shm

參考:https://www.cnblogs.com/tinywan/p/10550356.html

安裝完成,提示 Successfully Setup Software.,按提示執行腳本:

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 21313 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4015 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-11-30_11-40-10AM. Please wait ...[oracle@JY-DB01 database]$ [WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /db/oracle/oraInventory/logs/installActions2015-11-30_11-40-10AM.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:
 /db/oracle/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
The installation of Oracle Database 11g was successful.
Please check '/db/oracle/oraInventory/logs/silentInstall2015-11-30_11-40-10AM.log' for more details.

As a root user, execute the following script(s):
        1. /db/oracle/oraInventory/orainstRoot.sh
        2. /db/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.

新開一個終端:

// root 用戶執行腳本
$ /db/oracle/oraInventory/orainstRoot.sh
$ /db/oracle/product/11.2.0/dbhome_1/root.sh

1)啟動監聽

// 切換 oracle 用戶
su - oracle

// 啟動監聽
$ lsnrctl start

// 查看監聽狀態
$ lsnrctl status

2)登錄數據庫

$ sqlplus / as sysdba

// 查看數據庫狀態
$ select status from v$instance;

3)配置加密傳輸

Oracle 服務器和客戶端之間的數據傳輸默認是使用明文方式傳輸,對于敏感信息是很不安全的。
啟動傳輸加密和校驗的方法是通過修改服務器端和客戶端的 sqlnet.ora 文件實現。
修改sqlnet.ora配置:(路徑:$ORACLE_HOME/network/admin

# 加密級別
SQLNET.ENCRYPTION_SERVER = REQUIRED
# 加密算法
SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256
# 數據完整性校驗
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
# 校驗算法
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = MD5

理論上需要在數據庫 server 端和 oracle 客戶端都修改 sqlnet.ora 文件,但因為 client 端默認傳輸加密級別是 ACCEPTED,默認一致性校驗級別是 ACCEPTED,所以只需要在服務器端設置就可以打開傳輸加密和一致性校驗功能,而不需要再對 client 端的 sqlnet.ora 進行設置

設置參數后對新建立的 session 起作用。

4)安裝安全補丁

參考:http://www.lxweimin.com/p/a7978d6a3a18

5)配置審計

參考:http://www.lxweimin.com/p/fd34c9fcfa21

四、建庫

0)建表空間

1)建用戶

2)導入表結構

3)導入數據

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內容