`
leeqoo
  • 浏览: 123910 次
社区版块
存档分类
最新评论

oracle DBA 札记

 
阅读更多

--dba 博客
蒙昭良

http://space.itpub.net/12778571



(一)处理等待sql
--1
select sid,username,blocking_session,blocking_session_status,blocking_instance,event,wait_time from

v$session where username='MZ_CRM'
--2
select sql_text from v$session a , v$sqltext_with_newlines b where decode

(a.sql_hash_value,0,prev_hash_value,sql_hash_value)=b.hash_value
and a.sid=&sid order by piece
--3
select t2.username,t2.sid,t2.serial#,t2.logon_time  from v$locked_object t1,v$session t2 
where t1.session_id=t2.sid order by t2.logon_time
--4
alter session kill '&sid,&serial#';


(二)解决数据文件达到最大值
--1
select tablespace_name 表空间,file_name 数据文件名,round(bytes/1024/1024/1024) 实际大小GB,round

(maxbytes/1024/1024/1024) 最大值GB
from dba_data_files
--2
select * from dba_tablespace_usage_metrics
--3 添加数据文件
alter tablespace users add datafile '/u01/LSDBNEW/LSDBNEW/datafile/o1_mf_macc_100ycfby1_.dbf'
size 20G autoextend on maxsize unlimited;
--4 修改最大值为不限制
alter database datafile '/u01/LSDBNEW/LSDBNEW/datafile/o1_mf_macc_100ycfby1_.dbf'
autoextend on maxsize unlimited;



(三)临时表空间过大导致磁盘空间不足
--1 查询当前默认临时空间
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--2 查看temp是否达到最大值
select file_name,tablespace_name,bytes/1024/1024/1024,autoextensible from dba_temp_files
select * from dba_tablespace_usage_metrics
--3 linux 查看磁盘空间情况
$df -lh
--4 新建临时表空间
create temporary tablespace temp02
tempfile '/u01/LSDBNEW/LSDBNEW/datafile/temp02.dbf'
size 20G autoextend on maxsize unlimited;
--5 替换原临时空间 temp
alter database default temporary tablespace temp02;
--6 查询是否已经更改过来
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--7 删除temp 之前,先kill 掉运行在temp 中的sql ,这样的sql 大多为排序语句 如:
select se.username,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value)) as space,
       tablespace,segtype,sql_text
       from v$sort_usage su , v$parameter p , v$session se, v$sql s
where p.name='db_block_size'
and su.session_addr=se.saddr
and s.hash_value=su.sqlhash
and s.address=su.SQLADDR
order by se.username,se.sid
--8 kill
alter system kill session 'sid,serial#';
--9 删除 temp
drop tablespace temp including contens and datafiles;
-- 提示这样操作不需要重启就能解决临时表空间写满的问题



(四)还原表空间过大导致磁盘空间不足
--原因
a.有较大的事物量让oracle Undo 自动扩展,产生过度占用磁盘空间的情况
b.有较大的事物没有收缩或者没有提交所致
c.还原空间用户存放数据库历史数据 , 当执行 DML 是执行的旧数据会写入还原空间 10已经丢弃回滚段,完全使用还

原表空间
--1 查磁盘空间
$df -lh
--2 查看所有表空间占用率
select * from dba_tablespace_usage_metrics

select a.tablespace_name,
       round((a.maxbytes/1024/1024),2) "sum MB",
       round((a.bytes/1024/1024),2) "datafile MB",
       round(((a.bytes-b.bytes)/1024/1024),2) "used MB",
       round(((a.maxbytes-a.bytes+b.bytes)/1024/1024),2) "free MB",
       round(((a.bytes-b.bytes)/a.maxbytes)*100,2) "percent_used"
       from (select tablespace_name,sum(bytes) bytes,sum(maxbytes) maxbytes
                    from dba_data_files where maxbytes!=0
                         group by tablespace_name) a,
            (select tablespace_name,sum(bytes) bytes,max(bytes) largest
                    from dba_free_space
                         group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by  ((a.bytes - b.bytes) / a.maxbytes) desc
--3 查询还原表空间路径文件
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like '%UNDO%'
--4 检查还原表空间状态 【查询数据行数表示 待 回滚的对象数】
select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize
--5 创建新的还原表空间
create undo tablespace undotbs2
datafile '/u01/LSDBNEW/LSDBNEW/datafile/o1_mf_undotbs1_81pnfs29_.dbf' size 30G autoextend on maxsize

unlimited;
--6 切换成新的还原空间
alter system set undo_tablespace=undotbs2 scope=both ;
--7 验证是否替换成功
show parameter undo;
--8 等待旧的还原表空间变成脱机状态  undo segement offline
select t.segment_name , t.tablespace_name,t.segment_id,t.status from dba_rollback_segs t
--9 上面查询 undo1状态均为 下线状态则删除旧还原空间
drop tablespace undotbs1 including contents and datafiles;
--10 再次查看磁盘空间
$df -lh






--数据四种关闭命令
--1 做检查点关闭数据文件,无论是否有事务和连接均可关闭,最常用
shutdown immediate ;
--2 不做检查点,启动是实例自动恢复, shutdown immediate 不能关闭可以使用 , 快速,很少使用
shutdown abort ;
--3 做检查点,等待事务处理完毕,少用
shutdown transactional;
--4 做检查点,等待用户停止使用和事务停止,少用
shutdown normal;

--数据启动的几个状态
--查看当前实例状态
select instance_name,status from v$instance;
--1 nomount  涉及文件:初始文件 spfile 或 pfile 【对重要参数修改时使用,及恢复控制文件时】
startup nomount;
--查看spfile 或 pfile
show paramter spfile; 查找路径  linux : strings spfie; 查看
--2 mount    涉及文件:初始文件找控制文件 control file 【数据库恢复数据时,和数据配置备库,数据备库状态就是 mount 】
--nomount 转至 mount
alter database mount;
--查看控制文件
select name from v$controlfile; 查找路径
--3 open     涉及文件:控制文件找数据文件,重做日志文件【数据库开发访问】
--mount 转至 open
--4 重启数据库
startup force;
alter database open;
--数据文件
select name from v$datafile;
--日志文件
select member from v$logfile;
--操作是否允许远程登录
show paramter remote_login_passwordfile;  exclusive :允许  none 不允许
alter system set remote_login_passwordfile=none scope=spfile; --重启生效 startup force;




--oracle 使用  flashback (回闪)
恢复 表删除数据  删除表 事物前后状态 库恢复 等等问题
--1 数据删除恢复
select t.start_timestamp,
       t.commit_timestamp,
       t.logon_user,
       t.operation,
       t.table_name,
       t.table_owner,
       t.undo_sql
from flashback_transaction_query t where table_name='LIC_0817_01'
--复制 undo_sql 值 plsql 执行 即可
      
--2 恢复删除表
select * from recyclebin order by droptime desc
flashback table lic_0817_01 to before drop

--3 恢复指定时间表状态
--查询表 10 点状态
select * from lic_0817_01 as of timestamp to_timestamp('2011-4-3 10:00:00','yyyy-mm-dd hh24:mi:ss);
--恢复
flashback table lic_0817_01 to timestamp to_timestamp('2011-4-3 10:00:00','yyyy-mm-dd hh24:mi:ss);

select * from lic_0817_01

--flashback 以undo segment 内容为基础,受undo_retention参数限制要使用flashback必须使用自动撤销管理表空间
--查看
show parameter undo_retention
--默认为900秒即15分钟这个时间不是绝对时间,还是主要受限于undo空间是否足够大,如果空间足够大,undo_retention 值设置更小也能操作, 提示:该空间数据存储以"先进先出"的方式进行
0
4
分享到:
评论

相关推荐

    OracleDBA入门、进阶学习路线图参考.pdf

    Oracle DBA 入门、进阶学习路线图参考 Oracle DBA 入门、进阶学习路线图参考是一个详细的学习路线图,旨在帮助新手 DBA 学习 Oracle 数据库管理系统。该路线图由经验丰富的 DBA eygle 根据自己的学习经历和经验总结...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着Oracle数据库管理员(DBA)在日常工作中经常需要进行的两项关键任务:数据迁移和性能调优。作为一名Oracle DBA,不仅要负责...

    oracle dba 面试题总结

    "Oracle DBA 面试题总结" Oracle DBA 面试题总结是 Oracle 数据库管理员需要掌握的重要知识点的汇总。本文将从 SQL 调优、执行计划、索引、绑定变量、执行计划稳定性、排序相关内存等方面对 Oracle DBA 面试题进行...

    Oracle DBA基础.doc

    Oracle DBA基础.doc Oracle DBA基础.doc Oracle DBA基础.doc Oracle DBA基础.doc

    Oracle DBA两日速成经典教程 高清完整.pdf版

    ### Oracle DBA两日速成经典教程知识点梳理 #### 第一部分:Oracle软件的安装与数据库构建 ##### 一、概述 - **标题**: Oracle DBA两日速成经典教程 - **描述**: 该教程共计259页,旨在帮助读者快速掌握Oracle...

    Oracle数据库进阶OracleDBA基础教学视频

    教程名称:Oracle 数据库进阶Oracle DBA基础教学视频教程目录:【】Oracle数据库进阶Oracle DBA基础教学视频第1章 安装数据库(流畅)【】Oracle数据库进阶Oracle DBA基础教学视频第2章 Oracle数据库体系结构(流畅...

    oracle DBA宝典和教程.rar

    Oracle DBA,全称Oracle Database Administrator,是Oracle数据库管理员的简称,主要负责Oracle数据库系统的安装、配置、性能优化、安全管理和故障排除等工作。本压缩包“oracle DBA宝典和教程”显然是一份全面的...

    oracle dba学习笔记

    Oracle DBA 学习笔记 标题:Oracle DBA 学习笔记 描述:学习使用维护 Oracle 数据库数年,对认为值得记录的 Oracle 维护脚本进行记录总结,存起来,虽然今后开源是方向,但不可否认 Oracle 仍然非常有水平的,在...

    oracle DBA认证资料 1z0-001

    Oracle DBA认证方面的资料  oracle DBA 1z0-001 oracle7.3的4本: M03989 Instroduction to Oracle: SQL and PL/SQL Participant Guide Vol. 1 M03990 Instroduction to Oracle: SQL and PL/SQL Participant ...

    oracle DBA工作职责

    ### Oracle DBA工作职责详解 #### 一、Oracle DBA的核心职责 Oracle数据库管理员(DBA)负责管理和维护Oracle数据库的高效稳定运行。其核心职责包括但不限于以下几点: 1. **安装与升级**:负责Oracle数据库...

    oracle dba基础知识

    Oracle DBA基础知识是数据库管理的重要领域,特别是在Oracle数据库系统中,DBA(Database Administrator)的角色至关重要。本篇文章将深入探讨Oracle DBA所必备的基础知识,包括Oracle的体系结构、内存结构、后台...

    Oracle DBA入门教材

    Oracle DBA,即Oracle数据库管理员,是管理和维护Oracle数据库系统的专业人士。Oracle数据库是全球广泛使用的数据库管理系统,由甲骨文公司开发,以其高性能、高可扩展性和安全性著称。本入门教材将涵盖Oracle DBA所...

    Oracle DBA宝典

    《Oracle DBA宝典》是一本专为Oracle数据库管理员(DBA)准备的指南,主要针对Oracle 10g版本。本书旨在帮助读者了解并掌握Oracle 10g数据库的安装、验证、管理和卸载等核心技能。Oracle 10g数据库的安装是一个重要的...

    Oracle DBA常用运维命令大全

    ### Oracle DBA常用运维命令详解 #### 一、SQLPLUS工具使用 **1. 运行SQLPLUS工具** - **命令**: `sqlplus` - **描述**: SQL*Plus 是 Oracle 提供的一个强大的命令行工具,用于执行 SQL 命令、脚本文件等。 - **...

    Oracle DBA 必备参考手册

    Oracle数据库管理员(DBA)在IT领域中扮演着至关重要的角色,负责管理、维护和优化Oracle数据库系统。"Oracle DBA 必备参考手册"是一份集合了关键信息和指南的资源,对于那些想要深入理解Oracle数据库操作的专业人士来...

    ORACLE DBA必备教程

    Oracle DBA,即Oracle数据库管理员,是管理和维护Oracle数据库系统的关键角色。对于新手而言,掌握Oracle DBA的基本技能和知识是进入这个领域的第一步。本文将深入解析Oracle DBA的入门教程,帮助你在短时间内理解并...

    oracle dba面试 常见问题

    oracle dba 面试,常见题,大家看看,照这个提纲整理下思路

    oracle DBA培训资料

    Oracle DBA,全称Oracle Database Administrator,是Oracle数据库管理员的简称,主要负责Oracle数据库的安装、配置、性能优化、故障排查、数据备份与恢复等工作。这份"oracle DBA培训资料"全面涵盖了Oracle DBA所需...

    Oracle DBA 常用脚本

    Oracle DBA 常用脚本(外国网站上下载)

Global site tag (gtag.js) - Google Analytics