数据库篇(Oracle) ---常用管理命令

标签: Oracle 管理命令
10人阅读 评论(0) 收藏 举报
常用管理命令

数据库监听

--启动监听服务:
lsnrctl start
--停止监听服务:
lsnrctl stop
--查看监听状态:
lsnrctl status

用户相关

--创建临时表空间
create temporary tablespace TMP
tempfile '/oracle11g/product/11.2.0/oradata/orcl/TMP.dbf'
size 50m
autoextend on
next 50m maxsize 10240m
extent management local;
--创建表空间
create tablespace space
logging 
datafile '/oracle11g/product/11.2.0/oradata/orcl/space.dbf'
size 50m
autoextend on
next 50m maxsize 10240m
extent management local;

--创建用户并赋予表空间
create user username  identified by password default tablespace space  temporary tablespace TMP;

--赋予用户表空间
alter user username default tablespace space;

--赋予连接等权限
GRANT CONNECT                TO username;
GRANT EXP_FULL_DATABASE      TO username; 
GRANT IMP_FULL_DATABASE      TO username;
GRANT RESOURCE               TO username;
GRANT UNLIMITED TABLESPACE   TO username;
GRANT DEBUG CONNECT SESSION  TO username;
grant create session 		 To username;

--如果使用oracle加密解密需要单独赋予权限
GRANT EXECUTE ON DBMS_CRYPTO TO username;
grant execute on dbms_crypto To username;

--删除用户,cascade级联删除用户的关联对象
drop user username cascade;

--修改用户密码
alter user username identified by newPassword;

--查询当前用户角色
select * from user_role_privs;
select * from session_privs;

--查看当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs

--显示当前用户
show user;

--删除表空间
drop tablespace space_name including contents and datafiles;
--修改表空间大小(注:修改=可以增大,可以减小)
alter database datafile '/u01/app/oracle/oradata/ORCL/ittbank.dbf' resize 200m;
--增加表空间大小(注:增加=只能增大,不能减少)
alter tablespace space_name add datafile '/u01/app/oracle/oradata/ORCL/ittbank.dbf' size 2048m;
--查询数据库文件:
select * from dba_data_files;
--查询当前存在的表空间:
select * from v$tablespace;
--表空间情况
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
--查询表空间剩余空间
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

连接数

--查询用户连接数
select count(*) from sys.v_$session;
--修改连接数:(注:要重启数据库)
alter system set processes=1000 scope=spfile;
--查询最大连接数
select value from v$parameter where name = 'processes';
--关闭
shutdown immediate;
--启动
startup;

锁表查询

--锁表查询SQL
SELECT object_name, machine, s.sid, s.serial# 
FROM gv$locked_object l, dba_objects o, gv$session s 
WHERE l.object_id = o.object_id 
AND l.session_id = s.sid;  

--释放SESSION SQL: 
alter system kill session 'sid, serial#'; 
ALTER system kill session '23, 1647';

查看数据库版本

--查看数据库版本
Select * from v$version;
--查看数据库的创建日期和归档方式
Select Created, Log_Mode, Log_Mode From V$Database;

查看还没有提交的事物

select * from v$locked_object;
select * from v$transaction;

查看资源的进程(top session)

select s.schemaname schema_name,decode(sign(48 - command), 1, to_char(command), 'Action Code #' ||to_char(command) ) action,status session_status,s.osuser os_user_name,s.sid,p.spid,s.serial# serial_num,nvl(s.username,'[Oracleprocess]') user_name,s.terminal terminal,s.program program,st.value criteria_value from v$sesstat st,v$session s,v$process p where st.sid = s.sid and st.statistic# = to_number('38') and ('ALL'='ALL' or s.status ='ALL') AND p.addr=s.paddr order by st.value desc,p.spid asc,s.username asc,s.osuser asc;

Oracle重建索引

Declare   
    L_Sql Varchar2(32767) := '';  
Begin  
    For indexRow In   
    (  
        Select *   
        From user_indexes   
        Where tablespace_name = 'TableSpace' and status = 'VALID' And Temporary = 'N'  
    )   
    Loop  
           L_Sql := 'alter index ' || indexRow.index_name || ' rebuild ';  
           dbms_output.put_line(L_Sql);  
           EXECUTE IMMEDIATE L_Sql;           
    End Loop;  
End;

重复数据查询和删除

select count(*)
  from t_cem_rbac_dataaccess d1
 where (d1.corpid, d1.objectid, d1.dataaccesstypeid,d1.dataaccessid,d1.accessmode,d1.is_exclude,d1.datatypeid,d1.createtime) in
       (select d2.corpid,d2.objectid,d2.dataaccesstypeid,d2.dataaccessid,d2.accessmode,d2.is_exclude,d2.datatypeid,d2.createtime
          from t_cem_rbac_dataaccess d2
         group by d2.corpid,d2.objectid,d2.dataaccesstypeid,d2.dataaccessid,d2.accessmode,d2.is_exclude,d2.datatypeid,d2.createtime
        having count(*) > 1);

保留rowid最小的那条数据

delete from t_cem_rbac_dataaccess d1
 where (d1.corpid, d1.objectid, d1.dataaccesstypeid, d1.dataaccessid,
        d1.accessmode, d1.is_exclude, d1.datatypeid, d1.createtime) in
       (select d2.corpid,d2.objectid,d2.dataaccesstypeid,d2.dataaccessid,
               d2.accessmode,d2.is_excluded2.datatypeid,d2.createtime
          from t_cem_rbac_dataaccess d2
         group by d2.corpid,d2.objectid,d2.dataaccesstypeid,d2.dataaccessid,
                  d2.accessmode,d2.is_exclude,d2.datatypeid,d2.createtime
        having count(*) > 1)
   and rowid not in (select min(rowid)
                       from t_cem_rbac_dataaccess d3
                      group by d3.corpid,d3.objectid,d3.dataaccesstypeid,
                               d3.dataaccessid,d3.accessmode,d3.is_exclude,
                               d3.datatypeid,d3.createtime
                     having count(*) > 1)

查看日志文件

--查看日志文件
select member from v$logfile;

查询字符集

select * from v$nls_parameters t where t.PARAMETER='NLS_CHARACTERSET';

查看评论

Oracle管理常用命令

第一章:日志管理           1.forcing   log   switches       sql>   alter   system   switch   logfile;       ...
  • optop
  • optop
  • 2006-12-01 12:57:00
  • 915

rac集群管理常用命令

集群管理 [oracle@rac1 dbs]$ sqlplus system/oracle@racjiqun rac集群会随机分配 负载均衡 SQL> show parameter instanc...
  • weivi001
  • weivi001
  • 2016-05-30 14:56:19
  • 1458

Oracle RAC 资料收集日常基本维护命令

  • 2016年04月28日 10:39
  • 873KB
  • 下载

Oracle数据库日常维护命令

一、启动、关闭数据库 1、启动实例的各种模式 1)启动实例,装载并打开数据库 这是最普通的数据库操作,意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库...
  • KimSoft
  • KimSoft
  • 2014-01-22 14:46:53
  • 5612

【ASM】Oracleasm命令

1、运行环境 Linux:Centos 6.5Oracle:11.2.0.4.0 2、Oracleasm命令使用说明 [root@strong ~]# oracleasm Usage: or...
  • Alen_Liu_SZ
  • Alen_Liu_SZ
  • 2017-12-20 21:36:21
  • 186

批处理常用DOS命令篇

  • 2009年11月10日 21:57
  • 8KB
  • 下载

超实用!!ORACLE数据库DBA运维常用的语句脚本

一个牛逼的程序员,都是玩linux系统的,linux系统也有比windows更好的权限机制,故大部分公司都是在linux上部署oracle,本文主要以linux系统为基础与众多程序员小伙伴进行探讨or...
  • mochou111
  • mochou111
  • 2017-09-23 14:47:52
  • 517

oracle数据库日常维护语句

一、检查数据库基本情况 1.1、检查orale数据库实例状态: 1.1.1 select v.INSTANCE_NAME,v.HOST_NAME,v.STARTUP_TIME,v.STATUS,v...
  • zdh_139
  • zdh_139
  • 2017-07-04 23:04:22
  • 157

oracle 11g RAC 常用命令

1.检查集群状态 [grid@rac1 ~]$ crsctl check cluster CRS-4537: Cluster Ready Services is online CRS-4529: Cl...
  • u011364306
  • u011364306
  • 2015-10-12 10:10:18
  • 468

Oracle数据库运维、备份常用指令

Oracle数据库运维、备份常用指令1. Oracle数据泵备份导出1.1 准备工作在linux系统下创建导出结果存放的文件夹,切记要切换到oracle用户创建,否则会出现权限问题。su - orac...
  • nikobelic8
  • nikobelic8
  • 2016-12-29 11:45:58
  • 497
    个人资料
    持之以恒
    等级:
    访问量: 292
    积分: 101
    排名: 126万+
    文章分类
    文章存档