Oracle 11g 数据库日常维护指导书V1.0-20100331-B
- 格式:pdf
- 大小:591.49 KB
- 文档页数:47
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 .............. 错误!未定义书签。
. 查看连接到数据库的模式................ 错误!未定义书签。
. 查看并发连接数........................ 错误!未定义书签。
数据库维护手册目录1前言 (3)2ORACLE维护方法 (3)2.1 数据库启动 (3)2.2 数据库停止 (3)2.3 监听器的启停 (4)2.4 用户管理 (4)2.5 数据库参数文件 (5)2.6 数据库概况的查询 (6)2.7 常用对象的创建和使用 (7)2.8 失效数据库对象的检测和编译 (7)2.9 数据备份的技巧 (8)2.10 数据库命中率的监测 (10)2.11 最消耗资源进程的检测 (11)2.12 锁的监测及处理 (12)2.13 SQL语句执行技巧 (12)2.14 表空间的管理 (13)2.15 数据文件I/O的统计优化 (14)2.16 错误号的跟踪出理 (14)3日常问题处理流程 (15)3.1 ORACLE数据库日常检查 (15)3.2 会话连接日志的清理 (15)3.3 数据库hang住时的停止和方法 (15)3.4 扩表空间方法 (16)3.5 死锁会话的杀死 (16)3.6 未决两阶段事务的回滚............................. 错误!未定义书签。
4相关通用工具介绍. (17)4.1 EM工具.......................................... 错误!未定义书签。
1前言本文主要是简单介绍和总结日常Oracle数据在运行维护方面的一些方法和技巧。
通过该手册以便于相关技术人员的日常运维工作。
2ORACLE DB维护方法2.1数据库启动1、以oracle用户用户登录,sqlplus ‘/as sysdba’sqlplus> startup2、以oracle用户或ora816用户登录sqlplus ‘/as sysdba’sqlplus >startup nomuntsqlplus >alter database mount;sqlplus >alter database open;3、第一种启动方式是最常用的手工启动方式,第二种启动方式是数据库有故障时常用的逐步启动方式,可以观察故障点。
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 .................................... 错误!未定义书签。
ORACLE数据库⽇常维护⼿册(最全+最实⽤)最近针对ORACLE数据库⽇常维护中最实⽤的⽅法全部整理成册,⽅便⼤家参考!!2021-07-11查看数据库版本SELECT*FROM V$VERSION;查看数据库语⾔环境SELECT USERENV('LANGUAGE') FROM DUAL;查看ORACLE实例状态SELECT INSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABASE_STATUS FROM V$INSTANCE;查看ORACLE监听状态lsnrctl status查看数据库归档模式SELECT NAME,LOG_MODE,OPEN_MODE FROM V$DATABASE;查看回收站中对象SELECT OBJECT_NAME,ORIGINAL_NAME,TYPE FROM RECYCLEBIN;清空回收站中对象PURGE RECYCLEBIN;还原回收站中的对象FLASHBACK TABLE "BIN$GOZUQZ6GS222JZDCCTFLHQ==$0" TO BEFORE DROP RENAME TO TEST;闪回误删除的表FLASHBACK TABLE AAA TO BEFORE DROP;闪回表中记录到某⼀时间点ALTER TABLE TEST ENABLE ROW MOVEMENT;FLASHBACK TABLE TEST TO TIMESTAMPTO_TIMESTAMP('2009-10-15 21:17:47','YYYY-MM-DD HH24:MI:SS');查看当前会话SELECT SID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION;查看DDL锁SELECT*FROM DBA_DDL_LOCKS WHERE OWNER ='FWYANG';检查等待事件SELECT SID, ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXT FROM V$SESSION A, V$SQLAREA T1 WHERE WAIT_CLASS 'Idle'AND A.SQL_ID = T1.SQL_ID; SELECT SID, ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXT FROM V$SESSION A, V$SQLAREA T1 WHERE WAIT_CLASS 'Idle' AND A.SQL_ID = T1.SQL_ID;检查数据⽂件状态SELECT FILE_NAME,STATUS FROM DBA_DATA_FILES;检查表空间使⽤情况SELECT UPPER(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_BYTES FROM SYS.DBA_FREE_SPACE GROUP 收缩表空间ALTER TABLESPCE TS_AJ_DATA COALESCE;增加表空间⼤⼩SELECT T.TABLESPACE_NAME, T.FILE_NAME, T.BYTES /1024/1024/1024FROM DBA_DATA_FILES T WHERE T.TABLESPACE_NAME ='TS_AJ_DATA';ALTER TABLESPACE TS_AJ_DATA ADD DATAFILE '/DATA/TS_AJ_DATA05_10G.DBF' SIZE 10000MAUTOEXTEND OFF;检查不起作⽤的约束SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, CONSTRAINT_TYPE, STATUS FROM DBA_CONSTRAINTS WHERE STATUS ='DISABLE';检查发⽣坏块的数据库对象SELECT TABLESPACE_NAME, SEGMENT_TYPE, OWNER, SEGMENT_NAMEFROM DBA_EXTENTSWHERE FILE_ID=AND BETWEEN BLOCK_ID AND BLOCK_ID BLOCKS -1;检查⽆效的数据库对象SELECT OWNER,OBJECT_NAME,OBJECT_TYPEFROM DBA_OBJECT/doc/dba9a779825b68483416ac96SWHERE 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_TEXT FROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SEWHERE SL.SQL_HASH_VALUE = SA.HASH_VALUE AND SL.SID = SE.SID AND SOFAR != TOTALWORKORDER BY START_TIME;检查碎⽚程度⾼的表SELECT SEGMENT_NAME TABLE_NAME, COUNT(*) EXTENTSFROM DBA_SEGMENTSWHERE OWNER NOT IN ('SYS', 'SYSTEM')GROUP BY SEGMENT_NAMEHAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM DBA_SEGMENTS GROUP BY SEGMENT_NAME);检查表空间的 I/O ⽐例SELECT DF.TABLESPACE_NAME NAME, DF.FILE_NAME "FILE", F.PHYRDS PYR,F.PHYBLKRD /doc/dba9a779825b68483416ac96PBR,F.PHYWRTS PYW,F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DFWHERE F.FILE# = DF.FILE_IDORDER BY DF.TABLESPACE_NAME;检查⽂件系统的 I/O ⽐例SELECT SUBSTR(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 PR ,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROMFROM V$PROCESS P, V$SESSION S, V$SQLAREA AWHERE P.ADDR = S.PADDRAND S.SQL_ADDRESS = A.ADDRESSAND 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_EVENT WHERE EVENT NOT LIKE'SQL%'ORDER BY TOTAL_WAITS DESC)WHERE ROWNUM =1查找前⼗条性能差的SQLSELECT*FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXTFROM V$SQLAREAORDER BY DISK_READS DESC)WHERE ROWNUM =1检查死锁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, '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 =1 AND hk.lmode !=0AND hk.lmode !=1AND wk.request !=0AND wk.TYPE = hk.TYPEAND wk.id1 = hk.id1AND wk.id2 = hk.id2AND hk.SID = bs.SIDAND wk.SID = ws.SIDAND (ername IS NOT NULL)AND (ername ='SYSTEM')AND (ername ='SYS')ORDER BY1;查看正在运⾏的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 C WHERE A.SID = B.SIDAND B.PADDR = C.ADDRAND JOB ='21';通过SID查询SERIAL#、SPIDSELECT B.SID, B.SERIAL#, C.SPID FROM V$SESSION B, V$PROCESS C WHERE B.SID ='554' AND B.PADDR = C.ADDR;停⽌会话--SID:554 SERIAL#:1134 SPID:23242 ORACLE级别ALTER SYSTEM KILL SESSION '554,1134'; 操作系统级别kill-923242。
ORACLE数据库日常维护手册1.1数据库的安装1.1.1操作系统的预备工作Oracle 数据库的差不多软件安装在oradb1和oradb2上。
数据文件,日志文件,操纵文件通过手工建库时,指定在共享的阵列上。
Oradb1与Oradb2的安装配置方法相同,以Oradb1为例说明。
1.内核参数的修改编辑修改/etc/system 文件set shmsys:shminfo_shmmax= 0x200000000set shmsys:shminfo_shmmin=1set shmsys:shminfo_shmmni=100set shmsys:shminfo_shmseg=10set semsys:seminfo_semmni=100set semsys:seminfo_semmsl=600set semsys:seminfo_semmns=1200set semsys:seminfo_semopm=100set semsys:seminfo_semvmx=32767扩大共享内存和信号量参数。
2.检查需要的操作系统patch通过sunsolve.sun 上下载特定版本(Solaris 8)的patch集并安装,能够满足Oracle 的安装需要。
3.操作系统用户/组的添加●groupadd dba●groupadd oinstall●useradd -c "Oracle DBA" -d /home/oracle -g oinstall -G dba●修改/etc/passwd文件,更换用户登陆shell 或其他信息oracle:x:102:101::/export/home/oracle:/bin/ksh4.Oracle用户环境变量的设定在oracle 用户的初始化环境变量文件中(/export/home/oracle/.profile),增加如下内容。
ORACLE_BASE=/opt/app/oracleORACLE_HOME=/opt/app/oracle/product/8.1.7ORACLE_TERM=vt100ORACLE_OWNER=oracleNLS_LANG="SIMPLIFIED CHINESE_china".ZHS16CGB231280ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataORACLE_SID=actdbTMP=/tmpPATH=$ORACLE_HOME/bin:/usr/ccs/bin:$PATHLD_LIBRARY_PATH=/opt/oracle/app/oracle/product/8.1.7/lib:/usr/libexport ORACLE_BASE ORACLE_HOME ORACLE_TERM ORACLE_OWNER NLS_LANGORA_NLS33 ORACLE_SID TMP PATH LD_LIBRARY_PATHLANG=zhexport LANGumask 022stty erase ^HEDITOR=viexport EDITOR文件要紧设定数据库的差不多名目,数据库的SID名称和数据库的中文语言环境。
Oracle11g 新特性及常用维护工具详解V1.0目录第1章 ORACLE11g体系结构介绍 (1)1.1 ORACLE11g的后台进程介绍 (1)1.2 ORACLE11g的内存结构 (2)第2章 ORACLE11g新特性及新功能使用 (4)2.1 Oracle11g自动共享内存管理(ASMM) (4)2.1.1 SGA自动调整原理 (4)2.1.2 自动调整参数构成 (4)2.1.3 相关视图 (5)2.1.4 如何设置使用自动内存管理 (5)2.2 Oracle11g日志管理 (6)2.2.1 Oracle11g日志概述 (6)2.2.2 Oracle11g日志路径 (6)2.2.3 ADR Command Interpreter (ADRCI)介绍及使用: (7)2.3 Oracle 11g 逻辑备份和恢复 (8)2.3.1 Data Pump 导出 (8)2.3.2 Data Pump 导入 (10)2.4 Oracle11g Flashback特性 (12)2.4.1 闪回版本 (12)2.4.2 闪回事务 (13)2.4.3 闪回丢弃 (13)2.4.4 闪回表 (15)2.4.5 闪回数据库 (15)2.4.6 闪回数据存档 (16)2.5 Oracle11g ASM (23)2.5.1 ASM概述 (23)2.5.2 ASM 实例 (23)2.5.3 关于 ASM 文件 (25)2.5.4 ASM 磁盘组 (26)2.5.5 ASM局限性 (26)2.5.6 使用 SQL*Plus配置ASM (27)2.6 Oracle11g AWR和ADDM (28)2.6.1 Oracle11g AWR概述 (28)2.6.2 使用AWR进行信息采集需要的空间占用 (29)2.6.3 Snapshots(快照) (29)2.6.4 基线管理 (30)2.6.5 基线模板管理 (31)2.6.6 AWR数据传递 (32)2.6.7 AWR报表生成 (34)2.6.8 ADDM(Automatic Database Diagnostic Monitor)概述 (35)2.6.9 设置初始化参数启用ADDM (36)2.6.10 ADDM 结果分析 (37)2.6.11 使用ADDM诊断数据库性能问题 (38)2.7 Oracle11g强大的企业管理器功能(OEM) (39)2.7.1 使用EMCA工具配置数据库控制 (40)2.7.2 使用 EMCA 配置RAC数据库控制 (41)2.7.3 使用emctl命令启动、停止 (41)2.7.4 OEM使用及功能介绍 (41)第3章 ORACLE11g使用过程中常见问题 (51)3.1 Oracle11g默认安装使用保留的11g增强安全设置(包括审记和默认的口令概要文件 (51)3.1.1 oracle数据库时提示“ORA-28002: 7 天之后口令将过期” (51)3.1.2 Oracle11g版本中密码大小写敏感 (52)3.1.3 数据库alert日志中报ORA-1654: unable to extend index SYS.I_AUD1......错误. (52)3.2 oracle 11G SYSAUX空间严重不足,alter日志报ORA-1683和ORA-1688错 (53)3.3 ORACLE 11g如何启用客户端web管理 (55)3.4 解决ORACLE 11G RAC VIP资源切换时间过长 (55)3.5 如何卸载Oracle Clusterware (56)第4章常用命令说明 (60)4.1 附一:expdp (60)4.2 附二:Impdp (62)4.3 附三:adrci (64)4.4 附四:emctl (66)4.5 附五:asmcmd (66)关键词:Oracle11g ASMM Flashback ASM AWR ADDM OEM expdpimpdp adrci emctl ADR 新特性摘要:本文主要针对Oracle11g常用新特性、新功能(主要包括Oracle11g的体系结构、自动共享内存管理、日志管理、逻辑备份和恢复、Flashback特性、 ASM、AWR和ADDM、强大的企业管理器功能(OEM))进行介绍,使具有Oracle9i基础的工程师能在较短的时间内掌握Oracle11g的新功能。
资料编码 产品名称使用对象 ORACLE技术支持、技术支援、生产 产品版本编写部门 配套产品服务部 资料版本Oracle 11g 数据库日常维护指导书拟制:李强日期:2010-03-31 审核:日期:审核:日期:批准:日期:华为技术有限公司版权所有侵权必究日期修订版本作者描述2010-03-31 V1.0 李强初稿目录第1章oracle 11g数据库的启动和关闭 (6)1.1 数据库的mount与no mount (7)1.2 数据库关闭 (7)第2章Oracle 11g的spfile (8)2.1 oracle如何使用spfile (9)2.2 spfile的创建及修改 (9)2.3 如何修改数据库参数 (11)第3章Oracle 11g的自动内存管理 (11)第4章Oracle 11g的日志文件 (14)第5章管理Oracle 11g表空间 (16)5.1 建立本地管理表空间 (17)5.2 本地管理表空间的优点 (17)第6章11g的undotablespace (18)6.1 建立undotablespace (18)6.2 影响undotablespace的关键初始化参数 (19)第7章Oracle 11g的临时表空间 (20)7.1 临时表空间的作用 (20)7.2 建立临时表空间 (21)7.3 如何扩展临时表空间 (21)第8章oracle 11g的几个有用的新功能 (22)8.1 11g 的Flashback 功能 (22)8.1.1 Flashback Database (23)8.1.2 Flashback DROP (30)8.2 Data pump简介 (36)第9章oracle常见问题及处理 (38)9.1 得到oracle的错误说明及了解数据库告警信息 (39)9.1.1 理解报警日志文件 (39)9.1.2 理解后台进程跟踪文件 (39)9.2 如何维护redo logfile (40)9.2.1 如何增加redo logfile的大小 (42)9.2.2 如何增加日志成员 (43)9.3 ORA-1652到ORA-1655 (43)9.4 ORA-01555(snapshot too old) (45)9.5 ORA-600错 (46)关键词:Oracle 11g 维护日常操作摘要:本文介绍了Oracle 11g HA数据库维护的基础知识,包括数据库的启动安装、表空间管理、常见问题及处理等内容。
缩略语清单:参考资料清单:Oracle 11g 数据库日常维护指导书第1章 oracle 11g数据库的启动和关闭 oracle 11g在启动方式上同过去版本的Oracle数据库相同正常启动数据库的选项是normal,这也是数据启动的缺省选项。
以这种方式启动将启动一个实例(即instance,实例是指oracle的后台进程和SGA区),并把数据库装入(mount),然后打开数据库供用户使用。
具体操作如下:首先以oracle用户登入,su - oracle1.以nolog方式进入sqlplus$sqlplus /nologsql>2.再做为sysdba连入SQL>conn / as sysdba3.用startup命令启动SQL>startup(若启动文件名不是ORACLE缺省的文件名,则启动时应带启动目录与文件名)SQL>startup pfile=<file-pathr/init-file>或者还可以用以下方式启动数据库$sqlplus “/ as sysdba”SQL>startup1.1数据库的mount与no mount数据库可以启动为mount状态,表示只启动实例并打开控制文件,但不打开数据库;或者以nomount启动,表示只启动数据库实例而不打开数据库。
1.mount启动SQL>startup mount该方式启动数据库的的用途一般为:为数据文件更名;增加、删除或改名事物日志文件;使事物日志归档模式选项有效或失效;进行完整数据库的恢复操作2.nomount启动SQL> startup nomount该方式启动数据库的用途一般为:创建一新的数据库重建控制文件1.2数据库关闭首先以sysdba连入:$sqlplus /nolog$SQL>conn / as sysdba1.正常关闭SQL>shutdown normal(或只写shutdown)这种方式下关闭数据库在关闭前检查所有的连接,并且发出命令后不允许再有新的连接,在等所有用户断开连接后关闭数据库。
在此方式下关闭的数据库下次启动时不需要任何恢复过程。
但根据经验,在生产环境下以这种方式关闭数据库需要很长时间,甚至根本关不掉数据库,因此一般不推荐使用这种方式关闭数据库。
2.立即关闭SQL>shutdown immediate;这种方式下关闭数据库也不允许新的连接,但它并不等待已连接用户断开连接,而是由系统断开与用户的连接,然后回滚所有未提交的事务,接着关闭数据库。
这种方式关闭数据库也算是正常关闭,下次启动时也不需要做恢复,而且这种方式关闭数据库通常比较快,因此建议关闭数据库时尽量使用这种方法。
3.异常关闭SQL>shutdown abort;这种方式下关闭数据库系统不做任何的检查与回退操作而直接将数据库实例撤消并将数据文件关闭。
用这种方法关闭数据库速度最快,但这种关闭方法不能保证数据库的一致性,下次启动数据库时有可能无法打开数据库,因此通常不建议使用这种方式关闭数据库。
第2章 Oracle 11g的spfile在9i以前,Oracle使用pfile(即initsid.ora,初始化参数文件)存储初始化参数设置,这些参数在实例启动时被读取,任何修改需要重起实例才能生效;在9i以后,oracle引入了二进制文件spfile,使用spfile 你可以使用ALTER SYSTEM或者ALTER SESSION来动态修改那些可动态修改的参数,所有更改可以立即生效,你可以选择使更改只应用于当前实例还是同时应用到spfile。
这就使得所有对spfile的修改都可以通过命令行完成.随着spfile的引入,我们可以在不用停机的情况下动态调整数据库SGA 区及其它很多参数,大大提高了系统的可用性。
同时使用命令行在线修改参数值,也减少了手工编辑初始化参数文件init.ora犯错误的可能。
在Oracle 11g中,Oracle继续使用spfile作为参数文件。
2.1oracle如何使用spfile当使用不带pfile 子句的startup 命令时,Oracle 将从平台指定的默认位置上的服务器参数文件(SPFILE) 中读取初始化参数。
Oracle查找SPFILE或者创通的init.ora的顺序是:在平台指定的默认位置上,Oracle首先查找名为spfile$ORACLE_SID.ora的文件,如果没有就查找spfile.ora文件,还没有的话,就找init$ORACLE_SID.ora文件。
在$ORACLE_BASE\admin\db_name\spfile下,你很可能可以看到一个类似这样init.ora.192003215317]名字的文件,这就是初始化参数文件,只是跟上了时间戳。
对于Oracle920,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来,你可以去掉这个长后缀,就是标准的pfile文件了。
注意:对于UNIX 平台为服务器参数文件或文本初始化参数文件指定的默认位置目录是:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora对于Windows NT 和Windows 2000 其位置是:$ORACLE_HOME\database\spfile$ORACLE_SID.ora2.2spfile的创建及修改可以使用Create spfile命令基于数据库的当前参数设置创建一个SPFILE,可以使用ALTER SYSTEM或者ALTER SESSION来动态修改那些可动态修改的参数并且这些更改可以立即生效,你也可以使用ALTER SYSTEM的一个新选项SCOPE来选择使更改只应用于当前实例还是同时应用到spfile。
SCOPE参数有三个可选值:MEMORY:只改变当前实例运行;SPFILE:只改变SPFILE的设置(如果修改的是静态参数,则必须指定SCOPE=SPFILE,否则将会报ORA-02095错。
);BOTH:改变实例及SPFILE。
SPFILE支持多实例数据库(RAC),即所有的实例共用一个SPFILE。
你可以通过查看SHOW PARAMETER spfile参数的值,如果value列返回空值,那么说明你在使用pfile;也可以通过下面的方法查看当前实例是否使用了SPFILE:SQL> select decode(count(*), 1, 'spfile', 'pfile' ) USED2 from v$spparameter3 where rownum=1 and isspecified='TRUE'4 /USED------------spfile在Oracle 11g中,我们还可以通过查询V$SPPARAMETER实时的得到所有当前使用的spfile的参数值,包括使用SCOPE=SPFILE参数的ALTER SYSTEM命令改变的参数。
SPFILE可以从某个PFILE文件创建:SQL>CREATE SPFILE[=’SPFILE-NAME’] FROM PFILE[=’PFILE-NAME’];使用不带文件名的pfile在缺省位置创建spfile,可以用create spfile from pfile;命令,此时系统根据缺省位置(Unix: $ORACLE_HOME/dbs; NT: $ORACLE_HOME\database)的pfile在缺省位置创建名为spfile.ora的文件。
创建SPFILE需要SYSDBA或者SYSOPER的权限。
我们也可以根据SPFILE文件创建PFILE文件:SQL>CREATE PFILE[=’PFILE-NAME’] FROM SPFILE[=’SPFILE-NAME’];这时创建的pfile文件将是一个可编辑的文本文件。
2.3如何修改数据库参数可以使用如下命令修改数据库参数如,修改SGA_TARGET为4000M:$sqlplus / as sysdbaSQL> alter system set sga_target=4000M scope=spfile;或SQL> alter system set sga_target=4000M;第一种方式将把spfile中sga_target的值修改为4000M,在下次启动数据库时生效;第二种方式则既会修改spfile也会修改当前内存中的sga_garget值,立即生效。