运维笔记--oracle数据库常用查询语句

1. 查看数据库启动状态

SQL> select status from v$instance;

2. 查看数据库名or实例名

SQL> select name from v$database;   --- 查看数据库名
SQL> select instance_name from v$instance;   --- 查看实例名

3. 查看数据库连接数&会话相关

SQL> select count(*) from v$session;  --- oracle的连接数
SQL> select count(*) from v$session where status='ACTIVE'; ---oracle的并发连接数
SQL> select username,count(username) from v$session where username is not null group by username;  ---查看不同用户的连接数

SQL> select sid,serial#,username,program,machine,status from v$session; ---列出当前数据库建立的会话情况 ---SID 会话(session)的ID号; ---SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话; ---USERNAME 建立该会话的用户名; ---PROGRAM 这个会话是用什么工具连接到数据库的; ---STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作; ---如果DBA要手工断开某个会话,则执行: ---alter system kill session \'SID,SERIAL#\'; SQL> SELECT username, machine, program, status, COUNT (machine) AS 连接数量 FROM v$session GROUP BY username, machine, program, status ORDER BY machine; ---分组统计

4. 查看数据库用户信息

SQL> select * from all_users;  ---查看所有用户
SQL> select * from V$PWFILE_USERS; ---查看哪些用户有sysdba或sysoper系统权限

5. 查看表空间使用情况

set pages 12222 lines 132;
set serveroutput on size 1000000;
col tablespace_name format a30;
col autoextensible format a7;

SELECT a.tablespace_name, round(a.s, 2) AS "CURRENT_TOTAL(MB)"
    , round(a.s - f.s, 2) AS "USED(MB)"
    , f.s AS "FREE(MB)"
    , round(f.s / a.s * 100, 2) AS "FREE%"
    , g.autoextensible, round(a.ms, 2) AS "MAX_TOTAL(MB)"
FROM (
    SELECT d.tablespace_name, SUM(bytes / 1024 / 1024) AS s
        , SUM(decode(maxbytes, 0, bytes, maxbytes) / 1024 / 1024) AS ms
    FROM dba_data_files d
    GROUP BY d.tablespace_name
) a, (
    SELECT f.tablespace_name, SUM(f.bytes / 1024 / 1024) AS s
    FROM dba_free_space f
    GROUP BY f.tablespace_name
) f, (
    SELECT DISTINCT tablespace_name, autoextensible
    FROM DBA_DATA_FILES
    WHERE autoextensible = 'YES'
    UNION
    SELECT DISTINCT tablespace_name, autoextensible
    FROM DBA_DATA_FILES
    WHERE autoextensible = 'NO'
        AND tablespace_name NOT IN (
            SELECT DISTINCT tablespace_name
            FROM DBA_DATA_FILES
            WHERE autoextensible = 'YES'
        )
) g
WHERE a.tablespace_name = f.tablespace_name
    AND g.tablespace_name = f.tablespace_name
ORDER BY "FREE%";

6. 查看数据文件存放路径

select name from v$datafile; 

7. 查看是否启动闪回

select * from v$flash_recovery_area_usage; 

8. 查看用户下的表

    --查看指定用户下的表:

select * from all_tables where owner='USER01'
---USER01为用户名,必须大写。

    --查看当前登陆用户下的表:

select table_name from user_tables;

9. 启动/关闭数据库

---关闭数据库
SQL> shutdown immediate;  
---启动数据库 方式1:直接启动
SQL> startup;  
---启动数据库 方式2: 按步骤启动
SQL> startup nomount;
SQL> alter database mount;
SQL> alter database open; 

 

posted @ 2020-01-03 14:54  hello-Jesson  阅读(751)  评论(0编辑  收藏  举报