Oracle10&EAS参数设置及维护Oracle10&EAS参数设置及维护(系统部署部提供2008-5-10)内容提要A、【与EAS相关Oracle参数设置】B、【侦听管理(Listener)】C、【ORACLE归档模式和非归档模式切换】D、【Rman备份与管理】E、【数据泵(Expdp/impdp)导出导入】适应范围实施人员、技术支持本文档仅做Oracle10实施文档,也可做其他操作系统参考。本已经在多个EAS+Oracle10g客户中验证使用。1应用概述相信为数不少的系统管理员经常为Oracle日常管理或较为复杂的管理不知咋办;1、系统环境发生变化(例如OracleIP地址发生变更时),不知道为何EAS无法连接Oracle,遇到HACMP群集更不知道从那设置才正常?2、想对EAS账套,于同一SID中克隆相同账套,不知道从何下手?3、想要在线RMAN备份,又遇到归档设置的麻烦?4、RMAN是个好工具,又不知道如何设置?5、一不小心设置了闪回,导致生产机磁盘空间不够又不知道如何取消?6、RMAN增量备份工具虽好,但又不知道如何定期清理过期作废的备份文件,或者忘记清理导致服务器故障老挨领导的批评。。。。。。。本文档就EAS+Oracle实施过程中,常用到但又不知如何解决提供一些方法。2与EAS相关Oracle参数设置修改/查看参数sql>showparameters参数名称修改参数sql>altersystemset参数=值scope=spfile;"sga_max_size内存*70%#重要说明,不建议在生产机上创建多个数据库,否则影响系统整体性能sga_target内存*70%db_cache_size内存*30%optimizer_index_caching90#使Oracle倾向于使用索引optimizer_index_cost_adj50#使Oracle倾向于使用索引。open_cursors2000#EAS升级用到,大于表总数量processes150#oracle服务器进程上限,约等于并发用户数×80%workarea_size_policyauto#用于排序等内存根据需要自动扩展。#9i共享服务器模式下无效_no_or_expansiontrue#解决虚模式语句解析消耗内存过大报ora-04031错误第1页,共11页Oracle10&EAS参数设置及维护_b_tree_bitmap_plansfalserecyclebinoff#关闭垃圾回收,减少碎片pga_aggregate_target500M#大约等于参数processes*3m左右其他参数(生产线要求还原,或者使用pfile文件启动):java_pool_size16M#在进行Oracle数据库升级的时候,需要将此参数调大,#请参考升级文档说明。large_pool_size16M#专用服务器模式通常不使用large_pool,#如果是共享服务器模式,需要增加此值为processes*3m#左右。pga_aggregate_target500M#大约等于参数processes*3m左右例如8G内存altersystemsetsga_max_size=5600Mscope=spfile;altersystemset"_b_tree_bitmap_plans"=falsescope=spfilealtersystemsetrecyclebin=offscope=spfile可以将下列内容存为脚本eas_pram.sqlmoreeas_para.sqlaltersystemsetsga_max_size=5600Mscope=spfile;altersystemsetsga_target=5600Mscope=spfile;altersystemsetdb_cache_size=2400Mscope=spfile;altersystemsetoptimizer_index_caching=90scope=spfilealtersystemsetoptimizer_index_cost_adj=50scope=spfilealtersystemsetopen_cursors=2000scope=spfilealtersystemsetprocesses=150scope=spfilealtersystemsetworkarea_size_policy=autoscope=spfilealtersystemset"_no_or_expansion"=falsescope=spfilealtersystemset"_b_tree_bitmap_plans"=falsescope=spfilealtersystemsetrecyclebin=offscope=spfile然后执行脚本:sqlplussystem/kingdee@eas_para.sql即可第2页,共11页Oracle10&EAS参数设置及维护3侦听管理(Listener)3.1侦听设置当系统环境发生变化(例如OracleIP地址发生变更时),要求按照下列方法分析解决。HACMP群集环境请参考文档《Oracle10g管理维护——双机hacmp&Listener设置》1、检查hosts文件2、查看$ORACLE_HOME/network/admin/listener.ora必要时可使用vi工具修改上述文件内容A、(默认)侦听LISTENERHOST中为:主机名使用hostname可以查验要求:在/etc/hosts文件中存在该主机名记录例如Hosts文件内容为:[root@kdeas~]#more/etc/hosts#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.127.0.0.1kdeas.comlocalhostlocalhost.localdomainB、如果要求侦听IP地址。建议:如果是生产机,则建议相关文件诸如hosts,listener.orasqlnet.oratnsnames.ora文件目录($ORACLE_HOME/network/admin)作备份。在默认情形下,由于netmgrLISTENERHOST实际上以主机名为默认值。如果一定要使用IP地址,注意:/etc/hosts文件必须存在主机名对应的IP地址)。例如Hosts文件内容为:[root@kdeas~]#more/etc/hosts#Donotremovethefollowingline,orvariousprograms#thatrequirenetworkfunctionalitywillfail.127.0.0.1localhostlocalhost.localdomainlocalhost172.16.200.3kdeas.com#其中kdeas.com为主机名注意Hosts文件中的不同点.listener.ora关键内容如下:[oracle@kdeasadmin]$morelistener.oraLISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主机名或主机名对应的IP地址)(PORT=1521))检查hosts配置与netmgrListenerHost相匹配,使用Ping主机名。C、检查侦听状态[oracle@kdeasadmin]$lsnrctlstatusConnectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主机名或主机名对应的IP地址)(PORT=1521)))检查是否正常必要时(当变更LISTENERHOST后),需运行命令:#lsnrctlreload检查是否存在相应服务,否则在netmgr连接测试中无法成功,当然在金蝶EAS管理控制台也无法连接。第3页,共11页Oracle10&EAS参数设置及维护4ORACLE归档模式和非归档模式切换4.1将oracle由非归档模式设为归档模式手工在主服务器创建归档目录$mkdir-p/oradata/eas/archive#eas的目录名称根据数据库的SID号进行指定,其实这个目录可以任意指定,建议将归档区与应用程序区分开,或者存放在数据区不同的目录。说明:在ARCHIVELOG模式下,可以进行热备份并恢复至最近的时间,但必须为日志提供空间。如果将数据库模式更改为ARCHIVELOG,则应当立即进行备份。在NOARCHIVELOG模式下,只能进行冷备份,并且在数据库损坏时可能会丢失数据。4.1.1使用Sqlplus命令设置#sqlplus/nologSQL>conn/assysdba;SQL>startupmount;SQL>alterdatabasearchivelog;SQL>archivelogstart;SQL>archiveloglist;SQL>alterdatabaseopen;SQL>altersystemsetLOG_ARCHIVE_DEST_1=‘LOCATION=/oracle//oradata/eas/archive’;#/oracle//oradata/eas/archive必须和前面mkdir-p/oradata/eas/archive操作建立的路径完全一样SQL>altersystemsetlog_archive_format='%t_%s_%r.dbf'scope=spfile;4.1.2使用EM设置打开Http://Oracle域名或IP地址:1158/em以sys登录→维护→恢复设置,如下图所示:第4页,共11页Oracle10&EAS参数设置及维护4.2改变归档状态为不归档状态操作步骤如下:SQL>conn/assysdbaSQL>startupmountSQL>alterdatabasenoarchivelog;Databasealtered.SQL>altersystemsetLOG_ARCHIVE_DEST_1='';Systemaltered.SQL>alterdatabaseopen;Databasealtered.注意,从归档方式转换到非归档方式后一定要做一次数据库的全冷备份,防止意外事件的发生。5Rman备份与管理RMAN备份,可以使用磁带或磁盘,如果使用磁带,为了与磁带硬件接口,需要一个第三方的媒介管理库。物理备份包括备份数据库文件,如数据文件、控制文件和重执行日志。可执行文件执行的EXP(导出)工具是一个逻辑备份工具,它只在数据库的逻辑组成上完成备份。逻辑备份包括在表空间级备份数据库或者备份其他逻辑数据库组成,如表。因此,EXPORT一般不被当作独立的备份方法,而是对RMAN或者用户管理的备份提供附加的备份保护。启动RMAN,需要在操作系统级的命令行。RMAN可以在目标数据库上创建用户,或者新建一个数据库作为目标数据库的档案库。RMAN备份策略、备份管理是确保备份安全有效的关键。重要说明:如果目标数据库物理对象发生了变化,如添加了一个数据文件,同步或重置RMAN,否则在EM管理控制台备份数据库时会遇到备份失败。5.1man备份与管理5.1.1RMAN注册RMAN注册——RMANUsingtheRecoveryCatalogRman管理实现步骤。1.创建Rman用户并授权$sqlplus/nologSQL>conn/assysdbaSQL>createtablespacedata;SQL>createuserrmanidentifiedbykingdeedefaulttablespacedataSQL>grantconnect,resource,recovery_catalog_ownertorman;2.连接数据库,创建恢复目录$rmancatalogrman/kingdee第5页,共11页Oracle10&EAS参数设置及维护RMAN>createcatalogtablespacedata;3.注册目标数据库r$rmantarget/RMAN>connectcatalogrman/kingdee@vip/easRMAN>registerdatabase;4.RMAN备份设置(使用RMAN命令行)$rmantargetrman/kingdeeRMAN>showall;usingtargetdatabasecontrolfileinsteadofrecoverycatalogRMANconfigurationparametersare:CONFIGURERETENTIONPOLICYTOREDUNDANCY2;CONFIGUREBACKUPOPTIMIZATIONON;CONFIGUREDEFAULTDEVICETYPETODISK;#defaultCONFIGURECONTROLFILEAUTOBACKUPON;CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/oradata/back/%F';CONFIGUREDEVICETYPEDISKBACKUPTYPETOCOMPRESSEDBACKUPSETPARALLELISM1;CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#defaultCONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#defaultCONFIGURECHANNELDEVICETYPEDISKFORMAT'/oraInventory/back/%U';CONFIGURESNAPSHOTCONTROLFILENAMETO'/oracle/product/10.2/db_1/dbs/snapcf_eas.f';#default5.维护RMANRMAN的维护主要分为几个方面A.查看RMAN的信息检查现有备份RMAN>listbackup;列出过期备份RMAN>reportobsolete;删除过期的备份B.删除过时的备份deletenopromptobsoletedevicetypedisk;6.同步或重置RMAN如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:RMAN>resynccatalog;如果目标数据库reset了数据库,需要用如下命令同步否则,在EM作业备份时,会出现“问题”字样RMAN>resetdatabase;#注意,谨慎使用。例如:rmantarget/RecoveryManager:Release10.2.0.1.0-ProductiononThuFeb2111:06:262008Copyright(c)1982,2005,Oracle.Allrightsreserved.connectedtotargetdatabase:EAS(DBID=1544227826)RMAN>connectcatalogrman/kingdee@vip/easconnectedtorecoverycatalogdatabase第6页,共11页Oracle10&EAS参数设置及维护RMAN>resynccatalog;startingfullresyncofrecoverycatalogfullresynccomplete5.1.2RMAN备份设置使用EM,推荐做法;备份分区大小一般比数据区大2~3倍操作办法,可通过EM→备份设置→磁盘备份位置→例如:/oradata/back→压缩备份→策略:随着每个备份和数据库结构的更改自动备份控制文件和服务器参数文件(SPFILE),至少保留每个数据文件的指定数量的完全备份;然后可通过Rman查看配置结果:5.2RMAN备份数据库注册并完成备份设置后,就可以用RMAN来进行备份了,或使用Em工具调度备份,更多命令请参考ORACLE联机手册或《ORACLE备份与恢复手册》。RMAN使用脚本来备份数据库,以下是RMAN进行备份的几个例子。a.备份整个数据库backupdevicetypedisktag'%TAG'database;b.增量备份整个数据库backupincrementallevel1cumulativedevicetypedisktag'%TAG'database;c.备份一个表空间backupdevicetypedisktag'%TAG'tablespace'DATA';d.备份归档日志backupdevicetypedisktag'%TAG'archivelogallnotbackedupdeleteallinput;e.删除过时的备份deletenopromptobsoletedevicetypedisk;5.3使用EM控制台备份操作步骤:1.EM——备份/恢复设置2.EM、调度备份与恢复(调用Rman脚本)3.管理当前备份——删除所有过时失效的记录4.作业——定期管理当前备份,实现自动定期清除过期失效备份文件。5.4管理备份(案例)1、删除所有过时记录[oracle@centos4back]$rmantarget/RecoveryManager:Release10.2.0.1.0-ProductiononSatNov2422:18:102007Copyright(c)1982,2005,Oracle.Allrightsreserved.connectedtotargetdatabase:EAS(DBID=1540297512)第7页,共11页Oracle10&EAS参数设置及维护RMAN>DELETENOPROMPTOBSOLETE;2、删除所有失效记录(在'删除所有失效记录'之前执行'全部交叉检验'操作)CROSSCHECKBACKUPSET;CROSSCHECKCOPY;DELETENOPROMPTEXPIREDBACKUP;DELETENOPROMPTEXPIREDCOPY;3、可以对上述操作做一脚本文件[oracle@centos4back]$morebackmgr.rcvrun{CROSSCHECKBACKUPSET;CROSSCHECKCOPY;DELETENOPROMPTEXPIREDBACKUP;DELETENOPROMPTEXPIREDCOPY;DELETENOPROMPTOBSOLETE;}然后运行脚本RMAN>@backmgr.rcv或rmantarget/@backmgr.rcv重要说明:为避免手工做操带来的麻烦或疏忽导致占用较大的磁盘空间,建议使用EM来管理步骤如下:数据库实例:>管理当前备份>删除所有失效记录:指定作业参数>调度>启动>以后>重复>时间间隔1周4.设置RMAN备份的保存策略如果你的数据库非常大,并且备份执行也比较频繁,有必要对你这些备份文件的保存制订合理的策略。该删除的删,合理释放,最大化利用有限的磁盘空间。在通过RMAN创建的备份片段中,由于备份文件也是由rman创建和维护,所以手工删除并不明智,并且RMAN也提供了备份保留策略,合理制订,由RMAN自动删除过旧的备份文件更加安全也更加方便。RMAN中提供了两种备份保留策略:基于时间,和基于冗余数量为RMAN设置了备份保留策略之后,RMAN会自动判断哪些备份集或镜像复制文件不必再保留。这些备份文件将会被标记为“废弃(Obsolete)”,可以通过REPORTOBSOLETE命令查看当前处于废弃状态的备份文件,或者通过DELETEOBSOLETE命令删除这些废弃的备份。例如:RMAN>reportobsolete;6使用数据泵(Expdp/impdp)导出导入使用expdp/impdp将EAS方案导出到不同用户方案,这在在EAS应用过程中经常会遇到。例如将生产机账套导入同一SID中另一用户及独立表空间中,往往会遇到困难。本节内容,以两用户,各自表空间独立用户1kdeas表空间kdtbs第8页,共11页Oracle10&EAS参数设置及维护用户22kd表空间kingdeetbs将用户1及对象导入至用户26.1导出(Expdp)实现步骤1.创建目录对象,并对目录授权(准备工作,第二次就不需要设置了)SQL>createdirectorydmpdiras'/backup/dmp';目录已创建。SQL>grantread,writeondirectorydmpdirtosystem;授权成功。2.创建用户及表空间(可以使用DBconsole创建)createtablespacekdtbsdatafile'/oracle/oradata/kdtbs.dbf'size100Mreuseautoextendonnext5M;createtablespacekingdeetbsdatafile'/oracle/oradata/kingdeetbs.dbf'size100Mreuseautoextendonnext5M;3.创建临时表空间SQL>CREATETEMPORARYTABLESPACE"KDTMP"TEMPFILE'/oracle/oradata/kdtmp.dbf'SIZE100MREUSEAUTOEXTENDONNEXT5MMAXSIZEUNLIMITEDEXTENTMANAGEMENTLOCALUNIFORMSIZE1MCREATETEMPORARYTABLESPACEkingdeetmpTEMPFILE'/oracle/oradata/kingdeetmp.dbf'SIZE100MREUSEAUTOEXTENDONNEXT5MMAXSIZEUNLIMITEDEXTENTMANAGEMENTLOCALUNIFORMSIZE1M;4.建用户kdeas2kd(用户2可以不用创建)SQL>createuserkdeasidentifiedby"kingdee"defaulttablespacekdtbsTEMPORARYTABLESPACEKDTMP;SQL>createuser2kdidentifiedby"kingdee"defaulttablespacekingdeetbsTEMPORARYTABLESPACEkingdeeTMP;5.对第一个用户授权(一般按金蝶EAS授权,这里简化起见)SQL>grantdbatokdeasSQL>grantdbato2kd6.创建表SQL>CREATETABLE"KDEAS"."KDTEST"("NAMEKD"VARCHAR2(23),"ADDRESS"VARCHAR2(40));7.expdp导出kdeasexpdpsystem/kingdeeschemas=kdeasdumpfile=kdeas.dmpdirectory=dmpdir此时在DMP目录下就存在kdeas.dmp文件6.2导入(Impdp)数据库,并实现表空间重新影射#impdpsystem/kingdeedumpfile=kdeas.dmpdirectory=dmpdirREMAP_SCHEMA=kdeas:kdREMAP_TABLESPACE=kdtbs:kingdeetbsImport:Release10.2.0.1.0-Productionon星期日,0411月,200712:20:06Copyright(c)2003,2005,Oracle.Allrightsreserved.连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Production第9页,共11页Oracle10&EAS参数设置及维护WiththePartitioning,OLAPandDataMiningoptions已成功加载/卸载了主表"SYSTEM"."SYS_IMPORT_FULL_01"启动"SYSTEM"."SYS_IMPORT_FULL_01":system/********dumpfile=kdeas.dmpdirectory=dmpdirREMAP_SCHEMA=kdeas:kdREMAP_TABLESPACE=kdtbs:kingdeetbs处理对象类型SCHEMA_EXPORT/USER处理对象类型SCHEMA_EXPORT/SYSTEM_GRANT处理对象类型SCHEMA_EXPORT/ROLE_GRANT处理对象类型SCHEMA_EXPORT/DEFAULT_ROLE处理对象类型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA处理对象类型SCHEMA_EXPORT/TABLE/TABLE处理对象类型SCHEMA_EXPORT/TABLE/TABLE_DATA..导入了"KD"."KDTEST"0KB0行作业"SYSTEM"."SYS_IMPORT_FULL_01"已于12:20:14成功完成此时KD账户对应的表空间为Kingdeetbs、权限也同样为DBA如果要指定到其他临时表空间,可以修改KD用户属性重新指定。上述参数及解释,可使用impdp–help得到详细说明。查看新用户2kd及表验证:使用EM查看“方案”→“数据库对象”→“表”→“方案”→输入2kd此时就可看到导入的kdtest表7Exp/imp数据导出/导入7.1导出通用格式expsystem/kingdee@192.168.14.35/easowner=kdeasfile=/oradada/kdeas.dmplog=‘/oradata/kdeas3exp.log’其中“192.168.14.35”为Oracle数据库IP地址,eas为OracleSID。7.2导入通用格式impsystem/kingdee@192.168.14.35/easfromuser=kdeastouser=kdeasfile=‘/oradada/easdb3.dmp’log=‘/oradata/easdb3imp.log参考步骤:创建表空间:EAS_D_KDEAS_STANDARDcreatetablespaceEAS_D_KDEAS_STANDARDdatafile'/oracle/oradata/EAS_D_KDEAS_STANDARD.dbf'size100Mreuseautoextendonnext5M;创建临时表空间SQL>CREATETEMPORARYTABLESPACEEAS_T_KDEAS_STANDARDTEMPFILE'/oracle/oradata/EAS_T_KDEAS_STANDARD.dbf'SIZE100MREUSEAUTOEXTENDONNEXT5MMAXSIZEUNLIMITEDEXTENTMANAGEMENTLOCALUNIFORMSIZE1M创建用户kdeascreateuserkdeasidentifiedby"kingdee"defaulttablespace"EAS_D_KDEAS_STANDARD"temporarytablespace"EAS_T_KDEAS_STANDARD";第10页,共11页Oracle10&EAS参数设置及维护授权SQL>conn/assysdbaSQL>grantCREATEPROCEDURE,CREATESEQUENCE,CREATETABLE,CREATETRIGGER,CREATEVIEW,SELECTANYDICTIONARY,UNLIMITEDTABLESPACEtokdeas;导入数据impsystem/kingdee@192.168.14.35/easfromuser=kdeastouser=kdeasfile=d:\vs\easdb3.dmplog=d:\vs\easdb3.log第11页,共11页