ORACLE学习(五)

1.oracle字典表常用查询

--查询当前用户拥有的所有表
select * from user_tables
--查询当前用户可以访问的所有表
select * from all_tables
--查询所有方案的所有表,需要有dba权限
select * from dba_tables;
--查询所有的角色
select * from  dba_roles;
--查询所有的用户
select * from  dba_users;
--查询所有的系统权限
select * from system_privilege_map
--查询所有的对象权限
select * from table_privilege_map;
--查询一个角色拥有的系统权限
select * from dba_sys_privs where grantee = 'DBA'
select * from role_sys_privs where role = 'DBA'
--查询一个角色拥有的对象权限
select * from dba_tab_privs where grantee = 'DBA'
select * from role_tab_privs where role = 'DBA'
--查询一个用户是什么角色
select t1.* from dba_role_privs t1 WHERE T1.grantee = 'SCOTT'

--查询当前用户可以访问的所有数据字典视图
select * from dict where comments like '%grant%'
--显示当前数据库的全称
select * from global_name;

 2.oracle表空间

   oracle中的逻辑机构包括表空间、段、区和块。

   表空间有以下作用:
    a.控制数据库占用的磁盘空间
    b.dba可以将不同数据类型部署到不同位置,有利于提高i/o性能,同时有利于备份和恢复等管理操作。
   创建、修改、删除表空间的操作如下:

--创建表空间,需要具有create tablespace的系统权限
--uniform 指定区的大小,size上限为500m,但是可以扩展
create tablespace myspace datafile 'd:\myspace.dbf' size 2m uniform size 128k;
--使用表空间
create table mypart(deptno number(2),dname varchar2(14),loc varchar2(13)) tablespace myspace;

--改变表空间状态,进行系统维护或者数据维护时,可能需要改变表空间的状态
--使表空间脱机(offline),联机(online),只读(read only)
alter tablespace myspace offline;

--根据表空间名查询表空间下的表
select * from all_tables t where t.tablespace_name = 'MYSPACE';
--根据表名查询表空间名
select table_name,t.tablespace_name from all_tables t where t.table_name = 'EMP';

-------------------扩展表空间
--插入一条数据,用以验证表空间不足,执行一次就够
insert into mypart(deptno,dname,loc) values(22,'啦啦','北京');
--重复插入数据,一直执行,直到报错
insert into mypart select * from mypart;
-----------扩展表空间有3中方法
--a.增加数据文件
alter tablespace myspace add datafile 'd:\myspace1.dbf' size 2m;
--b.增加数据文件的大小,数据文件的大小不能超过500m
alter database datafile 'd:\myspace.dbf' resize 20m;
--c.设置文件自增长,上限为500m
alter database datafile 'd:\myspace.dbf' autoextend on next 20m maxsize 500m;

--删除表空间,including contents表示删除改空间的所有数据库对象,datafiles表示将数据库文件也删除
drop tablespace MYSPACE including contents and datafiles;

3.移动数据文件

   如果数据文件所在的磁盘损坏,为了能够正常使用,需要将数据文件的副本移动到其他磁盘,然后恢复,步骤如下:

   

--a.确定数据文件所在的表空间
select tablespace_name from dba_data_files where file_name = 'D:\MYSPACE.DBF'
--b.为确保数据文件的一致性,使表空间脱机
alter tablespace myspace offline;
--c.使用命令移动数据文件到指定的目标位置
 move D:\MYSPACE.DBF D:\1\MYSPACE.DBF
--d.对数据库文件进行逻辑修改
alter tablespace myspace rename datafile 'D:\MYSPACE.DBF' to 'D:\1\MYSPACE.DBF';
alter tablespace myspace rename datafile 'D:\MYSPACE1.DBF' to 'D:\1\MYSPACE1.DBF';
--e.使表空间联机
alter tablespace myspace online;

 第4步不能执行,我是直接在操作系统里边移动文件,也能成功。留疑!

猜你喜欢

转载自mylava.iteye.com/blog/1618554
今日推荐