1.表空间是什么
表空间是ORACLE数据库中最大的逻辑结构, oracle数据库是由一个或多个表空间组成。
2.
表空间管理方式分别为哪两种?有什么区别?
表空间的管理方式有两种
1.字典管理表空间
2.本地管理表空间
字典管理表空间概述
本地管理表空间概述
3.段是什么?段管理方式有几种?
段(segment)是由一组数据扩展(extent)构成,其中存储了表空间内各种逻辑存储结构的数据
4.什么是数据文件.数据文件和表空间什么关系,单个数据文件最大为多大
数据文件是用来储存数据的物理结构
数据文件是构成表空间的基础文件, 单个数据文件只能属于一个表空间或一个数据库
普通表空间的
数据文件
:4M*block_size
bigfile表空间的
数据文件
4G*block_size
5.怎么增加表空间的大小、
增加表空间的大小方法有两种
1更改数据文件的大小(自动或者手动)
2 向表空间添加数据文件
向表空间添加数据文件并设置为自动拓展的 sql语法为
alter tablespace 表空间名 add datafile '路径文件' size 20m autoextend on next 10m maxsize 100m;
更改数据文件大小的sql语法为
alter database datafile '/oracle/oradata/ora10lgy/lgy_data_01.dbf' resize 60m;
6.表空间online(在线)和offline(离线)的意义是什么?怎么操作? 数据文件可以在线和离线操作么?和表空间的在线离线有什么区别?
使表空间脱机 alter tablespace lgy_data offline;
使表空间联机 alter tablespace lgy_data online;
表空间(tablespace)通常处于联机(online)状态,以便数据库用户访问其中的数据。
当表空间脱机时,表空间里所有的数据文件将自动脱机;当表空间联机时,数据文件自动联机,无需介质恢复
数据文件脱机,但再联机时需要介质恢复
7.临时表空间是什么?主要作用是什么?怎么创建临时表空间?怎么扩大临时表空间?怎么更换数据库的默认临时表空间?
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。 如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢?通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据。但是这个分区的容量是有限的。当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间中。这就是临时表空间的来历。看起来好像这个临时表空间是个临时工,对于数据库的影响不会有多大。 其实大家这是误解这个临时表空间了。在用户进行数据库操作时,排序、分组汇总、索引这些作业是少不了,其会产生大量的临时数据。为此基本上每个数据库都需要用到临时表空间。而如果这个临时表空间设置不当的话,则会给数据库性能带来很大的负面影响
临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长
临时表空间的主要作用:
索引create或rebuild
Order by 或 group by
Distinct 操作
Union 或 intersect 或 minus
Sort-merge joins
analyze
创建临时表空间的语法
create temporary tablespace TEMP1 TEMPFILE '/oracle/oradata/ora10lgy/TEMP1_01.dbf' size 100M;
扩大临时表空间有三种方法
1.增加临时文件大小 sql语法
alter database tempfile '/oracle/oradata/ora10lgy/TEMP1_01.dbf' resize 100m;
2.
将临时数据文件设为自动扩展
alter database tempfile '/oracle/oradata/ora10lgy/temp01.dbf' autoextend on next 5m maxsize unlimited;
3.
向临时表空间中添加数据文件
alter tablespace temp add tempfile '/oracle/oradata/ora10lgy/temp02.dbf' size 100m;
查询默认临时表空间
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默认临时表空间
alter database default temporary tablespace TEMP1;
修改用户默认的临时表空间
alter user hr temporary tablespace temp1;
8.如何查看表空间的使用率?涉及到的数据字典表有哪些?
查看表空间的使用率 sql语句
select total.tablespace_name,round(total.MB,2) as Total_MB,round(total.MB-free.MB, 2) as Used_MB,round((1-free.MB/total.MB)*100, 2) as Used_Pct from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name) free,(select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name=total.tablespace_name;
9.如何查看临时表空间的使用率?
临时表空间使用率sql语句
SELECT a.tablespace_name, a.BYTES total, a.bytes - nvl(b.bytes, 0) free
FROM (SELECT tablespace_name, SUM (bytes) bytes FROM dba_temp_files GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM (bytes_cached) bytes FROM v$temp_extent_pool GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name(+);
10 如何查看当前数据库有多少数据文件。
如何查看数据文件对应的表空间有哪些?
查看当前数据库有多少数据文件 sql语法 select * from v$datafile;
查看数据文件对应的表空间 sql语法 select t1.name, t2.name from v$tablespace t1, v$datafile t2 where t1.ts# = t2.ts#;
创建回退段
create rollback segment rbs02 tablespace rbs storage ( initial 100k next 100k minextents 20 maxextents 100 optimal 2000k );
使回退段联机
alter rollback segment rbs01 online;
alter rollback segment rollback_segment online;
更改回退段储存设置
alter rollback segment rbs02 storage (maxextents 300 );
Sql常用命令
使用system账号以sysdba的身份连接
SQL> connect system/tukeping as sysdba
查看当前用户
SQL> show user
新建用户
SQL> create user tkp1 identified by tkp1;
用户解锁并修改密码
Alter user hr identified by hr account unlock;
授权
SQL> grant connect,resource to tkp1;
退出sqlplus
SQL> quit
以tkp1用进入到sqlplus
c:\> sqlplus tkp1/tkp1
查看所有用户
SQL> select * from all_users;
退出
SQL> quit
以sysdba身份进入删除tkp1用户
c:\> sqlplus system/tukeping
SQL> drop user tkp1 cascade;
创建表空间
SQL> create tablespace test1 datafile 'd:\oracle\tablespace\tabletest1.dbf' size 50M;
创建名为tkp1的用户,其缺省表空间为test1
SQL> create user tkp1 identified by tkp1 default tablespace test1;
查看系统能给的所有权限
SQL>select name from sys.system_privilege_map;
查看当前连接用户的所有权限
SQL> select * from user_sys_privs;
移除tkp1的sysdba权限
SQL> revoke sysdba from tkp1;
SQL>commit;
关闭oracle数据库
SQL>shutdown immediate;
开启oracle数据库
SQL>startup
查看数据库的利用率
select total.tablespace_name,round(total.MB,2) as Total_MB,round(total.MB-free.MB, 2) as Used_MB,round((1-free.MB/total.MB)*100, 2) as Used_Pct from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name) free,(select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name=total.tablespace_name
扩展undo表空间
确定undo表空间的名字
select name from v$tablespace;
检查文件存放位置
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
扩展UNTOTBS命令
查找文件select file#,name from v$datafile;
Alter database datafile ‘路径文件和目录'(注使用查找后的序号例如2 也可以) resize 300m;
设置本地管理
EXTENT MANAGEMENT LOCAL
开启自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend on;
关闭自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend off;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29638498/viewspace-1155296/,如需转载,请注明出处,否则将追究法律责任。