oracle 10g 怎么样用一个用户可以关联两个表空间

oracle 10g 怎么样用一个用户可以关联两个表空间,第1张

CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
create tablespace students
datafile '/u2/oracle/oradata/briupdb/studentsdbf'
size 500m autoextend on next 10m maxsize 1000m;
DECLARE
v_sql varchar2(500);
begin
for v_cur in(select username from all_users where username like 'JD0808_%') LOOP
v_sql :='drop user '||v_curusername||' cascade';
dbms_outputput_line(v_sql);
execute immediate v_sql;
END LOOP;
end;
/
create tablespace zs
datafile '/export/home/teachers/qinry/studentsdbf'
size 50m autoextend on next 10m maxsize 100m;
create user zs identified by zs; /创建用户/
alter user zs default tablespace zs; / 指定表空间 /

一个用来存放数据,另一个用来存放索引,并且它们都会存储在对应表指定的表空间中。但是当我
们用alter table tb_name move tablespace tbs_name;来对表做空间迁移时只能移动非lob字段以
外的数据,而如果我们要同时移动lob相关字段的数据,我们就必需用如下的含有特殊参数据的文
句来完成,它就是: alter table tb_name move tablespace tbs_name lob
(col_lob1,col_lob2) store as(tablesapce tbs_name); 下面我们来看一个例子吧。。
二示例如下,我创建了2张表,都含有2个BLOB字段。然后移动表到其它表空间。
SQL> create table test_blob(name varchar2(10),bin1 blob,bin
表已创建。
SQL> create table test_blob2(name varchar2(10),bin1 blob,bi
2 tablespace system;
表已创建。
SQL> desc dba_tables;--查看视图的结构
名称 是否为空 类型
----------------------------------------- -------- -------
OWNER NOT NULL VARCHAR
TABLE_NAME NOT NULL VARCHAR
TABLESPACE_NAME VARCHAR
CLUSTER_NAME VARCHAR
IOT_NAME VARCHAR
STATUS VARCHAR
PCT_FREE NUMBER
PCT_USED NUMBER
INI_TRANS NUMBER
MAX_TRANS NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
FREELISTS NUMBER
FREELIST_GROUPS NUMBER
LOGGING VARCHAR
BACKED_UP VARCHAR
NUM_ROWS NUMBER
BLOCKS NUMBER
EMPTY_BLOCKS NUMBER
AVG_SPACE NUMBER
CHAIN_CNT NUMBER
AVG_ROW_LEN NUMBER
AVG_SPACE_FREELIST_BLOCKS NUMBER
NUM_FREELIST_BLOCKS NUMBER
DEGREE VARCHAR
INSTANCES VARCHAR
CACHE VARCHAR
TABLE_LOCK VARCHAR
SAMPLE_SIZE NUMBER
LAST_ANALYZED DATE
PARTITIONED VARCHAR
IOT_TYPE VARCHAR
TEMPORARY VARCHAR
SECONDARY VARCHAR
NESTED VARCHAR
BUFFER_POOL VARCHAR
ROW_MOVEMENT VARCHAR
GLOBAL_STATS VARCHAR
USER_STATS VARCHAR
DURATION VARCHAR
SKIP_CORRUPT VARCHAR
MONITORING VARCHAR
CLUSTER_OWNER VARCHAR
DEPENDENCIES VARCHAR
COMPRESSION VARCHAR
DROPPED VARCHAR

alter table move tablespace 新表空间名称;
表移动表空间后,表对应的索引会失效,需要重建索引才行
alter index 索引名称 rebuild;

使用如下语句,可以将需要移动的表空间语句在pl/sql中列出来,
select 'alter table ' ||table_name || ' move tablespace 目标表空间名称;' from user_all_tables where tablespace_name='源表空间名称'
再执行这个结果就好了

在ORACLE中移动数据库文件
ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,数据库管理员可能会考虑移动数据库文件。
可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。

select 'alter table ' || table_name || ' move partition ' || partition_name ||
' tablespace XXXX;'
from user_tab_partitions
where table_name ='XXX'
spool看看


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13403680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存