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`
如图所示:安装成功
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 版本
# 查看防火墙状态
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
表示安装成功。
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.
[root@dbserver~]# sh /home/data/oracle11/oracle/product/11.2.0/root.sh
linux查看主机名
[root@dbserver~]# hostname
10、以静默方式配置监听
重新使用oracle用户登录
[root@dbserver~]# su oracle
注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装
[oracle@dbserver~]$ netca /silent /responseFile /home/database/response/netca.rsp/
在静默安装的时候可能出现很多问题。我下面列举一下:
1.用户与IP未对应
先查看自己的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
添加 ip 10.120.83.23 为本机ip dbserver为用户名 做好映射。
2.监听的配置文件
会出现监听安装成功,但是监听端口没起来。 一般是配置文件配置有问题
切换目录
[root@dbserver] # cd $ORACLE_HOME/network/admin/
在admin下有 listener.ora、tnsnames.ora 两个文件。修改这两个文件。如果目录下不存在这两个文件的话,在samples里面有。
listener.ora 文件
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
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
成功运行后,在/home/data/oracle11/oracle /product/11.2.0/network/admin中生成listener.ora和sqlnet.ora
通过netstat命令可以查看1521端口正在监听
[root@dbserver~]# netstat -tnulp | grep 1521
如果没有安装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
建库后进行实例进程检查:
[oracle@dbserver~]$ ps -ef | grep ora_ | grep -v grep
查看监听状态:
[oracle@dbserver~]$ lsnrctl status
数据库创建完成。
有关详细信息, 请查看以下位置的日志文件: /home/data/oracle11/oracle/cfgtoollogs/dbca/orcl/orcl.log
数据库信息:
全局数据库名:orcl
系统标识符 (SID):orcl
登录查看实例状态
[oracle@dbserver orcl]$ sqlplus / as sysdba
SQL> select status from v$instance;
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;
以上内容大致如上,有安装遇到其他的问题或者需要安装包依赖包的可以给我留言!