这两天学习了下关于Oracle11g数据库的安装,以下主要介绍Oracle11g Release2数据库系统的安装过程,作为自己的学习记录。
1、安装环境
主机系统:Windows 7 x64 sp1
虚拟机:VMware Workstation 7.0.1 build-227600
操作系统:CentOS5.8-release,Kernel:2.6.18-308.el5,官网地址:http://centos.org/
2、参考文档:
Oracle11g Release 2 (11.2),下载地址:http://download.oracle.com/docs/cds/E11882_01.zip
3、安装方法:
Interactive Method:交互式安装
Non-Interactive Method:静默式安装
4、安装前准备工作
关于Oracle安装的硬件要求,这里就不累赘阐述,直接查Oracle11g Release 2(11.2)即可,这里主要阐述并且通过实验来说明安装前的准备工作
4.1 rpm包需求
在Linux x86系统中,操作系统是CentOS5,所需的包可以通过运行如下的packageCheck来检查,如下:
# ./packageCheck
如果没有任何输出,则表示包检查通过。
具体packageCheck内容如下:
#!/bin/bash
rpm -q \
binutils- \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
elfutils-libelf-devel-static \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
kernel-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libgomp \
libstdc++ \
libstdc++-devel \
make \
sysstat \
pdksh \
unixODBC \
unixODBC-devel \
unixODBC-libs | grep "not installed"
4.2 用户和用户组的检查
由于这里安装使用文件系统,作为一个基本的安装,需要增加2个组:dba和oinstall,一个用户oracle,如下:
# groupadd dba
# groupadd oinstall
# mkdir /u01
# useradd -g oinstall -G dba -d /u01/oracle oracle
# passwd oracle
设置oracle用户的密码
4.3 设置Linux系统的资源限制以及内核参数
4.3.1 增加以下内容到/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
4.3.2 增加以下内容到/etc/sysctl.conf,根据原有内容进行选择性增加
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 //查看生效的内核参数
另外,在11g中,没有看到修改---------------
4.4 设置环境变量
切换到oracle用户,编辑.bash_profile,新增如下环境变量:
ORACLE_BASE = /u01/app/oracle/product/11.2.0
ORACLE_HOME = $ORACLE_BASE/db_1
ORACLE_SID = orcl
PATH = $ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
5、交互式安装
在上述4完成后,我们就可以进行Oracle软件的安装了,本节主要介绍Oracle的交互式安装,即使用OUI(Oracle Universal Interface)来安装
5.1 安装步骤
5.1.1 切换到Oracle用户下,如下:
$ ./runInstaller
5.1.2 如下图所示:<略>
6、静默式安装
如果选择静默式安装,比如服务器没有X-window等原因,在上述4完成之后,还需做如下的步骤:
6.1 创建oraInst.loc文件(如果第一次安装,系统中应该不存在oraInst.loc文件)
$ su - root
# touch /etc/oraInst.loc
编辑oraInst.loc文件,内容如下:
inventory_loc=/u01/app/oracle/product/oraInventory
inst_group=oinstall
并且修改owner,group和权限
# chown oracle:oinstall /etc/oraInst.loc
# chmod 664 /etc/oraInst.loc
6.2 准备Response文件
6.2.1 使用上述5步骤,在最后一步,保存response文件,作为静默安装的response文件
6.2.2 在服务器没有X-window的情况下,可以使用Oracle自带的模板文件进行修改来准备response文件
Oracle自带的模板文件在安装介质的database/response文件夹中,一般包括如下:
# ls -l
-rw-rw-r-- 1 root root 44969 2009-02-14 dbca.rsp
-rw-rw-r-- 1 root root 22557 2009-08-14 db_install.rsp
-rwxrwxr-x 1 root root 5740 2009-02-26 netca.rsp
db_install.rsp即为安装Oracle软件所需的response文件,下面是一个简单的模板:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle11g
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/product/oraInventory
SELECTED_LANGUAGES=zh_CN,en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle/product/11.2.0
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
修改文件的owener,group和permission
# chown oracle:oinstall db_install.rsp
# chmod 700 dbinstall.rsp
6.3 在做好上述准备工作后,就可以真正启动Oracle的安装了,执行
$ ./runInstaller -force -ignoreSysprereqs -silent -responseFile /u01/database/response/db_install.rsp
(i)-force 使用此参数允许在非空目录下静默安装
(ii)-ignoreSysprereqs 忽略系统的安装前检查的结果
6.4 Oracle安装完成后,需要在root用户下执行
# $ORACLE_BASE/oraInventory/orainstRoot.sh --这句不用执行
# $ORACLE_HOME/root.sh
6.5 由于先安装的仅仅是Oracle软件,以下是静默方式执行netca和dbca
6.5.1 运行Net Configuration Assistant(responseFile)
执行Net Configuration Asssistant比较简单,同样找到netca.rsp文件,复制到本地系统,并且执行:
$ $ORACLE_HOME/bin/netca -silent -responseFile /u01/database/response/netca.rsp
netca.rsp参考:
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
6.5.2 运行Database Configuration Assistant
执行DBCA可以在silent模式,response模式和silent|response模式
silent模式:提供command或者response默认形式的参数选项指定;
response模式:提供图形界面,-progressOnly
silent|response模式:通过读取responseFile文件,在silent模式下自动创建数据库
这里介绍silent|response模式,准备好dbca.rsp后,执行
$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/database/response/dbca.rsp
dbca.rsp参考
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
#SYSPASSWORD = "oracle" 留在敲完命令的时候以command命令输入
#SYSTEMPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET= "AL16UTF16"
7、后续补充
7.1 在安装完成后,运行sqlplus报错
$ sqlplus /nolog
sqlplus: error while loading shared libraries: /u01/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1:
cannot restore segment prot after reloc: Permission denied
这主要是由于Linux系统的SELinux的原因,由于是实验环境,直接修改SELinux为disabled
# vi /etc/selinux/config
SELINUX = enforcing 改为
SELINUX = disabled
# reboot
7.2 sqlplus的提示信息乱码或者中英文切换
$sqlplus /nolog
> conn / as sysdba
> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
PARAMETER VALUE
---------------- ---------------------
NLS_CHARACTERSET AL32UTF8
这样查询到NLS_CHARACTERSET值,则记下,然后关闭数据库,即:
> shutdown immediate
$ vi .bash_profile 增加下面其中一行:
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" #提示信息为english
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" #提示信息为简体中文
$ source .bash_profile ----使之生效,然后sqlplus就可以看到效果了
7.3 使用静默方式创建数据库,则OEM是启动不起来的,因为没有创建和配置,过程如下:
7.3.1 配置dbconsole步骤如下:
$ emca -repos create
$ emca -config dbconsole db
$ emctl start dbconsole
7.3.2 重新配置dbconsole步骤:
$ emca -repos drop
$ emca -repos create
$ emca -config dbconsole db
$ emctl start dbconsole
7.3.3 OEM的一些基本操作
创建一个EM资料库
$ emca -repos create
重建一个EM资料库
$ emca -repos recreate
删除一个EM资料库
$ emca -repos drop
配置数据库的 Database Control
$ emca -config dbcontrol db
删除数据库的 Database Control配置
$ emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
$ emca -reconfig ports
$ emca -reconfig ports -dbcontrol_http_port 1160
$ emca -reconfig ports -agent_port 3940
先设置ORACLE_SID环境变量后,启动EM console服务
$ emctl start dbconsole
先设置ORACLE_SID环境变量后,停止EM console服务
$ emctl stop dbconsole
先设置ORACLE_SID环境变量后,查看EM console服务的状态
$ emctl status dbconsole