参考CentOS7安装Oracle11g—静默安装_initoracle11.ora-CSDN博客,在CentOS7虚拟机上安装Oracle 11g
一.准备工作
- 安装VMWare,在VMware上安装Centos
- 安装Xshell和Xftp
- 下载Linux版Oracle 11g
默认读者有基础可以自行安装上述软件,Linux版Oracle可以从https://www.cnblogs.com/mmzs/p/9030823.html中获取下载链接
虚拟机配置为4G内存,40G硬盘
二.配置CentOS虚拟机中的ip
VMWare中安装CentOS7默认是关闭网络的,ip也是随机的,需要打开网络并固定IP
root登录,打开网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改onboot为yes保存,重启,输入ip addr,显示已获取局域网ip
查询虚拟机的网关
点击VMware编辑菜单,进入虚拟网络编辑器
点击上方NAT模式行,再点击NAT设置,获取网关地址
重新vi /etc/sysconfig/network-script/ifcfg-ens33,设置如下
BOOTPROTO设置为static
IPADDR设置为之前ip addr获取到的ip
NETMASK设置为255.255.255.0
GATEWAY和DNS1设置为VMWare的网关,然后service network restart重启网络服务,虚拟机ip就固定了
之后,我们就可以用XShell和Xftp更方便的操控虚拟机了
二.准备Oracle工作
XShell和Xftp连接虚拟机的22端口,默认都会,就不讲了,注意要用root登录
HostName修改:oracle
hostnamectl set-hostname oracle
配置yum源
安装wget和vim
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum update
yum -y install vim*
安装依赖包
yum -y 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 \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
检查依赖是否安装完整
rpm -q \
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 \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"
添加oracle用户组和用户
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
初始化oracle用户的密码
passwd oracle
配置hostname(本机IP映射)
vim /etc/hosts
192.168.235.126 oracle
# 测试hostname
ping -c 3 oracle
优化OS内核参数 # kernel.shmmax 参数设置为物理内存的一半(非常有必要)
# kernel.shmmax 参数设置为物理内存的一半
vim /etc/sysctl.conf
## 内容如下:
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 2147483648
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
其实更建议用Xftp
使参数生效
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
vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
vim /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
创建oracle安装目录
mkdir -p /db/app/oracle/product/11.2.0
mkdir /db/app/oracle/oradata
mkdir /db/app/oracle/oraInventory
mkdir /db/app/oracle/fast_recovery_area
chown -R oracle:oinstall /db
chmod -R 777 /db
创建 vim /etc/oraInst.loc
inventory_loc=/db/app/oracle/oraInventory
inst_group=oinstall
授权:
chown oracle:oinstall /etc/oraInst.loc
chmod 777 /etc/oraInst.loc
配置oracle用户环境变量
su - oracle ## oracle用户登陆
vim .bash_profile
export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/db/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"
重启虚拟机 需要 su - root 回到root用户重启
三.安装Oracle
上传Linux版Oracle到/db 解压oracle压缩文件到 /db
安装unzip
yum -y install unzip
解压
cd /db/
unzip linux.x64_11gR2_database_1of2.zip -d /db
unzip linux.x64_11gR2_database_2of2.zip -d /db
登录Root,复制授权
su - root
mkdir /home/oracle/etc/
cp /db/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp
登录oracle用户
vim /home/oracle/etc/db_install.rsp
## 信息如下:
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/db/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle
ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=oracle
DECLINE_SECURITY_UPDATES=true
开始安装:
su - oracle
cd /db/database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
使用root用户执行脚本:
su - root
/db/app/oracle/product/11.2.0/db_1/root.sh
增加或修改oracle的环境变量
su - oracle
vim ~/.bash_profile
export ORACLE_HOME=/db/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 ~/.bash_profile
配置监听程序
cd /db/app/oracle/product/11.2.0/db_1/bin
./netca /silent /responseFile /home/oracle/etc/netca.rsp
启动监控程序
cd /db/app/oracle/product/11.2.0/db_1/bin
./lsnrctl start
./lsnrctl status
编辑应答文件
vim /home/oracle/etc/dbca.rsp
GDBNAME = "orcl.oracle"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET = "UTF8"
# 执行:
cd /db/app/oracle/product/11.2.0/db_1/bin
./dbca -silent -responseFile /home/oracle/etc/dbca.rsp
至此完成数据库实例的创建
如果要删除实例
cd /db/app/oracle/product/11.2.0/db_1/bin
./dbca -silent -deleteDatabase -sourcedb orcl
设置Oracle开机启动
vim /etc/oratab
orcl:/db/app/oracle/product/11.2.0/db_1:Y # //把“N”改成“Y”
cd /db/app/oracle/product/11.2.0/db_1/bin
# 通过dbstart 启动此实例,监听器
./dbstart $ORACLE_HOME;
# oracle的进程关闭,监听器也停止;
./dbshut $ORACLE_HOME;
# 启动监听
./lsnrctl start;
# 查看监听
./lsnrctl status;
登录Oracle,登陆之前,最好重新启动一下虚拟机,转成oracle用户
sqlplus / as sysdba
# 进入系统管理用户
SQL> startup;
报错
解决方法,查看文件,重新登录数据库sqlplus / as sysdba startup;
cd /db/app/oracle/product/11.2.0/db_1/dbs
ls
# 查看initorcl.ora不存在;
cd /db/app/oracle/admin/orcl/pfile/
ls
#获取文件名为init.ora.init.ora.182021222552
cp ./init.ora.182021222552 /db/app/oracle/product/11.2.0/db_1/dbs/
cd /db/app/oracle/product/11.2.0/db_1/dbs/
ls
# 结果为
hc_ora11g.dat init.ora init.ora.182021222552 lkORCL orapworcl
mv ./init.ora.182021222552 initORCL.ora
chmod -R 777 /db/app/oracle/product/11.2.0/db_1/dbs/initORCL.ora
成功开启
SQL> exit;
退出,开启监听
cd /db/app/oracle/product/11.2.0/db_1/bin
# 通过dbstart 启动此实例,监听器
./dbstart $ORACLE_HOME;
# 启动监听
./lsnrctl start;
防火墙开启1521端口,需要root登录
//防火墙开启端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
//重启防火墙
firewall-cmd --reload
登录成功
CentOS虚拟机安装Oracle结束,注意:一定要配置# kernel.shmmax 参数设置为物理内存的一半(非常有必要)