基本命令
一般情况下,建议用户自己创建一个表空间来存放业务数据,或者将数据存放在默认的
用户表空间 MAIN 中。
用户可以通过执行如下语句来查看 SYSTEM、ROLL、MAIN 以及 TEMP 的表空间相关信
息。
查看数据库中实例信息
SELECT * FROM V$INSTANCE;
查询内存池 BUFFERPOOL 的页数、读取页数和命中率信息
SELECT NAME,N_PAGES,N_LOGIC_READS,RAT_HIT FROM V$BUFFERPOOL;
查询系统中上锁的事务、锁类型,以及表 ID 信息
SELECT TRX_ID,LTYPE,LMODE,TABLE_ID FROM V$LOCK;
查看系统中所有活动的线程信息
SELECT top 2* FROM V$THREADS;
查询系统执行的 SQL 历史信息
SELECT SESS_ID,TOP_SQL_TEXT,TIME_USED FROM V$SQL_HISTORY;
查看字典缓存的信息
SELECT * FROM V$DICT_CACHE;
查看会话信息
SELECT SESS_ID,SQL_TEXT,STATE,CREATE_TIME,CLNT_HOST FROM V$SESSIONS;
确定高负载的 SQL
在打开监控开关(ENABLE_MONITOR=1、MONITOR_TIME=1)后,可以通过查询动态
视图 V$LONG_EXEC_SQLS 或 V$SYSTEM_LONG_EXEC_SQLS 来确定高负载的 SQL 语句。
前者显示最近 1000 条执行时间较长的 SQL 语句,后者显示服务器启动以来执行时间最长的
20 条 SQL 语句。例如:
SELECT * FROM V$LONG_EXEC_SQLS;
或者
SELECT * FROM V$SYSTEM_LONG_EXEC_SQLS;
SELECT * FROM V$TABLESPACE;
查看用户占用的空间
可以使用系统函数 USER_USED_SPACE 得到用户占用空间的大小,函数参数为用户名,
返回值为占用的页的数目。
SELECT USER_USED_SPACE('TEST_USER');
查看表占用的空间
可以使用系统函数 TABLE_USED_SPACE 得到表对象占用空间的大小,函数参数为模式
名和表名,返回值为占用的页的数目。
SELECT TABLE_USED_SPACE('SYSDBA', 'TEST');
查看表使用的页数
可以使用系统函数 TABLE_USED_PAGES 得到表对象实际使用页的数目,函数参数为模
式名和表名,返回值为实际使用页的数目。
SELECT TABLE_USED_PAGES('SYSDBA', 'TEST');
查看索引占用的空间
可以使用系统函数 INDEX_USED_SPACE 得到索引占用空间的大小,函数参数为索引
ID,返回值为占用的页的数目。
SELECT INDEX_USED_SPACE(33555463);
查看索引使用的页数
可以使用系统函数 INDEX_USED_PAGES 得到索引实际使用页的数目,函数参数为索引
ID,返回值为实际使用页的数目。
SELECT INDEX_USED_PAGES(33555463);
查看数据库状态:
Ps -ef | grep dms
查看数据库版本:
Select svr_version ||’’||ID_CODE 数据库版本 from v$instance;
查看数据库授权:
Select * from v$license;
在线日志信息:
Select * from v$rlogfile
归档配置:
Select arch_name,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;
归档和数据库是否分开存储:
Select top 1 D.path 数据目录 A.dest_test 归档目录 from v$datafile D, v$dm_arch_ini A;
备份信息:
Select name,describe from SYSJOB.SYSJOBS;
数据是否和备份分开存储:
Select top 1 NAME,COMMAND from “SYSJOB”.”SYSJOBSTEPS”;select path from v$datafile;
SQL日志策略:
Select para_name,para_value from v$dm_ini where para_name=’SVR_LOG’’
是否有系统管理员增加用户:
Select username from dba_users where account_status=’OPEN’;
表空间规划,建议每个用户有独立表空间:
Select username,default_tablespace from dba_users where account_status=’OPEN’;
应用用户是否有超出权限的配置:
Select grantee,granted_role from dba_role_privs where granted role=’DBA’;
是否存在死锁:
Select * from v$deadlock_history;
是否存在历史错误:
Select * from v$runtime_ERR_history;
运行日志是否存在错误记录:
Select * from v$instance_log_history where level$ in (‘ERROR’,’FATAL’);
切换模式:
Show global info;
故障切换测试:
Choose takeover GDW1_01;takeover GDW01.DW1_01B;
隔离级别修改:
用户可以在事务开始时使用以下语句设定事务为读提交隔离级:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
用户可以在事务开始时使用以下语句设定事务为串行化隔离级:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
用户可以在事务开始时使用以下语句,设定事务为读未提交隔离级:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
用户可以在事务开始时使用以下语句,设定事务为只读事务:
SET TRANSACTION READ ONLY;
http://eco.dameng.com