Oracle DBA常用SQL

一、查询数据库配置

查询数据库名字、创建日期
select name,created,log_mode,open_mode from v$database

查询主机名、实例名及版本
select host_name,instance_name,version from v$instance

查看详细版本信息
select * from v$version

查看控制文件
select * from v$controlfile

查看重做日志配置信息
select group#,members,bytes,status,archived from v$log

查看重做日志(成员)文件存放的具体位置
select * from v$logfile

查看数据库备份和恢复策略及归档文件位置
archive log list
执行此语句需sysdba权限

查询表空间情况
select tablespace_name, block_size, status, contents, logging from dba_tablespaces

查询表空间存储文件
select file_id, file_name, tablespace_name, status, bytes from dba_data_files

查询用户情况
select username,created from dba_users

二、与重做日志相关的命令

查看重做日志组信息:
select * from v$log
查看重做日志组成员信息:
select * from v$logfile

重做日志切换命令
alter system switch logfile

创建新的日志组
alter database add logfile ('c:\1.log','d:\3.log');
删除日志组
alter database drop logfile group 组号

添加日志组成员
alter database add logfile member 'c:\redo01b.log' to group 1,'d:\redo02b.log' to group 2
删除日志组成员
alter database drop logfile member 'c:\redo01b.log'

初始化联机重做日志
alter database clear [unarchived] logfile group 组号
若崩溃的重做日志已不能归档,可以使用unarchived关键字避免对它们进行归档。

3、其它常见问题
查看表占用的空间:
select owner,table_name,
NUM_ROWS,
BLOCKS*AAA/1024/1024 "Size M",
EMPTY_BLOCKS,
LAST_ANALYZED
from dba_tables
where table_name='XXX';
Here: AAA is the value of db_block_size ;
XXX is the table name you want to check

查看系统允许的最大会话数:
select * from v$parameter where name like 'proc%';
或者:
show parameter processes

查看曾经到达的最大会话数记录(SESSIONS_HIGHWATER)
select * from v$license;

请问如何分辨某个用户是从哪台机器登陆ORACLE的?
SELECT machine , terminal FROM V$SESSION;

查看系统的数据字典
select * from dictionary

查看数据字典的字段备注
select column_name,comments from dict_columns where table_name='XXXX';
备注内容不是很全,但总比没有强

查看系统被锁的事务
select * from v$locked_object;

获取正在使用数据库的用户
select username from v$session;

查询用户系统权限
select * from dba_sys_privs where grantee='HR'

修改表使用的表空间
alter table YOUT_TABLE_NAME move NEW_TABLESPACE_NAME;

修改索引使用的表空间
alter index YOUR_INDEX_NAME rebuild tablespace NEW_TABLESPACE_NAME;

如何解锁?
ALTER SYSTEM KILL SESSION 'SID,SERIR#';

Oracle产生随机数的函数
dbms_random.random

查看数据库字符状况?
SELECT * FROM NLS_DATABASE_PARAMETERS;
SELECT * FROM V$NLS_PARAMETERS;

查询表空间信息?
SELECT * FROM DBA_DATA_FILES;

如何给表、列加注释?
comment on table 表 is '表注释';
comment on column 表.列 is '列注释';

如何在字符串里加回车
select '我的博客:'||chr(10)||'wallimn.iteye.com' from dual

怎幺可以快速做一个和原表一样的备份表?
create table new_table as (select * from old_table);

怎幺在sqlplus下修改procedure?
select line,trim(text) t from user_source
where name =’A’ order by line;

EXP 如何加query参数?
EXP USER/PWD FILE=A.DMP TABLES(BSEMPMS)
QUERY='"WHERE EMP_NO=\'S09394\'\";

如果修改表名?
alter table old_table_name rename to new_table_name;

你可能感兴趣的:(oracle,sql,C++,c,C#)