记录silently安装oracle的流程,适用于在没有界面的服务器上安装oracle。
安装规划
参数 | 值 |
---|---|
Oracle base | /d01/app/oracle |
Software location | /d01/app/oracle/product/11.2.0.1.0/dbhome_1 |
DATAFILEDESTINATION | /d02/oradata |
RECOVERYAREADESTINATION | /d02/fast_recovery_area |
Global database name | orcl11g |
SID | orcl11g |
环境配置
# 指定安装目录
export INSPREFIX=/disk1
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
cd $INSPREFIX
mkdir d01
mkdir d02
mkdir stage
ln -s $INSPREFIX/d01 /d01
ln -s $INSPREFIX/d02 /d02
ln -s $INSPREFIX/stage /stage
chown -R oracle:oinstall /d01 $INSPREFIX/d01
chown -R oracle:oinstall /d02 $INSPREFIX/d02
chmod -R 775 /d01 $INSPREFIX/d01
chmod -R 775 /d02 $INSPREFIX/d02
chmod g+s /d01 $INSPREFIX/d01
chmod g+s /d02 $INSPREFIX/d02
yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 \
glibc-devel.i686 glibc-devel.x86_64 ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 \
libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 \
libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 smartmontools.x86_64 nfs-utils
# 在 /etc/security/limits.conf 为 oracle 用户设置上限
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle soft stack 32768
# 看情况
vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
sysctl -p
将 Oracle 数据库软件的 zip 文件 DOWNLOAD
(linux.x64_11gR2_database_1of2.zip,linux.x64_11gR2_database_2of2.zip)
解压至 /stage 目录。
chown -R oracle:oinstall /stage $INSPREFIX/stage
# your mac
scp linux.x64_11gR2_database_1of2.zip mingjie.gmj@10.218.77.200:/tmp
scp linux.x64_11gR2_database_2of2.zip mingjie.gmj@10.218.77.200:/tmp
mv /tmp/linux.x64_11gR2_database_1of2.zip /stage
mv /tmp/linux.x64_11gR2_database_2of2.zip /stage
chown -R oracle:oinstall /stage/*
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
设置oracle用户环境变量
su - oracle
vim ~/.bash_profile
ORACLE_BASE=/d01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1.0/dbhome_1
ORACLE_SID=orcl11g
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SIDPATH ORACLE_SID
alias sp='rlwrap sqlplus / as sysdba'
alias visplogin='vim $ORACLE_HOME/sqlplus/admin/glogin.sql'
# glogin.sql
# set linesize 120
# set pagesize 40
# set sqlprompt "_user'@'_connect_identifier>"
创建swap(如果需要)
# 确认存在swap
swapon -s
# 确认硬盘空间
df -hal
# 创建swap文件1G
dd if=/dev/zero of=/swapfile bs=1024 count=1024k
# 格式化
mkswap /swapfile
# 激活swap
swapon /swapfile
# 确认存在swap
swapon -s
Filename Type Size Used Priority
/swapfile file 1048568 0 -1
安装
cp -R $INSPREFIX/stage/database/response/ .
cd response/
vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
# 主机名
ORACLE_HOSTNAME=r10f17477.sqa.zmf
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/d01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/d01/app/oracle/product/11.2.0.1.0/dbhome_1
ORACLE_BASE=/d01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
./database/runInstaller -silent -responseFile /stage/response/db_install.rsp
./database/runInstaller -ignoreSysPrereqs -silent -responseFile /stage/response/db_install.rsp
以静默方式配置监听
netca /silent -responseFile /stage/response/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /stage/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/d01/app/oracle/product/11.2.0.1.0/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
成功运行后,在$ORACLE_HOME/network/admin/中生成listener.ora和sqlnet.ora
netstat发现1521正在监听
netstat -nap | grep 1521
tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN 53669/tnslsnr
unix 2 [ ACC ] STREAM LISTENING 1100391704 53669/tnslsnr /var/tmp/.oracle/sEXTPROC1521
静默方式建库
dbca -silent -responseFile /stage/response/
dbca -silent -responseFile /stage/response/
vi response/dbca.rsp
GDBNAME="orcl11g"
SID="orcl11g"
SYSPASSWORD="Server_234"
SYSTEMPASSWORD="Server_234"
SYSMANPASSWORD="Server_234"
DBSNMPPASSWORD="Server_234"
DATAFILEDESTINATION=/d02/oradata
RECOVERYAREADESTINATION=/d02/fast_recovery_area
CHARACTERSET = "US7ASCII"
TOTALMEMORY= "2048"
检查
ps -ef | grep ora_ | grep -v grep
lsnrctl status
sqlplus / as sysdba
-- or
sqlplus system/Server_234@orcl11g
select status from v$instance;
启停
启用utilities:脚本修改/etc/oratab文件
orcl11g:/d01/app/oracle/product/11.2.0.1.0/dbhome_1:N
中最后的N改为Y
orcl11g:/d01/app/oracle/product/11.2.0.1.0/dbhome_1:Y
脚本起停
[oracle@r10f17477.sqa.zmf /d01/app/oracle/product/11.2.0.1.0/dbhome_1/bin]
$dbshut $ORACLE_HOME
Processing Database instance "orcl11g": log file /d01/app/oracle/product/11.2.0.1.0/dbhome_1/shutdown.log
[oracle@r10f17477.sqa.zmf /d01/app/oracle/product/11.2.0.1.0/dbhome_1/bin]
$dbstart $ORACLE_HOME
Processing Database instance "orcl11g": log file /d01/app/oracle/product/11.2.0.1.0/dbhome_1/startup.log
配置chkconfig启动
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 ManagementSystem.
#./etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/d01/app/oracle/product/11.2.0.1.0/dbhome_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ];then
echo $0 already running.
else
echo -n $"StartingOracle Database:"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
fi
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
else
echo -n $"StoppingOracle Database:"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c"$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
fi
;;
'restart')
$0 stop
sleep 5
$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
chmod 755 /etc/init.d/oracle
chkconfig oracle on
进行service oracle start/stop/restart测试
#service oracle start
StartingOracle Database:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-NOV-2018 22:34:37
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /d01/app/oracle/product/11.2.0.1.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /d01/app/oracle/product/11.2.0.1.0/dbhome_1/network/admin/listener.ora
Log messages written to /d01/app/oracle/diag/tnslsnr/r10f17477/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=r10f17477.sqa.zmf)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 04-NOV-2018 22:34:37
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /d01/app/oracle/product/11.2.0.1.0/dbhome_1/network/admin/listener.ora
Listener Log File /d01/app/oracle/diag/tnslsnr/r10f17477/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=r10f17477.sqa.zmf)(PORT=1521)))
The listener supports no services
The command completed successfully
Processing Database instance "orcl11g": log file /d01/app/oracle/product/11.2.0.1.0/dbhome_1/startup.log
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
#service oracle stop
StoppingOracle Database:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-NOV-2018 22:32:50
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener
Usage: /d01/app/oracle/product/11.2.0.1.0/dbhome_1/bin/dbshut ORACLE_HOME
Processing Database instance "orcl11g": log file /d01/app/oracle/product/11.2.0.1.0/dbhome_1/shutdown.log
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
# service oracle restart
ok