環境
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
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靜待系統進行軟件更新安裝,成功后如下:
執行檢查命令:
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
5
B、用戶組創建
1、創建 oinstall 和 dba 組
zrgldb:/root/> groupadd oinstall zrgldb:/root/> groupadd dba2、創建 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,747kernel.shmmax = 30923764531kernel.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結果如下:
2、使配置生效: sysctl -p
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最終結果如圖:
2、修改用戶登錄庫文件引用
打開系統文件: vi /etc/pam.d/login
在文件末尾添加如下2行內容:
session required /lib64/security/pam_limits.so
session required pam_limits.so最終結果如圖:
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最終結果如圖:
退出編輯狀態,使修改的文件生效:
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/> '生效配置文件: source .bash_profile
E、數據庫應用安裝
1、使用 oracle 用戶,創建數據庫安裝配置文件夾 etc 。
zrgldb://> su - oraclezrgldb:/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 文件夾,如下:
3、復制 Oracle配置文件到 etc 目錄下,並修改配置文件權限
zrgldb:/home/oracle/> cp ./database/response/* ./etc/zrgldb:/home/oracle/> chmod 700 ./etc/*.rsp復制后的etc目錄文件如下:
4、修改靜默安裝配置文件 db_install.rsp
vi ./etc/db_install.rsp
Look這里# 修改文件配置 #------------------------------------------------------------------------------- # 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
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-7d36b8b7fd66zrgldb:/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; 授權成功。