本文基于centos7 安装oracle11g 11.2.0.4 (貌似现在需要付费用户才能下载11.2.0.4了~)
1、二话不说,先依赖包安装
# yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel sysstat ksh
# 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
2、处理内存配置
# grep MemTotal /proc/meminfo #查看内存
# 手动加swap空间
# dd if=/dev/zero of=/swap bs=1024 count=2048000
# 制作为swap格式文件
# mkswap /swap
# 更改swap文件权限
# chmod 600 /swap
# 用swapon命令把这个文件分区挂载swap分区
# swapon /swap
# 查看swap空间
# grep SwapTotal /proc/meminfo
# 为防止重启后swap分区变为0,修改文件设置开机自动挂载
# vi /etc/fstab
# 在末尾追加一行
/swap swap swap default 0 0
3、修改CentOS系统标识 (由于Oracle默认不支持CentOS)
修改文件: vim /etc/redhat-release
将文件内容替换为: redhat-7
4、定义 /etc/hosts 文件 的 hostname , db_install.rsp文件的ORACLE_HOSTNAME 要与之一致
5、创建用户和组
groupadd -g 200 oinstall #添加oinstall组,组的id为200
groupadd -g 201 dba #添加dba组,组的id为201
useradd -u 440 -g oinstall -G dba oracle #添加用户oracle
passwd oracle #输入oracle用户的密码(注意此处用户名密码在安装的时候会用到!)
id oracle #查看用户id和所属组
# 优化性能
修改 vim /etc/sysctl.conf 文件,添加以下内容(最小配置)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 4294967295
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
修改 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
修改 /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、解压安装文件到相应目录
unzip p13390677_112040_Linux-x86-64_1of7.zip -d /home/oracle/
unzip p13390677_112040_Linux-x86-64_2of7.zip -d /home/oracle/
7、修改安装文件;注意此处文件位置 (可以先备份)!
# vim /home/oracle/database/response/db_install.rsp
8、安装
# 文档的安装目录在/opt下;先用root给oracle用户赋权
# chown oracle:oinstall -R /opt
注意 : SERVICE_NAME 如果不指定,默认的是Db_name. Db_domain,也就是global_name;
因此在配置修改db_install.rsp文件时都建议修改指定 globalDBName 和 SID 这两个参数;
dbca.rsp 文件配置时则是 GDBNAME 和 SID ,这样相对灵活。
简单说,SERVICE_NAME 是对外的,一个数据库只有一个 SERVICE_NAME ;而 SID 则是对内的实例,可以有多个,具体连个格式如下。
db_install.rsp配置参考:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=myHost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=dbopsmt #(自定义,这里设置为server_name一致)
oracle.install.db.config.starterdb.SID=sidopsmt
oracle.install.db.config.starterdb.characterSet=AL32UTF8 #字符集很重要
oracle.install.db.config.starterdb.memoryLimit=15000
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle # oracle 安装用户密码
DECLINE_SECURITY_UPDATES=true # 这里一定设置要为true!!
# 切换为oracle执行以下安装操作 su oracle
# cd /home/oracle/database
# ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /home/oracle/database/response/db_install.rsp
(此时可以根据提示的日志位置信息,用 tailf 查看日志中安装进度)
安装完成后,切换回root用户根据提示信息文件,执行:
(根据实际脚本位置,安装目录等信息是在 db_install.rsp 设置的)
# /opt/oraInventory/orainstRoot.sh
# /opt/oracle/product/11.2.0/db_1/root.sh
9、切换为oracle,增加以下环境变量
export PATH
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=sidopsmt ##(sid服务名)
export ORACLE_PID=orcl11g ## 设置GDBNAME一致
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_UNQNAME=$ORACLE_SID
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
重载: source .bash_profile
10、配置监听(建议直接通过脚本执行)
# su - oracle # 切换到 oracle 用户
# $ORACLE_HOME/bin/netca /silent /responseFile /opt/database/response/netca.rsp
# 查看监听状态
lsnrctl status
11、 通过dbca建库
# su - root # 切换到 root 用户
# vim /opt/database/response/dbca.rsp
修改以下内容:
GDBNAME = "orcl11g" # 78 设置成PID
SID="sidopsmt" # 149 实例sid名称
CHARACTERSET="AL32UTF8" # 415 编码
NATIONALCHARACTERSET="UTF8" # 425
# su - oracle # 切换到 oracle 用户
# cd /opt/oracle/product/11.2.0/db_1/bin
# ./dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
(注意,执行上面安装命令的时候,会清除shell界面信息,不要慌张。直接输入刚刚设定的oracle用户名,按回车,然后再数据密码,按回车,就会开始安装!)(完成后查询日志确认)
安装完后登陆验证:
# cd /opt/oracle/product/11.2.0/db_1/bin
# ./sqlplus /as sysdba
# select * from tabs;会显示多条数据输出来
12、启动和验证
# lsnrctl start #启动监听
# sqlplus / as sysdba # 登录数据库
# startup # 启动
使用 show parameter;或者 select table_name from dba_tables 看看是否正常
如有报错,对应复制初始文件即可
13、oracle 用户
lsnrctl start #启动
lsnrctl stop #停止
lsnrctl status #查看listener的状态
sqlplus / as sysdba #以sysdba的身份登陆
sqlplus 下:
startup # 启动数据库服务
shutdown immediate; # 关闭数据库实例
或者: /opt/oracle/product/11.2.0/db_1/bin 下
dbstatr
dbshut
14、设置开机启动
# su - root # 切换到 root 用户
# vim /etc/oratab # 编辑
# *:/home/oracle/oracle92:N ##这一行中 * 改为数据库的SID orcl, 第三段的N改为Y
如下:
# sidopsmt:/home/oracle/oracle92:Y 务必是大写的Y
# vim /etc/rc.local # 编辑
在文件末尾增加如下内容
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
chmod +x /etc/rc.local # 配置文件权限