资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle数据库 基础管理毕建波2011-7-2DatabaseOracle构架InstanceSGARedo log bufferData buffer cacheShared poolData dict. cacheLibrary cachePMON DBW0SMON LGWRCKPTOthersUser processServer process PGAControl filesData files Redo log filesArchived log filesParameter filePassword fileOracle数据库文件Password fileParameter fileArchived log filesControl filesData files Redo log filesDatabase其他关键物理结构DatabasePassword fileParameter fileArchived log filesOracle实例Oracle实例: 是访问Oracle数据库的途径 通常是一个数据库对应一个实例后台进程后台进程内存结构内存结构InstanceSGARedo log bufferData buffer cacheShared poolPMON DBW0SMON LGWRCKPTOthers连接Oracle实例ServerUserClientClientUserServerOracle serverOracle serverServerServerUserServerApplication serverApplication serverBrowserBrowser共享池 库缓存区(library cache)存储SQL语句、 分析代码和执行计划 字典缓存区(data dictionary cache)存储 表、列和其他对象的定义和权限 大小由SHARED_POOL_SIZE参数确定 Shared poolData dictionary cacheLibrary cache数据块缓存区 存储最近被使用到的数据块 每个缓存区大小由DB_BLOCK_SIZE参数确定 缓存区数量由DB_CACHE_SIZE参数确定 Data buffer cache程序全局区 不共享,总大小由pga_aggregate_target控 制 只有服务进程可以写入 包含: 排序区 会话信息 游标状态 堆栈空间Server processPGA重做日志缓存区 大小由LOG_BUFFER参数确定 记录实例对数据进行的修改 用于前滚操作 循环使用Redo log buffer归档 数据库归档模式 当发生磁盘失效时不需要做恢复操作的数据库 使用非归档模式 成品数据库使用归档模式 ARC0进程 自动归档联机重做日志 保存所有对数据库做的修改DatabaseLogicalPhysicalTablespaceData fileOS blockOracleblockSegmentExtentOracle存储结构数据库块 I/O的最小单元 有一块或多块OS块组成 由DB_BLOCK_SIZE参数设定 在数据库创建时设定数据字典视图TablespacesDBA_TABLESPACESSegmentsDBA_SEGMENTSData filesDBA_DATA_FILESFree extentsDBA_FREE_SPACEUsed extentsDBA_EXTENTS查询DBA_SEGMENTS常用信息 OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME 大小 EXTENTS BLOCKS BYTES存储字句设定 INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE 其他信息 Location Tuning查询DBA_EXTENTS鉴别 OWNER SEGMENT_NAME EXTENT_ID 大小 BLOCKS BYTES位置 TABLESPACE_NAME RELATIVE_FNO FILE_ID BLOCK_ID查询DBA_FREE_SPACE 位置 TABLESPACE_NAME RELATIVE_FNO FILE_ID BLOCK_ID 大小 BYTES BLOCKSOPENOPENMOUNTMOUNTNOMOUNTNOMOUNTSHUTDOWNSHUTDOWN打开在控制文件中打开在控制文件中 描叙的所有文件描叙的所有文件打开控制文件打开控制文件 (controlfilecontrolfile)启动实例(启动实例(spfilespfile)启动和关闭数据库(一)启动数据库启动数据库关闭数据库关闭数据库启动和关闭数据库(二)启动数据库STARTUP nomount PFILE=/DISK1/initU15.ora;把数据库从nomount状态改变到mount状态ALTER DATABASE MOUNT;把数据库打开到只读状态ALTER DATABASE OPEN READ ONLY;AxxxxTxxooIxxxoShutdown Mode Allow new connectionsWait until current sessions end Wait until current transactions endForce a checkpoint and close filesNxoooShutdown mode: Shutdown mode: A AbortA AbortI ImmediateI ImmediateT TransactionalT TransactionalN NormalN Normal启动和关闭数据库(三)YESYESNONOxo关闭数据库选项连接数据库失败故障解决(一 ) 确认客户端和服务器端之间的网络连通 ping 主机ip 确认tnsnames、监听的状态 tnsping 数据库别名 TNS-12541: TNS: 无监听程序 TNS-12545: 因目标主机或对象不存在, 连接失败 ORA-12514: TNS: 监听程序当前无法识别连接 描述符中请求的服务连接数据库失败故障解决(二 ) 查看tnsname.ora的配置test =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = bibo)(PORT = 1521)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = test)C:oracleproduct10.2.0dbNETWORKADMIN连接数据库失败故障解决(三 ) 查看监听状态 lsnrctl status连接数据库失败故障解决(四 ) 动态注册和配置文件注册 Alter system register;C:oracleproduct10.2.0dbNETWORKADMINlistene r.ora锁表故障解决(一) Dml锁 锁定能够保证当某个用户正在更新表里的一行数 据时,其他用户不能同时更新相同的数据行,而 且也不能删除或修改被更新的表 TX锁(事务锁、行级锁) 只有一种X锁 锁表故障解决(二) TM锁(表级锁) 行级排他锁(Row Exclusive,简称RX锁) 行级共享锁(Row Shared,简称RS锁) 共享锁(Share,简称S锁) 排他锁(Exclusive,简称X锁) 共享行级排他锁(Share Row Exclusive,简称 SRX锁) 锁表故障解决(三) TM锁小节 锁表故障解决(四)锁检查语句(1)查看当前系统中被锁的对象 SELECT rpad(oracle_username, 10) o_name,session_id sid,decode(locked_mode,0,None,1,Null,2,Row share,3,Row Exclusive,4,Share,5,Share Row Exclusive,6,Exclusive) lock_type,object_name,xidusn,xidslot,xidsqnFROM v$locked_object, all_objectsWHERE v$locked_object.object_id = all_objects.object_id;(2) -查询当前系统堵塞其他用户的session信息 SELECT decode(request, 0, Holder: , Waiter: ) | sid sess,id1,id2,lmode,request,TYPEFROM v$lockWHERE (id1, id2, TYPE) IN(SELECT id1, id2, TYPE FROM v$lock WHERE request 0)ORDER BY id1, request;(3)SELECT * FROM dba_waiters; (4) SELECT * FROM Dba_Blockers;临时表空间不足故障解决(一 ) 报错信息:ORA-01652 unable to extend temp segment by string in tablespace string 查看当前临时表空间信息SELECT * FROM dba_temp_files; 查看临时表空间使用率SELECT round(nvl(a.used, 0) / b.total, 2)FROM (SELECT tablespace, SUM(blocks * 8) / 1024 usedFROM v$sort_usageGROUP BY tablespace) a,(SELECT tablespace_name, SUM(blocks * 8) / 1024 totalFROM dba_temp_filesGROUP BY tablespace_name) b临时表空间不足故障解决(二 ) 使用temp表空间的session情况SELECT sess.sid,sess.username,sess.osuser,sess.machine,segtype,blocks * 8 / 1000 “MB“,sql_textFROM v$sort_usage sort, v$session sess, v$sql SQLWHERE sort.session_addr = sess.saddrAND SQL.sql_id(+) = sess.sql_idORDER BY blocks DESC;临时表空间不足故障解决(三 ) 增加临时表空间 alter tablespace temptbs add datafile c:poptest.dbf size 1000m;alter database datafile resize 1000m;CREATE TEMPORARY TABLESPACE temp_demo TEMPFILE /oradata/temp01.dbf SIZE 50M AUTOEXTEND ON; alter user scott temporary tablespace temp;alter database default temporary tablespace temp;回滚表空间不足故障解决(一 ) 错误信息:ORA-0
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号