本文记录从无到有部署一个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 <<EOFexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1export PATH=/u01/app/oracle/product/11.2.0/db_1/bin:
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
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连接即可