系统版本:CentOS Linux release 7.6.1810 (Core)
数据库版本:Oracle11.2.0.4(该版本官方有7个包,下文只针对1和2两个包进行安装)
关注博主后私聊友情提供下载链接,仅作学习用途请勿用于商业(看到会回复)
Oracle安装依赖检测(必要条件)
//安装前后可以用rpm -q进行检测
yum -y install 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
烂笔头笔记一:离线环境下获取安装包方法(去联网【或者有私有yum】机器下载安装包)
//此命令需要公网yum或者私有yum(可能没有)进行下载
# yum reinstall --downloadonly --downloaddir=/tmp/ net-tools
//downloaddir安装包存放路径
//说明:如果该服务器已经安装了需要下载的软件包,那么使用 install下载就不不不行
//可以使用reinstall下载。 放心(不会真的安装和重新安装,因为后面加了 --downloadonly,表明只是下载。
//如果提示没有--downloadonly选项则需要安装yum-plugin-downloadonly软件包;
# yum install yum-plugin-downloadonly
服务器配置修改
添加防火墙
//如果防火墙没有开放可以忽略此步骤
//开放端口1521 (如果更改监听端口根据实际需求进行更改)
# firewall-cmd --zone=public --add-port=1521/tcp --permanent
//--permanent参数使设置永久生效
# firewall-cmd --reload
//重新加载防火墙
# firewall-cmd --list-ports --zone=public
//查看是否开放
关闭selinux
//修改selinux中的值
# vim /etc/sysconfig/selinux
//修改内容
# SELINUX=disabled
//执行以下命令使其生效:
# setenforce 0
*********************************************
//或者直接执行下面命令进行修改
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# setenforce 0
禁用THP(Transparent Huge Pages)
//查看THP的状态(centos 7中默认是打开的):
# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
编辑rc.local文件:
# vim /etc/rc.d/rc.local
//增加以下内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
//赋予rc.local文件可执行权限:
# chmod +x /etc/rc.d/rc.local
//重启操作系统,使配置生效,检查THP状态,应该是被禁用的
# reboot
# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
创建修改用户组和权限
# groupadd -g 5001 oinstall
# groupadd -g 5002 dba
# groupadd -g 5003 oper
# useradd -u 5002 -g oinstall -G dba,oper oracle
# passwd oracle
//enter后输入oracle用户密码,建议复杂度高点
# id oracle
//id 命令可以查询用户的UID、GID 和附加组的信息;
配置内核参数
# vi /etc/sysctl.conf
//加入以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4294967296
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 500 64000 500 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
//使修改生效
# /sbin/sysctl -p
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte,根据实际内存修改
修改用户限制文件
# vim /etc/security/limits.conf
//加入以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vim /etc/pam.d/login
//加入以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
# vim /etc/profile
//加入以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
创建目录并修改权限
//创建oracle主目录,并授权
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
配置oracle用户的环境变量
//配置oracle用户的环境变量
# su - oracle
# vim ~/.bash_profile
//添加
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=American_america.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
//使文件中的配置立即生效
# . ~/.bash_profile
解压安装包
//切换到root用户
# su root cd /tmp/
# mkdir oracle
# cd oracle
//解压
# unzip p13390677_112040_Linux-x86-64_1of7.zip
# unzip p13390677_112040_Linux-x86-64_2of7.zip
# chown -R oracle:oinstall /tmp/oracle/database
辑静默安装响应文件
烂笔头笔记二:删除文件中的 # 注释行和空行方便配置操作
# sed -i '/^#/d;/^$/d' file.xxx
// 注:默认文件里面注释比较多可以先去掉注释和空行再修改文件,sed会直接在指定文件操作,建议先备份
//编辑静默安装响应文件
# cd /tmp/oracle/database/response/
//备份db_install.rsp
# cp db_install.rsp db_install.rsp.bak
# vim db_install.rsp
**********************修改以下内容***************************
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
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.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.password.ALL=yourpassword
DECLINE_SECURITY_UPDATES=true
开始安装软件
# chown -R oracle:oinstall /tmp/oracle/
# su - oracle
# cd /tmp/oracle/database/
# ./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq
********************** db_install.rsp详解参考这位大佬写的blog ***********************
https://blog.youkuaiyun.com/yinzhipeng123/article/details/53141950
看到如下打印,则已经开始安装(英文提示需要注意是否有其它报错,如:无权限创建文件夹、存储空间不够等)
此时可以另外开一个窗口查看日志文件
经过一段时间日志输出,看见原来的窗口出现如下文字
切换到root用户执行上述的脚本,执行完毕即可
# /u01/app/oracle/inventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
静默方式配置监听
# su - oracle
# netca /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.bak
# vim dbca.rsp
###设置以下参数:
GDBNAME= "orcl"
SID = "orcl"
SYSPASSWORD= "yourpassword"
SYSTEMPASSWORD= "yourpassword"
SYSMANPASSWORD= "yourpassword"
DBSNMPPASSWORD= "yourpassword"
DATAFILEDESTINATION=/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET= "ZHS16GBK" #这里不设置应该默认是UTF-8
TOTALMEMORY= "1638"
// 其中TOTALMEMORY ="1638" 为1638MB,物理内存2G*80%。
// 执行命令,进度达到100%则创建完成
# dbca -silent -responseFile /tmp/oracle/database/response/dbca.rsp
测试
# sqlplus / as sysdba
SQL> select 1 from dual;
1
----------
1
SQL> exit;
重启Oracle数据库、监听器以及实例
(1) 以oracle身份登录数据库,命令:# su -oracle
(2) 进入Sqlplus控制台,命令: sqlplus /nolog
(3) 以系统管理员登录,命令:SQL> connect / as sysdba
(4) 启动数据库,命令:SQL> startup
(5) 如果是关闭数据库,命令:SQL> shutdown immediate
(6) 退出sqlplus控制台,命令:SQL> exit
(7) 进入监听器控制台,命令:# lsnrctl
(8) 启动监听器,命令:lsnrctl> start
(9) 退出监听器控制台,命令:lsnrctl> exit
重启实例
(1) 切换需要启动的数据库实例:# export ORACLE_SID=orcl
(2) 进入Sqlplus控制台,命令:# sqlplus /nolog
(3) 以系统管理员登录,命令:SQL> connect / as sysdba
(4) 如果是关闭数据库,命令:SQL> shutdown abort
(5) 启动数据库,命令:SQL> startup
(6) 退出sqlplus控制台,命令:SQL> exit
写于是 2021年1月20日 希望今天后的你健康快乐!共勉!!!