101库:32g内存 grep SwapTotal /proc/meminfo SwapTotal: 5242876 kB 注意设置swap 100库是设置的16g和内存一样大
1.修改用户的SHELL的限制 ,设置oracle软硬件进程数
vim /etc/security/limits.conf
oracle soft nproc 4096
oracle hard nproc 65536
oracle soft nofile 4096
oracle hard nofile 65536
2.添加初始化参数 vim /etc/sysctl.conf
# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p
3.关闭强制访问控制,避免路由访问失败---可设置 或者不设置。建议设置禁用需重启服务器 reboot 101 库设置了如下:
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled ---就这个东西
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
4.配置计算机名称 101如下 app-01 是他的名称
vi /etc/hosts
10.1.1.1 app-01
5.全局进程,线程配置 末尾追加
vi /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
6.设置oracle用户环境变量 101配置如下 只需要配置如下就行
su - oracle
vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_SID=oracle
让其生效
. ./.bash_profile
检验是否设置成功
echo $ORACLE_HOME
7.vi /etc/pam.d/login 101该配置文件如下 网上也有没配的 关键是session required /lib/security/pam_limits.so session required pam_limits.so需要增加 101 64位系统
直接配置
session required /lib/security/pam_limits.so
session required pam_limits.so
网上:
1.修改用户的SHELL的限制
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
2.--修改/etc/pam.d/login文件,增加如下:
session required /lib64/security/pam_limits.so //64为系统,千万别写成/lib/security/pam_limits.so,否则导致无法登录
session required pam_limits.so
3.修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf,按i键进入编辑模式,将下列内容加入该文件
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648 共享内存字节,一般为最大内存的75%
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p
3.关闭强制访问控制,避免路由访问失败---可设置 或者不设置。
vi /etc/selinux/config
-----------------------
SELINUX=disabled
4.修改主机名,及ip对应关系
--设置主机名,也可以直接修改配置文件/etc/sysconfig/network,不过这个是重启之后才起作用
#sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=DB_2/g" /etc/sysconfig/network
--如果不想重启,则使用下面命令,使当前生效
#hostname DB_2
--添加主机名与IP对应记录
#vi /etc/hosts
10.10.0.48 DB_2
5.全局进程,线程配置,也有同101一样配置的。
vi /etc/profile
----------------------
if [$USER = 'oracle']; then
ulimit -u 16384
ulimit -n 65536
fi
6.设置oracle用户环境变量
su - oracle
vi .bash_profile
----------------------
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2/db_1
export ORACLE_SID=oracle11g
export NLS_LANG=american_america.zhs16gbk
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
umask 022
----------------------
让其生效
. ./.bash_profile
检验是否设置成功
echo $ORACLE_HOME
-------------------------------------公共
必备依赖包
检查是否安装
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
执行yum安装
yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
1.创建oracle用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
各参数详解:
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肯定会包含在单个共享内存段中。
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)
kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。
kernel.sem:以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。
net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:表示套接字发送缓冲区大小的最大值。
Oracle服务器上Swap的配置
在Oracle服务器上,设置合适的swap大小可以提升Oracle的性能,对于Oracle 11g来说,Oracle服务器上物理内存和要设置的swap大小关系如下:
如果物理内存小于等于2GB,那么swap应该是物理内存的1.5倍;
如果物理内存在2GB到16GB之间,那么swap大小最好等于物理内存;
如果物理内存大于16GB,那么swap设置为16G就足够了。
我们可以用操作系统命令free -m来查看物理内存、swap大小,单位是MB
之前都是配置系统变量
创建安装oracle和放解压包的文件夹
命令:sudo mkdir -p /oracledata/data/oracle //oracle数据库安装目录
命令:sudo mkdir -p /oracledata/data/oraInventory //oracle数据库配置文件目录
命令:sudo mkdir -p /oracledata/data/database //oracle数据库软件包解压目录 , 将oracle安装文件放到这里
建完记得给oracle用户赋权,名称随意跟后面配置文件匹配上就行。
下面开始安装数据库。
1.编辑响应文件db_install.rsp
vi /u01/database/response/db_install.rsp
需要修改的配置有以下内容(参考大神说明 http://blog.csdn.net/jameshadoop/article/details/48086933)
oracle.install.option=INSTALL_DB_SWONLY #选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库
ORACLE_HOSTNAME=ora11g #指定操作系统主机名,通过hostname命令获得
UNIX_GROUP_NAME=oinstall #指定oracle inventory目录的所有者,通常会是oinstall或者dba
INVENTORY_LOCATION=/oracleSoft/data/oraInventory #指定产品清单oracle inventory目录的路径
SELECTED_LANGUAGES=en,zh_CN,zh_TW #指定数据库语言,可以选择多个,用逗号隔开
ORACLE_HOME=/oracleSoft/data/oracleInstall /product/11.2.0/db_1 #设置ORALCE_HOME的路径
ORACLE_BASE=/oracleSoft/data/oracleInstall # 设置ORALCE_BASE的路径,即oracle安装目录根路径
oracle.install.db.InstallEdition=EE #选择Oracle安装数据库软件的版本
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba #指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #选择数据库的用途,一般用途/事物处理,数据仓库
oracle.install.db.config.starterdb.globalDBName=ora11g #指定GlobalName
oracle.install.db.config.starterdb.SID=ora11g #指定SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK #选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
#通常中文选择的有ZHS16GBK简体中文库,根据公司规定自行选择
oracle.install.db.config.starterdb.password.ALL=123456 #设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。 这里可以不配置 使用默认的就行
DECLINE_SECURITY_UPDATES=true # False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG
# Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址
2.切换到oracle用户进入到/u01/database目录下执行安装命令--
cd /oracle/data/database/
./runInstaller -silent -ignorePrereq -responseFile /oracle/data/database/response/db_install.rsp
出现如下就证明成功,使用root用户执行对应的脚本即可。
检查临时空间: 必须大于 120 MB。 实际为 37565 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 3956 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2019-03-19_04-37-59PM. 请稍候...[oracle@asdccentos7 database]$ 可以在以下位置找到本次安装会话的日志:
/home/oracleSoft/data/oraInventory/logs/installActions2019-03-19_04-37-59PM.log
Oracle Database 11g 的 安装 已成功。
请查看 '/home/oracleSoft/data/oraInventory/logs/silentInstall2019-03-19_04-37-59PM.log' 以获取详细资料。
以 root 用户的身份执行以下脚本:
1. /home/oracleSoft/data/oraInventory/orainstRoot.sh
2. /home/oracleSoft/data/oracleInstall/product/11.2.0.4/dbhome_1/root.sh
Successfully Setup Software.
ctrl+c oracle安装完成。
3.静默安装监听,( $ORACLE_HOME/bin/netca /silent /responsefile u01/database/response/netca.rsp)
[oracle@ddddd database]$ /home/oracleSoft/data/oracleInstall/product/11.2.0.4/dbhome_1/bin/netca /silent /responseFile /home/oracleSoft/data/database/database/response/netca.rsp
4.静默建库
编辑dbca.rsp
vim /home/oracleSoft/data/database/response/dbca.rsp
#以下内容必须设置
GDBNAME = "ora11g" 全局数据库名
SID = "ora11g" 实例名称
TEMPLATENAME = "General_Purpose.dbc" 默认如果是这个值 则不需要修改
#以下内容根据需要修改
CHARACTERSET = "ZHS16GBK" 如果注释了放开注释 ,填写需要的数据库字符集。一般中文推荐这个
End of CREATEDATABASE section出现这个说明就可以保存退出了
执行
[oracle@cccccc response]$ /home/oracleSoft/data/oracleInstall/product/11.2.0.4/dbhome_1/bin/dbca -silent -responseFile /home/oracleSoft/data/database/database/response/dbca.rsp
然后会提示输入system密码。我的电脑执行后会清空屏幕,直接输入想要的密码 回车,确认密码 一直回车就行。
注意环境变量的值必须和配置文件里一致。
最后提示100%时就成功了。
centos 开放端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
重新启动防火墙
firewall-cmd --reload
即可远程连接。