1、按需配置swap分区
[root@oracledb ~]# dd if=/dev/zero of=/swap bs=1024 count=2048000
[root@oracledb ~]# mkswap /swap
[root@oracledb ~]# chmod 600 /swap
[root@oracledb ~]# swapon /swap
[root@oracledb ~]# echo "/swap swap swap default 0 0">>/etc/fstab #设置成自动挂载
2、配置hostname以及关闭selinux
[root@oracledb ~]# hostnamectl set-hostname oracledb
[root@oracledb ~]# vi /etc/hostname // 127.0.0.1 oracledb #写入 hostname
[root@oracledb ~]# vi /etc/selinux/config //SELINUX=enforcin 改 SELINUX=disabled
[root@oracledb ~]# setenforce 0
3、安装环境所需依赖
[root@oracledb ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel net-tools vim unzip
[root@oracledb ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel unzip vim net-tools | grep "not installed" //检测依赖是否报错
4、创建所需的操作系统组和用户
[root@oracledb ~]# groupadd oinstall // Oracle inventory 组(通常为 oinstall)
[root@oracledb ~]# groupadd dba // OSDBA 组 (通常为 dba)
[root@oracledb ~]# groupadd oper // OSOPER 组 (通常为 oper)
[root@oracledb~]# useradd -g oinstall -G dba oracle //软件所有者(通常为 oracle)
[root@oracledb ~]# passwd oracle //更新 oracle 用户密码
5、配置内核参数和资源限制
在/etc/sysctl.conf 添加如下参数,如果系统中某个参数高于下面的参数的值,保留较大的值,下面的数值只是官方要求的最小值,可以根据系统调整数值,以优化系统性能
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 = 1048576
[root@oracledb ~]# sysctl -p //使内核参数立即生效
在/etc/security/limits.conf 中添加如下参数
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
在/etc/pam.d/login 文件中,添加下面内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
/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@oracledb ~]# source /etc/profile //使profile文件生效
6、配置 oracle 用户环境变量,在文件/home/oracle/.bash_profile 里添加下面内容(具体值根据实际情况修改)
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export
PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
7、创建 oracle 用户目录赋予权限并重启系统
[root@oracledb ~]# mkdir -p /data/app/
[root@oracledb ~]# chown -R oracle:oinstall /data/app/
[root@oracledb ~]# chmod -R 775 /data/app/
[root@oracledb ~]# reboot
8、上传 oracle 安装包至/tmp 目录并解压
[root@oracledb ~]# unzip -q linux.x64_11gR2_database_1of2.zip -d /data
[root@oracledb ~]# unzip -q linux.x64_11gR2_database_2of2.zip -d /data
[root@oracledb ~]# mkdir -p /data/etc
[root@oracledb ~]# cp /data/database/response/* /data/etc/
9、修改/data/etc/db_install.rsp 修改以下变量值
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
NVENTORY_LOCATION=/data/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracledb
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
10、开始安装
[root@oracledb data]# su – oracle
[oracle@oracledb data]$ cd /data/database
[oracle@oracledb data]$ ./runInstaller -silent -responseFile
/data/etc/db_install.rsp -ignorePrereq
安装期间可以使用 tail 命令监看 oracle 的安装日志(令起一个 ssh 通道去监测)ail -f 屏幕输出提示 log 路径
安装完成后有如下提示,如果有类似如下提示,说明安装完成
11、使用 root 用户执行脚本
[oracle@oracledb database]$ su – root
[root@oracledb ~]# sh /data/app/oracle/inventory/orainstRoot.sh
[root@oracledb ~]# sh /data/app/oracle/product/11.2.0/root.sh
12、配置监听程序
[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ netca /silent /responsefile /data/etc/netca.rsp
查看监听端口
[oracle@oracledb ~]$ netstat -tnpl | grep 1521 //此处找不到命令请yum安装net-tools
13、静默创建数据库
切换 Root 用户,编辑应答文件/data/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/app/oracle/oradata
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
执行静默建库
[root@oracledb oracle]# su - oracle
[oracle@oracledb ~]$ dbca -silent -responseFile /data/etc/dbca.rsp
查看进程
[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
查看监听状态
[oracle@oracledb ~]$ lsnrctl status
14、登录数据库
[oracle@oracledb ~]$ su – oracle
[oracle@oracledb ~]$ cp /data/app/oracle/admin/orcl/pfile/init.ora.8112019144720
/data/app/oracle/product/11.2.0/dbs/initORCL.ora
[oracle@oracledb /]$ sqlplus / as sysdba
SQL> startup
提示: cannot mount database in EXCLUSIVE mode //无法以独占模式装载数据库
处理方式
SQL> exit; //退出数据库
[oracle@oracledb /]$ ipcs -s //查看信号量
清除信号量
[oracle@oracledb /]$ ipcrm -s 557056
[oracle@oracledb /]$ ipcrm -s 688129
再次进入数据库激活 scoot 用户
[oracle@oracledb /]$ sqlplus / as sysdba
SQL> startup
SQL> select * from v$version; //查看版本
SQL> alter user scott account unlock; //激活 scott 用户
SQL> alter user scott identified by tiger; //更改 scott 用户的密码
SQL> select username,account_status from dba_users; //查询 user 表
15、防火墙配置放开 Oracle 的端口
[oracle@oracledb /]$ su roo[root@oracledb /]# firewall-cmd --zone=public --add-port=1521/tcp –permanent
[root@oracledb /]# firewall-cmd --reload
16、SQL 服务常用命令
SQL>shutdown immediate; //关闭实例数据库
SQL>startup nomount; //重新开启
SQL> shutdown //关闭数据库实例
[oracle@localhost ~]$ lsnrctl start //打开监听服务
[oracle@localhost ~]$ lsnrctl status //查看 oracle 监听器运行情况
[oracle@localhost ~]$ lsnrctl stop //关闭监听