1.设置默认表空间:
创新互联公司是一家专业提供岳西企业网站建设,专注与成都做网站、网站制作、成都外贸网站建设、HTML5、小程序制作等业务。10年已为岳西众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
在Oracle数据库中创建用户(使用CREATE USER语句)时,如果不指定表空间,则默认的临时表空间时TEMP,默认的永久表空间时SYSTEM,这样旧导致应用系统与Oracle系统竞争使用SYSTEM表空间,会极大的影响Oracle系统的执行效率。为此,Oracle建议将非SYSTEM表空间设置为应用系统的默认永久表空间,并且将非TEMP临时表空间设置为应用系统的临时表空间。这样有利于数据库管理员根据应用系统的运行情况适时调整默认表空间和临时表空间。
更改默认临时表空间需要使用ALTER DATABASE DEFAULT TEMPRORY TABLESPACE语句,更改默认永久表空间需要使用ALTER DATABASE DEFAULT TABLESPACE语句。
2.例如:将临时表空间temp_1设置为默认的临时表空间。
3.例如:将表空间tbs_example设置为默认的永久表空间。
4.更改表空间的状态:
表空间有只读和可读写两种状态,若设置某个表空间为只读状态,则用户就不能够对该表空间的数据进行DML操作(INSERT、UPDATE和DELETE),但对某些对象的删除操作还是可以进行的,比如,索引和目录就可以被删除掉;若设置某个表空间为可读写状态,则用户旧可以对表空间的数据进行任何正常的操作,这也是表空间的默认状态。
设置表空间为只读状态,可以保证表空间数据的完整性。通常在进行数据库的备份、恢复及历史数据的完整性保护时,可将指定的表空间设置成只读状态。但设置表空间为只读并不是可以随意进行的,必须满足三个条件:
1、该表必须为ONLINE状态。
2、该表空间不能包含任何回滚段。
3、改表空间不能在归档模式下。
更改表空间的读写状态需要使用ALTER TABLESPACE...READ|ONLY READ WRITE语句
5.例如:修改tbs_test_3 表空间为只读状态。
6.例如:修改tbs_test_3 表空间为可读写状态。
alter table IPMONMEX add PARTITION DATA_2012 --给表IPMONMEX增加一个DATA_2012分区
values less than ('2012010100000001') --分区依据(这个地方是不是没有写全?估计是存储2012年1月1日前的数据)
tablespace USERS2011 --在表空间USERS2011上创建此分区
--以下为分区控制参数
pctfree 10 --保留10%作为update用
initrans 1 --指明每个事物影响的最小数据块数
maxtrans 255 --指明每个事物影响的最大数据块数
--以下为存储参数
storage
(
initial 48K --存储初始大小
minextents 1 --最小扩展数量
maxextents unlimited --最大可扩展数量(无限)
) ;
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看2、缩小临时表空间大小alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;3、扩展临时表空间:方法一、增大临时文件大小:SQL alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m;方法二、将临时数据文件设为自动扩展:SQL alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;方法三、向临时表空间中添加数据文件:SQL alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m;4、创建临时表空间:SQL create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M;5、更改系统的默认临时表空间:--查询默认临时表空间select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';--修改默认临时表空间alter database default temporary tablespace temp1;所有用户的默认临时表空间都将切换为新的临时表空间:select username,temporary_tablespace,default_ from dba_users;--更改某一用户的临时表空间:alter user scott temporary tablespace temp;6、删除临时表空间删除临时表空间的一个数据文件:SQL alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop;删除临时表空间(彻底删除):SQL drop tablespace temp1 including contents and datafiles cascade constraints;7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小dba_temp_files视图的bytes字段记录的是临时表空间的总大小SELECT temp_used.tablespace_name, total - used as "Free", total as "Total", round(nvl(total - used, 0) * 100 / total, 3) "Free percent" FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used FROM GV_$TEMP_SPACE_HEADER GROUP BY tablespace_name) temp_used, (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total FROM dba_temp_files GROUP BY tablespace_name) temp_total WHERE temp_used.tablespace_name = temp_total.tablespace_name ORDER BY B.TABLESPACE, B.SEGFILE#, B.SEGBLK#, B.BLOCKS;希望能帮到您!
首先,使用下面的命令移动:
alter table table_name move tablespace tablespace_name;
然后,如果有索引的话必须重建索引:
alter index index_name rebuild tablespace tablespace_name;
当然,可以使用spool来帮助实现多个表的操作.
set header off;
spool /export/home/oracle/alter_tables.sql;
select 'alter table ' || object_name || ' move tablespace users'
from dba_object
where owner = 'XXX' and object_type = 'TABLE';
spool off;
之后执行此sql脚本即可.
同样对于index也做同样的操作.
可以通过alter方法,将一个表移动到另外一个表空间中:
sql: alter table spaceOne.tablename move tablespace spaceTwo;
解释:以上语句就是把tablename表从spaceOne移动到spaceTwo中。
备注一:
当前的用户必须对spaceTwo、spaceOne都有操作权限才可以。
备注二:
其实如果对两个表空间都有权限的话,可以通过
create spaceTwo.tablename as select * from spaceOne.tablename;
之后再删除spaceOne中tablename表的间接方式也能实现。
重建建立一个表空间,你做imp肯定是通过user吧
用create user xxx identified by password default tablespace xxx;
这样就可以让imp导入到指定的表空间下了