Oracle静默安装
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
环境配置
1、安装centos6.5操作系统
物理内存不少于1.5G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ
2.下载安装包linuxx64_12201_database.zip的oracle12c第二版本
3.配置hosts文件
格式:ip 主机名
4.配置yum源
使用默认yum源即可
yum clean all && yum makecache
5.关闭selinux&iptables
Vim /etc/selinux/config
SELINUX=disabled
/etc/init.d/iptables stop
chkconfig iptables off
安装部署
1、安装oracle依赖包关系
yuminstall-ybinutilscompat-libcap1compat-libstdc++-33compat-libstdc++-33.i686glibcglibc.i686glibc-develglibc-devel.i686kshlibaiolibaio.i686libaio-devellibaio-devel.i686libX11libX11.i686libXaulibXau.i686libXilibXi.i686libXtstlibXtst.i686libgcclibgcc.i686libstdc++libstdc++.i686libstdc++-devellibstdc++-devel.i686libxcblibxcb.i686makenfs-utilsnet-toolssmartmontoolssysstatunixODBCunixODBC-develgccgcc-c++libXextlibXext.i686zlib-develzlib-devel.i686
2、修改内核参数
内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl–p命令使新配置立即生效。
vim/etc/sysctl.conf请根据自己实际情况修改,内核参数如下 fs.file-max=6815744 kernel.sem=25032000100128 kernel.shmmni=4096 kernel.shmall=1073741824 kernel.shmmax=4398046511104 kernel.panic_on_oops=1 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048576 net.ipv4.conf.all.rp_filter=2 net.ipv4.conf.default.rp_filter=2 fs.aio-max-nr=1048576 net.ipv4.ip_local_port_range=900065500
各参数详解:
fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求.
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:
表示应用程序可使用的IPv4端口范围。
net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:
表示套接字发送缓冲区大小的最大值。
终端执行:
/sbin/sysctl -p 刷新内核参数表
3、修改内核限制参数
vim/etc/security/limits.d/20-nproc.conf #Defaultlimitfornumberofuser'sprocessestoprevent #accidentalforkbombs. #Seerhbz#432903forreasoning. *softnproc4096 rootsoftnprocunlimited oraclesoftnofile1024 oraclehardnofile65536 oraclesoftnproc16384 oraclehardnproc16384 oraclesoftstack10240 oraclehardstack32768 oraclehardmemlock134217728 oraclesoftmemlock134217728
第1行是设置进程数软限制;
第2行是设置进程数硬限制;
第3行是设置文件数软限制;
第4行是设置文件数硬限制
4、创建oracle帐号和组
[root@Oracle~]#unziplinuxx64_12201_database.zip^C [root@Oracle~]#groupadd-g54321oinstall [root@Oracle~]#groupadd-g54322dba [root@Oracle~]#groupadd-g54323oper [root@Oracle~]#useradd-u54321-goinstall-Gdba,operoracle [root@Oracle~]#passwdoracle
5、创建相关数据库目录
mkdir/u01 mkdir/u01/app mkdir-p/u01/app/oracle/oradata//存放数据库的数据目录 mkdir-p/u01/app/oracle/oradata_back//存放数据库备份文件 chmod-R775/u01/app//权限 chown-Roracle:oinstall/u01//属主属组
6、修改oracle环境变量
vim/etc/proile(文件最后加入) #.bash_profile #Getthealiasesandfunctions if[-f~/.bashrc];then .~/.bashrc fi #Userspecificenvironmentandstartupprograms PATH=$PATH:$HOME/.local/bin:$HOME/bin exportPATH #OracleSettings exportTMP=/tmp#日志存放位置 exportTMPDIR=$TMP exportORACLE_HOSTNAME=Oracle#主机名 exportORACLE_UNQNAME=cdb1#库名称 exportORACLE_BASE=/u01/app/oracle exportORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1 exportORACLE_SID=cdb1#库名称 exportPATH=/usr/sbin:$PATH exportPATH=$ORACLE_HOME/bin:$PATH exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib exportCLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib exportPATH=/usr/sbin:$PATH exportPATH=$ORACLE_HOME/bin:$PATH exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib exportCLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
7、解压oracle二进制包至/opt目录下 (解压的目录默认名为database)
unziplinuxx64_12201_database.zip/u01 chown-Roracle:oinstall/u01
进入response目录下,编辑应答文件:
配置文件设置--->http://blog.chinaunix.net/uid-23886490-id-3565908.html
vim/u01/database/response/db_install.rsp oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0 oracle.install.option=INSTALL_DB_SWONLY//30行安装类型,只装数据库软件 UNIX_GROUP_NAME=oinstall//35行主机名称(hostname查询) INVENTORY_LOCATION=/u01/app/oracle/oraInventory//42行INVENTORY目录(不填就是默认值) ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1//46行oracle目录 ORACLE_BASE=/u01/app/oracle//51行 oracle.install.db.InstallEdition=EE//63行oracle版本 oracle.install.db.OSDBA_GROUP=dba//80行 oracle.install.db.OSOPER_GROUP=oper//86行自定义安装,否,使用默认组件 oracle.install.db.OSBACKUPDBA_GROUP=dba//91行 oracle.install.db.OSDGDBA_GROUP=dba//96行 oracle.install.db.OSKMDBA_GROUP=dba//101行 oracle.install.db.OSRACDBA_GROUP=dba//106行 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE//180行数据库类型 oracle.install.db.config.starterdb.globalDBName=cdb1//185行 oracle.install.db.config.starterdb.SID=cdb1//190行 oracle.install.db.config.starterdb.characterSet=AL32UTF8//216行 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false//384行 DECLINE_SECURITY_UPDATES=true//398行//设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
9、开始安装oracle 提醒:切换至oracle用户
cd/u01/database ./runInstaller-force-silent-noconfig-responseFile/u01/database/response/db_install.rsp StartingOracleUniversalInstaller... CheckingTempspace:mustbegreaterthan500MB.Actual11715MBPassed Checkingswapspace:mustbegreaterthan150MB.Actual2047MBPassed PreparingtolaunchOracleUniversalInstallerfrom/tmp/OraInstall2017-04-15_08-36-48PM.P[oracle@Oracledatabase]$[WARNING][INS-32055]TheCentralInventoryislocatedintheOraclebase. ACTION:OraclerecommendsplacingthisCentralInventoryinalocationoutsidetheOraclebasedirectory. Youcanfindthelogofthisinstallsessionat: /u01/app/oracle/oraInventory/logs/installActions2017-04-15_08-36-48PM.log#日志位置 TheinstallationofOracleDatabase12cwassuccessful. Pleasecheck'/u01/app/oracle/oraInventory/logs/silentInstall2017-04-15_08-36-48PM.log'formoredetails.
可以边装边查看日志
tail–f/u01/app/oracle/oraInventory/logs/installActions2017-04-15_08-36-48PM.log
报错:
找不到主机名
Hostname查看一下本机的主机名称是否和/etc/host&/home/oracle/.bash_profile环境变量里的主机名一致
Asarootuser,executethefollowingscript(s): 1./u01/app/oracle/oraInventory/orainstRoot.sh 2./u01/app/oracle/product/12.2.0.1/db_1/root.sh SuccessfullySetupSoftware.
报错:
此脚本必须为跟,必须是使用跟root用户来执行
10,执行脚本 提醒:切换至oracle用户
执行两个脚本:注意是用root用户执行的
[root@Oracle~]#/u01/app/oracle/oraInventory/orainstRoot.sh Changingpermissionsof/u01/app/oracle/oraInventory. Addingread,writepermissionsforgroup. Removingread,write,executepermissionsforworld. Changinggroupnameof/u01/app/oracle/oraInventorytooinstall. Theexecutionofthescriptiscomplete. [root@Oracle~]#/u01/app/oracle/product/12.2.0.1/db_1/root.sh Check/u01/app/oracle/product/12.2.0.1/db_1/install/root_Oracle_2017-04-15_20-56-27-813321685.logfortheoutputofrootscript
11,静默配置监听 提醒:切换至oracle用户
netca-silent-responsefile/u01/database/response/netca.rsp
备注: netca命令是oracle提供的命令,如果显示找不到命令请检查环境变量
12,通过netstat -tlnp 命令查看监听地址 提醒:切换至oracle用户
tcp00:::1521:::*LISTEN5477/tnslsnr
13,静默建立新库提醒:切换至oracle用户 (如果一下各参数在/u01/database/response/dbca.rsp文件中 重复出现,可以全改)
修改/u01/database/response/dbca.rsp,设置如下:
vim/u01/database/response/dbca.rsp responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0//21行不可更改 gdbName=cdb1//32 sid=cdb1//42 databaseConfigType=SI//52 policyManaged=false//74 createServerPool=false//88 force=false//127 createAsContainerDatabase=true//163 numberOfPDBs=1//172 pdbName=cdb1pdb//182 useLocalUndoForPDBs=true//192 templateName=/u01/app/oracle/product/12.2.0.1/db_1/assistants/dbca/templates/General_Purpose.dbc//223 emExpressPort=5500//273 runCVUChecks=false//284 omsPort=0//313 dvConfiguration=false//341 olsConfiguration=false//391 datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates///401 datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}///411 recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}//421 storageType=FS//431 characterSet=AL32UTF8//468字符集创建库之后不可更改 nationalCharacterSet=AL16UTF16//478 registerWithDirService=false//488 listeners=LISTENER//526 variables=DB_UNIQUE_NAME=cdb1,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=cdb1,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=cdb1//546 initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=2780MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP)(SERVICE=cdb1XDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_CDB1,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl","{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300//555 sampleSchema=false//565 memoryPercentage=40//574 databaseType=MULTIPURPOSE//584 automaticMemoryManagement=true//594 totalMemory=0//604
14,静默建库命令如下 (dbca是oracle命令,如果提示命令找不到,检查环境变量)
cd/u01/database [oracle@oracleresponse]$dbca-silent-createDatabase-responseFile/u01/database/response/dbca.rsp [WARNING][DBT-06801]SpecifiedFastRecoveryAreasize(2,780MB)islessthantherecommendedvalue. CAUSE:FastRecoveryAreasizeshouldatleastbethreetimesthedatabasesize(2,730MB). ACTION:SpecifyFastRecoveryAreaSizetobeatleastthreetimesthedatabasesize. [WARNING][DBT-11209]Currentavailablephysicalmemoryislessthantherequiredphysicalmemory(796MB)forcreatingthedatabase. EnterSYSuserpassword:#超级管理员密码 EnterSYSTEMuserpassword:#管理员密码 EnterPDBADMINUserPassword:#库密码 [WARNING][DBT-06208]The'SYS'passwordentereddoesnotconformtotheOraclerecommendedstandards. CAUSE: a.Oraclerecommendsthatthepasswordenteredshouldbeatleast8charactersinlength,containatleast1uppercasecharacter,1lowercasecharacterand1digit[0-9]. b.ThepasswordenteredisakeywordthatOracledoesnotrecommendtobeusedaspassword ACTION:Specifyastrongpassword.IfrequiredreferOracledocumentationforguidelines. [WARNING][DBT-06208]The'SYSTEM'passwordentereddoesnotconformtotheOraclerecommendedstandards. CAUSE: a.Oraclerecommendsthatthepasswordenteredshouldbeatleast8charactersinlength,1lowercasecharacterand1digit[0-9]. b.ThepasswordenteredisakeywordthatOracledoesnotrecommendtobeusedaspassword ACTION:Specifyastrongpassword.IfrequiredreferOracledocumentationforguidelines. [WARNING][DBT-06208]The'PDBADMIN'passwordentereddoesnotconformtotheOraclerecommendedstandards. CAUSE: a.Oraclerecommendsthatthepasswordenteredshouldbeatleast8charactersinlength,1lowercasecharacterand1digit[0-9]. b.ThepasswordenteredisakeywordthatOracledoesnotrecommendtobeusedaspassword ACTION:Specifyastrongpassword.IfrequiredreferOracledocumentationforguidelines. [WARNING][DBT-06801]SpecifiedFastRecoveryAreasize(2,780MB)islessthantherecommendedvalue. CAUSE:FastRecoveryAreasizeshouldatleastbethreetimesthedatabasesize(3,571MB). ACTION:SpecifyFastRecoveryAreaSizetobeatleastthreetimesthedatabasesize. Copyingdatabasefiles 1%complete 13%complete 25%complete CreatingandstartingOracleinstance 26%complete 30%complete 31%complete 35%complete 38%complete 39%complete 41%complete CompletingDatabaseCreation 42%complete 43%complete 44%complete 46%complete 49%complete 50%complete CreatingPluggableDatabases 55%complete 75%complete ExecutingPostConfigurationActions 100%complete Lookatthelogfile"/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log"forfurtherdetails.
数据库信息:
全局数据库名:
系统标识符 (SID): 如有相关显示 则表明成功
15,检查oracle进程状态
ps-ef|grepora_|grep-vgrep lsnrctlstatus(lsnrctl是oracle命令)
[oracle@Oracleresponse]$sqlplus/assysdba sql*Plus:Release12.2.0.1.0ProductiononSatApr1523:07:082017 Copyright(c)1982,2016,Oracle.Allrightsreserved. Connectedto: OracleDatabase12cEnterpriseEditionRelease12.2.0.1.0-64bitProduction sql>selectopen_modefromv$database; OPEN_MODE -------------------- READWRITE sql>selectstatusfromv$instance; STATUS ------------ OPEN Oracle库操作 sqlplus/assysdba//登录数据库 alterusersysidentifiedbyoracle;//改sys超级管理员密码 alterusersystemidentifiedbyoracle;//改system管理员密码 exit//退出数据库 sqlplussys/oracleassysdba//使用sys超级管理员登录数据库 startup//启动数据库
Selectnamefromv$database;//查看数据库 Shutdownabort//关闭数据库
Connsystem/oracle//切换用户conn后面直接跟用户名和密码就可以
@H_628_502@完成oracle11g数据库的安装后,相关服务器会自动启用,但并不表示下次开机后oracle服务器仍然可用。下面将介绍oracle的基本服务组件,以及如何编写服务脚本来控制oracle数据库系统的自动运行。 @H_628_502@根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下。 @H_628_502@Oracle11g数据库的基本服务组件如下所述:(注:oracle服务组件最好以oracle用户身份运行如:su - oracle)
lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP 1521端口。
dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例。
emctl:管理器控制工具,用来控制OEM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问,5520端口提供TCP访问。
为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置。除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例。
$vim /etc/oratab
racl:/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。
$ dbshut /u01/app/oracle/product/11.2.0/db_1/
Processing Database instance "hello": log file /u01/app/oracle/product/11.2.0/db_1/shutdown.log
此时所有oracle的进程关闭,监听器也停止。
$dbstart /u01/app/oracle/product/11.2.0/db_1/
Processing Database instance "hello": log file /u01/app/oracle/product/11.2.0/db_1/startup.log
此时监听器工作,hello实例运行,再次查看监听器状态。