centos7靜默安裝oracle11g

#關閉防火牆

systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld

#關閉SElinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

#配置交換分區
#關閉交互分區

swapoff -a

#創建一個交換區文件

dd if=/dev/zero of=/u01/swapfile bs=1024 count=4096000

#將目的文件設置為swap分區文件

mkswap swapfile

#激活swap,立即啟用交換分區文件

swapon swapfile

#把交換區記錄到系統裡邊

echo "/u01/swapfile swap swap defaults 0 0" >> /etc/fstab

#查看交互分區大小

swapon

#查看uuid

blkid

#進行配置/etc/fstab,配置uuid

vim /etc/fstab

#添加掛載—-

UUID="你的uuid"              /u01                    ext4    defaults        0 0

#設置主機名

hostnamectl set-hostname 你的主機名

#yum安裝

yum -y install unzip vim* bash-completion bash-completion-extras nmap tree dos2unix nc wget lsof tcpdump lrzsz telnet screen 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 pdksh sysstat unixODBC unixODBC-devel

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm //vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

#添加oracle用戶組和用戶

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

#設置密碼

passwd oracle

#優化OS內核參數

vim /etc/sysctl.conf

fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 536870912
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

#生效

sysctl -p

#限制oracle用戶的shell許可權

vim /etc/security/limits.conf

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

#創建目錄

mkdir -p /u01/app/oracle/product/11.2.0
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/oraInventory
mkdir /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

#創建oraInst.loc

vim /etc/oraInst.loc
inventory_loc
=/u01/app/oracle/oraInventory inst_group=oinstall

#授權

chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

#設置環境變數 切換到oracle用戶下面,修改 .bash_profile

su - oracle
vim .bash_profile

unset TNS_ADMIN

export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ORCL
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

source /home/oracle/.bash_profile
env

#解壓軟體

su - oracle
cd /home/oracle/
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

#設置所屬主和組

su - root
cd /home/oracle/
chown -R oracle:oinstall database
chmod -R +x database

su - root
mkdir /home/oracle/etc/
cp /home/oracle/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp

su – oracle
vim /home/oracle/etc/db_install.rsp

#這裡是選擇安裝類型:1.只裝資料庫軟體INSTALL_DB_SWONLY  2.安裝資料庫軟體並建庫INSTALL_DB_AND_CONFIG  3.升級資料庫UPGRADE_DB

oracle.install.option=INSTALL_DB_SWONLY

#這裡是指定主機的HOSTNAME

ORACLE_HOSTNAME=你的主機名

#指定oracle inventory目錄的所有者,通常會是oinstall或者dba

UNIX_GROUP_NAME=oinstall

#指定oracle inventory目錄的路徑,如果是Win平台下可以省略

INVENTORY_LOCATION=/u01/app/oracle/oraInventory

#指定添加的語言,可以選擇多個,用逗號隔開。大多數庫會選擇,en, zh_CN即英文和簡體中文。

SELECTED_LANGUAGES=en,zh_CN

#設置ORALCE_HOME的路徑

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

#設置ORACLE_BASE的路徑

ORACLE_BASE=/u01/app/oracle

#選擇Oracle資料庫軟體的版本,正如Win 7有標準版,高級版、專業版、旗艦版之分,不同的版本功能上會有不同。Oralce資料庫軟體在這裡也可以指定安裝的版本,通常來說,實驗環境我們都選擇Enterprise Edition即企業版

oracle.install.db.InstallEdition=EE

#這裡是是否自定義Oracle的組件,如果選擇false,則會使用默認的組件,否則需要自己在下面一條參數將要安裝的組件一一列出。通常來說只要客戶購買了相應版權,我們會安裝所有的組件,因為後期如果缺乏某個組件,要再次安裝會非常的麻煩。

oracle.install.db.isCustomInstall=true

#指定DBA組,通常是dba

oracle.install.db.DBA_GROUP=dba

#指定OPER組,通常是oinstall

oracle.install.db.OPER_GROUP=oinstall

#這裡選擇資料庫的用途,一般用途/事物處理(GENERAL_PURPOSE/TRANSACTION_PROCESSING),數據倉庫(DATA_WAREHOUSE)

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

#指定Global Name

oracle.install.db.config.starterdb.globalDBName=orcl

#指定SID

oracle.install.db.config.starterdb.SID=orcl

#非常關鍵的一步,選擇字符集。錯誤的字符集會給後期帶來無盡的麻煩,所以一定要確認好字符集。通常我們選擇的是ZHS16GBK, 所謂的國標16位簡體中文庫

oracle.install.db.config.starterdb.characterSet=AL32UTF8

#指定Oracle自動管理記憶體的大小,最小是256MB

oracle.install.db.config.starterdb.memoryLimit=512

#所有schemas使用同一個密碼

oracle.install.db.config.starterdb.password.ALL=oracle

#是否設置安全更新

DECLINE_SECURITY_UPDATES=true

#開始安裝

su - oracle
cd /home/oracle/database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
#Successfully Setup Software出現這個表示安裝成功

#查看日誌 需要耐性等待時間 有的時候回很慢

tail -f /u01/app/oracle/oraInventory/logs/xxx.log

#使用root用戶執行腳本

/u01/app/oracle/product/11.2.0/db_1/root.sh

#修改oracle的環境變數

su - oracle
vim ~/.bash_profile

export ORACLE_SID=你的主機名或者應用名
export ORACLE_HOME=/u01/app/oracle/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/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/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

#配置監聽程式

vim /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
(ADDRESS = (PROTOCOL = TCP)(HOST = 你的主機名或者IP)(PORT = 你啟動的埠))

vim /home/oracle/etc/netca.rsp
修改LISTENER_PROTOCOLS={"TCP;你啟動的埠"}

#安裝監聽

/u01/app/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
#Listener Control complete &Listener started successfully 出現這個表示成功

#查看日誌

tail -f /u01/app/oracle/cfgtoollogs/netca/xxx.log

#啟動監控程式

su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start

#查看監聽程式

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status

#靜默dbca建庫 在root下編輯

su - root

#編輯應答文件

vim /home/oracle/etc/dbca.rsp

SID="你的主機名或者應用名"
SYSPASSWORD = "你的密碼" 
SYSTEMPASSWORD = "你的密碼" 
CHARACTERSET="AL32UTF8" 
NATIONALCHARACTERSET="UTF8"

#建庫 在orcale用戶下執行

su - oracle

#需要查看下dbca.rsp裡面的sid要和環境變數裡面的保持一致

/u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp

#查看日誌

tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log

cp /u01/app/oracle/admin/orcl11g/pfile/init.ora.724202053030 /u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl11g.ora

#設置Oracle開機啟動

vim /etc/oratab
mydb:/u01/app/oracle/product/11.2.0:Y  # //把「N」改成「Y」

# 通過dbstart 啟動此實例,監聽器

su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/dbstart $ORACLE_HOME;

# oracle的進程關閉,監聽器也停止;

/u01/app/oracle/product/11.2.0/db_1/bin/dbshut $ORACLE_HOME;

# 啟動監聽

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start;

#查看監聽

/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status;

#登錄Oracle

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog

# 進入系統管理用戶

SQL> conn / as sysdba
Connected to an idle instance.

# 啟動oracle實例

SQL> startup;

#查看資料庫版本

SQL> SELECT * FROM V$VERSION;

#查看實例狀態

SQL> select status from v$instance;

#查看資料庫編碼

SQL> select userenv('language') from dual;

#創建用戶

SQL> create user 你的用戶名 identified by 密碼;

#授權dba

SQL> grant dba to 你的用戶名;

#授權用戶

alter user 你的用戶名 default tablespace users;

SQL> disc

#查看用戶

SQL> col username for a20
SQL> select username from dba_users;

#修改默認密碼

alter user system identified by 密碼;
alter user sys identified by 密碼;

#查看oracle實例進程

ps -ef | grep ora_ | grep -v grep

#配置啟動腳本

vim /etc/init.d/oracle

#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
#下面的路徑寫成你自己的 ORACLE_HOME
=/u01/app/oracle/product/11.2.0/db_1 ORACLE_USER=oracle case "$1" in 'start') if [ -f $LOCKFILE ]; then echo $0 already running. exit 1 fi echo -n $"Starting Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" touch $LOCKFILE ;; 'stop') if [ ! -f $LOCKFILE ]; then echo $0 already stopping. exit 1 fi echo -n $"Stopping Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" rm -f $LOCKFILE ;; 'restart') $0 stop $0 start ;; 'status') if [ -f $LOCKFILE ]; then echo $0 started. else echo $0 stopped. fi ;; *) echo "Usage: $0 [start|stop|status]" exit 1 esac exit 0

#配置開機啟動

1.
chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle (start stop status)

或者

2.
vim /etc/rc.d/rc.local su oracle -lc "/u01/app/oracle/product/11.2.0/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/11.2.0/bin/dbstart

 

vim /etc/oratabmydb:/u01/app/oracle/product/11.2.0:Y  # //把「N」改成「Y」

swapon swapfile

Tags: