这两天学习了下关于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:///
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
|