oracle日常管理与维护.ppt

上传人:xt****7 文档编号:1842504 上传时间:2019-11-08 格式:PPT 页数:73 大小:2.36MB
返回 下载 相关 举报
oracle日常管理与维护.ppt_第1页
第1页 / 共73页
oracle日常管理与维护.ppt_第2页
第2页 / 共73页
oracle日常管理与维护.ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
Oracle 数据库 维护教程,目 录,1,实例的启动与关闭,连接数据库,$sqlplus /nolog启动SQL*Plus,不连接库 SQL sqlplus “/ as sysdba”以DBA身份连接库 以其它用户身份连接数据库 SQLconn scott/tigerdb 或 SQLconn scott/tiger,数据库启动阶段包括3个过程,Nomount:实例启动 Mount:数据库mount,加载控制文件 Open:数据文件全部打开,可以正常访问,OPEN,MOUNT,NOMOUNT,SHUTDOWN,实例中控制文件描述的所有文件被打开,控制文件打开,实例启动,STARTUP,SHUTDOWN,数据库启动阶段,connect / as sysdba select * from v$instance; 无法查询实例信息: 实例未启动 或者:操作系统下 ps ef|grep ora*,Nomount阶段,数据库无法启动到nomount,操作系统内核参数是否足够 初始化参数文件是否可读 初始化参数文件内容正确 相应参数是否调整过大,导致内存、后台进程无法分配 可以尝试重启数据库服务器后再次启动数据库,connect / as sysdba select * from v$instance; 如果信息无法查询:说明数据库没有mount 尝试mount数据库 alter database mount;,Mount阶段,数据库无法mount,检查初始化参数文件中control_files设置是否可读 检查操作系统上控制文件是否可读写 可能控制文件被意外损坏,ALTER DATABASE 命令,改变数据库状态从nomount到mount startup nomount; alter database mount; 从mount状态到open状态 alter database open; ALTER DATABASE命令用来改变数据状态,及数据文件状态,关闭数据库,A x x x x,T x x o o,I x x x o,关闭模式 允许新连接 等待当前会话终止 等待当前事务终止 强迫执行一次checkpoint 且关闭文件,N x o o o,关闭模式: NORMAL TRANSACTIONAL IMMEDIATE ABORT,YES,NO,x o,关闭选项,在 Shutdown Normal, Shutdown Transactional or Shutdown Immediate 三种模式下,Database一致,关闭过程: 数据库buffer中的数据写进数据文件 未提交的修改回滚 资源释放,开启过程: 不需要实例恢复,关闭选项,在 Shutdown Abort 或 Instance Failure 或 Startup Force,Database 不一致,关闭过程: 修改过的buffer不写进数据文件 未提交事务不回滚,开启过程: 重做日志用于重写修改 Undo用于回滚未提交的修改 释放资源,通过监控诊断文件管理实例,当实例可操作时,诊断文件包含重要关键事件信息 有助于解决问题和更好的进行数据库日常管理 诊断文件种类: alertSID.log 文件 Background trace files (后台跟踪文件) User trace files (用户跟踪文件),Alert Log File (警示文件),alertSID.log 文件记录下数据库运行时主要事件的命令和结果. 用于记录日常操作信息或诊断数据库错误. 文件中每一个条目都一个时间戳. DBA管理 alertSID.log 文件. 存储位置由 BACKGROUND_DUMP_DEST参数指定.,Background Trace Files (后台跟踪文件),每个后台进程的错误都会产生后台跟踪文件. 用于诊断和解决错误. 当后台进程遇到错误就产生跟踪文件 存储位置由BACKGROUND_DUMP_DEST参数指定,User Trace File (用户跟踪文件),用户跟踪文件由连到Oracle服务器的用户进程产生. 文件中包含被跟踪的SQL语句的统计信息或用户错误消息. 当用户会话遇到错误将会产生此文件 server process也可产生此文件 存储位置由USER_DUMP_DEST参数指定 文件大小由 MAX_DUMP_FILE_SIZE 参数指定,默认值为10M.,2,数据库日常检查与维护,检查数据库状态 确认数据库是否在open状态,正常提供服务。 $sqlplus /as sysdba 其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”,数据库的日常检查,检查数据库版本 SQLselect * from v$version;,数据库的日常检查,数据库的日常检查,检查oracle服务进程 $ ps -ef |grep ora_ 在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程: . Oracle写数据文件的进程,输出显示为:“ora_dbw0_crsdb” . Oracle写日志文件的进程,输出显示为:“ora_lgwr_ crsdb” . Oracle监听实例状态的进程,输出显示为:“ora_smon_ crsdb” . Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_ crsdb” . Oracle进行归档的进程,输出显示为:“ora_arc0_ crsdb” . Oracle进行检查点的进程,输出显示为:“ora_ckpt_ crsdb” . Oracle进行恢复的进程,输出显示为:“ora_reco_ crsdb”,数据库的日常检查,查看操作系统日志文件 #cat /var/adm/syslog/syslog.log |grep failed #cat /var/adm/syslog/syslog.log |grep error 看是否有与oracle相关的出错信息,数据库的日常检查,查看oracle日志文件 $cat $ORACLE_HOME/log/server1/alterserver1.log |grep ora- $cat $ORACLE_HOME/log/server1/alterserver1.log |grep fail $cat $ORACLE_HOME/log/server1/alterserver1.log |grep error Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:数据库的启动、关闭,启动时的非缺省参数;数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;对数据库进行的某些操作,如创建或删除表空间、增加数据文件;数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA600)等。,数据库的日常检查,定期检查日志文件,根据日志中发现的问题及时进行处理:,数据库的日常检查,查看root用户和数据库用户的email #tail n 200 /var/mail/root #tail n 200 /var/mail/oracle 查看有无与oracle用户相关出错信息,数据库的日常检查,检查Oracle控制文件状态 SQL select status,name from v$controlfile; STATUS NAME - - /data/oradata/crsdb/control01.ctl /data/oradata/crsdb/control02.ctl /data/oradata/crsdb/control03.ctl 输出结果应该有3条以上(包含3条)的记录,“STATUS”应该为空。状态为空表示控制文件状态正常。,数据库的日常检查,检查Oracle在线日志状态 SQL select group#,status,type,member from v$logfile; GROUP# STATUS TYPE MEMBER - - - - 1 ONLINE +DATA/crsdb/onlinelog/group_1.257.836734181 2 ONLINE +DATA/crsdb/onlinelog/group_2.258.836734181 3 ONLINE +DATA/crsdb/onlinelog/group_3.265.836737165 4 ONLINE +DATA/crsdb/onlinelog/group_4.266.836737165 输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。 注:“STATUS”显示为空表示正常。,数据库的日常检查,检查Oracle表空间状态 输出结果中STATUS应该都为ONLINE。,数据库的日常检查,检查Oracle表空间所有数据文件状态 SQL select name,status from v$datafile; NAME STATUS - - +DATA/crsdb/datafile/system.259.836734181 SYSTEM +DATA/crsdb/datafile/sysaux.260.836734183 ONLINE +DATA/crsdb/datafile/undotbs1.261.836734185 ONLINE +DATA/crsdb/datafile/undotbs2.263.836734197 ONLINE +DATA/crsdb/datafile/users.264.836734199 ONLINE 输出结果中“STATUS”应该都为“ONLINE”。 或者SQLselect file_name,status from dba_data_files;输出的status必须为available,数据库的日常检查,检查所有回滚段状态 SQL select segment_name,status from dba_rollback_segs;,数据库的日常检查,检查数据库连接情况 SQL select count(*) from v$session; /查看会话连接数 SQLselect sid,serial#,username,program,machine,status from v$session; /查看会话连接的详细信息,数据库的日常检查,STATUS :当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作; 如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能需要手工进行清理。如果DBA要手工断开某个会话,则执行:(一般不建议使用这种方式去杀掉数据库的连接,这样有时候session不会断开。容易引起死连接。建议通过sid查到操作系统的spid,使用ps ef|grep spidno的方式确认spid不是ORACLE的后台进程。使用操作系统的kill -9命令杀掉连接 ) alter system kill session SID,SERIAL#; 注意:上例中SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。,数据库的日常检查,检查系统磁盘空间 如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。,数据库的日常检查,查看表空间使用情况(使用图形化管理界面查看),如果空闲率%Free小于10%以上(包含10%),则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能。请不要对表空间增加过多的数据文件,增加数据文件的原则是每个数据文件大小为2G或者4G,自动扩展的最大限制在8G,3,使用企业管理器管理数据库,listener.ora,Listener,客户端,服务端,tnsnames.ora,sqlnet.ora,远程管理,配置远程企业管理器,远程连接数据库 确认远程客户端与服务器端是网络相通的,配置远程企业管理器,监听工具 工具可通过下面命令使用: $lsnrctl start /开启监听 $lsnrctl status /查看监听状态 $lsnrctl stop /停止监听,配置远程企业管理器,配置本地网络服务,配置本地网络服务,配置本地网络服务,配置本地网络服务,配置本地网络服务,配置本地网络服务,配置本地网络服务,配置本地网络服务 下一步,直至完成!,打开客户端上安装的企业管理器,登录数据库,远程管理数据库 点击相应的选项,查看、更改数据库 上一章的数据库日常检查也可以通过企业管理器操作,简单易读,远程企业管理器管理数据库,4,RAC数据库的日常操作与维护,数据库的日常操作-RAC,检查数据库状态:是否online crs_stat t 各项显示必须是online,否则数据库可能出处于异常工作状态,数据库的日常操作-RAC,查看数据库实例状态 $srvctl status database d crsdb 单个实例的状态 $srvctl status instance d crsdb1 i server1 开启关闭数据库实例 $srvctl start database d crsdb $srvctl start instance d crsdb1 i server1 $srvctl stop instance d crsdb1 i server1,数据库的日常操作-RAC,查看ASM实例状态 $srvctl status asm n server1 开启ASM实例 $srvctl start asm n server1 关闭ASM实例 $srvctl stop asm n server1,数据库的日常操作-RAC,开启监听 $srvctl start listenern server1 关闭监听 $srvctl stop listenern server1 开启节点应用 $srvctl start nodeapps n server1 关闭节点应用 $srvctl stop nodeapps n server1,数据库的日常操作-RAC,显示数据库配置 $srvctl config database -d crsdb 显示指定集群数据库的所有服务 $srvctl config service -d crsdb 显示节点应用程序的配置 $srvctl config nodeapps -n server1 -a -g -s l 显示 ASM 实例的配置 $srvctl config asm server1,数据库的日常操作-RAC,启动RAC集群 启动节点应用程序(虚拟IP、GSD、TNS 监听器和 ONS) 启动ASM 实例 启动Oracle 实例 停止RAC集群 停止 Oracle 实例 关闭 ASM 实例 关闭节点应用程序,常见错误,RAC数据库中,其中一个节点处于offine状态,如图:,常见错误,造成原因 网络问题 资源耗尽(CPU、I/O 等) 严重的数据库争用 Oracle bug,解决方案: 检查网络,确保无网络错误,如 UDP 错误或 IP 数据包丢失或故障错误。 检查网络配置,确保所有节点上的所有网络配置均设置正确。 检查服务器是否存在 CPU 负载问题或可用内存不足。 检查数据库在实例驱逐之前是否正处于挂起状态或存在严重的性能问题。 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、网络问题或者 lmd 或 lms 进程出现死循环。 如果 OSWatcher 尚未设置,CHM 输出不可用时,使用 OSWatcher 输出将有所帮助。,5,数据库紧急故障处理,Oracle常见错误 ORA-1652到ORA-1655 ORA-165X错误信息是指表空间没有足够的空间可分配,包括ora-1652、ora-1653、ora-1654和ora-1655。 ORA-01555(snapshot too old) 9i引入了undotablespace,只要把undotablespace设的足够大,并把undo_retention设的足够大(大于完成大事务所需的时间),就有可能彻底解决ORA-1555错(但太大会引起系统性能下降),Oracle常见错误 ORA-04031 如果shared_pool_size参数值已经很大(大于350M),那ORA-4031错发生的原因很可能是因为oracle数据库的BUG或是应用程序未能很好的使用绑定变量(bind variable)。 清空当前的shared_pool,可以暂时解决ora-4031错的问题 ORA-600内部错误 第一个参数提供了实际错误信息(例如1579代表块中断错误),而其他参数提供相关其他信息(例如上述块中断错误中,显示Oracle想要读的块号和实际读的块号) ORA-600错误会导致系统生成一个或多个跟踪文件,业务恢复处理 RAC数据库出现故障时,要迅速查看数据库告警日志文件,确认出现问题的原因,影响的范围,故障的现象。比如: 数据库故障是出现一次还是反复出现 数据库故障是否能够比较容易的恢复,绕过,解决 数据库故障发生后业务是否能正常运行 如果RAC数据库的某个节点数据库异常终止服务,但其他节点正常运行时,可以先尝试手工启动出现问题的数据库,恢复数据库到运行状态。,手工收集现场信息 错误现象的具体描述 数据库告警日志文件 :alert_ORACLE_SID.log 数据库跟踪文件:*.TRC 初始化参数文件:SPFILE不能直接阅读,需要转为文本 网络配置文件:listener.ora, tnsnames.ora,sqlnet.ora 数据库版本 操作系统的类型和版本,谢谢! Thank you!,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!