内存一般为2G以上,最低为1G。可通过指令grep MemTotal /proc/meminfo查询系统实际内存。
本次安装配置系统内存为4G,swap空间默认为内存的2倍,通过 free -m指令可以查看swap空间的实际大小。
uname -m 查询系统位数
cat /proc/version或# cat /etc/redhat-release或# lsb_release -id 查询系统版本
uname -r 内核版本
查询版本主要是防止操作系统版本与数据库版本不一致。
1.查看swap 空间大小(总计),如果不足则增加
2.创建用于交换分区的文件:增加2G大小的交换分区,count等于想要的块大小
3.设置交换分区文件
4.立即启用交换分区文件
5.再次查看
6.如果想使得开机自启动,想要修改文件/etc/fastb 修改swap行
1.通过RPM检查,查看下列模块是否安装
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat
yum install compat-libcap1 compat-libstdc++-33 ksh libaio-devel libXtst sysstat
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变。
因为Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。所 以ORACLE是建议不使用Transparent HugePages功能的,如果需要大页内存管理功能来加强性能,建议使用标准的大页内存管理。
1.执行cat /sys/kernel/mm/transparent_hugepage/enabled,如果输出是 always ,则执行以下操作
(1)输入 vim /etc/default/grub,按照下面提示修改文件内容
将 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"
这一行修改为
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet transparent_hugepage=never"
(2)同时输入echo never >> /sys/kernel/mm/transparent_hugepage/enabled 使该配置实时生效
(1)对oracle用户设置限定。将以下行添加/etc/security/limits.conf 文件中
oracle soft nofile 65535
oracle hard nofile 65536
oracle nproc 2047
oracle hard nproc 16384
oracle hard stack 10240
oracle soft stack 20480
执行以下命令 vim /etc/security/limits.conf,查看是否存在以下内容,如果没有则最后一行后面输入以下内容
使其满足Oracle 12C的系统内核参数(可以在oracle官网找到12c 参数)
使用vim打开/etc/sysctl.conf.查看是否存在以下内容,如果不存在则自行添加
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
如果不存在则自行添加
内核参数解释:
(1) 共享内存内核参数
kernel.shmmax:每个内存段的最大值,等于或大于sga_max_size,不小于物理内存1/2或2G 。一般为内存大小的50%,单位byte.例如内存为1G.则shmmax值为1*1024*1024*1024*0.5的结果。
kernel.shmall:指定任意时刻,系统可以分配的所有共享内存段总和的最大值,不小于shmmax/page_size,如果服务器运行的SGA<8G,可用默认值 。一般为内存大小的40%,单位4k.例如内存为1G,则shmall值为1*1024*1024*0.5/4的结果
kernel.shmmni:系统可分配的共享内存段的最大数量,默认是4096。
(2)信号量
一种控制资源访问的方法,Oracle实例主要使用信号量来控制共享内存的访问
使用processes初始化参数分配信号量,其值至少等于processes
信号量内核参数
semmsl指每个信号量集合中的最大信号量个数,其值或取其最小值100,或者为所有数据库中最大的processes+10,选择其中较大值者
semmns值是指整个系统范围内信号量总数的最大值,默认是32000
semopm用于指定每个semop()系统调用可以设置的信号量操作的最大数量,默认为100
semmni用于指定信号量集合的最大数量,最小为100,Oracle建议取值128.
net.core.rmem_default、net.core.rmem_max、net.core.wmem_default、net.core.wmem_max,4个参数用于设置socket数据发送缓冲区及接收缓冲区的默认大小与最大大小.
net.core.rmem_default:表示套接字接收缓冲区大小的缺省值
net.core.rmem_max:表示套接字接收缓冲区大小的最大值
net.core.wmem_default:表示套接字发送缓冲区大小的缺省值
groupadd oinstall //创建oracle用户组
groupadd -g 502 dba //创建一个新组 gid为502 名称为dba
groupadd -g 503 oper //创建一个新组 gid为503 名称为oper
groupadd -g 504 asmadmin //创建一个新组 gid为504 名称为asmadmin
groupadd -g 506 asmdba //创建一个新组 gid为506 名称为asmdba
groupadd -g 505 asmoper //创建一个新组 gid为505 名称为asmoper
groupadd backupdba //创建oracle用户组
groupadd dgdba //创建oracle用户组
groupadd kmdba //创建oracle用户组
useradd -u 502 -g oinstall -G dba,asmdba,oper,backupdba,dgdba,kmdba oracle
//创建oracle用户
mkdir -p /u12/app/oracle //创建oracle安装包文件
chown -R oracle:oinstall /u12 -R //把u12下的所有文件和目录拥有者改为oracle
chmod -R 775 /u12/app/oracle //设置文件权限775,拥有者与组用户所有权限,用户读取权限,执行权限
注意如果安装过程,因为权限问题安装失败:我们用root用户创建的文件,所有拥有者是root,而后面我们要用oracle用户安装数据库,到时候会因为权限问题导致安装失败,所以一定要让oracle拥有所有权限。
在/u12/下创建database文件,并且把oracle安装文件上传到文件内,并且解压缩
dbca.rsp为创建数据库响应文件
netca.rsp为监听器响应文件
网上对三个响应文件每一行的配置都有说明,这里不再做配置详细说明。我这里已经本地预先编辑好了三个文件,复制dbca.rsp,db_install.rsp ,netca.rsp 到/u12/database文件夹下
切换到oracle用户
注意:在执行响应文件之前先执行
chmod 755 /tmp/CVU_*_oracle/ -R
防止oracle在tmp生成的临时文件,没有执行权限,导致检测脚本无法运行
1.切换到oracle用户,执行 su - oracle .进入/u12/database 目录中
2.执行 ./runInstaller -silent -noconfig -responseFile /u12/database/db_install.rsp
runInstaller 安装完毕后依据界面提示,使用root 执行/u12/app/oraInventory/orainstRoot.sh 和 /u12/app/oracle/product/12/dbhome_1/root.sh具体执行脚本参照界面提示.以下步骤还是在oracle用户下执行.
执行完毕后,编辑 vi .bash_profile 新增输入以下内容,如果有则进行对应的修改.输入完毕后执行 source .bash_profile
umask 022
export ORACLE_SID=wms //这个是我设置的服务器名称,可行修改默认为orcl
export ORACLE_BASE=/u12/app/oracle
export ORACLE_HOME=/u12/app/oracle/product/12/dbhome_1
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export PATH=$PATH:$ORACLE_HOME/bin
执行oracle的监听器响应文件(netca.rsp),然后静默安装监听器
1.执行 netca -silent -responsefile /u12/database/netca.rsp
注意dbca.rsp文件中的totalMemory配置项,此配置项根据实际内存的大小分配 30%到40%.例如10G的内存.则分配值大概在10*1024*0.3 (只能配置一个百分比或分配值)
执行 dbca -silent -createDatabase -responseFile /u12/database/dbca.rsp