Centos 6.9 版本静默安装Oracle11g

Centos 6.9 内网版本静默安装Oracle11g

1、需要环境jdk1.8
一般Centos6版本的都自带openJDK 。所以先把openJDK删除掉。

查看安装版本的openjdk:rpm -qa|grep java

存在oopenjdk的时候要进行删除。

删除命令: rpm -e --nodeps 安装版本

解压jdk压缩包: tar-zxvfjdk-8u151-linux-x64.tar.gz

然后修改profile配置文件:vi/etc/profile,在配置文件中加入:

export  JAVA_HOME=/usr/local/jdk1.8.0_151
export  CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib
export  PATH=$PATH:$JAVA_HOME/bin
 重新加载配置文件是修改生效: `source/etc/profile`
 测试:`java -version`

Centos 6.9 版本静默安装Oracle11g
如图所示:安装成功

2. oracle依赖包:
gcc-c++ compat-libstdc+±33elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel
根据Oracle官网上安装的描述,必须安装以上依赖包。
下载之后同一安装。
Rpm统一安装命令: rpm -Uvh *.rpm --nodeps --force

3.配置一些linuxx环境信息

1、关闭selinux 。
编辑 /etc/selinux/config文件,设置SELINUX= enforcing 为 SELINUX=disabled

vim /etc/selinux/config
  [ 想要弄明白selinux 看这篇文章](https://blog.csdn.net/yanjun821126/article/details/80828908)

   关掉selinux是因为避免安装Oracle出现意想不到的错误。

2、关掉防火墙。
查看系统版本:cat /etc/redhat-release
Centos 6.9 版本静默安装Oracle11g

Centos 6 版本

# 查看防火墙状态

 service iptables status

# 关闭防火墙

service  iptables  stop

#永久关闭防火墙

 chkconfig iptables off

Centos 7 版本

#查看防火墙状态:

systemctl status firewalld

#停止防火墙:

systemctl stop firewalld

#关闭自启动防火墙服务:

systemctl disable firewalld

3、添加安装用户和用户组

[root@dbserver etc] groupadd oinstall
[root@dbserver etc] groupadd dba
[root@dbserver etc] useradd -g oinstall -G dba oracle
[root@dbserver etc] passwd oracle
Changing password for user oracle.
New password:
Retype new password:
[root@zsy etc]# id oracle
uid=501(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)

③修改内核参数配置文件 优化TCP
修改配置文件 :vim /etc/sysctl.conf
在后面添加如下参数:

#同时可以拥有的的异步IO请求数目 
fs.aio-max-nr = 1048576
 #文件句柄的最大数量
 fs.file-max = 6815744
 #所有内存大小(单位:页,1页 = 4Kb),计算公式16G*1024*1024*1024/4KB(页)
 kernel.shmall = 2097152 
#单个共享内存段的大小(单位:字节)限制,计算公式64G*1024*1024*1024(字节)
 kernel.shmmax = 1073741824
 #整个系统的内存segment的总个数,设置系统级最大共享内存段数量
 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

其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

查看是否成功写进/etc/sysctl.conf文件中:

[root@dbserver software]# sysctl -p

4、修改用户的限制文件
修改/etc/security/limits.conf文件:

[root@dbserver etc]# vim /etc/security/limits.conf

在末尾添加以下内容:

oracle           soft    nproc           2047

oracle           hard    nproc           16384

oracle           soft    nofile          1024

oracle           hard    nofile         65536

oracle           soft    stack          10240 

修改/etc/pam.d/login文件:

[root@dbserver etc]# vim /etc/pam.d/login

在末尾添加以下内容:

session    required     /lib64/security/pam_limits.so

session    required     pam_limits.so

修改/etc/profile文件:

[root@dbserver etc]# vim /etc/profile

在末尾添加以下内容:

#oracle配置

if [ $USER = "oracle" ]; then

  if [ $SHELL = "/bin/ksh" ]; then

      ulimit -p 16384

      ulimit -n 65536

  else

      ulimit -u 16384 -n 65536

  fi

fi

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

[root@dbserver~]# mkdir -p /home/data/oracle11/oracle/product/11.2.0

[root@dbserver~]# mkdir -p /home/data/oracle11/oracle/oradata

[root@dbserver ~]# mkdir -p /home/data/oracle11/oracle/inventory

[root@dbserver~]# mkdir -p /home/data/oracle11/oracle/fast_recovery_area

[root@dbserver~]# chown -R oracle:oinstall /home/data/oracle11/oracle

[root@dbserver~]# chmod -R 775 /home/data/oracle11/oracle

6、设置oracle用户环境变量

首先切换到oracle用户下:

[root@dbserver software]# su -l oracle

 

[oracle@dbserver ~]$ vim .bash_profile

在末尾添加如下内容:

ORACLE_BASE=/home/data/oracle11/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0

ORACLE_SID=orcl

PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

注意,标红处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。

[oracle@dbserver ~]$ source .bash_profile

7、编辑静默安装响应文件

复制安装文件夹response到当前oracle用户的家目录下:

[root@dbserver home]# su - oracle

[oracle@dbserver ~]$ cp -R /home/database/response/ .

[oracle@dbserver ~]$ cd response/

[oracle@dbserver response]$ vim db_install.rsp

需要设置的选项如下:


```bash
oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=dbserver

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/home/data/oracle11/oracle/inventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/home/data/oracle11/oracle/product/11.2.0

ORACLE_BASE=/home/data/oracle11/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

8、根据响应文件静默安装Oracle11g

 [oracle@dbserver response]$ cd /home/database/

[oracle@dbserver database]$ ./runInstaller -silent -responseFile /home/database/response/db_install.rsp -ignorePrereq

在执行sh ./database/runInstaller -silent -noconfig -responseFile ./database/response/db_install.rsp时,提示:

$ Exception in thread "main" java.lang.NoClassDefFoundError
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at java.awt.Toolkit$2.run(Toolkit.java:821)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:804)
        at com.jgoodies.looks.LookUtils.isLowResolution(Unknown Source)
        at com.jgoodies.looks.LookUtils.<clinit>(Unknown Source)
        at com.jgoodies.looks.plastic.PlasticLookAndFeel.<clinit>(PlasticLookAndFeel.java:122)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
        at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1783)
        at javax.swing.UIManager.setLookAndFeel(UIManager.java:480)
        at oracle.install.commons.util.Application.startup(Application.java:758)
        at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:164)
        at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:181)
        at oracle.install.commons.base.driver.common.Installer.startup(Installer.java:265)
        at oracle.install.ivw.db.driver.DBInstaller.startup(DBInstaller.java:114)
        at oracle.install.ivw.db.driver.DBInstaller.main(DBInstaller.java:132)

1 .用root用户在系统中设置了DISPLAY环境变量

  执行:unset DISPLAY     然后再执行runInstaller.sh,执行成功

2.以oracle的身份登录系统,然后执行

./runInstaller -silent -responseFile /home/database/response/db_install.rsp -ignorePrereq

Centos 6.9 版本静默安装Oracle11g

表示安装成功。

9、按照要求执行脚本。

打开终端,退出到root身份登录,执行脚本

[oracle@dbserver database]$ exit

Logout

[root@ybkf ~]# sh /home/data/oracle11/oracle/inventory/orainstRoot.sh

Changing permissions of /home/data/oracle11/oracle/inventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /home/data/oracle11/oracle/inventory to oinstall.

The execution of the script is complete.

Centos 6.9 版本静默安装Oracle11g

[root@dbserver~]# sh /home/data/oracle11/oracle/product/11.2.0/root.sh
linux查看主机名
[root@dbserver~]# hostname

Centos 6.9 版本静默安装Oracle11g

10、以静默方式配置监听
重新使用oracle用户登录

[root@dbserver~]# su oracle

注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装

[oracle@dbserver~]$ netca /silent /responseFile /home/database/response/netca.rsp/

在静默安装的时候可能出现很多问题。我下面列举一下:
1.用户与IP未对应

Centos 6.9 版本静默安装Oracle11g

先查看自己的hostname
[root@dbserver~]# hostname

修改network文件
然后修改/etc/sysconfig下的network文件:

[root@dbserver~]# cd /etc/sysconfig
[root@dbserver sysconfig]# vi network
NETWORKING=yes
HOSTNAME= dbserver

修改hosts文件

[root@dbserver sysconfig]# cd /etc
[root@dbserver etc]# vi hosts

Centos 6.9 版本静默安装Oracle11g
添加 ip 10.120.83.23 为本机ip dbserver为用户名 做好映射。

2.监听的配置文件
会出现监听安装成功,但是监听端口没起来。 一般是配置文件配置有问题
切换目录

[root@dbserver] # cd   $ORACLE_HOME/network/admin/

在admin下有 listener.ora、tnsnames.ora 两个文件。修改这两个文件。如果目录下不存在这两个文件的话,在samples里面有。

  listener.ora 文件

Centos 6.9 版本静默安装Oracle11g
HOST就是配置的用户名,SERVICE_NAME 就是安装时候的实例名。

 tnsnames.ora 文件
ISTENER =
(DESCRIPTION LIST =
( DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
( ADDRESS 三(PROTOCOL = IPC)(KEY = EXTPR0C1521) )
ADR_ BASE_ LISTENER = "实际的安装目录" --/home/data/oracle11/oracle

Centos 6.9 版本静默安装Oracle11g
adr_base_listener 为你的监听地址。

3.还有一些是配置权限的问题。
例如一些上传的文件是root的用户 用户组是root 最好赋予775权限。改为 oracle:oinstall

4.切换 oralce用户 执行命令

  [oracle@dbserver~]$ netca /silent /responseFile /home/database/response/netca.rsp/
Parsing command line arguments:

    Parameter "silent" = true

    Parameter "responsefile" = /home/database/response/netca.rsp/

Done parsing command line arguments.

Oracle Net Services Configuration:

Profile configuration complete.

Oracle Net Listener Startup:

    Running Listener Control:

      /home/data/oracle11/oracle/product/11.2.0/bin/lsnrctl start LISTENER

    Listener Control complete.

    Listener started successfully.

Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

Centos 6.9 版本静默安装Oracle11g
成功运行后,在/home/data/oracle11/oracle /product/11.2.0/network/admin中生成listener.ora和sqlnet.ora

通过netstat命令可以查看1521端口正在监听

[root@dbserver~]# netstat -tnulp | grep 1521

Centos 6.9 版本静默安装Oracle11g
如果没有安装netstat的话可以用lsof -i 1521 查看

11.以静默方式建立新库,同时也建立一个对应的实例

[oracle@dbserver~]$ vim /home/oracle/response/dbca.rsp

修改文件中以下参数:

[GENERAL]
**oracle版本,不能更改**
RESPONSEFILE_VERSION = "11.2.0"
 Description   : Type of operation
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
 
 Description   : Global database name of the database
 全局数据库的名字=SID+主机域名
 第三方工具链接数据库的时候使用的service名称
GDBNAME = "orcl"

 Description   : System identifier (SID) of the database
 对应的实例名字
SID = "orcl"

 Description   : Name of the template
#建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"

Description   : Password for SYS user
SYS管理员密码
SYSPASSWORD = "123456"

 
 Description   : Password for SYSTEM user
SYSTEM管理员密码
SYSTEMPASSWORD = "123456"

 
 Description   : Password for SYSMAN user
 SYSMAN管理员密码
SYSMANPASSWORD = "123456"

 
 Description   : Password for DBSNMP user
DBSNMP管理员密码
DBSNMPPASSWORD = "123456"

 

 Description   : Location of the data file's
 数据文件存放目录
DATAFILEDESTINATION =/home/data/oracle11/oracle/oradata

 
Description   : Location of the data file's
 恢复数据存放目录
RECOVERYAREADESTINATION=/home/data/oracle11/oracle/fast_recovery_area

 

Description   : Character set of the database
 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
(CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "AL32UTF8"

 Description   : total memory in MB to allocate to Oracle
 oracle内存1638MB,物理内存2G*80%
TOTALMEMORY = "1638" 

进行静默配置:

[oracle@dbserver~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp

Centos 6.9 版本静默安装Oracle11g
建库后进行实例进程检查:

[oracle@dbserver~]$ ps -ef | grep ora_ | grep -v grep

Centos 6.9 版本静默安装Oracle11g
查看监听状态:

[oracle@dbserver~]$ lsnrctl status

Centos 6.9 版本静默安装Oracle11g

数据库创建完成。

有关详细信息, 请查看以下位置的日志文件: /home/data/oracle11/oracle/cfgtoollogs/dbca/orcl/orcl.log

数据库信息:

全局数据库名:orcl

系统标识符 (SID):orcl

登录查看实例状态

[oracle@dbserver orcl]$ sqlplus / as sysdba

SQL> select status from v$instance;

Centos 6.9 版本静默安装Oracle11g

1、创建用户
语法:CREATE USER 用户名 IDENTIFIED BY 密码

SQL> create user admin identified by 123456;

2、将刚创建的用户解锁/锁住
语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK
//用户解锁

SQL> alter user admin account unlock;

//用户锁住 (知道该命令就行,不要随便锁定用户)

SQL> alter user admin account lock;

3、授予新登陆的用户创建权限:
语法:CRANT CREATE SESSION TO 用户名

SQL> grant create session to admin;

4、授予新创建的用户数据库管理员权限
语法:CRANT DBA TO 用户名;

SQL> grant dba to admin;

.

5、切换到新创建的用户登陆
语法:CONNECT 用户名/密码

SQL> connect admin/123456;

以上内容大致如上,有安装遇到其他的问题或者需要安装包依赖包的可以给我留言!

上一篇:Oracle11g:数据库恢复总结


下一篇:SQLPlus oracle11g 安装 之Windows