Linux安装oracle

centos6.8静默安装oracle11g

一、     环境要求

1.1.  涉及工具及环境

1)        本地环境windows7+ssh远程连接工具Xshell6、Xftp6

2)        远程虚拟机CentOS6.8 64位系统  

3)        安装包文件

linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

1.2.  Oracle服务器要求

1)        最小内存1G,推荐2G或2G以上

2)        1GB跟2GB物理内存之间的,设定swap大小为物理内存的1.5倍
            2GB跟16GB物理内存之间的,设置swap大小与物理内存相等
            16GB物理内存以上的,设置swap大小为16GB

3)        硬盘要求空间至少5-6GB

硬件检测:

cat /etc/issue

uname -r (版本)

grep MemTotal /proc/meminfo (内存大小)

grep SwapTotal /proc/meminfo (交换区大小)

grep "model name" /proc/cpuinfo (CPU信息)

free (可用内存)

 

二、     准备工作

2.1  上传oracle 11g安装文件到服务器并解压

安装包用Xftp上传到/home目录下,并解压    

cd /home    

unzip linux.x64_11gR2_database_1of2.zip    

unzip linux.x64_11gR2_database_2of2.zip 

待解压完毕后会生成文件夹/home/database,里面是解压后的所有oracle安装文件。

2.2  在/etc/hosts文件中增加主机名

(通过hostname获得)

vim /etc/hosts在文件尾部添加如下信息:

192.168.0.55   gx

2.3  关闭selinux

vim /etc/selinux/config  设置SELINUX=disabled

setenforce 0   //关闭selinux

2.4  关闭防火墙

service iptables stop   //临时关闭防火墙

chkconfig iptables off  //永久关闭防火墙

三、     安装步骤

3.1  安装依赖包

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686elfutils-libelf elfutils-libelf-devel gcc gcc-c++  glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686  libgcc libgcc.i686 libstdc++ libstdc++.i686libstdc++-devel make sysstat unixODBC unixODBC-devel

3.2  添加oracle用户和用户组

groupadd oinstall              //创建oinstall组

groupadd dba                //创建dba组

useradd -g oinstall -G dba oracle  //将oracle用户加入组 

passwd oracle                  //修改并设定oracle用户密码  (密码为123456)

 

3.3  修改内核参数配置文件 

1)        vim /etc/sysctl.conf 

配置文件内加入或修改以下参数,如果没有可以自己添加,如果默认值比参考值大,则不需要修改。   

fs.file-max= 6815744

fs.aio-max-nr=1048576

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

kernel.sem= 250 32000 100 128

 

2)        执行命令sysctl使其自检并生效

sysctl -p

 

3.4  修改用户的限制文件

1)       修改进程数和最大会话数

执行如下命令,修改配置文件/etc/security/limits.conf

vim /etc/security/limits.conf

在文件尾部添加如下信息:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

 

2)       设置关联信息

执行如下命令,修改关联文件/etc/pam.d/login

vim /etc/pam.d/login

在文件尾部添加如下信息:

session  required  /lib64/security/pam_limits.so 

session required pam_limits.so

备注:64位系统时,千万别写成/lib/security/pam_limits.so,否则导致无法登录

 

 

3)       修改系统启动环境参数

执行如下命令,修改系统启动环境参数文件/etc/ profile

vim /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

 

3.5  创建安装目录和设置文件权限

1)        创建安装目录

mkdir  /usr/local/oracle          //数据库系统安装目录

mkdir  /usr/local/oradata        //数据库数据安装目录

mkdir  /usr/local/oradata_back    //数据备份目录

mkdir  /usr/local/oraInventory     //清单目录  

2)        赋予组用户及权限

chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/   

chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/

  

3.6   配置oracle用户环境变量

vim /home/oracle/.bash_profile

   文件内加入并修改至以下内容:

export ORACLE_BASE=/usr/local/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

 

保存退出后执行source命令立即生效:

 source .bash_profile

3.7  编辑静默安装响应文件

首先进入oracle用户:su - oracle

1)  复制一份模板 

cp -R /home/database/response /usr/local/oracle

该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下   

2)  修改安装所需的所有响应文件的所属组及权限   

cd  /usr/local/oracle/response

chown  oracle:oinstall /usr/local/oracle/response/*.rsp    

chmod 755 /usr/local/oracle/response/*.rsp  

3)  配置db_install.rsp文件     

vim /usr/local/oracle/response/db_install.rsp 

文件内需要修改相应的参数配置如下:    

oracle.install.option=INSTALL_DB_SWONLY    #安装类型,只装数据库软件   

ORACLE_HOSTNAME=qa26                 #主机名称(命令hostname查询)    

UNIX_GROUP_NAME=oinstall               # 安装组   

INVENTORY_LOCATION=/usr/local/oraInventory   #INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)   

SELECTED_LANGUAGES=en,zh_CN                    # 选择语言   

ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1    # oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle  

ORACLE_BASE=/usr/local/oracle                      # oracle_base *注意修改  

oracle.install.db.InstallEdition=EE                 # oracle版本   

oracle.install.db.isCustomInstall=false       #自定义安装,否,使用默认组件  

oracle.install.db.DBA_GROUP=dba                     #dba用户组   

oracle.install.db.OPER_GROUP=dba              #oper用户组(不明白)

#oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //数据库类型   

#oracle.install.db.config.starterdb.globalDBName=orcl      #globalDBName   

#oracle.install.db.config.starterdb.SID=orcl #SID(**此处注意与环境变量内配置SID一致)  

#oracle.install.db.config.starterdb.memoryLimit=81920      #自动管理内存的内存(M)  

#oracle.install.db.config.starterdb.password.ALL=oracle    #设定所有数据库用户使用同一个密码   

#SECURITY_UPDATES_VIA_MYORACLESUPPORT=false            #(手动写了false)  

oracle.install.db.config.starterdb.password.SYS=123456

oracle.install.db.config.starterdb.password.SYSTEM=123456

DECLINE_SECURITY_UPDATES=true        # **注意此参数 设定一定要为true

 备注:#部分可以注释掉

3.8  根据响应文件安装oracle

在oracle用户下安装   su  - oracle 

$ cd /home/database/

$ ./runInstaller  -silent -responseFile/usr/local/oracle/response/db_install.rsp -ignorePrereq

参数说明:     

/home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。  

runInstaller 是主要安装脚本   

-silent 静默模式   

-force 强制安装   

-ignorePrereq忽略warning直接安装。   

-responseFile读取安装应答文件。

 

 安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。打开另一个终端,

执行tail-100f /usr/local/oraInventory/logs/installActions*.log

 

当出现以下界面时, 表示安装成功了,按照其提示操作。

在新创建的root窗口内执行以下提示的脚本:

# /usr/local/oraInventory/orainstRoot.sh

 # /usr/local/oracle/product/11.2.0/db_1/root.sh

3.9  编辑静默建库响应文件

$ cd  /usr/local/oracle/response

$ mv  dbca.rspdbca_orcl.rsp  #改名为dbca_数据库名.rsp

 

3.10静默配置监听(网络)

通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:

# su - oracle

$ netca /silent /responsefile /usr/local/oracle/response/netca.rsp

$ ll $ORACLE_HOME/network/admin/*.ora

成功运行后,在/user/local/oracle/product/11.2.0/db_1/network/admin目录下生成sqlnet.ora和listener.ora两个文件。

 

启动监听

$ /user/local/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER

通过netstat -tlnp命令,看到
 tcp  0  0 :::1521       :::*      LISTEN      5477/tnslsnr
 说明监听器已经在1521端口上开始工作了。

 

3.11静默安装数据库(同时也建立一个对应的实例)

1)        修改/usr/local/oracle/response/dbca_orcl.rsp,设置如下:

RESPONSEFILE_VERSION = "11.2.0"  #不能更改

OPERATION_TYPE = "createDatabase" #不能更改

GDBNAME="orcl "#78 行全局数据库的名字=SID+主机域名

SID="orcl" //149行 SID对应的实例名字

TEMPLATENAME = "General_Purpose.dbc"    #建库用的模板文件

SYSPASSWORD="123456"    #SYS管理员密码

SYSTEMPASSWORE="123456"#200行//SYSTEM管理员密码

DATAFILEDESTINATION= /usr/local/oradata /数据文件存放目录
RECOVERYAREADESTINATION=/usr/local/oradata_back#恢复数据存放目录

CHARACTERSET="AL32UTF8"#字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚

TOTALMEMORY= "5120"    #oracle内存5120MB,建议为物理内存70%~85%

 

2)        静默建库命令如下

 $ dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp

3)         查看日志文件:

 $ cat /opt/oracle/cfgtoollogs/dbca/hello/hello.log

4)        建库后实例检查 

 $ ps -ef | grep ora_ | grep -v grep| wc –l

  21

 $ ps -ef | grep ora_ | grep -v grep

5)        建库后监听检查

  $ lsnrctl status

如果出现以下错误: 

lsnrctl: error while loading sharedlibraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannotrestore segment prot after reloc: Permission denied

 

解决办法:在root用户下执行以下命令 

su - root

setenforce 0

 

3.12修改数据库为归档模式(归档模式才能热备份,增量备份)

$export ORACLE_SID=orcl

$sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 20 16:12:49 2017

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bitProduction

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1603411968 bytes

Fixed Size                   2213776 bytes

Variable Size                    939526256 bytes

Database Buffers           654311424 bytes

Redo Buffers                      7360512 bytes

Database mounted.

SQL> alter database archive log;

Database altered.

SQL> alter database flashback on;

Database altered.

SQL> alter database open;

Database altered.

SQL> execute utl_recomp.recomp_serial();

PL/SQL procedure successfully completed.

SQL> alter system archive log current;

System altered.

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

3.13修改oracle启动配置文件

 su – oracle

$vi/etc/oratab 

orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y” 

这样就可以通过dbstart启动此实例,监听器。

 

 $ dbshut$ORACLE_HOME

Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/shutdown.log

 此时所有oracle的进程关闭,监听器也停止。 

 $ dbstart$ORACLE_HOME

Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/startup.log

 此时监听器工作,orcl实例运行,再次查看监听器状态。

$ lsnrctl status

 

四、Linux下oracle数据库启动和关闭操作

4.1  启动oracle的步骤

Linux下启动Oracle分为以下两步:

1.启动数据库实例

2.启动lsnrctl监听

1)      启动oracle数据库实例

1)  以system用户身份登陆oracle

在oracle用户下,输入 sqlplus/nolog

2)  使用管理员权限 

connect/as sysdba

3)  启动/关闭服务 
startup参数 :
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用! 
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了! 
 

2)      启动oracle监听

数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监听器:

1)        登陆 

root登陆之后切换到oracle用户上,输入 su -  oracle

2)        检查oracle监听器运行状态

通过lsnrctl status命令查看

 

上述反馈的结果即为oracle监听没有启动

3)        启动监听,通过命令lsnrctl start

至此,oracle监听器启动成功!

4.2  关闭oracle

通过shutdown命令关闭oracle实例。


shutdown的参数 
Normal 需要等待所有的用户断开连接 
Immediate 等待用户完成当前的语句 
Transactional 等待用户完成当前的事务 
Abort 不做任何等待,直接关闭数据库 
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 
abort 执行强行断开连接并直接关闭数据库。 
 

4.3  查看oracle服务是否已经启动

# ps aux | grep ora_    #若无ora_**_**相关的进程,则oracle数据库实例未启动

# netstat -tlnup | grep 1521    #若无任何显示,则监听器未启动

# lsnrctl status    #查看监听器状态

# netstat -tlnup | grep 1158    #若无任何显示,则EM未启动

# emctl status dbconsole    #查看EM状态

 

五、Linux下建立Oracle服务及其开机自启动

如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢?

以root身份建立开机启动oracle服务的脚本:vim /etc/init.d/oracle,添加如下脚本:

 

# !/bin/sh

# chkconfig: 234520 80

# description: Oracledbstart / dbshut

#以上两行为chkconfig所需

ORA_HOME=/usr/local/oracle/product/11.2.0/db_1

ORA_OWNER=oracle

LOGFILE=/var/log/oracle.log

echo"#################################" >> ${LOGFILE}

date +"### %T%a %D: Run Oracle" >> ${LOGFILE}

if [ ! -f${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then

    echo "Error: Missing the script file${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}

    echo"#################################" >> ${LOGFILE}

    exit

fi

start(){

    echo "###Startup Database..."

    su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbstart ${ORA_HOME}"

    echo "###Done."

    echo "###Run database control..."

    su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl start dbconsole"

    echo "###Done."

}

stop(){

    echo "###Stop databasecontrol..."

    su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl stop dbconsole"

    echo "###Done."

    echo "###Shutdown Database..."

    su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbshut ${ORA_HOME}"

    echo "###Done."

}

case"$1" in

    'start')

        start >> ${LOGFILE}

    ;;

    'stop')

        stop >> ${LOGFILE}

    ;;

    'restart')

        stop >> ${LOGFILE}

        start >> ${LOGFILE}

    ;;

esac

date +"### %T%a %D: Finished." >> ${LOGFILE}

echo"#################################" >> ${LOGFILE}

echo ""

 

 

使用如下命令将/etc/init.d/oracle 置为可执行文件:

chmod a+x/etc/init.d/oracle

至此,可使用如下命令对oracle进行启动和关闭

/etc/init.d/oraclestart  #启动oracle(包括数据库实例、监听器、EM)

/etc/init.d/oraclestop  #关闭oracle

/etc/init.d/oraclerestart  #重启oracle

 

将 oracle 添加到 chkconfig中:

chkconfig --addoracle

 

可使用如下命令查看和设置oracle服务的开机启动级别:

chkconfig | greporacle #查看oracle服务的开机启动级别

chkconfig --level24 oracle off #修改oracle服务的开机启动级别

chkconfig --level35 oracle on

 

至此可使用如下命令对oracle的启动或关闭进行管理

service oraclestart  #启动

service oraclestop  #关闭

service oraclerestart  #重启

 

建立连接:

ln -s/etc/init.d/oracle /etc/rc0.d/K01oracle  #关机执行

ln -s/etc/init.d/oracle /etc/rc6.d/K01oracle  #重启执行

 

 

1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)
2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库)
3)查看我们常规将用户表空间放置的位置:执行如下sql:

SQL> select status,fuzzy,tablespace_name,name from v$datafile_header;
 
STATUS  FUZZY TABLESPACE_NAME                NAME
------- ----- ------------------------------ --------------------------------------------------------------------------------
ONLINE  YES   SYSTEM                         E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
ONLINE  YES   SYSAUX                         E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
ONLINE  YES   UNDOTBS1                       E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
ONLINE  YES   USERS                          E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
ONLINE  YES   EXAMPLE                        E:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
 
5 rows selected
上边的sql一般就将你的用户表空间文件位置查出来了,在这里就是'E:\APP\ADMINISTRATOR\ORADATA\ORCL\'。

创建用户表空间:

CREATE TABLESPACE test datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\testNS.dbf'

size 600M autoextend on next 50m maxsize unlimited;

创建用户,指定密码和上边创建的用户表空间

CREATE USER testUser IDENTIFIED BY abc DEFAULT TABLESPACE test;

赋予权限

grant connect,resource,dba to testUser;

用Navicat创建:https://blog.csdn.net/Eazon_chan/article/details/88979012

 

转载地址:https://blog.csdn.net/oooobbbb/article/details/85011120

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值