1、(root用户操作)挂载yum源安装依赖包
yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel
Centos7中pdksh库就是ksh库(可以不用安装)
通过yum install pdksh -y 安装缺少 package ,这个库yum源中没有,需要自己下载;
通过wget命令直接下载pdksh的rpm包
wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
cd /tmp
#安装
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
2、(root用户操作)添加oracle用户组和用户
如果要安装Oracle数据库,则需要以下本地操作系统组和用户:
- Oracle inventory组(通常为 oinstall)
- OSDBA组 (通常为 dba)
- OSOPER组 (通常为 oper)
- Oracle软件所有者(通常为 oracle)
命令:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
#验证是否成功 id oracle
#给oracle用户设置密码 passwd oracle
3、(root用户操作)配置 root用户的 /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
#使修改立即生效
source /etc/profile
4、(root用户操作)修改内核参数及配置oracle用户shell权限
a、#**修改内核参数**
vi /etc/sysctl.conf
## 追加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmni = 4096
# kernel.shmmax 参数设置为物理内存的一半
kernel.shmmax = 1073741824
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 = 1048586
#使修改立即生效
sysctl -p
b、#限制oracle用户的shell权限
vi /etc/security/limits.conf
#末尾追加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
修改用户验证选项
vi /etc/pam.d/login
#末尾追加 (使limits.conf生效)
session required /lib64/security/pam_limits.so
session required pam_limits.so
5、解压及安装
# 总步骤及顺序
a、解压安装包
b、修改环境变量
c、创建目录
d、修改应答文件:db_install.rsp(安装应答文件)、 netca.rsp(监听应多文件,不用修改)、 dbca.rsp(创建实例应答文件)
e、开始安装:
第一步:oracle安装
第二步:监听打开
第三步:实例创建
第四步:创建表空间及用户、给用户赋权
1)解压安装包、创建安装位置路径、修改目录属性及用户组
#(oracle用户)操作增加环境变量
vim .bash_profile(oracle用户)
#在末尾添加
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
export PATH
#使生效(oracle用户)
source /home/oracle/.bash_profile
#(oracle用户)根据/home/oracle/.bash_profile中的变量进行创建目录和修改目录属性及用户
mkdir -p /data/oracle
mkdir -p /data/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /data/oracle
chmod 755 /data/oracle
2)应答文件修改及安装
解压后得到database目录,其中response目录里面有三个rsp文件,用来作为静默安装时应答文件的模板。分别为:
cd database/response
ls -l
-rw-rw-r-- 1 oracle oinstall 44960 Aug 8 17:10 dbca.rsp //安装应答
-rw-rw-r-- 1 oracle oinstall 22752 Aug 8 14:23 db_install.rsp //创建数据库应答
-rwxrwxr-x 1 oracle oinstall 5740 Feb 26 2009 netca.rsp //建立监听,本地服务名等网络设置备份配置文件
cp -r /oracle/database/response/ /home/oracle/ //备份修改
# 修改后的静默安装配置文件db_install.rsp内容如下:
主要修改的地方如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=DBSERVER1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory //最好放到ORACLE_BASE下
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/oradata //可以使用默认值
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/recovery_data //可以使用默认值
DECLINE_SECURITY_UPDATES=true //一定要设为true 静默模式false有问题
#开始静默安装oracle
cd /oracle/database
./runInstaller -silent -responseFile /home/oracle/db_install.rsp
强制 需要加个参数 -force
#查看安装进度
[oracle@Oracle database]$ cd /data/oracle/oraInventory/logs
[oracle@Oracle logs]$ tail -f installActions*log
#当出现以下信息时
/data/oracle/oraInventory/orainstRoot.sh
/data/oracle/product/11.2.0/dbhome_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
打开新的客户端使用root身份执行以下脚本
[root@Oracle ~]# /oracle/app/oracle/oraInventory/orainstRoot.sh
[root@Oracle ~]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
执行完上面的脚本后回到安装界面按下Enter继续。
# 开启监听(oracle用户)
** 先修改主机名(重要,不修改可能监听会报错)
vi /etc/hostname 修改为oracle
vi /etc/hosts 在127.0.0.1 后添加个 oracle
netca /silent /responsefile /home/oracle/netca.rsp
运行成功之后,在/data/oracle/product/11.2.0/dbhome_1/network/admin目录下会生成sqlnet.ora和listener.ora两个文件
如果是报以下错误,是 /etc/hosts 的配置格式有问题,请仔细检查,并删除 $ORACLE_BASE/cfgtoollogs/netca/下的日志,重新执行
[main] [ 2013-07-10 11:52:47.293 EDT ] [NetCALogger.initTrace:203] Oracle Net Configuration Assistant: 13071011AM5247
[main] [ 2013-07-10 11:52:47.294 EDT ] [NetCALogger.initTrace:204] Oracle Home: /oracle/product/db/11.2.0.3
[main] [ 2013-07-10 11:52:47.295 EDT ] [NetCALogger.initTrace:205] Oracle Base: /oracle/product
[main] [ 2013-07-10 11:52:47.295 EDT ] [NetCALogger.initTrace:206] Oracle Home Name: OraDb11g_home1
[main] [ 2013-07-10 11:52:47.342 EDT ] [InventoryUtil.getOUIInvSession:347] setting OUI READ level to ACCESSLEVEL_READ_LOCKLESS
[main] [ 2013-07-10 11:52:47.343 EDT ] [HAUtils.<init>:239] oui location /oracle/oraInventory/ContentsXML
[main] [ 2013-07-10 11:52:47.358 EDT ] [Version.isPre:528] version to be checked 11.2.0.3.0 major version to check against10
[main] [ 2013-07-10 11:52:47.358 EDT ] [Version.isPre:539] isPre.java: Returning FALSE
[main] [ 2013-07-10 11:52:47.362 EDT ] [OCR.loadLibrary:312]
Inside constructor of OCR
[main] [ 2013-07-10 11:52:47.379 EDT ] [OCR.loadLibrary:320] Going to load the ocr library
[main] [ 2013-07-10 11:52:47.379 EDT ] [Library.load:188] library.load
[main] [ 2013-07-10 11:52:47.380 EDT ] [sPlatform.isHybrid:66] osName=Linux osArch=amd64 JVM=64 rc=false
[main] [ 2013-07-10 11:52:47.381 EDT ] [sPlatform.isHybrid:66] osName=Linux osArch=amd64 JVM=64 rc=false
[main] [ 2013-07-10 11:52:47.381 EDT ] [Library.load:264] Loading library /oracle/product/db/11.2.0.3/lib/libsrvmocr11.so
[main] [ 2013-07-10 11:52:47.384 EDT ] [OCR.loadLibrary:322] loaded ocr libraries
[main] [ 2013-07-10 11:52:47.384 EDT ] [OCR.isCluster:952] Calling OCRNative for isCluster()
[main] [ 2013-07-10 11:52:47.387 EDT ] [OCR.isCluster:956] OCR Result status = true
[main] [ 2013-07-10 11:52:47.387 EDT ] [OCR.isCluster:968] Bolean result = false
[main] [ 2013-07-10 11:52:47.390 EDT ] [CmdlineArgs.<init>:114] Initializing variables array...
[main] [ 2013-07-10 11:52:47.390 EDT ] [CmdlineArgs.<init>:120] Initializing NetProperties...
[main] [ 2013-07-10 11:52:47.391 EDT ] [CmdlineArgs.initArgs:137] Initializing command line arguments...
[main] [ 2013-07-10 11:52:47.392 EDT ] [CmdlineArgs.parseLogParam:296] Parsing /log argument...
[main] [ 2013-07-10 11:52:47.392 EDT ] [CmdlineArgs.parseLogParam:351] Returning Log File = null
java.lang.ArrayIndexOutOfBoundsException: 2
at oracle.net.ca.CmdlineArgs.parseArgs(CmdlineArgs.java:423)
at oracle.net.ca.InitialSetup.<init>(NetCA.java:3999)
at oracle.net.ca.NetCA.main(NetCA.java:428)
如果监听没有启动(lsnrctl status 查看),则手动启动监听器
[oracle@Oracle ~]$ lsnrctl start
配置oracle实例(创建数据库)
vi dbca.rsp
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl" //全局数据库的名字=SID+主机域名,没有主机域名时请设置为SID
SID = "orcl" //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
DATAFILEDESTINATION = /data/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/recovery_data //恢复数据存放目录
CHARACTERSET = "AL32UTF8" //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY = "5120" //oracle内存5120MB 可以不写使用默认值
另外还要配置SYSPASSWORD及其他如果不修改,可能出现实例创建不了的情况
#-----------------------------------------------------------------------------
# Name : SYSPASSWORD
# Datatype : String
# Description : Password for SYS user
# Valid values : Check Oracle11g Administrator's Guide
# Default value : None
# Mandatory : Yes
#-----------------------------------------------------------------------------
SYSPASSWORD = "password"
开始创建数据库实例
$ORACLE_HOME/bin/dbca -silent -responseFile /oracle/app/oracle/database/response/dbca.rsp
设置oracle开机器启动
修改/etc/oratab 和 /etc/rc.d/rc.local
vi /etc/oratab
orcl:/u01/app/oracle/product/11.2.0.4/db_1:N 修改为 orcl:/u01/app/oracle/product/11.2.0.4/db_1:Y
表示允许开机时使用dbstart 启动实例
vi /etc/rc.d/rc.local
添加以下内容:
su oracle -lc "/u01/app/oracle/product/11.2.0.4/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/12.1.0/db_1/bin/dbstart
说明:/u01/app/oracle/product/12.1.0/dbhome_1为oracle的安装目录,要根据实际情况进行修改。
6、创建用户和表空间、赋权
# 表空间
CREATE TABLESPACE logic DATAFILE '/data/oracle/oradata/orcl/logic.dbf'
SIZE 2G
AUTOEXTEND ON
NEXT 200M;
CREATE TABLESPACE platform DATAFILE '/data/oracle/oradata/orcl/platform.dbf'
SIZE 1G
AUTOEXTEND ON
NEXT 200M;
# 创建用户并设置表空间
create user logic identified by 密码 default tablespace logic;
create user platform identified by 密码 default tablespace platform;
# 赋权导入导出等
grant dba,imp_full_database,exp_full_database,connect,resource,create session to logic;
grant dba,imp_full_database,exp_full_database,connect,resource,create session to platform;