oracle 11g R2(静默安装)
参考博客地址:https://blog.csdn.net/jameshadoop/article/details/48223645
https://www.abcdocker.com/abcdocker/2090
http://blog.51cto.com/dellinger/1973696
官方地址:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html


环境准备
Oracle安装
首先请去官网下载软件包:
我百度云可以直接下载
链接:https://pan.baidu.com/s/1NYz0Z_5jhNQjqg9gVtrQhQ 密码:uif0
1.1 安装前准备
1.1.1 如何有修改yum源请参考:https://blog.csdn.net/jameshadoop/article/details/48054897
1.1.2 内存及swap要求
至于swap如何添加,请参考
https://blog.csdn.net/whatday/article/details/51024571
1. 检查当前的swap分区情况
# free –m
total used free shared buffers cached
Mem: 1006 84 922 0 11 38
-/+ buffers/cache: 35 971
Swap: 0 0 0
2. 增加交换分区文件及大小
如上,当前swap分区的大小为0,假如需要增加1024M的大小。
判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。
# dd if=/dev/zero of=/home/swap bs=1M count=1024
1024000+0 records in
1024000+0 records out
格式化交换文件,将swap文件格式化成s文件系统,系统才能使用
# mkswap /home/swap
Setting up swapspace version 1, size = 1023996 KiB
3. 启动交换分区文件
假如想立即启用交换分区文件,请执行:
# swapon /home/swap
要停止使用新创建的swap文件,只要执行 swapoff/home/swap命令即可.
检验增加后的swap分区大小
# free -m
total used free shared buffers cached
Mem: 1006 994 12 0 4 929
-/+ buffers/cache: 60 946
Swap: 999 0 999
4. 如希望在系统再次启动时,自动启用刚增加的swap,可编辑/etc/fstab文件:
# vi /etc/fstab,增加如下行
/home/swap swap swap defaults 0 0
5.修改linux swap空间的swappiness,降低对硬盘的缓存
linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给‘活动’的进程。
如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。在ubuntu 里面,默认设置swappiness这个值等于60。
!!!! 如果内存较小,而进程调度频繁,硬盘的响动就会大了 !!!!
现在一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0。具体这样做:
1.查看你的系统里面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的话,你应该看到是 60
2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10
但是这只是临时性的修改,在你重启系统后会恢复默认的60,为长治久安,还要更进一步:
$ sudo vi /etc/sysctl.conf
在这个文档的最后加上这样一行:
vm.swappiness=10
然后保存,重启。ok,你的设置就生效了。
swap内存操作
[root@xiaoyuer home]# free -h
total used free shared buffers cached
Mem: 1.8G 1.8G 78M 184K 11M 1.6G
-/+ buffers/cache: 139M 1.7G
Swap: 7.9G 0B 7.9G
1.2 硬盘空间
[root@DB_2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 11G 37G 22% /
1.3 修改主机名,及ip对应关系
设置主机名,也可以直接修改配置文件/etc/sysconfig/network,不过这个是重启之后才起作用
#sed - i"s/HOSTNAME=localhost.localdomain/HOSTNAME=oracle/g"/etc/sysconfig/netwok
如果不想重启,则使用下面命令,使当前生效
#hostname oracle
添加主机名与IP对应记录
#vi /etc/hosts
10.10.0.48 oracle
1.4 关闭Selinux
我自己没有关闭过selinux,这个是网上提供说需要关闭的
sed -i "s/SELINUX=enforcing/SELINUX=disabled/"/etc/selinux/config
setenforce 0
1.5上传软件
上传到/home/oracle/ 解压Oracle安装文件
# cd /home/oracle/
# unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle
# unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle/
1.6 系统配置
创建用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
id oracle
[root@ DB_2 home]# groupadd oinstall
[root@ DB_2 home]# groupadd dba
[root@ DB_2 home]# useradd -g oinstall -G dba oracle
[root@ DB_2 home]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ DB_2 home]# id oracle
uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
创建相应安装目录
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/recovery_data
chown -R oracle:oinstall /u01/app/
chmod -R 755 /u01/app/
参考:
在root用户下
mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1
//创建安装目录
#mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1
//数据文件存放目录
#mkdir -p /opt/app/oracle/oradata
//数据恢复目录
#mkdir -p /opt/app/oracle/recovery_area
//数据库创建及使用过程中的日志目录
#mkdir -p /opt/app/oracle/oraInventory
//修改安装目录权限
#chown -R oracle:oinstall /opt/app/oracle
#chmod 775 /opt/app/oracl
参考与
修改系统内核参数
[root@oradg1 ~]vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152 //此行默认已有,确认不低于此数即可
kernel.shmmax = 536870912 //此行默认已有,确认不低于此数即可
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
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@oradg1 ~]# vim /etc/pam.d/login 文件最后添加:
session required pam_limits.so
调整oracle用户的进程数与最大文件句柄数
[root@oradg1 ~]# vim /etc/security/limits.conf 文件的最后添加:
oracle soft nproc 10000
oracle hard nproc 16384
oracle soft nofile 52768
oracle hard nofile 6553
root soft nproc 2047
root hard nproc 16384
root soft nofile 1024
root hard nofile 65536
soft是最小值,hard是最大值,nofile是文件句柄,也就是这个用户能打开的文件数,nproc是进程数
1.7 增加环境变量
oracle用户变量
[root@oradg1 ~]# vim /home/oracle/.bash_profile
umask 022
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=dg1
export LANG=en_US.UTF-8
#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
添加全局变量
[root@oradg1 ~]# vi /etc/profile
export PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin
不要忘了让环境变生效
source /etc/profile
source /home/oracle/.bash_profile
1.8 安装oracle
安装依赖包
# yum -y install gcc gcc-c++ makebinutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-develglibcglibc-commonglibc-devel libaio libaio-devel libgcclibstdc++libstdc++-develunixODBC unixODBC-devel ksh
或 (我用的上者)
# yum -y installbinutils compat-libstdc++-33compat-libstdc++-33.i686
elfutils-libelfelfutils-libelf-devel gcc gcc-c++glibc glibc.i686 glibc-common
glibc-devel glibc-devel.i686glibc-headers kshlibaio libaio.i686 libaio-devel
libaio-devel.i686 libgcclibgcc.i686 libstdc++libstdc++.i686 libstdc++-devel make
sysstat unixODBC unixODBC-devel
到这里前期的准备工作全部完成啦,建议重启下系统让各项配置生效。当然也可以不重启
1.9 应答文件修改 /home/oracle/database/response
此种应答文件是安装并配置数据库,直接产生orcl数据库实例
应答文件模版在解压后的文件夹中。
/home/oracle/database/response/db_install.rsp
模版中重要的配置项含义如下
ORACLE_HOSTNAME 主机名
ORACLE_BASE oracle的基础安装目录
ORACLE_HOME oracle的安装目录
INVENTORY_LOCATION oracle日志目录
oracle.install.db.config.starterdb.globalDBName
oracle.install.db.config.starterdb.password.ALL
如果想知道每个选项的含义,请看:
http://blog.csdn.net/jameshadoop/article/details/48086933
1.1.1 db_install.rsp文件中追加
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory #数据库创建及使用过程中的日志目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 #创建安装目录
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle/recovery_data
oracle.install.db.config.starterdb.globalDBName=dg1
oracle.install.db.config.starterdb.SID=dg1
oracle.install.db.config.starterdb.memoryLimit=500
oracle.install.db.config.starterdb.password.ALL=sys
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
错误:说共享内存为963我设置的500
[FATAL] [INS-35172] Target database memory (4069MB) exceeds the systems available shared memory ({0}MB).
CAUSE: The total available shared memory on the system (936 MB) was less than the chosen target database memory (4069 MB).
ACTION: Enter a value for target database memory that is less than936 MB.
oracle.install.db.config.starterdb.memoryLimit=500
我遇到的内存错误
成功后显示:
......
*As a root user, execute the following script(s):
1. /u01/app/oracle/product/11.2.0/db_1/root.sh
Successfully Setup Software*
root权限执行安装后的配置脚本
su - root
sh /u01/app/oracle/product/11.2.0/db_1/root.sh
[oracle@oracle ~]$ ]# su - root
[[oracle@oracle ~$]# sh /u01/app/oracle/product/11.2.0/db_1/root.sh
创建oraInst.loc
新建一个文件,没有此文件会报错
vim /home/oracle/oraInst.loc ,其内容如下: inventory_loc=/u01/app/oraInventory
inst_group=oinstall
开放权限:
root> chown oracle:oinstall /home/oracle/oraInst.loc root> chmod 664 /home/oracle/oraInst.loc
然后执行
cd /home/oracle/database/ ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -invPtrLoc /home/oracle/oraInst.loc -ignoreSysPrereqs
#查看日志看进度 /u01/app/oraInventory/logs/installActions2018-05-29_07-17-34PM.log
1.11 静默建库
vim /home/oracle/database/response/dbca.rsp, 覆盖以下选项:
注意:一定要按原来的参数所在的位置修改,不然报错
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME = "dg1" //全局数据库的名字=SID+主机域名
SID = "dg1" //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD = "sys" //SYS管理员密码
SYSTEMPASSWORD = "sys" //SYSTEM管理员密码
DATAFILEDESTINATION = /u01/app/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/u01/app/oracle/oradata_back //恢复数据存放目录
CHARACTERSET = " AL32UTF8" //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY = "" //oracle内存4069MB
1.12oracle用户执行配置完之后,执行命令
dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
[oracle@DB_2 db_1]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u01/app/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.
显示如下
1.13配置监听
netca /silent /responsefile /home/oracle/database/response/netca.rsp
启动服务
linux下开启oracle
su - oracle
sqlplus /nolog
conn /as sysdba
startup
exit
.启动监听
lsnrctl start
1.1.1 关闭数据库服务
linux下关闭oracle su - oracle sqlplus /nolog conn /as sysdba shutdown immediate exit
[oracle@DB_2 pfile]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed May 30 00:42:51 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL> start
SP2-1506: START, @ or @@ command has no arguments
SQL> startup
ORACLE instance started. Total System Global Area 534462464 bytes
Fixed Size 2215064 bytes
Variable Size 163578728 bytes
Database Buffers 364904448 bytes
Redo Buffers 3764224 bytes
Database mounted.
Database opened.
SQL>
测试
LINUX登录oracle用户,通过lsnrctl start命令启动数据库时,报错如下:
博客地址如下:https://blog.csdn.net/weiruoao/article/details/45374511
[oracle@DB_2 pfile]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 29-MAY-2018 23:51:35 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
TNS-12533: TNS:illegal ADDRESS parameters
TNS-12560: TNS:protocol adapter error
TNS-00503: Illegal ADDRESS parameters Listener failed to start. See the error message(s) above...
错误
原因:
/etc/hosts内有两个localhost的主机名,监听冲突。
解决方法:
1、修改其中一个主机名,比如oracle,执行以下命令。
hostname oracle
2、在/etc/hosts内修改一个主机名为oracle。
[root@oracle etc]# cat /etc/hosts
127.0.0.1 localhost
::1 oracle
3、在/etc/sysconfig/network修改主机名为oracle。
[root@oracle etc]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oracle
4、重新启动,在oracle用户下执行lsnrctl start。
解决方法
其他参考:
具体请查看另一篇文章:【开启归档模式,归档日志已满处理】http://www.cnblogs.com/yingsong/p/6037531.html
启动关闭命令详解http://www.cnblogs.com/NaughtyBoy/archive/2013/07/09/3180947.html
https://blog.csdn.net/jameshadoop/article/details/48223645
官方指南:
https://docs.oracle.com/cd/E11882_01/server.112/e16604/qstart.htm#i1049125
启动报挂载
http://blog.itpub.net/20674423/viewspace-711545根据这个博客操作
oracle 11g R2(静默安装)的更多相关文章
- ORACLE 11g R2数据库安装硬件环境要求
物理内存要求:最小1G,在windows7,windows8,windows8.1上最小2G. 虚拟内存(或分页空间)容量要求: Available RAM Swap Space Required B ...
- 【原创】Oracle 11g R2 Client安装配置说明(多图详解)
1. 准备工作 安装Oracle11gR2client的时候,如果刚从网上下载的Oracle client,可能无法再2008 R2或者2012 R2的服务器上面运行. 报错:[INS-13001]环 ...
- CentOS上oracle 11g R2数据库安装折腾记
1.虚拟机上centos镜像的获取.这里推荐网易镜像站中的CentOS7版本(其他开源镜像站亦可).这里给出链接: http://mirrors.163.com/centos/7.3.1611/iso ...
- Linux 6.x 下Oracle 11g R2 安装配置
Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ...
- oracle 11g r2安装
安装环境:windows 7 安装版本:Oracle_win32_11gR2 目的:用于模拟服务器环境,学习Oracle操作 1. 下载oracle 11g r2,下载地址:www.oracle.co ...
- 【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2
写在前面 按照读者朋友的要求写了一篇<[Oracle]CentOS7/CentOS8命令行安装Oracle 11G R2>,由于读者完全是按照我的安装方式安装的Oracle数据库,也是将O ...
- CentOS 7静默安装Oracle 11g R2数据库软件
之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面.图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过 ...
- Oracle 11g R2创建数据库之DBCA静默方式
通常创建Oracle数据库都是通过DBCA(Database Configuration Assistant)工具完成的,DBCA工具可以通过两种方式完成建库任务,即图形界面方式和静默命令行方式.既然 ...
- Oracle 11g R2 Sample Schemas 安装
最近准备对之前学习SQL*Loader的笔记进行整理,希望通过官方文档中的示例学习(Case Studies)来进行,但是官方文档中示例学习相关的脚本文件在数据库软件安装完成之后默认并没有提供,而是整 ...
- 【转载】Oracle 11g R2 for Win7旗舰版(64位)- 安装
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:bluepoint2009 原文地址:http://www.cnbl ...
随机推荐
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- Guava future
减少主函数的等待时间,使得多任务能够异步非阻塞执行 ListenableFuture是可以监听的Future,它是对java原生Future的扩展增强.Future表示一个异步计算任务,当任务完成时可 ...
- php的Allowed memory size of 134217728 bytes exhausted问题解决办法
php的Allowed memory size of 134217728 bytes exhausted问题解决办法 报错: Fatal error: Allowed memory size of 1 ...
- Java之Servlet
Servlet规范了JavaWeb项目的结构Servlet的规范约束了服务器如何来实现Servlet规范,如何解析JavaWeb项目的结构. Java就是通过接口来约束 Servlet规范的jar就在 ...
- 从yield 到yield from再到python协程
yield 关键字 def fib(): a, b = 0, 1 while 1: yield b a, b = b, a+b yield 是在:PEP 255 -- Simple Generator ...
- 生成网上下载的EF项目对应的数据库
生成网上下载的EF项目对应的数据库 网上下载的用EF做的小项目,结果没有配有数据库的,用VS打开来看了一下,看到Migrations文件夹,应该可以用EF命令来生成这个数据库了 打开appsettin ...
- redis跳跃表
最近在阅读redis设计与实现,关于redis数据结构zset的一种底层实现跳跃表一直没有太理解,所以在搜了一下资料,终于搞懂了它的设计思路,记录一下. 参考链接:https://mp.weixin. ...
- 【Java】设计模型-五种单例模型
一. 什么是单例模式 只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在. 单例模式有很多好处,它能够 ...
- Pandas基础(十一)时间序列
1. pandas时间序列:时间索引 2. pandas时间序列数据结构 2.1 定期序列 3. 频率和偏移 4. 重采样,转移,加窗口 4.1 重采样及频率转换 4.2 时间移动 4.3 滚动窗口 ...
- centos查看端口被哪个应用端口占用命令
在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的 net ...