CentOS版本:CentOS Linux release 7.4.1708 (Core)
Oracle版本:11.2.0.1.0
检查系统配置(root用户)
# 查看内存情况
grep MemTotal /proc/meminfo
#查看swap情况
grep SwapTotal /proc/meminfo
# 查看磁盘
df -h
# /tmp 目录空间大于400MB
df -h /tmp
检查软件安装包情况(root用户)
# 检查内核版本
uname -r
# 安装依赖
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers pdksh cvuqdisk libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
环境配置(root用户)
# 创建用户组 oinstall
groupadd oinstall
# 创建用户组 dba
groupadd dba
# 设置安全策略,允许修改这类配置文件
chattr -i /etc/passwd /etc/shadow
# 把用户 oracle 加入 oinstall 和 dba 组
useradd -g oinstall -G dba oracle
# 设置 oracle 用户密码
passwd oracle
# 设置安全策略,不允许修改这类配置文件
chattr +i /etc/passwd /etc/shadow
[root@oracle115 etc]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)
配置Linux内核参数(root用户)
- 修改 /etc/sysctl.conf 文件,增加如下内容
# 异步 I/O 请求数目
fs.aio-max-nr = 1048576
# 一个进程可以打开的文件句柄的最大数量
fs.file-max = 6815744
# 共享内存段的最大尺寸,需要小于 SGA MAX SIZE,大小为shmall*页大小(4k)
kernel.shmall = 2097152
# 共享内存段的最大数量,ipcs -sa
kernel.shmmax = 1073741824
# 控制共享内存页数
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
- 修改后: sysctl -p 设置生效
配置资源使用情况(root用户)
- 修改 /etc/security/limits.conf 文件,增加如下内容。
soft 是指是当前系统设置生效的值;hard 表明系统中所能设置的最大值
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
* soft memlock unlimited
* hard memlock unlimited
- 修改 /etc/pam.d/login 文件
session required pam.limits.so
- 创建安装目录,修改文件权限
mkdir -p /opt/oracle/product/11.2.0
mkdir /opt/oracle/oradata
mkdir /opt/oracle/inventory
mkdir /opt/oracle/fast_recovery_area
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
配置环境变量(oracle用户)
- 切换到 oracle 用户
su - oracle
- 修改 /home/oracle/.bash_profile 文件,增加如下内容
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
# 数据库实例名
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LANG="en_US.UTF-8"
export NLS_LANG=american_AMERICA.UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
静默安装方式
- 切换到 root 用户进入 oracle 安装包解压后的目录 /opt/oracle_package/database/response
1.1 备份 db_install.rsp 文件
# 退出 oracle 用户,切换到 root 用户
exit
# 切换到目录 /opt/oracle_package/database/response
cd /opt/oracle_package/database/response
# 备份 db_install.rsp 文件
cp db_install.rsp db_install.rsp.bak
1.2 编辑 /opt/oracle_package/database/response/db_install.rsp 文件
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/oracle/product/11.2.0
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
- 切换到 oracle用户进入 oracle 安装包解压后的目录 /opt/oracle_package/database
su - oracle
cd /opt/oracle_package/database
./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /opt/oracle_package/database/response/db_install.rsp
忽略[WARNING],如下图信息表示安装成功:
- 切换到 root 用户执行脚本
sh /opt/oracle/inventory/orainstRoot.sh
sh /opt/oracle/product/11.2.0/root.sh
配置监听(oracle用户)
export DISPLAY=localhost:0.0
netca -silent -responseFile /opt/oracle_package/database/response/netca.rsp
成功后,会在 /opt/oracle/product/11.2.0/network/admin 中生成 listener.ora 和 sqlnet.ora 两个文件。
建立新库,并建立对应的实例
- 切换到 root 用户,编辑 /opt/oracle_package/database/response/dbca.rsp 。修改如下参数:
GDBNAME = "orcl"
SID = "orcl"
# 设置相关密码
SYSPASSWORD = "password"
SYSTEMPASSWORD = "password"
SYSMANPASSWORD = "password"
DBSNMPPASSWORD = "password"
DATAFILEDESTINATION =/opt/oracle/oradata
RECOVERYAREADESTINATION=/opt/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "1638"
- 切换到 oracle 用户,执行dbca
su - oracle
dbca -silent -responseFile /opt/oracle_package/database/response/dbca.rsp
查询建库状态
实例检查
ps -ef | grep ora_ | grep -v grep
查看监听状态
lsnrctl status
启动数据库
sqlplus / as sysdba
startup
PL/SQL Developer 测试连接 Oracle
使用系统管理员账号 sys,密码为前面设置的,登录身份为SYSDBA
网友评论