VirtualBox中CentOS-6.3-x86_64-minimal静默Silent安装oracle11g2
原文地址 http://sy1214.iteye.com/blog/1808028
一、安装环境
虚拟机VirtualBox,内存分配了2G,空间分配了20G
系统CentOS-6.3-x86_64-minimal
Oracle版本linux.x64_11gR2_database
关于VirtualBox的网络配置这里提前说一下,比较好的方式是hostonly+nat的方式。
局域网访问通过hostonly方式,上互联网通过nat方式
具体设置就是在创建一个虚拟硬盘后,选择设置-->网络-->网卡1连接方式选择hostonly-->网卡2启用网络连接,选择NAT。
具体oracle的要求详见官方http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
二、安装后网络配置
编辑文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0,这个是hostonly网络的配置
修改
BOOTPROTO="static"
NM_CONTROLLED="yes"
ONBOOT="yes"
并添加
IPADDR="192.168.56.101"
NETMASK="255.255.255.0"
编辑文件# vi /etc/sysconfig/network-scripts/ifcfg-eth1,这个是NAT网络的配置
修改
ONBOOT="yes"
启动或重启网络
CentOS-minimal安装后默认没有启动网络服务。需要手工启动。
# service network restart
重启服务没有问题后,可以ping www.baidu.com进行测试看看是否能够访问外网,ping通则没问题了
在/etc/hosts文件中增加局域网IP地址和主机名映射(对于单网卡用户直接添加到回环IP下):
# hostname //获得主机名
oracleserver
# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101 oracleserver
关于防火墙的问题,默认安装完了是开启防火墙的,会屏蔽掉1521端口,影响其他机器访问本机oracle实例。三种简单办法
1.临时开启或关闭防火墙,重启后失效
# service iptables stop
# service iptables star
2.永久开启或关闭防火墙
# chkconfig iptables on
# chkconfig iptables off
3.推荐,打开1521 端口用于oracle
# iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
# iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
# iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
# iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
# service iptables save //永久保存
三、安装Oracle的依赖包
这个时候虚拟机就可以放到一边去了,打开SSH工具,看习惯了,putty等等都行,我个人习惯用SecureCRT。
连接到刚才创建的虚拟机192.168.56.101上
检查依赖
# rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-headers libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make numactl pdksh sysstat unixODBC unixODBC.i686 unixODBC-devel | grep 'not installed'
安装或更新依赖,也可以只安装缺少的
# yum install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-headers libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make numactl pdksh sysstat unixODBC unixODBC.i686 unixODBC-devel
默认的源中不包含pdksh包,可在附件中下载
安装pdksh
# rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
再检查一下依赖,是不是否安装正确了。
安装unzip,后面解压oracle文件的时候用到
# yum install unzip
我这里用的是SecureCRT,可以使用rz命令进行上传文件,安装lrzsz支持
# yum install lrzsz
四、准备安装用户及用户组,按官方的创建
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle //设置oracle密码
五、修改内核参数配置文件
# vi /etc/sysctl.conf 在文件最后增加下面的内容(快捷键是Shift+G到文件最后,按o在当前行下面添加内容)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
保存文件。
# sysctl -p//让参数生效
# sysctl -a//检查参数正确
六、修改用户资源限制权限(原文Check Resource Limits for the Oracle Software Installation Users)
Linux对于每个用户,系统限制其最大进程数,堆栈等。为提高性能,可以根据设备资源情况进行设置。按照官方配置:
# 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
七、创建需要的文件夹,也按官方的创建就好,这个目录基本上算是统一标准了
# mkdir -p /u01/app/
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app/
八、修改环境变量
# su - oralce
$ cd /home/oracle/
$ vi .bash_profile
在最下面添加
export ORACLE_HOSTNAME=sycentosmini
export ORACLE_BASE=/u01/app/oracle//跟后面设置的保持一致
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1//跟后面设置的保持一致
export ORACLE_SID=orcl
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
九、登录oracle用户,上传安装文件并解压
# su - oralce
$ cd /u01/app
上传linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip文件到/u01/app目录下
解压文件
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
十、拷贝并编辑静默安装文件
$ cp /u01/app/database/response/*.* /u01/app/
$ vi db_install.rsp
修改下面的配置参数
oracle.install.option=INSTALL_DB_SWONLY//只安装oracle软件,不安装实例
ORACLE_HOSTNAME=oracleserver//honstname命令获得的主机名
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN//安装时的语言,其实en就够了,看中文反而麻烦
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
DECLINE_SECURITY_UPDATES=true //一定设置为true,网上都这么说,我也没试,就设置成true吧
十一、开始安装数据库软件
$ cd /u01/app/database
$ ./runInstaller -silent -force -responseFile /u01/app/db_install.rsp
// -silent静默安装 -force文件夹不存在强制创建 -responseFile静默安装响应文件
另开一个窗口,查看安装日志
# tail -f /u01/app/oracle/oraInventory/logs/installActions*.log
安装比较慢,耐心等待下
安装完成,这次出来的是中文,提示如下:
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
按回车继续。
在另外一个窗口使用root用户执行
# /u01/app/oracle/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Oracle软件安装完成。
十二、安装监听
使用响应文件netca.rsp配置监听,一般不用修改netca.rsp,直接使用此文件生成默认监听
$ cd /u01/app/database/
$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/netca /silent /responsefile /u01/app/netca.rsp
十三、创建数据库和实例
$ cd /u01/app/database/
$ vi dbca.rsp
修改下面的参数
GDBNAME = "orcl.oracleserver"//数据库名字,多个的话可以都改了
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"//存在多个的话,可以都改了
CHARACTERSET = "ZHS16GBK" //字符集,建库后一般不能更改。也可以使用AL32UTF8
TOTALMEMORY = "1024"//数据库内存,看个人情况吧,默认800
保存退出
执行静默安装
$ /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbca -silent -responseFile /u01/app/dbca.rsp
输入 SYS 用户口令:
输入 SYSTEM 用户口令:
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
安装完成
$lsnrct status//检查监听
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-FEB-2013 18:01:22
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 19-FEB-2013 17:00:39
Uptime 0 days 1 hr. 0 min. 43 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oracleserver/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleserver)(PORT=1521)))
Services Summary...
Service "orcl.oracleserver" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.oracleserver" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
另外,附上静默删除数据库的命令
#dbca -silent -deleteDatabase -sourceDB orcl -sysDBAUserName sys -sysDBAPassword 123456
十四、修改数据库为归档模式,支持热备份,增量备份,打开闪回
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 14 07:18:16 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 490735648 bytes
Database Buffers 339738624 bytes
Redo Buffers 2412544 bytes
Database mounted.
SQL> alter database archivelog;
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> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
十五、修改oracle启动配置文件
$vi /etc/oratab
把N改成Y
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y
这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。
$ dbshut /u01/app/oracle/product/11.2.0/dbhome_1/
Processing Database instance "orcl": log file /u01/app/oracle/product/11.2.0/dbhome_1/shutdown.log
此时所有oracle的进程关闭,监听器也停止。
$ dbstart /u01/app/oracle/product/11.2.0/dbhome_1/
Processing Database instance "orcl": log file /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
此时监听器工作,orcl实例运行,再次查看监听器状态。
$ lsnrctl status
一切正常
十六、创建表空间和用户
创建临时表空间
create temporary tablespace user_temp tempfile '/u01/app/oracle/oradata/ORCL/jrtsch_user_temp.dbf' size 100m
autoextend on
next 50m maxsize 10240m
extent management local;
创建数据表空间
create tablespace user_data
logging
datafile '/u01/app/oracle/oradata/ORCL/user_data.dbf'
size 100m
autoextend on
next 50m maxsize 10240m
extent management local;
创建用户并指定表空间
create user jrtsch identified by jrtsch
default tablespace user_data
temporary tablespace user_temp;
给用户授予权限
grant connect,resource to jrtsch;
使用新建的用户登录
$ sqlplus jrtsch/jrtsch@orcl
成功!!