网站首页 > 技术文章 正文
在运维过程中,通常服务器都是无法使用图形化界面的,这里给大家写出无图形化(静默)安装oracle 11g过程,希望能帮助大家。
- 添加swap分区
如果有swap分区可以跳过步骤,这里建议设置服务器内存2倍
dd if=/dev/zero of=/swap bs=1024 count=8200000
mkswap /swap
chmod 600 /swap
swapon /swap
#设置成自动挂载
echo "/swap swap swap default 0 0">>/etc/fstab
- 配置hostname
hostnamectl set-hostname oracledb
echo "127.0.0.1 oracledb" >>/etc/hosts
- 关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
- 检查软件依赖环境
注意:从Oracle 11g 11.2.0.2版本开始,在Linux x86_64上安装时,只需要安装64位的软件包,但是,对于11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安装包都必须安装。
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64
# 安装命令
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
# 安装完成后,检查依赖是否安装成功
rpm -q 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 | grep "not installed"
- 创建所需的操作系统组和用户
如果要安装Oracle数据库,则需要以下本地操作系统组和用户:Oracle inventory组(通常为 oinstall)OSDBA组 (通常为 dba)OSOPER组 (通常为 oper)Oracle软件所有者(通常为 oracle)
# 添加命令
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
修改oracle 用户密码
passwd oracle
# 输入密码
- 配置内核参数和资源限制
在/etc/sysctl.conf添加如下参数,如果系统中某个参数高于下面的参数的值 ,保留较大的值,下面的数值只是官方要求的最小值,可以根据系统调整数值,以优化系统性能
fs.aio-max-nr = 1048576
# 512m x processes 可以分配的文件句柄的最大数目(文件系统最大可打开文件数)
fs.file-max = 6815744
# 设置共享内存总页数 这个值推荐设置为物理内存大小除以分页大小 kb
kernel.shmall = 4194304
# Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半 bytes
kernel.shmmax = 17179869183
# SHMMNI参数:设置系统级最大共享内存段数量
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
# 表示用于向外连接的端口范围
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
# 默认和最大的TCP数据接收缓冲
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# 表示每个信号集中的最大信号量数目 各个实例中最大的PROCESSES参数+10
SEMMSL 250
# 表示系统范围内的最大信号量总数目
SEMMNS 32000
# 表示每个信号发生时的最大系统操作数目
SEMOPM 100
# 表示系统范围内的最大信号集总数目
SEMMNI 128
使内核参数生效
sysctl -p
在/etc/security/limits.conf中添加如下参数
# 可用于单个用户最大进程数
oracle soft nproc 2047
oracle hard nproc 16384
# 打开文件最大描述符的限制
oracle soft nofile 1024
# 进程堆栈段的最大大小
oracle hard nofile 65536
在/etc/pam.d/login文件中,添加下面内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
在/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
使/etc/profile文件生效
source /etc/profile
禁用使用Transparent HugePages(启用Transparent HugePages,可能会导致造成内存在运行时的延迟分配,Oracle官方建议使用标准的HugePages)
查看是否启用 如果显示 [always]说明启用了
cat /sys/kernel/mm/transparent_hugepage/enabled
禁用Transparent HugePages,在/etc/rc.d/rc.local添加如下内容
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
chmod +x /etc/rc.d/rc.local
# 重新启动系统以使更改成为永久更改
- 创建oracle安装目录
如下目录,根据自己的实际情况可做修改(建议根据分区情况)
mkdir -p /home/oracle/app/
chown -R oracle:oinstall /home/oracle/app/
chmod -R 775 /home/oracle/app/
- 配置oracle用户环境变量
在文件/home/oracle/.bash_profile里添加下面内容(具体值根据实际情况修改)
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/home/oracle/app/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 NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
source /home/oracle/.bash_profile
# 使配置生效,或者reboot now
- 解压下载好的两个Oracle数据库文件
unzip -q linux.x64_11gR2_database_1of2.zip -d /home
unzip -q linux.x64_11gR2_database_2of2.zip -d /home
mkdir -p /home/oracle/etc
cp /home/database/response/* /home/oracle/etc/
- 修改变量
vi /home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0
ORACLE_BASE=/home/oracle/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
正式开始安装
su - oracle
cd /home/database
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
安装期间可以使用tail命令监看oracle的安装日志
tail -f /home/oracle/app/oracle/inventory/logs/installActions2019-11-08_01-24-24AM.log
安装完成后有如下提示,如果有类似如下提示,说明安装完成
- 使用root用户执行脚本
su - root
sh /home/oracle/app/oracle/inventory/orainstRoot.sh
sh /home/oracle/app/oracle/product/11.2.0/root.sh
- 配置监听程序
su - oracle
netca /silent /responsefile /home/oracle/etc/netca.rsp
输出结果如下:
# 查看监听端口
netstat -tnpl | grep 1521
- 静默创建数据库
vi /home/oracle/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/home/oracle/app/oracle/oradata
RECOVERYAREADESTINATION=/home/oracle/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "3270" #等于内存*80%
- 执行静默建库
su - oracle
dbca -silent -responseFile /home/oracle/etc/dbca.rsp
静默执行过程如下:
查看进程
ps -ef | grep ora_ | grep -v grep
查看监听状态
lsnrctl status
至此数据库就安装成功了,下面我们登录下数据库
su - oracle
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password='oracle' entries=10 force=y
sqlplus / as sysdba
select status from v$instance;
若出现以下情况 (ORA-01034)
startup
根据提示,将ORACLEBASE/admin/数据库名称/pfile/init.ora.xxx形式的文件copy到ORACLE_HOME/dbs目录下initOracle.ora(根据startup提示)即可
cp /home/oracle/app/oracle/admin/orcl/pfile/init.ora.108201915017 /home/oracle/app/oracle/product/11.2.0/dbs/initORCL.ora
查看数据库编码
select userenv('language') from dual;
- 激活scott用户
alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;
- 设置Oracle开机启动
vi /home/oracle/app/oracle/product/11.2.0/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
vi /etc/oratab
orcl:/home/oracle/app/oracle/product/11.2.0:Y
vi /etc/rc.d/init.d/oracle
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n #34;Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n #34;Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
给/etc/init.d/oracle添加执行权限
chmod +x /etc/init.d/oracle
开机启动oracle
systemctl enable oracle
或
chkconfig oracle on
给启动文件加权限
cd /home/oracle/app/oracle/product/11.2.0/bin/
chmod 6751 oracle
cd /var/tmp
chown -R oracle:oinstall .oracle
- 防火墙配置放开Oracle的端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
需要安装文件的小伙伴可以私信找我。
猜你喜欢
- 2024-11-01 Windows远程桌面连接时遇到的问题分享~
- 2024-11-01 JAVA 8 环境安装配置 java环境的安装配置
- 2024-11-01 Qt编译数据库插件通用步骤说明 qt编写插件
- 2024-11-01 面试经常被问如何进行JVM调优?阿里P6:很难吗?我都总结在这里了
- 2024-11-01 linux 常用性能优化参数及理解 linux 常用性能优化参数及理解实验报告
- 2024-11-01 JavaEE 项目常见错误汇总(进一步补充)
- 2024-11-01 半虚拟化如何提高服务器性能 半虚拟化技术
- 2024-11-01 网友测试Win10仅在192MB内存上运行,仅128MB内存会死机蓝屏
- 2024-11-01 Oracle、PostgreSQL与Mysql数据写入性能对比
- 2024-11-01 你可能疏忽的plsql和navicat连接Oracle注意点
你 发表评论:
欢迎- 632℃几个Oracle空值处理函数 oracle处理null值的函数
- 625℃Oracle分析函数之Lag和Lead()使用
- 614℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 608℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 606℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 598℃【数据统计分析】详解Oracle分组函数之CUBE
- 588℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 572℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)