Oracle11gR2数据库系统日常维护操作手册
- 格式:doc
- 大小:125.00 KB
- 文档页数:17
ORACLE 日常维护手册查看数据库版本SELECT*FROM V$VERSION;查看数据库语言环境SELECTUSERENV('LANGUAGE')FROM DUAL;查看ORACLE实例状态SELECT INSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABASE_STATUS FROM V$INSTANCE;查看ORACLE监听状态lsnrctl status查看数据库归档模式SELECTNAME,LOG_MODE,OPEN_MODE FROM V$DATABASE;查看回收站中对象SELECT OBJECT_NAME,ORIGINAL_NAME,TYPEFROMRECYCLEBIN;清空回收站中对象PURGERECYCLEBIN;还原回收站中的对象FLASHBACKTABLE "BIN$GOZUQZ6GS222JZDCCTFLHQ==$0" TOBEFOREDROPRENAMETOTEST;闪回误删除的表FLASHBACKTABLE AAA TOBEFOREDROP;闪回表中记录到某一时间点ALTERTABLETESTENABLEROWMOVEMENT;FLASHBACKTABLETESTTOTIMESTAMP TO_TIMESTAMP('2009-10-15 21:17:47','YYYY-MM-DD HH24:MI:SS');查看当前会话SELECTSID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION;查看DDL锁SELECT*FROM DBA_DDL_LOCKSWHERE OWNER ='FWYANG';检查等待事件SELECTSID, ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXTFROM V$SESSION A, V$SQLAREA T1WHERE WAIT_CLASS <>'Idle'AND A.SQL_ID = T1.SQL_ID;检查数据文件状态SELECT FILE_NAME,STATUS FROM DBA_DATA_FILES;检查表空间使用情况SELECTUPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES)/ D.TOT_GROOTTE_MB *100,2),'990.99') "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) TOTAL_BYTES,ROUND(MAX(BYTES)/(1024*1024),2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUPBY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES)/(1024*1024),2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUPBY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDERBY4DESC;收缩表空间ALTER TABLESPCE TS_AJ_DATA COALESCE;增加表空间大小SELECT T.TABLESPACE_NAME, T.FILE_NAME, T.BYTES /1024/1024/1024 FROM DBA_DATA_FILES TWHERE T.TABLESPACE_NAME ='TS_AJ_DATA';ALTERTABLESPACE TS_AJ_DATA ADDDATAFILE'/DATA/TS_AJ_DATA05_10G.DBF' SIZE10000MAUTOEXTENDOFF;检查不起作用的约束SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, CONSTRAINT_TYPE, STATUS FROM DBA_CONSTRAINTSWHERE STATUS ='DISABLE';检查发生坏块的数据库对象SELECT TABLESPACE_NAME, SEGMENT_TYPE, OWNER, SEGMENT_NAMEFROM DBA_EXTENTSWHERE FILE_ID =< AFN >AND<BLOCK>BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS -1;检查无效的数据库对象SELECT OWNER,OBJECT_NAME,OBJECT_TYPEFROM DBA_OBJECTSWHERE STATUS ='INVALID';查看语句执行进度SELECT SE.SID,OPNAME,TRUNC(SOFAR / TOTALWORK *100,2)||'%'AS PCT_WORK,ELAPSED_SECONDS ELAPSED,ROUND(ELAPSED_SECONDS *(TOTALWORK - SOFAR)/ SOFAR) REMAIN_TIME, SQL_TEXTFROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SEWHERE SL.SQL_HASH_VALUE = SA.HASH_VALUEAND SL.SID = SE.SIDAND SOFAR != TOTALWORKORDERBY START_TIME;检查碎片程度高的表SELECT SEGMENT_NAME TABLE_NAME,COUNT(*)EXTENTSFROM DBA_SEGMENTSWHERE OWNER NOTIN('SYS','SYSTEM')GROUPBY SEGMENT_NAMEHAVINGCOUNT(*)=(SELECTMAX(COUNT(*))FROM DBA_SEGMENTSGROUPBY SEGMENT_NAME);检查表空间的I/O 比例SELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME "FILE",F.PHYRDS PYR,F.PHYBLKRD PBR,F.PHYWRTS PYW,F.PHYBLKWRT PBWFROM V$FILESTAT F, DBA_DATA_FILES DFWHERE F.FILE# = DF.FILE_IDORDERBY DF.TABLESPACE_NAME;检查碎片程度高的表SELECT segment_name table_name,COUNT(*)extents FROM dba_segmentsWHERE owner NOTIN('SYS','SYSTEM')GROUPBY segment_nameHAVINGCOUNT(*)=(SELECTMAX(COUNT(*))FROM dba_segmentsGROUPBY segment_name);检查文件系统的I/O 比例SELECTSUBSTR(A.FILE#,1,2) "#",SUBSTR(,1,30) "NAME",A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTSFROM V$DATAFILE A, V$FILESTAT BWHERE A.FILE# = B.FILE#;检查消耗CPU最高的进程SELECT P.PID PID,S.SID SID,P.SPID SPID,ERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT,1,80)) SQLFROMFROM V$PROCESS P, V$SESSION S, V$SQLAREA A WHERE P.ADDR = S.PADDRAND S.SQL_ADDRESS = A.ADDRESS(+)AND P.SERIAL# <>'1';检查运行很久的SQLSELECT USERNAME,SID,OPNAME,ROUND(SOFAR *100/ TOTALWORK,0)||'%'AS PROGRESS,TIME_REMAINING,SQL_TEXTFROM V$SESSION_LONGOPS, V$SQLWHERE TIME_REMAINING <>0AND SQL_ADDRESS = ADDRESSAND SQL_HASH_VALUE = HASH_VALUE;等待时间最多的5个系统等待事件的获取SELECT*FROM(SELECT*FROM V$SYSTEM_EVENTWHERE EVENT NOTLIKE'SQL%'ORDERBY TOTAL_WAITS DESC)WHEREROWNUM<=5;查找前十条性能差的SQLSELECT*FROM(SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXTFROM V$SQLAREAORDERBY DISK_READS DESC)WHEREROWNUM<10;检查死锁SELECT ername "Blocking User", ername "DB User",ername "Waiting User", bs.SID "SID", ws.SID "WSID",bs.serial# "Serial#", bs.sql_address "address",bs.sql_hash_value "Sql hash", bs.program "Blocking App",ws.program "Waiting App", bs.machine "Blocking Machine",ws.machine "Waiting Machine", bs.osuser "Blocking OS User", ws.osuser "Waiting OS User", bs.serial# "Serial#",ws.serial# "WSerial#",DECODE(wk.TYPE,'MR','Media Recovery','RT','Redo Thread','UN','USER Name','TX','Transaction','TM','DML','UL','PL/SQL USER LOCK','DX','Distributed Xaction','CF','Control FILE','IS','Instance State','FS','FILE SET','IR','Instance Recovery','ST','Disk SPACE Transaction','TS','Temp Segment','IV','Library Cache Invalidation','LS','LOG START OR Switch','RW','ROW Wait','SQ','Sequence Number','TE','Extend TABLE','TT','Temp TABLE',wk.TYPE) lock_type,DECODE(hk.lmode,0,'None',1,'NULL',2,'ROW-S (SS)',3,'ROW-X (SX)',4,'SHARE',5,'S/ROW-X (SSX)',6,'EXCLUSIVE',TO_CHAR (hk.lmode)) mode_held,DECODE(wk.request,0,'None',1,'NULL',2,'ROW-S (SS)',3,'ROW-X (SX)',4,'SHARE',5,'S/ROW-X (SSX)',6,'EXCLUSIVE',TO_CHAR (wk.request)) mode_requested,TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2, DECODE(hk.BLOCK,0,'NOT Blocking',/**//* Not blocking any other processes */ 1,'Blocking',/**//* This lock blocks other processes */2,'Global',/**//* This lock is global, so we can't tell */ TO_CHAR (hk.BLOCK)) blocking_othersFROM v$lock hk, v$session bs, v$lock wk, v$session ws WHERE hk.BLOCK =1AND hk.lmode !=0AND hk.lmode !=1AND wk.request !=0AND wk.TYPE(+)= hk.TYPEAND wk.id1(+)= hk.id1AND wk.id2(+)= hk.id2AND hk.SID = bs.SID(+)AND wk.SID = ws.SID(+)AND(ername ISNOTNULL)AND(ername <>'SYSTEM')AND(ername <>'SYS')ORDERBY1;查看正在运行的JOBSELECT*FROM DBA_JOBS_RUNNING;检查数据库JOB的完成情况SELECT JOB, LOG_USER, LAST_DATE, NEXT_DATE, WHAT, FAILURES FROM DBA_JOBS;查看正在运行的JOB对应的SID、SERIAL#、SPIDSELECT A.JOB, B.SID, B.SERIAL#, C.SPIDFROM DBA_JOBS_RUNNING A, V$SESSION B, V$PROCESS CWHERE A.SID = B.SIDAND B.PADDR = C.ADDRAND JOB ='21';通过SID查询SERIAL#、SPIDSELECT B.SID, B.SERIAL#, C.SPIDFROM V$SESSION B, V$PROCESS C WHERE B.SID ='554'AND B.PADDR = C.ADDR;停止会话--SID:554 SERIAL#:1134 SPID:23242 ORACLE级别ALTERSYSTEMKILLSESSION'554,1134';操作系统级别kill -9 23242。
Oracle数据库日常维护手册在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
一、Oracle警告日志文件监控Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:●数据库的启动、关闭,启动时的非缺省参数;●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;●对数据库进行的某些操作,如创建或删除表空间、增加数据文件;●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600)DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理问题处理启动参数不对检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁二、数据库表空间使用情况监控(字典管理表空间)数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。
select tablespace_name,count(*) chunks ,max(bytes/1024/1024) max_chunkfrom dba_free_spacegroup by tablespace_name; 个人收集整理上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示:TABLESPACE_NAME CHUNKS MAX_CHUNK-------------------- ---------- ----------INDX 1 57.9921875RBS 3 490.992188RMAN_TS 1 16.515625SYSTEM 1 207.296875TEMP 20 70.8046875TOOLS 1 11.8359375USERS 67 71.3671875个人收集整理勿做商业用途其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合:alter tablespace 表空间名 coalesce;然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。
Oracle Database 日常维护手册目录1. 登陆到数据库.............................. 错误!未定义书签。
. 服务器端配置Listener ................. 错误!未定义书签。
. 客户端tnsnames ....................... 错误!未定义书签。
. 检查Oracle Listener .................. 错误!未定义书签。
. 登陆数据库的方式...................... 错误!未定义书签。
. 数据库的启动.......................... 错误!未定义书签。
. 关闭数据库 ........................... 错误!未定义书签。
2. 用户管理.................................. 错误!未定义书签。
. 检察用户profile ...................... 错误!未定义书签。
. 查看用户profile参数.................. 错误!未定义书签。
3. 检查数据库基本状况........................ 错误!未定义书签。
. 检查数据库创建日期.................... 错误!未定义书签。
. 检查数据库版本信息.................... 错误!未定义书签。
. 检查实例状态.......................... 错误!未定义书签。
. 查看前台进程.......................... 错误!未定义书签。
. 查看数据库连接的session .............. 错误!未定义书签。
. 查看连接到数据库的模式................ 错误!未定义书签。
. 查看并发连接数........................ 错误!未定义书签。
oracle 11g RAC基本维护手册
1.运行状态查看:
#su - grid
$crs_stat -t 正常情况下,可看到除了gsd的三个服务外,其他的服务都应为online状态。
也可通过以下命令查看:
$crsctl status res -t(11g命令)
2.停止数据库及集群:
a)先停止数据库:
# su - oracle
$ srvctl stop database -d dgcdcdb
b)再通过以下命令停止资源以及crs
# $ORACLE_HOME/bin/crsctl stop cluster,会自动停止包括数据库以及grid在内的所有服务,如果Oracle Clusterware 管理的资源中有任何一个还在运行,则整个命令失败。
这时需要使用# $ORACLE_HOME/bin/crsctl stop cluster -f 选项无条件地停止所有资源并停止Oracle Clusterware 系统。
如果要在一个节点上停止所有节点的资源以及crs可使用以下的命令:
# $ORACLE_HOME/bin/crsctl stop cluster -all
3.启动集群及数据库:
通过以下的命令,可在一个节点上启动所有的资源以及clusterware服务:
# $ORACLE_HOME/bin/crsctl start cluster -all
启动完成后,可通过命令$crsctl status res -t看是否有一些资源是offline状态,如果有offline状态的资源,则用以下的命令再逐一启动:
$crs_start ora.scan1.vip
启动完成后,再通过命令查看状态是否都正常。
Oracle 11g 日常维护手册目录第1章文档说明 (5)第2章CRS的管理 (5)2.1 RAC状态检查 (5)检查守护进程状态 (5)检查资源状态 (5)2.2 手工启动与关闭RAC (6)2.3 OCR的管理 (6)2.4 VOTING DISK的管理 (8)2.5 CSS管理 (9)2.6 管理工具SRVCTL (9)管理实例 (9)管理监听程序 (9)管理ASM (10)管理service (10)2.7 修改RAC的IP及VIP (11)修改外网IP及心跳IP (11)修改VIP (11)查看与删除IP (12)第3章ASM的管理 (13)3.1 管理DG (13)建立与扩充disk group (13)mount与unmount的吩咐 (14)删除disk group (14)增加DISK的total_mb (14)DG的属性-AU大小 (14)DG的属性-离线删除时间 (15)DG的属性-兼容版本 (15)向ASM中添加disk的完整步骤 (16)3.2 ASMCMD (17)ASMCMD常用吩咐 (17)复制ASM文件 (18)吩咐lsdg (18)元数据备份与复原 (18)3.3 ASM磁盘头信息备份与复原 (19)3.4 ASM常用视图 (20)视图V$ASM_DISKGROUP (20)视图V$ASM_DISK (21)3.5 常用方法 (22)如何确定ASM实例的编号 (22)查询DG-RAW-磁盘的对应关系 (22)第4章数据库管理 (24)4.1 参数文件管理 (24)4.2 表空间管理 (25)表空间自动扩张 (25)表空间更名 (26)表空间的数据文件更名 (26)缺省表空间 (26)表空间删除 (27)UNDO表空间 (27)TEMP表空间 (27)4.3 重做日志文件管理 (27)增加REDO日志组 (27)删除日志组 (28)日志切换 (28)日志清理 (28)重做日志切换次数查询 (28)4.4 归档模式 (29)单实例数据库修改为归档模式的方法 (29)RAC数据库修改为归档模式的方法 (29)归档路径 (30)4.5 重建限制文件 (31)4.6 内存参数管理 (32)Oracle内存管理发展阶段 (32)自动内存管理AMM (32)自动共享内存管理ASMM (33)自动PGA管理 (33)4.7 其他管理内容 (33)数据库版本查看 (33)字符集 (34)创建密码文件 (34)关闭审计功能 (34)帐号管理 (34)profile管理 (35)第1章文档说明本文档描述了Oracle11g中常见的维护和管理方法,包括CRS、ASM、数据库等。
日常维护手册目录1.登陆到数据库1.1.服务器端配置=( =( =( = ( = )( 1))( = ( = )( = 192.168.137.10)( = 1521)) ))= 01(((1)(1)(0111.2.01)(20)((()(2)(1)))))1名称,在客户端一定配置和他相同1实例名称,这个要和相同可以不等于客户端根据中的和地址( = ( = )( 1)( = 1521)),到这个地址去访问监听器。
然后监听器根据文件文件中的来判断是否有一个 和 相等。
如果相等,则建立客户端到标识的服务端实例的连接,在客户端上我们可以使用 命令来测试1.2. 客户端1 =( =说明( =( = ( = )( = 192.168.137.10)( = 1521)))( =( 1)()))这里的 1 就是在服务器端的1[1 ~]$ 1: 11.2.0.1.0 - 212015 14:51:49(c) 1997, 2009, . .03502: . : <> [<>][1 ~]$ 1: 11.2.0.1.0 - 212015 14:51:55(c) 1997, 2009, . .:( = ( = ( = ( = )( = 1)( = 1521))) ( = (= 1)()))(0 )1.3. 检查说明1.4.登陆数据库的方式修改登陆 认证模式默认情况下我们 安装好后是使用操作系统用户的验证,所以这里如果我们使用用户不用密码就可以登录,如果我们想使用 密码文件验证的话我们就要进入下列文件夹0111.2.01修改增加下列命令=配置了登录数据库方式[1 ~]$ 1111111使用登陆到指定数据库11111111 ;察看登陆到了哪个数据库实例v$使用用户登陆说明说明用登陆使用用户登录;/ 连接数据库111111 使用进行连接1.5.数据库的启动数据库启动方式启动实例、装载数据库、打开数据库1启动数据库实例, 该步骤只是启动了一个数据库实例. 在此状态下我们可以访问下列结构文件* v$;* v$;* v$;利用以前读取的参数文件查找控制文件,这些控制文件包含数据文件名和重做日志名,然后将数据库装载.一旦这一步完成我们就可以看到下列状态* v$;* v$;* v$;实例验证数据文件及日志文件并启动数据库;打开数据库启动过程中限制访问数据库上述命令是只有用户拥有权限才可以连接启动数据库后起的进程, v$ <>'00';1.6.关闭数据库等待用户完成工作然后关闭等待用户完成工作但是强制关闭连接立即关闭 ,当前所有做工作回滚到一致状态,断开其连接强制关闭,非干净关闭,下次重起后要回滚日志2.用户管理2.1.检察用户2.2.查看用户参数3.检查数据库基本状况3.1.检查数据库创建日期3.2.检查数据库版本信息3.3.检查实例状态其中“”表示当前的实例状态,必须为“”;“”表示当前数据库的状态,必须为“”。
Oracle 11g日常操作与维护手册拟制:数据库TMG日期:2009-2-14审核:日期:批准:日期:华为技术有限公司目录第1章文档说明........................................ 错误!未定义书签。
第2章 CRS的管理....................................... 错误!未定义书签。
RAC状态检查....................................... 错误!未定义书签。
检查守护进程状态............................... 错误!未定义书签。
检查资源状态................................... 错误!未定义书签。
手工启动与关闭RAC ................................. 错误!未定义书签。
OCR的管理......................................... 错误!未定义书签。
VOTING DISK的管理................................. 错误!未定义书签。
CSS管理........................................... 错误!未定义书签。
管理工具SRVCTL .................................... 错误!未定义书签。
管理实例....................................... 错误!未定义书签。
管理监听程序................................... 错误!未定义书签。
管理ASM ........................................ 错误!未定义书签。
管理service .................................... 错误!未定义书签。
ORACLE11gRAC日常维护一背景因为项目维护人员对在LINUX环境下维护RAC时遇到一些问题,所以本文档主要简单介绍一下在LINUX操作系统下如何对ORACLE11g数据库做一些维护操作,本来只是想文字介绍一些命令,但想想没图没真相的,大家看着会晕,正好前段时间在公司服务器上搭建了RAC for LINUX环境,所以可以把图一起配上,希望大家能看着舒服点,如果能连接公司内网,也可以实际操练下,毕竟生产环境是不能随便操作的。
另外,10g与11g有一些差异,使用时需要注意一下。
二ORACLE RAC的软件架构从11gR2开始,ORACLE将集群软件做成了一个完全独立于ORACLE数据库软件(RDBMS)的一个集群组件,简称GRID(GRID不仅可以为ORACLE数据库提供集群支持,还可以为其他第三方的软件提供集群支持),GRID与RDBMS分开安装,GRID作为ORACLE数据库软件的基础。
在LINUX的RAC操作系统下ORACLE用户用于管理ORACLE数据库,GRID用户用于管理GRID组件,这点与WINDOWS不同,WINDOWS 只有一个ADMINISTRATOR用户全权管理GRID与ORACLE数据库软件。
ORACLE RAC 软件架构图我们由下向上解释一下上图中RAC的一些结构。
1,RAC的运行离不开共享存储,ORACLE管理共享存储的方式有多种,上图中就包含了最常见的两种:ASM(Automatic Storage Management)、RAW(裸设备)。
ORACLE 从10g后就力推ASM方式,但OCR(ORACLE集群注册表)和VOTE(仲裁盘)在10G 与11gR1还不能实现ASM管理(OCR与VOTE是GRID运行的基础),所以使用RAW 方式,但11gR2后OCR和VOTE都可以使用ASM磁盘组管理。
2,共享存储通过光纤网络连接到ORACLE数据库服务器,连接方式可以是NAS (Network Attached Storage),SAN(Storage Area Network),DAS(Direct Attached Storage),如果对存储网络类型感兴趣自己去了解,不文档不做详细说明。
Oracle运维手册恒生电子客服总部系统服务部本文所述内容(包括文字和图片),恒生电子股份有限公司(以下简称“恒生”或“恒生公司”)拥有完全独立的唯一版权。
未经恒生公司书面同意或授权,任何单位和个人都不得将其复制、影印或引用。
目录第一章通过SQL*Plus管理Oracle系统 (3)**. 登录oracle系统 (3)**. 退出SQL*Plus (3)**. 在sqlplus下得到帮助信息 (3)第二章Oracle11gR2 RAC日常管理 4**. 监控oracle (4)**. 监控Oracle日志 (4)**. 监控oracle状态 (5)**. 监控表空间使用情况 (6)**. 监控主机 (8)**. 监控CPU (8)**. 使用vmstat 命令监控cpu使用情况 (8)**. 监控主机日志 (9)**. 监控OS文件系统使用情况 (9)**. 启动、关闭数据库 (9)**. 启动数据库 (9)**. 关闭数据库 (11)**. 监听器启动、关闭 (13)**. 表统计信息维护 (14)**. 修改主机系统时间 (15)**. 时间管理原则 (15)**. 时间修改方法 (15)**. 数据库日志收集 (15)**. OS日志 (16)**. DB日志 (16)**. grid日志 (16)**. AWR和ASH报告生成 (16)**. AWR报告生成(同10g) (16)**. ASH报告生成(同10g) (19)**. Recyclebin管理 (23)**. 归档日志的清理 (23)**. 查看回收站中的对象 (23)**. 指定删除某些特定对象 (23)**. 指定删除某表空间的所有回收站对象 (23)**. 清除某用户下的回收站对象 (23)**. 清除所有回收站对象 (23)**. 数据库性能监控 (24)**. 查看系统当前等待事件 (24)**. 通过sid查看sql语句24第一章通过SQL*Plus管理Oracle 系统登录oracle系统以oracle用户登录主机1)以sys用户登录oracle系统[oracle@rac1 ~]$ sqlplus / as sysdba2)其他用户登录oracle系统[oracle@rac1 ~]$ sqlplus hs_user/handsome@jsswdb1退出SQL*PlusSQL>exit在sqlplus下得到帮助信息列出全部SQL命令和SQL*Plus命令SQL> help index列出某个特定的命令的信息SQL>help 命令名或者SQL>? 命令名第二章Oracle11gR2 RAC日常管理监控oracle2.1.1.监控Oracle日志2.1.1.1. DB日志以oracle用户登录该日志文件在每个节点主机的$ORACLE_BASE/diag/rdbms/<dbname>/<sid>/trace目录下,文件名为:alert_XXXX.log (节点1)例如:/u01/app/oracle/diag/rdbms/hsdb/hsdb1/trace/alert_hsdb1.log在出现oracle故障前或故障时,数据库会将一些警告、错误信息写入该文件,交易时应随时监控该文件,及时发现警告、错误信息。
Oracle 11G R2 DataGuard日常维护及故障处理1.关于Forced Logging模式有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。
如果在执行force loggi ng时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。
F ORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可)打开force loggingSQL > alter database force logging;关闭force loggingSQL > alter database no force logging;查看force logging的状态:SQL > select FORCE_LOGGING from v$database;2.关于主备库的密码密码文件位置$Oracle_HOME/dbs/orapwSID,主备库的密码必须要一致,否则可能出现日志无法传输故障,最好是使用scp传过去较为方便3.关于listener.ora和tnsnames.oralistener.ora为数据库的监听配置文件,tnsnames.ora为网络服务名配置文件修改listener.ora是需要重启监听程序,而tnsnames.ora是不需要重启的,我们可以使用默认的listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ))ADR_BASE_LISTENER = /opt/oracle以上是动态注册,如果是静态注册的话,则是SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME =db1)(ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)(SID_NAME = db1)))tnsnames.ora则只需要添加服务名db1 =(DEST_NAME(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = db1)(PORT = 1521)) )(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1)))db2=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = db2)(PORT = 1521)) )(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db2)))以上按照自己的实际情况进行修改以上配置好了,就可以相互的tnsping db1或tnsping db2进行测试4.参数文件说明参数文件说明:增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。
Oracle 11gR2数据库系统日常维护操作手册修订纪录:目录一、介绍 (3)二、维护 (4)2.1 ASM管理与监控 (4)2.1.1 磁盘创建(Linux) (4)2.1.2 查看磁盘(Linux) (4)2.1.3 删除磁盘(linux) (5)2.1.4 创建磁盘组 (5)2.1.5 磁盘组新增磁盘 (5)2.1.6 磁盘组删除磁盘 (5)2.1.7 磁盘组删除 (5)2.1.8 磁盘组维护 (5)2.1.9 磁盘组监控 (6)2.2 OHAS服务管理与监控 (6)2.2.1 启/禁用服务资源 (6)2.2.2 启动/停止资源服务 (8)2.2.3 监控/删除资源服务 (9)2.3 表空间管理与监控 (10)2.3.1 表空间管理 (10)2.3.2 表空间监控 (11)2.4 重做日志管理 (12)2.5 日志维护 (13)2.5.1定制GRID模块的日志保留策略 (13)2.5.2定制RDBMS模块的日志保留策略 (14)2.5.3 查看异常日志 (14)2.5.4 手工清理日志 (15)Oracle 11g引进了些新的特性,在日常维护方面也带来些变化和改善。
日常维护工作中,大体上保持和延续了以前版本的优良友好操作接口,只部分新特性下,增加或改善了操作交互方式。
日常维护工作中,主要有表空间、重做日志、归档、用户帐户、表、索引、簇表等的管理维护;在Oracle 11gR2数据库,我们的系统开始采用Oracle的ASM组件来管理数据库的存储,因而ASM管理存储也成了一项日常维护工作;另外,还采用了Oracle Restart功能来管理ASM、数据库、监听等数据库资源服务,故OHAS服务状态管理也是需要加以关注。
表空间、重做日志、归档的一般管理和以前版本的管理没有太多的差异;只是涉及新增和调整时,涉及文件存储方面,因使用ASM部件,而需要做些操作命令语法上的调整;用户账户、表、索引、簇表等内部逻辑结构的维护管理没有太多的变化。
2.1 ASM管理与监控ASM管理涉及存储的管理,主要有磁盘、磁盘组的创建、新增、更新、删除等管理维护方面。
2.1.1 磁盘创建(Linux)ASM磁盘创建,主要是使用ASMLib来管理磁盘的配置,Oracle引进ASMLib 在内核级别进行磁盘的管理,便于ASM实例识别到磁盘,方面ASM创建、更新、删除磁盘组或组磁盘成员。
ASMLib管理磁盘,通过在系统级别识别到磁盘路径后,创建一个别名,来配置磁盘。
Redhat linux下通过多路径软件识别磁盘路径后,对磁盘进行分区后,就可以使用ASMLib来创建一个磁盘别名。
示例:Redhat ES 5下,采用DM管理的磁盘通过多路径软件识别并配置了一个磁盘路径,将在/dev/mapper目录生成一个设备文件,默认是:/dev/mapper/mpath[0~N]命名,但这个识别的设备对应的真实设备可能会随机器启动而发生变化;故可以通过wwwid号在/etc/multipath.conf文件配置别名,来固化设备与设备文件名对应;如配置一个设备别名为:asm_dsk_01,则在/dev/mapper目录生成一个文件名:/dev/mapper/asm_dsk_01,这样就可以使用fdisk 或kpartx来划分分区,然后使用ASMLib来自动管理设备和生成另一个别名,便于Oracle ASMLib 来管理设备的权限,而不随系统启动发生权限信息丢失问题。
创建语句:划分的DM设备文件分区为:/dev/mapper/asm_dsk_01p1ASMLib创建磁盘别名后,会在/dev/oracleasm/disks目录生成一个赋予ASM实例属主权限的磁盘设备别名文件,如示例则生成一个设备文件:/dev/oracleasm/disks/DISK01,属主将是初始化ASMLib时配置的属主:grid:asmadmin,ASMLib初始化配置,也可以通过配置文件进行调整:/etc/sysconfig/oracleasm2.1.2 查看磁盘(Linux)磁盘查看,通过oracleasm脚本,查看系统目前已经被ASMLib管理的磁盘。
2.1.3 删除磁盘(linux)ASMLib删除磁盘,需要先从ASM磁盘组里把磁盘卸载后,再从ASMLib配置里2.1.4 创建磁盘组ASM创建磁盘组,是在ASM实例里操作,以记录磁盘组使用的磁盘和容量等元数2.1.6 磁盘组删除磁盘2.1.8 磁盘组维护2.1.9 磁盘组监控磁盘组监控,主要有:容量,磁盘加载状态,可以通过sqlplus登陆ASM实例查询视图,或在ASMCMD工具里查看。
查看磁盘组分配和使用情况:(若磁盘空闲空间不足,需要及时申请分配存储到主机)查看磁盘组加载状况:2.2 OHAS服务管理与监控Oracle OHAS是Oracle 11g开始推出的集成高可用解决方案的一款管理工具,主要用来管理CRS,RAC,Oracle Restart,RAC On One Node,ASM,Listener等数据库资源服务的守护进程管理工具。
他可以通过crsctl工具作为管理接口,也可以通过srvctl进行接口管理服务资源。
涉及日常管理工作部分有:启/禁用OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES;启动/停止OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES;监控/删除OHAS Deamon、ASM、磁盘组、监听、ONS、数据库、SERVICES.2.2.1 启/禁用服务资源启/禁用OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下执行;启/禁用数据库、SERVICES资源服务,既可以在grid属主用户,也可以在RDBMS用户下执行。
crsctl enable crs#禁用crs deamon服务crsctl disable crs#启用has deamon服务crsctl enable has#禁用has deamon服务crsctl disable has#启用ASM服务srvctl enable asm#禁用ASM服务srvctl disable asm#启用磁盘组资源srvctl enable diskgroup -g <dg_name>#禁用磁盘组资源srvctl disable diskgroup -g <dg_name>#启用监听资源srvctl enable listener [-l <lsnr_name>]#禁用监听资源srvctl disable listener [-l <lsnr_name>]#启用ons资源srvctl enable ons [-v]#禁用ons资源srvctl disable ons [-v]#启用数据库资源srvctl enable database -d <db_unique_name>#禁用数据库资源srvctl disable database -d <db_unique_name>#启用数据库服务srvctl enable service -d <db_unique_name> -s "<service_name_list>"2.2.2 启动/停止资源服务启动/停止OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下执行;启动/停止数据库、SERVICES资源服务,既可以在grid属主用户,也可以在RDBMS用户下执行。
#启动crs deamon服务crsctl start crs#停止crs deamon服务crsctl stop crs#启动has deamon服务crsctl start has#停止has deamon服务crsctl stop has#启动ASM服务srvctl start asm [-o <start_options>]#停止ASM服务srvctl stop asm [-f]#启动磁盘组资源srvctl start diskgroup -g <dg_name>#停止磁盘组资源srvctl stop diskgroup -g <dg_name> [-f]#启动监听资源srvctl start listener [-l <lsnr_name>]#停止监听资源srvctl stop listener [-l <lsnr_name>] [-f]#启动ons资源srvctl start ons [-v]#停止ons资源srvctl stop ons [-v]2.2.3 监控/删除资源服务监控/删除OHAS Deamon、ASM、磁盘组、监听、ONS服务需要在grid属主用户下执行;监控/删除数据库、SERVICES资源服务,既可以在grid属主用户,也可以在RDBMS用户下执行。
#监控crs deamon服务crsctl check crscrs_stat -t#删除crs deamon服务$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose#监控has deamon服务crsctl check hascrs_stat -t#删除has deamon服务$ORACLE_HOME/crs/install/roothas.pl -deconfig -force -verbose#监控ASM服务srvctl status asm [-a] [-v]#删除ASM服务srvctl remove asm [-f]#监控磁盘组资源srvctl status diskgroup -g <dg_name> [-a] [-v]#删除磁盘组资源srvctl remove diskgroup -g <dg_name> [-f]#监控监听资源srvctl status listener [-l <lsnr_name>] [-v]#删除监听资源srvctl remove listener [-l <lsnr_name> | -a] [-f]#监控ons资源srvctl status ons [-v]#删除ons资源srvctl remove ons [-f] [-v]#监控数据库资源srvctl status database -d <db_unique_name> [-f] [-v]#删除数据库资源srvctl remove database -d <db_unique_name> [-f] [-y] [-v]#监控数据库服务srvctl status service -d <db_unique_name> -s "<service_name_list>" [-f] [-v]#删除数据库服务srvctl remove service -d <db_unique_name> -s "<service_name_list>" [-f]2.3 表空间管理与监控2.3.1 表空间管理表空间管理中的创建、添加、删除操作和9i没有太大的变化,变化的就是在创建、添加指定数据文件名时,不必麻烦自己指定一个文件名或裸设备名,只需要明示datafile项,以及大小和是否自动扩展即可;或有新的磁盘组加入到ASM实例,并分配给这个数据库使用时,参数:db_create_file_dest 设置的默认磁盘组非新加的磁盘组名参数值时,需要在datafile 后面带上新磁盘组名,如: datafile'+DATA02'即可。