转载请注明:https://blog.csdn.net/u011291276/article/details/108143497
本文是安装Oracle11g的详细步骤;
本人已通过此方式,成功安装多次Oracle11g,包含Centos7下安装、redhat6下安装
oracle12c、18c和11g安装方式一致,下面安装的有第四章节是18c,12c可以作为参考;
18c安装步骤:https://blog.csdn.net/u011291276/article/details/103497464
另外,除了最终执行runInstaller 安装内容外,安装之前的内容基本的都是安装oracle必须的操作,
本人用此步骤成功安装18c、12c和11gR2,两者区别仅是最终安装执行runInstaller 命令稍微不同,以及配置文件不同。
Oracle18c 静默安装包
LINUX.X64_180000_db_home.zip
Centos7
Redhat6
Oracle11gR2静默安装包
linux.x64_11gR2_database_2of2.zip
linux.x64_11gR2_database_1of2.zip
su - root (环境配置在root用户下)
hostname vsir128
vi /etc/hosts 添加IP对应主机名
192.168.255.128 vsir128
参考处已忘记,但这里面包含了大部分的包,缺少的几个包已经忘记是哪个了,
编译及安装时候提示缺少包,可以在继续找下,大家复制后去除换行符,粘贴
进去可以直接安装;
如果需要离线安装,网上找其对应的包全部下载后使用rpm形式安装;
redhat6下安装时出错依然提示缺少包,这个应该是系统本身比起Centos7缺少很多依赖包,可看最后一段处理方式;
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
如果系统安装时设置的swap过小,则可通过下面方法扩容
cd /usr
mkdir swap
dd if=/dev/zero of=/usr/swap/swapfile bs=1G count=4 (这条命令从硬盘里分出一个 1×4G 大小的空间,挂在swapfile上)
chmod 0600 /usr/swap/swapfile
mkswap /usr/swap/swapfile
swapon /usr/swap/swapfile
解决重启失效vi /etc/fstab增加行
/usr/swap/swapfile swap swap defaults 0 0
--如果创建了swapfile之后,想要删除,必须先执行以下命令
swapoff swapfile
然后再执行删除文件操作
rm swapfile
vim /etc/sysctl.conf 修改或添加
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
修改后使之生效
/sbin/sysctl -p
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
此处不修改应该是可以继续安装,参考的其他很多安装方式没有要修改此项,本人已直接修改
vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
使用文本编辑器或vi命令增加或修改以下内容
其中的oracle为给oracle安装创建的用户名,如果要创建为其他名字,需要修改为其对应
位置在末尾或者export变量配置前都可以;
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
永久关闭:
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
防火墙配置放开Oracle的端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
vi /etc/default/grub
在GRUB_CMDLINE_LINU 的 最后,加上 transparent_hugepage=never;
redhat6下没有此项,可以不用设置
vi /etc/redhat-release centos7改为redhat-7因为Oracle不支持centos;
redhat忽略此项
用户配置
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54330 racdba
/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
passwd oracle
切到Oracle用户
su - oracle
vi /home/oracle/.bashrc 增加
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/18.3.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
使之生效
source /home/oracle/.bashrc
oracle11g运行runinstall成功之后在添加“DISPLAY”此项设置
export DISPLAY=0.0.0.0:1.0
切到root
exit 或 su - root
mkdir /opt/oracle
chmod -R 777 /opt/oracle
chown -R oracle:oinstall /opt/oracle
切到Oracle
su - oracle
mkdir –p $ORACLE_HOME
解压两个zip文件到$ORACLE_BASE根目录下默认database文件夹;
cd $ORACLE_BASE/database
修改内容的路径请根据自己设置的路径填写
oracle.install.responseFileVersion=/opt/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
su - oracle
执行:(必须绝对路径,否则报错)
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
su - root
sh /opt/oracle/product/11.2.0/dbhome_1/root.sh
netca.rsp文件在oracle安装目录下 /opt/oracle/database/response/netca.rsp
执行前确认环境变量增加此项
export DISPLAY=0.0.0.0:1.0
执行(必须使用绝对路径):
netca -silent -responsefile /opt/oracle/database/response/netca.rsp
查看监听端口
netstat -tnpl | grep 1521
编辑应答文件
密码部分随意设置,且根据自身需要并不需要全部开启配置密码
/opt/oracle/database/response/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
su - oracle
文件在oracle根目录下 /opt/oracle/database/response
dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp
查看oracle进程
ps -ef|grep ora
查看监听状态
lsnrctl status
至此数据库就安装成功了,下面我们登录下数据库
设置Oracle11g开机启动
修改/opt/oracle/product/11.2.0/dbhome_1/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改/opt/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME
修改vi /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y
su - root
新建文件/etc/rc.d/init.d/oracle
注意:有些系统的bash启动名字为sh,第一行应更换为 #!/bin/sh
ORACLE_HOME和USER请根据个人设置
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_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"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
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"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
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
给/etc/init.d/oracle添加执行权限
chmod +x /etc/init.d/oracle
开机启动oracle
systemctl enable oracle
或
chkconfig oracle on
给启动文件加权限
chmod 6751 /opt/oracle/product/11.2.0/dbhome_1/bin/oracle
cd /var/tmp
chown -R oracle:oinstall .oracle
sqlplus / as sysdba
验证创建结果
alter user sys identified by oracle;
alter user system identified by oracle;
oracle11g修改scott账户
alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;
lsnrctl start
数据库操作
sqlplus / as sysdba // 登录数据库
select open_mode from v$database;
select status from v$instance; //查看数据库状态
alter user sys identified by oracle; //改sys超级管理员密码
alter user system identified by oracle; //改system管理员密码
exit // 退出数据库
sqlplus sys/oracle as sysdba //使用sys超级管理员登录数据库
startup // 启动数据库
select name from v$database; //查看数据库
shutdown abort //关闭数据库
conn system/oracle //切换用户conn后面直接跟用户名和密码就可以
redhat6安装Oracle11g 执行runinstall时候提示 NoClassDefFoundError错误,此处检查结果是缺少rpm包,执行以下命令,没有的包全部安装
rpm -q --queryformat %-{name}-%{version}-%{release}-%{arch}“\n” \ binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ \ libstdc+±devel make pdksh sysstat xscreensaver