CentOS7 安装Oralce11g
一、下载Oracle安装包到本地
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
官方下载:https://www.oracle.com/database/technologies/112010-linx8664soft.html
安装参考:https://oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-7
二、安装wget
wget是Linux中的一个下载文件的工具。
查看wget是否安装和版本
[root@centos01 ~]# rpm -qa|grep "wget"
安装wget
[root@centos01 ~]# yum -y install wget
三、配置yum源(如果已经配置过可以跳过)
[root@centos01 ~]# cd /etc
[root@centos01 ~]# mv yum.repos.d yum.repos.d.bak
[root@centos01 ~]# mkdir yum.repos.d
[root@centos01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
重新加载yum源
[root@centos01 ~]# yum clean all
[root@centos01 ~]# yum makecache
关闭加速插件
修改yum.conf文件
[root@centos01 ~]# vi /etc/yum.conf
plugins=0
四、安装过程
1、安装Oracle依赖包
检查依赖是否安装完整
[root@centos01 ~]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "not installed"
安装依赖包
[root@centos01 ~]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2、创建所需的操作系统组和用户
创建用户组:
[root@centos01 ~]# groupadd oinstall
创建用户组:
[root@centos01 ~]# groupadd dba
创建用户并添加到用户组:
[root@centos01 ~]# useradd -g oinstall -G dba oracle
说明:
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
设置oracle用户密码
[root@centos01 ~]# passwd oracle
密码:oracle
3、优化OS内核参数
修改sysctl.conf 文件,在后面追加下面配置,并保存退出
[root@centos01 ~]# vi /etc/sysctl.conf
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 1048586
执行下面命令,使修改生效。
[root@centos01 ~]# /sbin/sysctl -p
4、限制oracle用户的shell权限,在limits.conf 配置文件后面追加下面配置
[root@centos01 ~]# 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
oracle hard stack 10240
修改pam.d/login文件,并追加以下配置
[root@centos01 ~]# vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改profile 文件最后的unset i 和 unset -f pathmunge 之前追加下面配置
[root@centos01 ~]# 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@centos01 ~]# source /etc/profile
5、创建安装目录,并修改目录所有者
[root@centos01 ~]# mkdir -p /data/oracle
[root@centos01 ~]# chown -R oracle:oinstall /data/oracle
[root@centos01 ~]# chmod -R 775 /data/oracle
6、创建/etc/oraInst.loc文件,并在里面写入一下配置内容
[root@centos01 ~]# vi /etc/oraInst.loc
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
保存后修改文件权限
[root@centos01 ~]# chown oracle:oinstall /etc/oraInst.loc
[root@centos01 ~]# chmod 664 /etc/oraInst.loc
7、设置oracle环境变量
用oracle用户登录
[oracle@centos01 /]$ su - oracle
修改.bash_profile配置文件并追加一下内容
[oracle@centos01 ~]$ vi ~/.bash_profile
export ORACLE_BASE=/data/oracle
export ORACLE_SID=orcl
执行命令,使修改生效。
[oracle@centos01 ~]$ source ~/.bash_profile
[oracle@centos01 ~]$ env
8、上传oracle安装文件到/data/oracle解压
安装解压软件
[oracle@centos03 ~]$ su root
[root@centos01 oracle]# yum -y install unzip zip
用oracle用户上传解压oracle安装文件
[oracle@centos01 oracle]$ cd /data/oracle
使用rz命令上传oracle的安装包
[oracle@centos01 oracle]$ rz
进入/data/oracle/目录对oracle压缩包进行解压
[oracle@centos01 oracle]$ cd /data/oracle/
[oracle@centos01 oracle]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@centos01 oracle]$ unzip linux.x64_11gR2_database_2of2.zip
解压缩后/data/oracle/下会出现database 目录
复制响应文件模板
切换到oracle用户
[root@centos01 oracle]# su - oracle
进入/home/oracle/目录
[oracle@centos01 oracle]$ cd /home/oracle/
创建etc目录
[root@centos01 oracle]# mkdir etc
复制响应文件
[root@centos01 oracle]# cp /data/oracle/database/response/* /home/oracle/etc/
切换到root用户,设置响应文件权限
[root@centos01 ~]# su - root
[root@centos01 ~]# chmod 700 /home/oracle/etc/*.rsp
9、再次切换到oracle用户,静默安装Oracle软件
[root@centos01 ~]# su - oracle
修改db_install.rsp配置文件,修改安装Oracle软件的响应文件,这个环节其实就是图形化安装中的各种选项和“下一步”,不过静默安装要在配置文件里提前配置好。具体配置如下:
[oracle@centos01 root]$ vi /home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=centos01
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
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
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
说明:
这里是修改文件,并非清空文件然后粘贴进去。
ORACLE_HOSTNAME= centos01// 主机名称(hostname查询主机名),centos7是我电脑的主机名称需要hostname查询后改成自己的主机名称。
切换到oracle用户,开始静默安装
[root@centos01 database]# su - oracle
[oracle@centos01 ~]$ cd /data/oracle/database
[oracle@centos01 ~]$ ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp
安装完成,提示Successfully Setup Software.(这里可能会等久一点,请耐心等待)
使用root用户执行脚本
[oracle@centos01 root]$ su - root
[root@centos01 ~]# /data/oracle/product/11.2.0/db_1/root.sh
10、增加或修改oracle的环境变量
切换 oracle 用户登陆
[root@centos01 ~]# su - oracle
在.bash_profile 文件后面追加下面配置
[oracle@centos01 ~]$ vi ~/.bash_profile
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@centos01 ~]$ source ~/.bash_profile
[oracle@centos01 ~]$ env
11、配置监听程序
在oracle 用户下
[oracle@centos01 bin]$ cd /data/oracle/product/11.2.0/db_1/bin
[oracle@centos01 bin]$ ./netca /silent /responseFile /home/oracle/etc/netca.rsp
12、用oracle用户静默dbca建库
编辑应答文件dbca.rsp
[oracle@centos01 bin]$ vi /home/oracle/etc/dbca.rsp
GDBNAME="orcl "
SID=“orcl”
SYSPASSWORD = “oracle”
SYSTEMPASSWORD = “oracle”
CHARACTERSET=“AL32UTF8”
NATIONALCHARACTERSET=“UTF8”
用oracle用户建库,创建实例
[oracle@centos01 bin]$ cd /data/oracle/product/11.2.0/db_1/bin
[oracle@centos01 bin]$ dbca -silent -responseFile /home/oracle/etc/dbca.rsp
13、修改oratab文件配置
[oracle@centos01 bin]$ su - oracle
vi /etc/oratab 修改文件将N改为Y
orcl:/data/oracle/product/11.2.0/db_1:Y
编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本
[oracle@centos01 bin]$ su – root
在rc.local后面追加下面配置
[root@centos01 bin]# vi /etc/rc.d/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
CentOS7设置开机权限
[root@centos01 bin]# chmod +x /etc/rc.d/rc.local
五、防火墙设置
使用root用户,放行1521端口
[root@centos01 bin]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
[root@centos01 bin]# firewall-cmd --reload
六、使用oracle用户创建用户
[root@centos01 bin]# su - oracle
#以系统管理员(sysdba)身份连接数据库。
[oracle@centos01 ~]$ sqlplus / as sysdba
#创建表空间
SQL> create tablespace IRFS
datafile '/data/oracle/oradata/orcl/irfs01.dbf'
size 3G --表空间初始的文件大小。
reuse autoextend off --对成熟的系统部署移植工作而言,通常是可以确定文件的固定大小。避免经常性的文件膨胀,引起性能变化;
extent management local autoallocate --本地管理方式,区分配方式为自动分配
segment space management auto;--段管理方式为自动管理
创建临时表空间
SQL> create temporary tablespace IRFS_TEMP
tempfile 'E:\TOOL\ORACLE\ORACLE\APP\ORACLE\ORADATA\XE\irfs_temp01.dbf'
size 10240m --初始的文件大小。
autoextend on --自动增长
next 1024m --每次自动增长大小
maxsize 20480m --最大文件大小
extent management local;--本地管理方式
#创建一个新用户并指定表空间
SQL> create user abc identified by 123456
default tablespace IRFS
temporary tablespace IRFS_TEMP
quota unlimited on IRFS;
#授予DBA权限。
SQL> grant connect,resource,dba to abc;
#退出
SQL> quit
七、使用PL/SQL连接
/data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
ORCL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.88)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
用户名:abc
密码:123456
注意:root用户切换时,如果不是用su - 或者su -l 会导致连接oracle是报错:bash: sqlplus: 未找到命令
查询后发现su 用户 后并没有切换到该用户的目录下面,也就是说登录环境没有改变。
使用用su - 用户或者su -l 用户才能把登录环境也切换掉