Part 1 准备工作
1、创建用户及用户组
groupadd oinstall 创建用户组oinstall
groupadd dba 创建用户组dba
useradd -g oinstall -G dba -m oracle 创建用户并加入oinstall和dba组
passwd oracle 设置oracle密码
id oracle 查看新建的oracle用户信息
2、创建目录更改权限
mkdir -p /home/app/oracle
mkdir -p /home/app/oraInventory
mkdir -p /home/app/database
chown -R oracle:oinstall /home/app/oracle
chown -R oracle:oinstall /home/app/oraInventory
chown -R oracle:oinstall /home/app/database
3、关闭服务修改标识
vim /etc/redhat-release
修改为 redhat-7 修改OS系统标识
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld.service 禁用防火墙
vim /etc/selinux/config
SELINUX=disabled 关闭SELINUX
4、安装依赖包
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
yum -y install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*
rpm -ivh sysstat-10.1.5-19.el7.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
5、改内核、做限制、配变量
vim /etc/sysctl.conf 修改内核参数
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#设置最大打开文件数
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmall = 2097152
#最大共享内存的段大小
kernel.shmmax = 2147483648
#整个系统共享内存端的最大数
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#可使用的IPv4端口范围
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 使配置生效
vim /etc/security/limits.conf 对oracle用户设置限制,提高软件运行性能
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
保存退出
vim /home/oracle/.bash_profile 配置环境变量
#oracle数据库安装目录
export ORACLE_BASE=/home/app/oracle
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#oracle启动数据库实例名
export ORACLE_SID=gdlisnet
#xterm窗口模式安装
export ORACLE_TERM=xterm
#添加系统环境变量
export PATH=/home/app/oracle/product/11.2.0/dbhome_1/bin:$PATH
#添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/usr:/lib:/usr/lib
#防止安装过程出现乱码
export LANG=C
#设置 客户端 字符集,必须与安装时设置的字符集一致,默认ZHS16GBK,否则数据导入导出中文乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
保存并退出
source /home/oracle/.bash_profile 即时生效
6、解压缩
使用root用户解压缩
cd /home/sftp/swap
unzip linux.x64_11gR2_database_1of2.zip -d /home/app/
unzip linux.x64_11gR2_database_2of2.zip -d /home/app/
chown -R oracle:oinstall /home/app/database/
Part 2 图形安装
1、使用orcale用户登录桌面,启动终端窗口,执行安装
cd /home/app/database目录
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
2、安装到68%时第一个错误--ins_ctx.mk编译错误
yum -y install glibc-static
vim /home/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
3、安装到68%时第二个错误--ins_emagent.mk错误
vim /home/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
$(MK_EMAGENT_NMECTL) 修改为: $(MK_EMAGENT_NMECTL) -lnnz11
4、适配调整
mount -o remount,size=13G /dev/shm 调整内存配置
vi /etc/fstab 设置开机加载
tmpfs /dev/shm tmpfs defaults,size=13g 0 0
5、安装SQLPlus工具
cd /home/sftp/swap
yum install readline*
tar -zxvf rlwrap-0.37.tar.gz
cd rlwrap-0.37
./configure
vim .bash_profile oracle工具配置开机加载
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
保存退出
Part 3 开关机加载设置
1、设置开机自启动
cp /home/app/oracle/admin/orcl/pfile/init.ora.* /home/app/oracle/product/11.2.0/dbhome_1/dbs/initgdlisnet.ora
cd /home/app/oracle/product/11.2.0/dbhome_1/
./root.sh
vim /etc/oratab dbhome_1:N 改为 dbhome_1:Y
vim /home/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /home/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /etc/rc.d/ora_reboot.sh
#!/bin/bash
# 数据库重启后自动修复脚本
# 1.关闭数据库
su - oracle <<EOF
258258
sqlplus / as sysdba
shutdown immediate
EOF
# 2.杀死被锁进程
su - oracle <<EOF
258258
cd /home/app/oracle/product/11.2.0/dbhome_1/dbs/
fuser -u lkORCL
fuser -k lkORCL
EOF
# 3.启动数据库
su - oracle <<EOF
258258
sqlplus / as sysdba <<EOF
startup
EOF
vim /etc/rc.d/rc.local root编辑开机脚本
su - oracle -c "/home/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su - oracle -c "/home/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"
su - oracle -c "/etc/rc.d/ora_reboot.sh"
2、设置关机自关闭
vim /etc/rc.d/ora_shutdown.sh root编辑关机脚本
#!/bin/bash
# THIS FILE IS ADDED FOR stopSrv.service
su - oracle <<EOF
sqlplus /nolog
conn /as sysdba
shutdown immediate
lsnrctl stop
EOF
vim /usr/lib/systemd/system/stopSrv.service root创建服务
[Unit]
Description=close services before reboot and shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
# This works because it is installed in the target and will be
# executed before the target state is entered
# Also consider kexec.target
[Service]
Type=oneshot
ExecStart=/etc/rc.d/ora_shutdown.sh
[Install]
WantedBy=halt.target reboot.target shutdown.target
systemctl enable stopSrv
修改关机等待时间
vim /etc/systemd/system.conf
DefaultTimeoutStartSec=30s
DefaultTimeoutStopSec=30s
3、授权scott为sysdba
orapwd file=/home/app/oracle/product/11.2.0/dbhome_1/dbs/orapwsales password=oracle entries=20
SQL> ho ls $ORACLE_HOME/dbs/orapw*
SQL> grant sysdba to scott;
SQL> commit;
Part 4 相关命令
lsnrctl status 监听状态
lsnrctl start 启动监听
lsnrctl stop 停止监听
systemctl status firewalld 防火墙状态
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld.service 禁用防火墙
userdel yssyo 删除用户
rm -r 删除用户目录
sqlplus /nolog 登录sqlplus
connect /as sysdba 链接oracle
exit 退出sqlplus
startup nomount 初始化实例
startup mount 初始化实例并加载到库
startup 初始化实例并加载到库同时打开数据库
startup restrict 仅允许一名DBA用户登录数据库进行数据维护
shutdown normal 正常关闭数据库 等待全部用户退出后关闭 常用简写 shutdown
shutdown immediate 快速关闭数据库 中断用户连接未提交事务回滚 常用的一种方式
shutdown transactional 计划关闭数据库 等待活动的事务完毕后关闭 常用于计划任务