日常实用oracle SQL

                                                                        日常实用oracle SQL

‘参考《sql语法大全中文版》学习

数据库及用户
启动、关闭数据库:


sqlplus '/as sysdba'


shutdown abort;


startup;


启动、关闭、查看数据库监听进程:


lsnrctl status


lsnrctl start


给普通用户授权调试存储过程


GRANT debug any procedure, debug connect session TO usename;


查询数据库实例名


Select instance_name from v$instance;


查询用户密码有效期,LIMIT字段是密码有效天数


SELECT *
  FROM dba_profiles
 WHERE profile = 'DEFAULT'
   AND resource_name = 'PASSWORD_LIFE_TIME';


将密码改成永不过期


ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;


数据库备份SQL
数据库备份是对一个DBA最基本的要求,在维护工作中也是经常要用到,的常用的备份如下,这里不会把所有的参数列出来,根据实际情况需要自己可以添加一些参数:


导出表: 

  exp name/password@mycon tables=(table1,table2) file=tab1.dmp

导出用户:

  exp name/password@mycon owner=name file=name.dmp

导出数据库:

  exp system/password@mycon full=y inctype=complete file=full1.dmp

导入表:

  imp system/password@mycon file= tab1.dmp tables=(table1,table2) touser=name

导入用户:

imp name/password@mycon file=name.dmp full=yes

导入数据库:

  imp system/password@mycon file=full1.dmp full=yes

其它操作
数据文件表:dba_data_files


表空间表:dba_tablespaces

创经表空间:

create tablespace tableSpaceName datafile '< data_file_name >' size 1000M;

重新定义表空间数据文件大小:

alter database datafile '' resize 5000M;

改变表空间大小:


alter tablespace tableSpaceName add datafile '< data_file_name >' resize 1024M;


查询表空间与数据文件对应关系:


select tablespace_name, bytes, file_name from dba_data_files;


查询用户缺省表空间:


select username, default_tablespace from dba_users;


查询表与存储该表的表空间:


select table_name, tablespace_name from user_tables;


修改用户缺省表空间:


alter user username default tablespace tablespace_name;


将数据从一个表空间移动到另一个表空间:


alter table table_name move tablespace tablespace_name;


检查是否有业务用户的默认表空间设置在了system上。
select * from dba_users t where t.default_tablespace='SYSTEM';


检查是否有业务用户的表被创建在了system上:


select * from dba_tables w where w.owner not in ('SYSTEM', 'SYS', 'MGMT_VIEW','OUTLN') and w.tablespace_name='SYSTEM';


查询表空间的数据文件大小


select tablespace_name,(bytes/1024/1024) M from dba_data_files;


查询数据文件已使用空间


select file_name, sum(e.bytes)/1024/1024 as MB from dba_extents e join dba_data_files f on e.file_id=f.file_id group by file_name;


表空间使用率


select a.tablespace_name,
       total / 1024 / 1024 / 1024,
       free / 1024 / 1024 / 1024,
       (total - free) / 1024 / 1024 / 1024,
       round((total - free) / total, 4) * 100
  from (select tablespace_name, sum(bytes) free
          from dba_free_space
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) total
          from dba_data_files
         group by tablespace_name) b
 where a.tablespace_name = b.tablespace_name;


系统表空间占用TOP9


SELECT *
  FROM (SELECT BYTES, segment_name, segment_type, owner
          FROM dba_segments
         WHERE tablespace_name = 'SYSTEM'
         ORDER BY BYTES DESC)
 WHERE ROWNUM < 10;


system空间中具体是什么对象占用较高:


select sum(bytes) as bt,  s.owner, s.segment_name from dba_segments s where s.tablespace_name='SYSTEM'
group by s.owner, s.segment_name
order by sum(bytes) desc;

将审计功能关闭:


alter system set audit_trail='NONE' scope=spfile;

锁1-锁2
 

你可能感兴趣的:(Oracle)