CentOS 7.X 靜默安裝Oracle 12C數據庫

環境

System : CentOS 7.x

jrxxfwb-zrgldb://> uname -a
Linux jrxxfwb-zrgldb 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

SELINUX: 關閉

FIREWALL:關閉

systemctl stop firewalld.service --關閉防火牆
systemctl disable firewalld.service -- 禁止防火牆開機啓動
systemctl status firewalld.service  -- 查看防火牆狀態


操作步驟

A、環境準備

B、用戶組創建

C、修改系統內核參數

D、修改用戶配置

E、數據庫應用安裝

F、數據庫初始化

A、環境準備

1、選擇Oracle安裝包,直接去官網選擇自己需要的版本(需要註冊oracle賬號),如果下載不了的話也可以聯繫我度盤共享。

地址:https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html

本次使用的版本下載地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-2240591.html

image


2、使用root用戶登錄,進行系統基礎環境準備。

執行以下命令:

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

靜待系統進行軟件更新安裝,成功後如下:

image

執行檢查命令:

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

image

5

B、用戶組創建

1、創建 oinstall 和 dba 組

zrgldb:/root/> groupadd oinstall
zrgldb:/root/> groupadd dba

2、創建 oracle 用戶,設置密碼

jrxxfwb-zrgldb:/root/> useradd -g oinstall -G dba oracle
jrxxfwb-zrgldb:/root/> passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

3、查看用戶 id oracle

zrgldb:/root/> id oracle
uid=1004(oracle) gid=1004(oinstall) groups=1004(oinstall),1005(dba)


C、修改系統內核參數

1、修改系統配置: vi /etc/sysctl.conf ,增加如下內容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
# shmall 是全部允許使用的共享內存大小,shmmax 是單個段允許使用的大小。這兩個可以設置爲內存的 90%。例如 16G 內存,16*1024*1024*1024*90% = 15461882265,shmall 的大小爲 15461882265/4k(getconf PAGESIZE可得到) = 3774873
# 因爲本機是32G內存,所以shmmax 是 32*1024*1024*1024*90% = 30,923,764,531,shmall 是 30,923,764,531/4096 = 7,549,747
kernel.shmmax = 30923764531
kernel.shmall = 7549747
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

結果如下:

image


2、使配置生效:  sysctl -p

image


D、修改用戶配置

1、修改用戶限制。

打開文件:  vi  /etc/security/limits.conf

在文件末尾添加如下6行內容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

最終結果如圖:

image


2、修改用戶登錄庫文件引用

打開系統文件: vi /etc/pam.d/login

在文件末尾添加如下2行內容:

session    required     /lib64/security/pam_limits.so
session    required     pam_limits.so

最終結果如圖:

image


3、修改用戶登錄環境變量

打開系統文件: vi /etc/profile

在文件末尾添加如下內容:

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

最終結果如圖:

image

退出編輯狀態,使修改的文件生效:

source /etc/profile


4、創建安裝目錄,配置安裝目錄權限。

mkdir -p /usr/app/
chown -R oracle:oinstall /usr/app/
chmod -R 775 /usr/app/


5、配置 Oracle 用戶環境變量

切換用戶: su – oracle

編輯環境變量: vi .bash_profile

新增配置如下:

export ORACLE_BASE=/usr/app/oracle
export ORACLE_SID=orcl
export PS1=`uname -n`':$PWD/> '

image

生效配置文件: source .bash_profile

E、數據庫應用安裝

1、使用 oracle 用戶,創建數據庫安裝配置文件夾 etc 。

zrgldb://> su - oracle
zrgldb:/home/oracle/> mkdir etc


2、上傳安裝文件到 oracle 用戶目錄下,並解壓文件。

執行命令:

zrgldb:/home/oracle/> unzip linuxamd64_12102_database_1of2.zip
zrgldb:/home/oracle/> unzip linuxamd64_12102_database_2of2.zip

解壓完成會在用戶目錄下出現一個 database 文件夾,如下:

image


3、複製 Oracle配置文件到 etc 目錄下,並修改配置文件權限

zrgldb:/home/oracle/> cp  ./database/response/* ./etc/
zrgldb:/home/oracle/> chmod 700 ./etc/*.rsp

複製後的etc目錄文件如下:

image


4、修改靜默安裝配置文件 db_install.rsp

vi ./etc/db_install.rsp

# 修改文件配置
#-------------------------------------------------------------------------------
# Specify the installation option.
# It can be one of the following:
#   - INSTALL_DB_SWONLY
#   - INSTALL_DB_AND_CONFIG
#   - UPGRADE_DB
#-------------------------------------------------------------------------------
oracle.install.option=INSTALL_DB_SWONLY

#-------------------------------------------------------------------------------
# Specify the Unix group to be set for the inventory directory.
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=oinstall

#-------------------------------------------------------------------------------
# Specify the location which holds the inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/usr/app/oracle/oraInventory

# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
#-------------------------------------------------------------------------------
SELECTED_LANGUAGES=en,zh_CN

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Home.
#-------------------------------------------------------------------------------
ORACLE_HOME=/usr/app/oracle/product/12/db_1

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#-------------------------------------------------------------------------------
ORACLE_BASE=/usr/app/oracle

#-------------------------------------------------------------------------------
# Specify the installation edition of the component.
#
# The value should contain only one of these choices.
#   - EE     : Enterprise Edition

#-------------------------------------------------------------------------------
oracle.install.db.InstallEdition=EE

#------------------------------------------------------------------------------
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
#-------------------------------------------------------------------------------
oracle.install.db.DBA_GROUP=dba

#------------------------------------------------------------------------------
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The value to be specified for OSOPER group is optional.
#------------------------------------------------------------------------------
oracle.install.db.OPER_GROUP=oinstall

#------------------------------------------------------------------------------
# The BACKUPDBA_GROUP is the OS group which is to be granted OSBACKUPDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.BACKUPDBA_GROUP=oinstall

#------------------------------------------------------------------------------
# The DGDBA_GROUP is the OS group which is to be granted OSDGDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.DGDBA_GROUP=oinstall

#------------------------------------------------------------------------------
# The KMDBA_GROUP is the OS group which is to be granted OSKMDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.KMDBA_GROUP=oinstall

#-------------------------------------------------------------------------------
# Specify the type of database to create.
# It can be one of the following:
#   - GENERAL_PURPOSE
#   - DATA_WAREHOUSE
# GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications.
# DATA_WAREHOUSE : A starter database optimized for data warehousing applications.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

#-------------------------------------------------------------------------------
# Specify the Starter Database Global Database Name.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.globalDBName=orcl

#-------------------------------------------------------------------------------
# Specify the Starter Database SID.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.SID=orcl

#-------------------------------------------------------------------------------
# Specify the Starter Database character set.
#
#  One of the following
#  AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,
#  EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,
#  BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,
#  AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,
#  IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
#  KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,
#  ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.characterSet=AL32UTF8

#------------------------------------------------------------------------------
# This variable should be set to true if Automatic Memory Management
# in Database is desired.
# If Automatic Memory Management is not desired, and memory allocation
# is to be done manually, then set it to false.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryOption=true

#------------------------------------------------------------------------------
# This variable holds the password that is to be used for all schemas in the
# starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.ALL=oracle

#------------------------------------------------------------------------------
# Specify whether to enable the user to set the password for
# My Oracle Support credentials. The value can be either true or false.
# If left blank it will be assumed to be false.
#
# Example    : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true
#------------------------------------------------------------------------------
SECURITY_UPDATES_VIA_MYORACLESUPPORT=true

#------------------------------------------------------------------------------
# Specify whether user doesn't want to configure Security Updates.
# The value for this variable should be true if you don't want to configure
# Security Updates, false otherwise.
#
# The value can be either true or false. If left blank it will be assumed
# to be false.
#
# Example    : DECLINE_SECURITY_UPDATES=false
#------------------------------------------------------------------------------
DECLINE_SECURITY_UPDATES=true
Look這裏


5、開始安裝,執行 db_install.rsp

zrgldb:/home/oracle/> ./database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 44203 MB    Passed
Checking swap space: 0 MB available, 150 MB required.    Failed <<<<

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,

Continue? (y/n) [n]

報錯了。我直接輸入 n退出了,當然輸入 y 也可能安裝成功,避免失敗,我還是把問題解決一下。如果沒報錯直接進行安裝操作,跳過以下步驟。

一、是沒有swap空間

① 檢查一下系統的 swap 文件

zrgldb:/home/oracle/>  swapon –s
swapon: stat failed –s: No such file or directory

說明系統不存在swap

② 切換 root 用戶,創建swap文件

zrgldb:/root/> dd if=/dev/zero of=/swapfile bs=1024 count=512k
524288+0 records in
524288+0 records out
536870912 bytes (537 MB) copied, 1.49301 s, 360 MB/s

③ 格式化並激活 Swap 文件

zrgldb:/root/> mkswap /swapfile
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=ea40b04c-238c-41b1-8f83-7d36b8b7fd66

zrgldb:/root/> swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.

④ 再次檢查系統的 Swap 文件

zrgldb:/root/> swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file    524284  0       -1

⑤ 配置機器重啓自動掛載Swap,修改 fstab 配置:vi  /etc/fstab

添加一行

/swapfile          swap            swap    defaults        0 0

⑥ 賦予 Swap 文件權限

zrgldb://> chmod 600 /swapfile
zrgldb://> chown root:root /swapfile


切換到 oracle 用戶 ,再次執行本部操作的數據庫安裝命令:

zrgldb:/home/oracle/> ./database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 43690 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 511 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-08-01_03-16-16PM. Please wait ...


You can find the log of this install session at:
  /usr/app/oracle/oraInventory/logs/installActions2019-08-01_03-20-39PM.log
The installation of Oracle Database 12c was successful.
Please check '/usr/app/oracle/oraInventory/logs/silentInstall2019-08-01_03-20-39PM.log' for more details.

As a root user, execute the following script(s):
         1. /usr/app/oracle/oraInventory/orainstRoot.sh
         2. /usr/app/oracle/product/12/db_1/root.sh


Successfully Setup Software.

等待結果,這樣安裝就成功完成了。

6、切換 root 用戶,修改數據庫配置

zrgldb://> /usr/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /usr/app/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /usr/app/oracle/oraInventory to oinstall.
The execution of the script is complete.
jrxxfwb-zrgldb://> /usr/app/oracle/product/12/db_1/root.sh
Check /usr/app/oracle/product/12/db_1/install/root_jrxxfwb-zrgldb_2019-08-01_15-29-54.log for the output of root script


F、數據庫初始化

1、使用 oracle 用戶登錄,修改用戶環境變量

export ORACLE_BASE=/usr/app/oracle
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/usr/app/oracle/product/12/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'

使環境變量生效,執行命令:source .bash_profile


2、配置監聽程序

zrgldb:/home/oracle/> netca /silent /responsefile /home/oracle/etc/netca.rsp


3、啓動監聽

zrgldb:/home/oracle/> lsnrctl start
LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 01-8月 -2019 15:47:15
Copyright (c) 1991, 2014, Oracle.  All rights reserved.


4、靜默建庫文件修改,打開 dbca.rsp 文件。

vi ./etc/dbca.rsp

#-----------------------------------------------------------------------------
# Name          : SID
# Datatype      : String
# Description   : System identifier (SID) of the database
# Valid values  : Check Oracle12c Administrator's Guide
# Default value : <db_name> specified in GDBNAME
# Mandatory     : No
#-----------------------------------------------------------------------------
SID = "orcl"

#-----------------------------------------------------------------------------
# Name          : CHARACTERSET
# Datatype      : String
# Description   : Character set of the database
# Valid values  : Check Oracle12c National Language Support Guide
# Default value : "US7ASCII"
# Mandatory     : NO
#-----------------------------------------------------------------------------
CHARACTERSET = "AL32UTF8"

#-----------------------------------------------------------------------------
# Name          : LISTENERS
# Datatype      : String
# Description   : Specifies list of listeners to register the database with.
#                 By default the database is configured for all the listeners specified in the
#                 $ORACLE_HOME/network/admin/listener.ora
# Valid values  : The list should be comma separated like "listener1,listener2".
# Mandatory     : NO
#-----------------------------------------------------------------------------
LISTENERS = "LISTENERS"


5、執行靜默建庫

zrgldb:/home/oracle/>  dbca -silent -createDatabase  -responseFile  /home/oracle/etc/dbca.rsp
輸入 SYS 用戶口令:
 
輸入 SYSTEM 用戶口令:

複製數據庫文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在創建並啓動 Oracle 實例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在進行數據庫創建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有關詳細信息, 請參閱日誌文件 "/usr/app/oracle/cfgtoollogs/dbca/orcl/orcl.log"。

建庫完成了。


6、創建數據庫應用用戶並授權。

zrgldb:/home/oracle/> sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 星期四 8月 1 16:45:33 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


連接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> create user starring identified by starring;

用戶已創建。

SQL> grant connect,resource,dba to starring;

授權成功。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章