[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中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...
本文将详细介绍Oracle 10G中的一些常用维护语句,这些语句对于数据库管理员(DBA)来说是日常管理工作的基石。 1. **创建表空间** `CREATE TABLESPACE` 语句用于创建一个新的表空间,它是存储数据库对象(如表、...
本文档汇总了 Oracle 日常运维中常用的命令和语句,包括登录 Oracle 数据库、创建数据表、约束的使用等。 一、登录 Oracle 数据库 在使用 Oracle 之前,需要首先登录 Oracle 数据库。有两种方式可以实现登录:使用...
Oracle日常维护的主要目标是预防性地发现和解决问题,减少系统故障的可能性,确保数据的完整性和可用性,以及优化数据库性能。 2. **适用范围**: 这些维护步骤适用于所有使用Oracle数据库的环境,无论是企业级...
在IT领域,尤其是在数据库管理与开发中,Oracle作为一款广泛使用的数据库管理系统,其经典常用的SQL语句对于数据库管理员(DBA)以及开发人员而言至...无论是日常维护还是解决复杂问题,这些语句都是必不可少的工具箱。
根据给定的文件信息,以下是对“oracle维护常用SQL”中的关键知识点的详细解析: ### 1. 查询表空间大小 SQL语句:`select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, ...
根据提供的文件信息,我们可以归纳出一系列与Oracle数据库...以上SQL查询语句覆盖了Oracle数据库日常管理和维护中的多个方面,如版本信息、表空间管理、对象状态检查等,对于Oracle数据库管理员来说是非常实用的工具。
oracle日常维护常用语句,如:表空间创建/密码设置不过期/用户解锁/无法导出空表设置/用户不区分大小写设置等
### Oracle日常维护语句整合与应用 在Oracle数据库的日常管理与维护过程中,为了确保系统的稳定运行、数据的安全以及性能的优化,管理员需要熟练掌握一系列关键的SQL命令和脚本。下面将根据提供的内容,详细解析...
根据给定的文件信息,以下是对“Oracle维护常用SQL语句”的详细解析,涉及的知识点主要包括Oracle数据库的系统视图、表空间管理、回滚段、控制文件、日志文件、自由空间、对象状态、版本信息、数据库模式、长期运行...
Oracle数据库日常维护是数据库管理员(DBA)的关键职责,确保系统的稳定性和高效运行。本篇将详细讲解几个重要的维护方面。 首先,监控数据库的连接情况至关重要。通过查询`v$session`视图,DBA可以获取当前数据库...
根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ...以上查询涵盖了Oracle数据库管理中常用的一些SQL语句,对于日常维护和性能调优非常有帮助。
进行数据库的日常维护是确保系统稳定运行的关键任务。以下是一些Oracle数据库维护中常用的SQL语句和实用场景: 1. **判断Oracle数据库的安装平台**: ```sql select * from v$version; ``` `v$version` 视图...