采用静默安装oracle数据库,不用安装桌面,方便很多
首先修改hosts
vi /etc/hosts
关闭selinux ,编辑 /etc/selinux/config文件,设置SELINUX= enforcing 为SELINUX=disabled
[root@localhost ~]# vi /etc/selinux/config
修改后,如下图:
关闭防火墙
查看防火墙状态:systemctl status firewalld
停止防火墙:systemctl stop firewalld
关闭自启动防火墙服务:systemctl disable firewalld
防火墙运行状态,如下图:
防火墙关闭后,转台如下图:
安装oracle11g依赖包
yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
检查依赖包
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
添加oracle组和oracle用户
[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -m -g oinstall -G dba oracle
[root@localhost ~]# id oracle
uid=1000(oracle) gid=1000(oinstall) 组=1000(oinstall),1001(dba)
[root@localhost ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
修改内核参数:编辑 /etc/sysctl.conf
[root@localhost ~]# vi /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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
运行 sysctl -p 生效
[root@localhost ~]# sysctl -p
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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
[root@localhost ~]#
修改用户的限制文件,编辑 /etc/security/limits.conf
[root@localhost ~]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
修改/etc/pam.d/login文件,添加:
[root@localhost ~]# vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件
[root@localhost ~]# 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
让环境变量立即生效
[root@localhost ~]# source /etc/profile
创建安装目录
[root@localhost /]# mkdir -p /data/oracle
[root@localhost /]# mkdir -p /data/oraInventory
[root@localhost /]# mkdir -p /data/database
[root@localhost /]# chown -R oracle:oinstall /data/oracle
[root@localhost /]# chown -R oracle:oinstall /data/oraInventory
[root@localhost /]# chown -R oracle:oinstall /data/database
创建oraInst.loc文件
[root@localhost /]# vi /etc/oraInst.loc
添加如下内容
inventory_loc=/data/oraInventory
inst_group=oinstall
[root@localhost /]# chown oracle:oinstall /etc/oraInst.loc
[root@localhost /]# chmod 664 /etc/oraInst.loc
切换到oracle用户,设置oracle用户环境变量
[oracle@localhost ~]$ vi .bash_profile
添加如下内容,路径根据实际情况配置
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
export ORACLE_OWNER=oracle
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
环境变量生效
[oracle@localhost ~]$ source .bash_profile
解压两个压缩包到指定文件夹/data/database
unzip linux.x64_11gR2_database_1of2.zip -d /data/database/
unzip linux.x64_11gR2_database_2of2.zip -d /data/database/
复制响应文件模板
[oracle@localhost ~]$ mkdir etc
[oracle@localhost ~]$ cp /data/database/database/response/* /home/oracle/etc/
设置响应文件权限
需要切换至root用户下
[oracle@localhost ~]$ su
密码:
[root@localhost oracle]# chmod 700 /home/oracle/etc/*.rsp
静默安装Oracle软件
需要切换到oracle用户下
su oralce
修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp
[oracle@localhost etc]$ vim db_install.rsp
修改如下对应内容
oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
ORACLE_HOSTNAME=localhost //37 行 主机名称 (可以通过hostname获取主机名)
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/data/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/data01/oracle/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/data/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本
oracle.install.db.isCustomInstall=true //108行 自定义安装
oracle.install.db.DBA_GROUP=dba //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
开始静默安装
[oracle@localhost etc]$ cd /data/database/database
[oracle@localhost database]$ ls
doc install response rpm runInstaller sshsetup stage welcome.html
[oracle@localhost database]$ ./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
查看安装日志
[oracle@localhost database]$ tail -f /data/oraInventory/logs/installActions2018-07-14_01-13-37PM.log
查看安装日志错误信息
[oracle@localhost logs]$ grep -rn 'Error' installActions2018-07-14_06-46-07PM.log
下面这些信息都可以忽略安装
804:INFO: Error Message:PRVF-7543 : 操作系统内核参数 "semmni" 在节点 "localhost" 上没有适当的值 [应为 = "128"; 找到 = "0"]。
933:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "libaio-0.3.105 (i386)"
954:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "glibc-2.3.4-2.41 (i686)"
975:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "compat-libstdc++-33-3.2.3 (i386)"
1050:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "libaio-devel-0.3.105 (i386)"
1071:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "libgcc-3.4.6 (i386)"
1092:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "libstdc++-3.4.6 (i386)"
1131:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "unixODBC-2.2.11 (i386)"
1152:INFO: Error Message:PRVF-7532 : 节点 "localhost" 上缺少程序包 "unixODBC-devel-2.2.11 (i386)"
红色圈出来的是可以忽略的
Error pdksh-5.2.14安装
[root@localhost data]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
警告:pdksh-5.2.14-37.el5_8.1.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID e8562897: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:pdksh-5.2.14-37.el5_8.1 ################################# [100%]
[root@localhost data]# su oracle
安装pdksh的时候有冲突
换一个高版本安装 32 位的,问题解决
pdksh-5.2.14-37.el5_8.1.x86_64.rpm
忽略错误安装命令
[oracle@localhost database]$ ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp
安装成功标识
从新打开一个终端,切换至root用户
[root@localhost db_1]# /data/oracle/product/11.2.0/db_1/root.sh
配置oracle环境变量
[oracle@localhost ~]$ vi .bash_profile
// 添加如下内容,会和之前添加的环境变量重复冲突,没事保留一个就可以
export ORACLE_BASE=/data/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/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/bin/X11:/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/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/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
//使环境变量立即生效
[oracle@localhost ~]$ source .bash_profile
静默配置监听程序
[oracle@localhost bin]$ /data/oracle/product/11.2.0/db_1/bin/netca /silent /responsefile /home/oracle/etc/netca.rsp
静默配置监听程序error处理
切换至root用户下:su root,修改network,hosts
[root@oracleDb ~]# vi /etc/sysconfig/network
NETWORKING=yes
#修改主机名,原主机名为localhost
HOSTNAME=oracleDb
##网关
GATEWAY=172.16.76.2
[root@oracleDb ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 localhost.localdomain localhost oracleDb
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.76.129 oracleDb
修改后需要重启服务器,才能生效
重启后,切换至oracle用户下
[oracle@localhost bin]$ /data/oracle/product/11.2.0/db_1/bin/netca /silent /responsefile /home/oracle/etc/netca.rsp
成功标志,如下图:
会在/data/oracle/product/11.2.0/db_1/network/admin目录下生成listener.ora,sqlnet文件夹
静默安装数据库
修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp
[oracle@oracleDb etc]$ ls
dbca.rsp db_install.rsp netca.rsp
[oracle@oracleDb etc]$ vi dbca.rsp
//修改下面内容
GDBNAME=”orcl.java-linux-test” //78 行 全局数据库的名字=SID+主机域名
SID=”orcl” //149行 SID
CHARACTERSET=”AL32UTF8” //415行 编码
NATIONALCHARACTERSET=”UTF8” //425行 编码
进行静默安装数据库
[oracle@oracleDb ~]$ $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
提示输入sys,system用户口令:我统一oracle
如果想删除静默sid
[oracle@oracleDb ~]$ $ORACLE_HOME/bin/dbca -silent -deleteDatabase -sourceDB orcl
建立库后实例检查
[oracle@oracleDb ~]$ ps -ef | grep ora_ | grep -v grep | wc -l
21
[oracle@oracleDb ~]$ ps -ef | grep ora_ | grep -v grep
oracle 2846 1 0 02:45 ? 00:00:00 ora_pmon_orcl
oracle 2848 1 0 02:45 ? 00:00:00 ora_vktm_orcl
oracle 2852 1 0 02:45 ? 00:00:00 ora_gen0_orcl
oracle 2854 1 0 02:45 ? 00:00:00 ora_diag_orcl
oracle 2856 1 0 02:45 ? 00:00:00 ora_dbrm_orcl
oracle 2858 1 0 02:45 ? 00:00:00 ora_psp0_orcl
oracle 2860 1 0 02:45 ? 00:00:00 ora_dia0_orcl
oracle 2862 1 0 02:45 ? 00:00:00 ora_mman_orcl
oracle 2864 1 0 02:45 ? 00:00:00 ora_dbw0_orcl
oracle 2866 1 0 02:45 ? 00:00:00 ora_lgwr_orcl
oracle 2868 1 0 02:45 ? 00:00:00 ora_ckpt_orcl
oracle 2870 1 0 02:45 ? 00:00:00 ora_smon_orcl
oracle 2872 1 0 02:45 ? 00:00:00 ora_reco_orcl
oracle 2874 1 0 02:45 ? 00:00:00 ora_mmon_orcl
oracle 2876 1 0 02:45 ? 00:00:00 ora_mmnl_orcl
oracle 2878 1 0 02:45 ? 00:00:00 ora_d000_orcl
oracle 2880 1 0 02:45 ? 00:00:00 ora_s000_orcl
oracle 2969 1 0 02:45 ? 00:00:00 ora_qmnc_orcl
oracle 2984 1 0 02:45 ? 00:00:00 ora_cjq0_orcl
oracle 2986 1 0 02:45 ? 00:00:00 ora_q000_orcl
oracle 2988 1 0 02:45 ? 00:00:00 ora_q001_orcl
[oracle@oracleDb ~]$ ^C
建库后监听检查
[oracle@oracleDb ~]$ lsnrctl status
如果出现以下错误,我的没有出现下面错误
lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied
解决办法:在root用户下执行以下命令
su - root
setenforce 0
正常结果如下图:
修改oracle启动配置
[oracle@oracleDb ~]$ vi /etc/oratab
修改前,把N改成Y
orcl:/data/oracle/product/11.2.0/db_1:N
修改后
orcl:/data/oracle/product/11.2.0/db_1:Y
这样就可以通过dbstart 启动此实例,监听器。
数据库操作
oracle监听服务的启动/关闭:
启动:lsnrctl start
停止:lsnrctl stop
状态:lsnrctl status
// 用一下命令启动和停止,会输出log日志
[oracle@oracleDb ~]$ dbstart $ORACLE_HOME
Processing Database instance "orcl": log file /data/oracle/product/11.2.0/db_1/startup.log
[oracle@oracleDb ~]$ dbshut $ORACLE_HOME
Processing Database instance "orcl": log file /data/oracle/product/11.2.0/db_1/shutdown.log
[oracle@oracleDb ~]$ lsnrctl status
在启动监听的时候,如果出现:监听程序不支持服务,如下图:
处理方法:
[oracle@oracleDb admin]$ cat listener.ora
// 安装完成只有一个LISTENER,需要配置SID_LIST_LISTENER
# listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /data
// 增加内容
[oracle@oracleDb admin]$ vi listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL DBNAME = ORCL)
(ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
(SID_NAME = ORCL)
)
)
监听启动成功,如下图:
chmod +x /etc/rc.d/rc.local
连接oracle
[oracle@oracleDb data]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 15 03:50:50 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
已连接到空闲例程。
//出现以下错误,是因为没有启动就没法关闭所以报错找不到,不用管,使用启动命令
SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
// 启动实例
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 3273641984 bytes
Fixed Size 2217792 bytes
Variable Size 1795164352 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16642048 bytes
数据库装载完毕。
SQL>
检查命令,以下命令执行无误即可
SQL> alter database archivelog;
SQL> alter database flashback on;
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial();
PL/SQL 过程已成功完成。
SQL> alter system archive log current;
系统已更改。
默认安装的数据库用户检查
SQL> set lines 256 pages 500
SQL> select username from dba_users;
USERNAME
------------------------------
SYS
SYSTEM
OUTLN
MGMT_VIEW
FLOWS_FILES
MDSYS
ORDSYS
EXFSYS
DBSNMP
WMSYS
APPQOSSYS
APEX_030200
OWBSYS_AUDIT
ORDDATA
CTXSYS
ANONYMOUS
SYSMAN
XDB
ORDPLUGINS
OWBSYS
SI_INFORMTN_SCHEMA
OLAPSYS
SCOTT
ORACLE_OCM
XS$NULL
MDDATA
DIP
APEX_PUBLIC_USER
SPATIAL_CSW_ADMIN_USR
SPATIAL_WFS_ADMIN_USR
已选择30行。
配置开机自启程序
将lsnrctl start和dbstart添加到rc.local文件中:
如果重启后,发现命令不能用,需要查看环境变量,尤其是PATH,可能被覆盖了,导致路径变了
[oracle@oracleDb ~]$ vi /etc/rc.local
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart"
关闭数据库
正常关闭 shutdown
立即关闭 shutdown immediate
关闭事务 shutdown transactional
强行关闭 shutdown abort
删除oracle
删除oracle的话执行下面的语句,如果要要重装的话,直接执行静默安装的命令
rm -rf /data/oracle/*
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
rm -rf /usr/local/bin/coraenv
rm -rf /etc/oratab
远程连接数据库
将监听文件中的host,改成服务器名
[oracle@oracleDb admin]$ vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = oracleDb)(PORT = 1521))
)
)
[oracle@oracleDb admin]$ vi tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracleDb)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.oracleDb)
)
)