安装oracle数据库
注意设置交换分区
- 关闭防火墙
systemctl stop NetworkManager && systemctl disable NetworkManager
systemctl stop firewalld && systemctl disable firewalld
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
hostnamectl set-hostname oracledb1
修改/etc/hosts 增加主机名对应关系
2.修改内核:以下适用于32G内存左右服务器配置,32G以上建议调整
vim /etc/sysctl.conf
vm.max_map_count = 655360
kernel.shmall = 429496729
kernel.shmmax = 13743895347
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.wmem_default = 262144
vm.swappiness=40
vm.vfs_cache_pressure=200
vm.min_free_kbytes=409600
fs.aio-max-nr=3145728
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
[root@oracledb ~] sysctl -p
各参数详解:
1:kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
2:kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
3:kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
4:fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
5:fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
6:kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
7:net.ipv4.ip_local_port_range:
表示应用程序可使用的IPv4端口范围。
8:net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。
9:net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。
10:net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。
11:net.core.wmem_max:
表示套接字发送缓冲区大小的最大值。
4.修改认证模块
vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
5、修改用户登录认证
vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
注意了,很多博文都是写的/lib/security/pam_limits.so 一般咱都是64位系统,64位系统需要设置为/lib64/security/pam_limits.so 否则重启服务器后就会出现命令行无法登录,但是通过桌面方式能登录的情况。
- 修改文件,默认Oracle无法用centos系统安装vim /etc/redhat-release
redhat 7.4
二.开始配置安装oracle基本环境
1创建用户及安装目录,安装依赖包
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -u 502 -g oinstall -G dba oracle
passwd oracle
2.安装oracle所需依赖和桌面组件,桌面组件有700多MB
yum -yinstall binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstattelnet compat-libstdc++* elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-headers kernel-headerslibgomp unixODBC unixODBC-devel libXpunixODBC-devel
发现
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm安装报错,卸载ksh即可
rpm -e ksh-20120801-142.el7.x86_64
rpm -ivh compat-libstdc++-33-3.2.3-47.3.x86_64.rpm
解决命令行中上下键不能翻历史命令的问题
yum -y install readline*
tar zxf rlwrap-0.42.tar.gz
cd rlwrap-0.42/
./configure
make && make install
没安装桌面环境,安装以下包:
[root@oracledb ~] yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"
安装准备
- 上传并解压安装包mkdir /u01
cd /u01
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
解压后目录下自动生成安装目录:database
- 创建oracle软件目录mkdir -p /u01/app/oracle #####创建软件配置文件目录
mkdir -p /u01/app/oraInventory
mkdir -p /u02/oradata ######创建数据目录
mkdir -p /u02/arch1 ###日志文件
mkdir -p /u02/fast_recovery_area ##恢复文件
chown -R oracle.oinstall /u01
chown -R oracle.oinstall /u02
- 设置环境变量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
fi
source /etc/profile
- 修改Oracle用户环境变量
vim /home/oracle/.bash_profile
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export ORACLE_OWNER=oracle
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
#export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:/sbin:/usr/lbin:/usr/sbin:$JAVA_HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/lib:$HOME/bin:$ORACLE_HOME/OPatch:.
umask 022
export LANG=C
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
# 设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
source /home/oracle/.bash_profile
三.开始安装ORACLE
- 在linux图形桌面打开终端
- 运行安装脚本
- 去掉对勾,点击下一步
[root@oracle ~]# xhost +
[root@oracle ~]#su oracle
[oracle@oracle ~]$ cd /opt/database/
注释:
xhost +:允许其他用户启动的图形程序并将图形显示在当前屏幕上
[oracle@oracle database]$ source .bash_profile
[root@odb2 bak]# unzip p13390677_112040_Linux-x86-64_1of7.zip
[root@odb2 bak]# unzip p13390677_112040_Linux-x86-64_2of7.zip
[root@odb2 bak]# cd database/
[oracle@oracle database]$ ./runInstaller
若出现乱码情况,修改语言变量
[oracle@oracle database]$ LANG="en_US.UTF-8"
[oracle@oracle database]$ echo $LANG
若出现无法DISPLAY, 无法显示的报错,执行
[oracle@oracle database]$ export DISPLAY=:0.0
[oracle@oracle database]$ echo $DISPLAY
4.点击yes
5.选择仅安装数据库软件,方便创建数据库是,更改数据目录位置
6.选择单实例安装,点击下一步
- 安装语言:需要简体中文和英语,点击下一步:
- 选择数据库版本:选择企业版
- 指定安装位置:默认会读取oracle 用户的环境变量
10.指定安装文件目录
11.选择操作系统组
12.安装摘要查看
oracle安装之前需要修改很多内核参数,oracle越来越人性化,只需在界面上点击“修补并在次检查”
安装到70% 报错处理:
cd /u01/app/oracle/product/11.2.0/db/sysman/lib
vim ins_emagent.mk
加入-lnnz11
这里或者更早前的步骤就可能会出现的问题,对话框可能无法正常弹出,测试在VM虚拟机或者云服务器,如阿里云等都这样,但是用鼠标可以拖开。是的,你没有看错,直接拖出对话框。
13.鼠标拉开查看安装进度
14.安装完成
- 用root用户执行脚本,然后点击确定,如下图:
[root@odb2 ~]# sh /u01/app/oraInventory/orainstRoot.sh
[root@odb2 ~]# sh /u01/app/oracle/product/11.2.0/db/root.sh
- 完成数据库软件安装
创建数据库实例:若乱码修改环境变量,
[oracle@oracle database]$ LANG="AMERICAN_CHINA.ZHS16GBK"
[oracle@oracle database]$ echo $LANG
配置数据库监听
[oracle@oracle database]$ netmgr
设置“监听程序名”(默认即可),点击“下一步”
监听IP 或主机名设置“选定的协议”(默认即可),点击“下一步”
配置保存
打开监听
[Oracle@localhost ~]$ lsnrctl status //查看监听状态
[Oracle@localhost ~]$ lsnrctl start
安装数据库
[Oracle@localhost ~]$ dbca //创建数据库实例orcl
选择“创建数据库”,点击“下一步”
选择“一般用途或事务处理”,点击“下一步”
设置“全局数据库名”和“SID”均为orcl(注意均为大写字母)点击“下一步”
点击“下一步”默认开启监听后才可以配置EM
选择“所有账户使用同一管理口令”并设置口令为 ODBadmin1(注意为小写字母),点击“下一步”
选择数据文件目录
指定快速恢复区
指定日志位置
调整“内存大小”,“字符集”点击“下一步”
数据库存储查看
选择“创建数据库”,点击“完成”,开始创建数据库。
鼠标拉开,查看安装进度
完成数据库实例安装
参考文档:
https://blog.csdn.net/weixin_41078837/article/details/80584998
https://blog.csdn.net/oschina_41140683/article/details/81510709
附加:静默安装ORACLE
参考文档:https://blog.csdn.net/oschina_41140683/article/details/81510709
- 安装环境准备:参考之前环境准备
mkdir -p /u01/app/oracle #####创建软件配置文件目录
mkdir -p /u01/app/oraInventory
mkdir -p /u02/oradata ######创建数据目录
mkdir -p /u02/arch1 ###日志文件
mkdir -p /u02/fast_recovery_area ##恢复文件
[oracle@odb2 oracle]$ mkdir -p /u01/app/oracle/product/11.2.0/db
[oracle@odb2 ]$ mkdir -p /u02/fast_recovery_area/orcl/
[oracle@odb2 backup]$ mkdir -p /u02/oradata/orcl/
chown -R oracle.oinstall /u01
chown -R oracle.oinstall /u02
[oracle@odb2 response]$ cd /u01/pkg/database/response
[oracle@odb2 response]$ cp db_install.rsp db_install.rsp.bak
修改安装文件:
[oracle@odb2 response]$ vim db_install.rsp
oracle.install.optinotallow=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=odb2
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEditinotallow=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
DECLINE_SECURITY_UPDATES=true
开始安装oracle软件
[oracle@odb2 database]$ ./runInstaller -silent -force -responseFile /u01/pkg/database/response/db_install.rsp -ignorePrereq
查看安装日志:
[oracle@odb2 ~]$ tail -f /u01/app/oraInventory/logs/installActions2021-12-28_09-49-52AM.log
修改配置
[oracle@odb2 ~]$ cd /u01/app/oracle/product/11.2.0/db/sysman/lib
[oracle@odb2 lib]$ vim ins_emagent.mk
加入-lnnz11
安装完成,使用 root 执行脚本
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/11.2.0/db/root.sh
创建监听文件:
[oracle@odb2 bin]$ cd /u01/app/oracle/product/11.2.0/db/bin
[oracle@odb2 bin]$ ./netca /silent /responseFile /u01/pkg/database/response/netca.rsp
查看已生成监听文件:
[oracle@odb2 admin]$ cd /u01/app/oracle/product/11.2.0/db/network/admin
修改监听文件:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = odb2)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db)
(SID_NAME = orcl)
)
)
ADR_BASE_LISTENER = /u01/app/oracle
启动监听,查看状态:
[oracle@odb1 admin]$ lsnrctl start
[oracle@odb1 admin]$ lsnrctl status
静默dbca建库
编辑应答文件: