`
lidi395350782
  • 浏览: 8008 次
  • 性别: Icon_minigender_1
  • 来自: 新疆
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle日常维护常用的55条语句

阅读更多
[b]1.如何查看数据库的状态[/b] unix下 ps -ef | grep ora windows下 看服务是否起来 是否可以连上数据库 SQL> select status, instance_role from v$instance; 通过此语句可以核查数据库是否出于open状态 2.如何查有多少个数据库实例   SQL>SELECT * FROM V$INSTANCE; 3.怎样查得数据库的SID select name from v$database; 也可以直接查看 init.ora文件 4.查看表空间占用情况 select b.file_id file_ID, b.tablespace_name tablespace_name, b.bytes Bytes, (b.bytes-sum(nvl(a.bytes,0))) used, sum(nvl(a.bytes,0)) free, sum(nvl(a.bytes,0))/(b.bytes)*100 Percent from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.bytes order by b.file_id; 5如何.获取表空间信息 select * from dba_tablespaces(或者v$tablespace); 6.如何改变表空间的大小 通过手动改变数据文件大小来改变表空间大小:  Alter database datafile ‘/opt/oracle/data/datafilename.dbf’ resize 500m; 通过在表空间中增加数据文件来改变表空间大小:  Alter tablespace tablespace_name add datafile ‘opt/oracle/data/newdatafile.dbf’ size 300m; 7.如何增加临时表空间大小 如果原来的用户缺省临时表空间大小不够,此时首先用如下语句创建一足够大的临时表空间:  CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M; 然后用如下语句改变用户的缺省临时表空间:  alter user username temporary tablespace new_temporary_tablespace_name; 8. 如何查看数据文件的信息    数据文件信息:    Select * from dba_data_files(v$datafile); 临时数据文件信息:    Select * from dba_temp_files(v$tempfile) 9.如何将表移动之表空间 ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME; 10.如何查看回滚段名称及大小   select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name ; 11.如何察看回滚段竞争情况 Select * from v$undostat; 返回结果中nospaceerrcnt字段的值应该为0,如果持续出现非0,建议增加回滚段表空间大小. 12.如何查看控制文件. select name from v$controlfile; 13.如何查看日志文件 select member from v$logfile; 14.如何查看日志文件的切换时间  SQL>select to_char(first_time,'yyyy-mm-dd hh24:mi:ss') change_time from v$log_history; 15.查看数据库版本 select * from v$version 16.查看会话情况 select machine,terminal from v$session; 17.如何查看系统最大会话数 Select * from v$parameter where name like ‘proc%’ Show parameter processes Select * from v$license 18. 如何查看系统被锁的事务时间 select * from v$locked_object 19.查看数据库的创建日期和归档方式 select created,log_mode,log_mode from v$database 20.如何以archivelog的方式运行oracle init.ora log_archive_start = true RESTART DATABASE 21.如何获取有哪些用户在使用数据库 select username from v$session; 22.如何显示当前连接用户 SHOW USER 23.如何获取用户相关信息 Select * from dba_users(dba_ts_quotas); 从结果中可以查看用户的缺省临时表空间等信息. 24.如何查看每个用户的权限 SELECT * FROM DBA_SYS_PRIVS; 25. 如何知道使用CPU多的用户session   11是cpu used by this session select a.sid,spid,status,substr(a.program,1,40)prog,a.terminal,osuser,value/60/100 value from v$session a,v$process b,v$sesstat c where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc; 26.unix 下怎么调整数据库的时间? su -root date -u 08010000 27.如何查看当前数据库里锁的情况 以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句: select object_id,session_id,locked_mode from v$locked_object; 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;如果有长期出现的一列,可能是没有释放的锁。我们可以用下面SQL语句杀掉长期没有释放非正常的锁: alter system kill session 'sid,serial#'; 如果出现了锁的问题, 某个DML操作可能等待很久没有反应。 28.如何解锁 ALTER SYSTEM KILL SESSION ‘SID,SERIR#’; 29.如何获取错误信息 SELECT * FROM USER_ERRORS; 30.如何获取连接状况 Select * from DBA_DB_LINKS; 31、如何查看sga情况 Select name, bytes from SYS.V_$SGASTAT ORDER BY NAME ASC 32.如何检查job状态 Select * from dba_jobs(user_jobs); Broken列应该为N;如果Broken列为Y,检查oracle告警日志,分析job失败的原因。解决后运行: exec dbms_job.run(job); 33.如何增加oracle连接数 ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下: sessions=(1.1*process+5) 但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/system/ 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。 semmns的计算公式为:SEMMNS>processes+instance_processes+system processes=数据库参数processes的值 instance_processes=5(smon,pmon,dbwr,lgwr,arch) system=系统所占用信号量。系统所占用信号量可用下列命令查出:#ipcs -sb 其中列NSEMS显示系统已占用信号量。 其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为 零,也就是没有限制。我们可以放心大胆地使用数据库了。 34.如何创建SPFILE SQL> connect / as sysdba SQL> select * from v$version; SQL> create pfile from spfile; SQL> CREATE SPFILE FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora'; 35.内核参数的作用 shmmax   含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。   设置方法:0.5*物理内存   例子:Set shmsys:shminfo_shmmax=10485760   shmmin   含义:共享内存的最小大小。   设置方法:一般都设置成为1。   例子:Set shmsys:shminfo_shmmin=1:   shmmni   含义:系统中共享内存段的最大个数。   例子:Set shmsys:shminfo_shmmni=100   shmseg   含义:每个用户进程可以使用的最多的共享内存段的数目。   例子:Set shmsys:shminfo_shmseg=20:   semmni   含义:系统中semaphore identifierer的最大个数。   设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。   例子:Set semsys:seminfo_semmni=100   semmns   含义:系统中emaphores的最大个数。   设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。   例子:Set semsys:seminfo_semmns=200   semmsl:   含义:一个set中semaphore的最大个数。   设置方法:设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。   例子:Set semsys:seminfo_semmsl=-200 36.如何单独备份一个或多个表 exp 用户/密码 tables=(表1,…,表2) 37.如何单独备份一个或多个用户 exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件 38.Oracle常用系统文件有哪些 通过以下视图显示这些文件信息:v$database,v$datafile,v$logfile v$controlfile v$parameter 39.如何快速清空一个大表 SQL>truncate table table_name 40.如何查看系统有多少个表  select * from all_tables; 41.查看用户下所有的表 SQL>select * from user_tables; 42.如何查看sql语句执行所用的时间 SQL>set timing on ; SQL>select * from tablename; 43.怎么把select出来的结果导到一个文本文件中 SQL>SPOOL C:\ABCD.TXT; SQL>select * from table; SQL >spool off; 44.怎样估算SQL执行的I/O数 SQL>SET AUTOTRACE ON ; SQL>SELECT * FROM TABLE; 或者 SQL>SELECT * FROM v$filestat ; 可以查看IO数 45.如何使用伪表dual dual是oracle数据库中的一个伪表,任何用户均可读取。 select user from dual;//察看当前连接用户 select sysdate from dual;//察看数据库时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;//察看数据库时间 46.如何建立一个与现存数据库相同,但不包含数据的空库 exp system/manager full=Y rows=N file=full.dmp imp system/manager full=Y rows=N file=full.dmp 47.如何搜索出前N条记录 SELECT * FROM empLOYEE WHERE ROWNUM SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and  table_name='TABLE_NAME'; 49.事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)的解决办法。 向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。 50.如何监控 SGA 中共享缓存区的命中率,应该小于1%   select sum(pins) "Total Pins", sum(reloads) "Total Reloads",   sum(reloads)/sum(pins) *100 libcache   from v$librarycache; 51.如何监控当前数据库谁在运行什幺SQL语句   SELECT osuser, username, sql_text from v$session a, v$sqltext b   where a.sql_address =b.address order by address, piece; 52.修改sqlnet.ora,实现客户端IP限制 如果要在网络上做一些IP地址的限制,一般情况下我们首先想到的是用网络层的防火墙软件。要找网管来设置。 但是如果网管不在,或者仅仅想在数据库层来实现IP地址的限制,DBA们只要修改Server端的一个网络配置文件 sqlnet.ora文件就可以了。 Oracle9i以上版本,在目录$ORACLE_HOME/network/admin 或者 %ORACLE_HOME%\network\admin 下)增加如下内容: tcp.validnode_checking=yes tcp.invited_nodes =(ip1,ip2,……) #允许访问的ip tcp.excluded_nodes=(ip1,ip2,……) #不允许访问的ip 修改sqlnet.ora后,重新启动listener服务,改动就可以生效了。 如果我们从未允许的IP客户端连接过来,会出现以下错误: ERROR: ORA-12537: TNS: 连接已关闭 53.如何察看还没提交的事物 select * from v$locked_object;   select * from v$transaction; 54.如何察看错误码的详细信息 在oracle里面我们可以使用oerr来打印关于错误码的描述。 比如错误码为:ORA-00074: no process has been specified 此时应该输入:oerr ora 00074 打印结果为: 00074, 00000, "no process has been specified" // *Cause: No debug process has been specified. // *Action: Specify a valid process. 55、如何捕捉运行很久的SQL column username format a12 column opname format a16 column progress format a8 select username,sid,opname, round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_text from v$session_longops , v$sql where time_remaining 0 and sql_address = address and sql_hash_value = hash_value;
分享到:
评论

相关推荐

    oracle 日常维护

    oracle 日常维护

    oracle常用经典数据库管理sql语句

    oracle常用经典数据库管理sql语句,涵盖数据库日常维护和管理的SQL语句。

    oracle维护常用语句.txt

    oracle日常维护常用语句,如:表空间创建/密码设置不过期/用户解锁/无法导出空表设置/用户不区分大小写设置等

    oracle维护常用语句 数据库

    oracle数据库日常维护语句,经典类型的语句和实力场景。覆盖大部分的情况和处理。

    Oracle 数据库日常维护

    本文档包含以下内容: 1. Oracle 数据库日常维护 2. Oracle DBA 常用管理脚本 3. Oracle DB 常用 SQL 语句

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    10.2 Grid Infrastructure常用的管理工具 10.2.1 OLSNODES工具 10.2.2 CRSCTL工具 10.2.3 SRVCTL工具 10.2.4 OIFCFG接口配置工具 10.3验证工具CVU 10.3.1基于阶段的验证 10.3.2 Grid Infrastructure安装阶段...

    Oracle9i开发文档

    Oracle9i的开发学习资料,PDF中文版,非扫描版,13章全,附带8个章节使用的SQL语句和代码。 第一章 从零开始 Oracle9i基础 第二章 构建环境 安装Oracle9i 第三章 管理入门 数据库服务器的管理 第四章 数据利器 SQL ...

    性能监控常用语句

    性能监控常用语句,很实用,写的很全面,对于DBA的日常维护有用

    ORACLE DBA 维护脚本(推荐)

    1,常用的动态性能视图讲解 2,日常语句优化调整,sql语句调整。 3,体系结构参数调整。 4,top sql,基于IO ,CPU,sga,hint 5, 数据库每日,每月体检脚本

    oracle参考手册

    oacle的参考手册,常用的sql语句,日常维护命令等,经过测试验证可以执行

    SQLPLUS命令的使用大全

    两天写几个oracle日常维护的常用脚本,N多sqlplus命令看不明白,这个“SQL*PLUS命令的使用大全”帮了不少忙。 -------------------------------------------------------------------------------------------------...

    Oracle DBA 参考手册

    2.2. DBA 日常工作——运行维护 19 2.2.1. ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: 19 2.2.2. 每天的工作 20 2.2.3. 每周的工作 21 2.2.4. 每月的工作 22 DBA例行工作 22 2.3. 开发 DBA 工作...

    web课程设计仓库管理应用网站系统(1).doc

    这样既可以保证日常的生产不至于因 为原材料不足而导致停产,确保生产顺利进行,也可以使企业不会因原材料的库存数量 过多而积压企业的流动资金,从而提高企业的经济效益。 1 1.2 系统需求分析 仓库管理员和供应业务...

    web课程设计仓库管理应用网站系统.doc

    这样既可以保证日常的生产不至于因 为原材料不足而导致停产,确保生产顺利进行,也可以使企业不会因原材料的库存数量 过多而积压企业的流动资金,从而提高企业的经济效益。 1 1.2 系统需求分析 仓库管理员和供应业务...

    vc++ 应用源码包_1

    任务管理器应该大家都很熟悉,论坛里也有好多的任务管理器的源码,解决CListCtr刷新时滚动条跳到开始处。 VC++实现网络连接查看器源码 非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++...

    vc++ 应用源码包_2

    任务管理器应该大家都很熟悉,论坛里也有好多的任务管理器的源码,解决CListCtr刷新时滚动条跳到开始处。 VC++实现网络连接查看器源码 非常好的一个实例,把网络连接的UDP/TCP都插入到CList控件中显示出来。 VC++...

    vc++ 应用源码包_6

    一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、...

Global site tag (gtag.js) - Google Analytics