基于CentOS 7静默安装Oracle 11gR2单实例数据库
本文记录从无到有部署一个CentOS 7+Oracle 11gR2单实例,做为主要学习试验环境,毕竟只有敲过并运行过的代码才是属于自己的,光看书是看不到多少知识的。
1.VMware最小化安装CentOS 7
分配20G硬盘+2G内存+nat网络 400mboot+3Gswap 去除kdump 最小化安装 并配置网络
cat /etc/sysconfig/network-scripts/ifcfg-ens32
BOOTPROTO="static"
DEVICE="ens32"
ONBOOT="yes"
IPADDR=192.168.188.11
NETMASK=255.255.255.0
GATEWAY=192.168.188.2
DNS1=192.168.188.2
2.配置yum源
[root]
安装wget、unzip
yum -y install wget
yum -y install unzip
配置163yum
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo -O CentOS-Base.repo
配置oel7源
wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
重刷缓存
yum clean all
yum makecache
3.安装oracle环境配置工具
[root]
yum -y install oracle-rdbms-server-11gR2-preinstall
#完成后备份一下这个目录的文件到其他目录 这个文件夹是修改系统后日志和原本的内核配置备份
mkdir /home/oracle/backup && cp /var/log/oracle-rdbms-server-11gR2-preinstall "$_" -R
#加载内核参数 和sysctl -p一样
sysctl –f
#设置oracle用户密码 oracle是安装工具自己创建的
passwd oracle
4.创建一些目录和配置
##配置oracle系统配置文件&授权
cat >> /etc/oraInst.loc <<EOF
inventory_loc=/home/oracle/ora11g/oraInventory
inst_group=oinstall
EOF
chmod 664 /etc/oraInst.loc
##创建oracle安装的目录&授权
mkdir -p /u01/app/
mkdir /u01/tmp
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
chmod a+wr /u01/tmp
5.配置用户环境&上传文件
[oracle]
cat >> /home/oracle/.bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=/u01/app/oracle/product/11.2.0/db_1/bin:$PATH
export ORACLE_SID=std
alias dbn='cd $ORACLE_HOME/network/admin'
alias dbs='cd $ORACLE_HOME/dbs'
alias sql='sqlplus / as sysdba'
EOF
winscp上传安装文件到oralce home
解压
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
6.配置安装响应文件
[oracle]
修改响应文件
cat /home/oracle/database/response/db_install.rsp
##我的/home/oracle/rsp/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
#INSTALL_DB_AND_CONFIG安装并自动配置数据库实例和监听 建议首次安装用这个
#不然配置另外两个文件,新建实例和监听
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/ora11g/oraInventory
SELECTED_LANGUAGES=zh_CN,en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
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=std
#实例sid
oracle.install.db.config.starterdb.SID=std
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
#最小256M 我是学习就选择最小了
oracle.install.db.config.starterdb.memoryLimit=256
#是否安装学习的scott和hr(我就知道这两个)
oracle.install.db.config.starterdb.installExampleSchemas=true
oracle.install.db.config.starterdb.enableSecuritySettings=true
#密码全设置成oracle (安装时会提示,个人学习忽略)
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
#true
DECLINE_SECURITY_UPDATES=true
7.静默安装数据库
[oracle]
#安装
##会出现密码不规范的警告,忽略
/home/oracle/database/runInstaller -silent -ignorePrereq -responseFile /home/oracle/database/response/db_install.rsp
##查看安装过程 另开一个shell 稍等
tail -f /home/oracle/ora11g/oraInventory/logs/installActions2018-07-23_07-37-45PM.log
#安装完成后执行
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
#静默删除
dbca -silent -deleteDatabase -sourceDB ora11g
8.配置防火墙
[root]
#查看1521端口
netstat -an|grep 1521
#防火墙 放行1521端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
#重新加载防火墙规则
firewall-cmd --reload
9.数据库的启动&关闭
[root]
#修改oracle服务启动配置 让数据库启动时候一起启动实例
vi /etc/oratab
[oracle]
#启动oracle
#因为修改了/etc/oratab N->y 所以启动服务也会同时启动实例
##N的情况不会同时启动实例 sqlplus登录会提示 an idle instance
##用sqlplus 然后---> startup启动实例
#重启系统后用这个命令启动
dbstart $ORACLE_HOME
#关闭
dbshut $ORACLE_HOME
10.修改主机名
hostnamectl --static set-hostname std
cat >>/etc/hosts <<EOF
192.168.188.11 std std.example.com
EOF
11.配置监听
为了简单用netca配置,首先本机安装xmanager,运行Xmanager - Passive
安装xhost的工具,先查找yum包
yum whatprovides "*/xhost"
找到yum包后安装
yum install xorg-x11-server-utils-7.7-20.el7.x86_64 –y
设置图形显示在本机中
然后启动netca配置下
然后发现我是个智障,默认已经有了动态监听了,没发现服务的重新启动下监听lsnrctl reload或者进入数据库中alter system register注册下就好了
12.配置EM
[oracle]
$ORACLE_HOME/bin/emca -config dbcontrol db -repos recreate
安装结束后,启动em
emctl start dbconsole
然后用sys用户as sysdba的方式登录http://std:5500/em
13.sqlplus 设置
cat >>$ORACLE_HOME/sqlplus/admin/glogin.sql <<EOF
Define _editor='vi'
Set sqlprompt "_user'@'_connect_identifier> "
set time on
set timing on
set pagesize 40
set linesize 120
EOF
14.配置plsql dev作为ide
本机下载安装PLSQL Developer 12 (64 bit)
安装好在安装路径中C:\instantclient_11_2建立tnsnames.ora内容
std =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = std)
)
)
然后解锁scott,hr用户
alter user scott account unlock identified by tiger;
alter user hr account unlock identified by hr;
plsqldev连接即可