之前由于工作需要,在某县公安局安装Oracle数据库,由于公安局的内网环境无法使用访问互联网,所以参考了某位大佬的文章进行了安装:
这里记录一下安装的过程用于备忘。
1.环境准备
操作系统:Centos7.6 64位
Oracle11g压缩包:linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip (下载链接: 提取码:5m9r)2.检测依赖
运行命令
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel复制代码
执行这个命令,会给出安装oracle11g所缺少的依赖。一般来说在centos7中都能通过:
yum -y install xxx(缺少的依赖名)复制代码
这个方式来进行安装。
不过由于我这里安装时处于内网环境,同时系统也是由公安局自行安装在某地的虚拟机上,所以我通过进行了所有依赖包的下载,就是缺什么依赖就在这里搜什么名称,然后将rpm文件下载下来再一起打包传到服务器上解压安装。下载rpm包,通过命令:
rpm -ivh xxx.rpm复制代码
来进行安装
3.安装前的准备
创建目录修改属组和权限
groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oraclepasswd oracle mkdir -p /u01/app/oracle/product/11.2.0/db_1mkdir -p /u01/app/oracle/oradatamkdir -p /u01/app/oracle/inventorymkdir -p /u01/app/oracle/fast_recovery_areachown -R oracle.oinstall /u01/app/oraclechmod -R 755 /u01/app/oracle复制代码
语句的作用依次为:前面创建的目录主要作用为 Oracle家目录、数据文件存放位置,安装日志存放位置,快速恢复区 修改属组,修改权限
服务器配置修改
#修改主机名vim /etc/hosts#host文件中添加127.0.0.1 oracledb复制代码
#开放端口1521firewall-cmd --zone=public --add-port=1521/tcp --permanent #--permanent参数使设置永久生效firewall-cmd --reload #重新加载防火墙firewall-cmd --list-ports --zone=public #查看是否开放复制代码
#关闭selinuxvim /etc/sysconfig/selinux#修改selinux中的值SELINUX=disabled#修改后重启服务器,或执行以下命令皆可生效:setenforce 0 复制代码
#修改内核参数vim /etc/sysctl.conf#####添加以下内容fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 1073741824kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576#####其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。sysctl -p #使修改生效复制代码
#修改用户限制文件vim /etc/security/limits.conf####添加以下内容oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240#####修改/etc/pam.d/login文件vim /etc/pam.d/login#添加以下内容session required /lib64/security/pam_limits.sosession required pam_limits.so复制代码
这里limits.conf配置的比较随意,我找了一篇limits.conf的
#配置oracle用户的环境变量su - oraclevim ~/.bash_profile###添加ORACLE_BASE=/u01/app/oracleORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1ORACLE_SID=orclPATH=$PATH:$ORACLE_HOME/binexport ORACLE_BASE ORACLE_HOME ORACLE_SID PATH####使文件中的配置立即生效. ~/.bash_profile复制代码
4.正式安装
#切换到root用户su rootcd /tmp/mkdir oraclecd oracle#通过rz命令上传linux.x64_11gR2_database的两个压缩包#解压unzip linux.x64_11gR2_database_1of2.zip & unzip linux.x64_11gR2_database_2of2.zip 复制代码
解压完成后
#编辑静默安装响应文件cd /tmp/oracle/database/response/vim db_install.rsp###修改以下内容oracle.install.option=INSTALL_DB_SWONLYORACLE_HOSTNAME=oracle UNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/u01/app/oracle/inventorySELECTED_LANGUAGES=en,zh_CNORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1ORACLE_BASE=/u01/app/oracleoracle.install.db.InstallEdition=EEoracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=dbaDECLINE_SECURITY_UPDATES=true####开始安装软件chown -R oracle:oinstall /tmp/oracle/su - oraclecd /tmp/oracle/database/./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq复制代码
看到如下打印,则已经开始安装
此时可以另外开一个窗口查看日志文件 经过一段时间日志输出,看见原来的窗口出现如下文字 切换到root用户执行上述的脚本exit/u01/app/oracle/inventory/orainstRoot.sh/u01/app/oracle/product/11.2.0/db_1/root.sh复制代码
静默方式配置监听:
su - oraclenetca /silent /responseFile /tmp/oracle/database/response/netca.rsp复制代码
出现如下文字,则监听启动完成:
查看端口1521是否能被监听:
netstat -tnulp | grep 1521复制代码监听的启动和关闭命令
lsnrctl start lsnrctl stop复制代码
静默方式建库:
cd /tmp/oracle/database/response/cp dbca.rsp dbca.rsp.bakvim dbca.rsp###设置以下参数:GDBNAME= "orcl"SID =" orcl"SYSPASSWORD= "oracle"SYSTEMPASSWORD= "oracle"SYSMANPASSWORD= "oracle"DBSNMPPASSWORD= "oracle"DATAFILEDESTINATION=/u01/app/oracle/oradataRECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_areaCHARACTERSET= "ZHS16GBK" #这里不设置应该默认是UTF-8TOTALMEMORY= "1638"###其中TOTALMEMORY ="1638" 为1638MB,物理内存2G*80%。#执行命令,进度达到100%则创建完成dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp复制代码
#测试是否可用sqlplus / as sysdbaSQL> select 1 from dual; 1---------- 1SQL> exit;复制代码
安装完毕
启动/关闭实例
sqlplus / as sysdbaSQL> startup; #启动SQL> shutdown; #关闭复制代码
5.设置开机自启
su - oracle#修改该路径下的dbstart dbshut脚本,将两个脚本中的ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOMEcd /u01/app/oracle/product/11.2.0/db_1/bin/#修改完成后exit#修改配置vim /etc/orataborcl:/u01/app/oracle/product/11.2.0/db_1:X改为orcl:/u01/app/oracle/product/11.2.0/db_1:Y#修改rc.local文件chmod 755 /etc/rc.d/rc.localvim /etc/rc.d/rc.local#在rc.local中添加:su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start" #加上引号才能把空格后的start也当作命令的一部分su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart复制代码
添加完成后即可