請各位大俠救命﹐ help me !

[复制链接]
查看11 | 回复9 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
今天公司老大給我出了個難題 ﹐ 即 " 為了統一規范化 tablespace
的命名規則﹐需將以前的 tablespaceUSER_DATA,TEMP_DATA
名稱改為 USERS ,TEMP .
可是有100多個 USER 的 default tablespace 是 USER_DATA , 在
USER_DATA 的 DATAFILE 中有8GB 的資料該如何轉到 USERS中.

配置為 Red hat Linux7.1 ,Oracle8.1.7.
請各位大俠救命!

回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
你们这个头是不是有毛病啊。
这样折腾人。
exp所有数据库内容。
创建你要的表空间 USER,TEMP
删除以前的用户,创建新用户指定USER默认表空间,TEMP默认临时表空间
imp数据。
不知道行不行。
事先做一个完整备份吧。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 cgh_chen 发布
[B]你们这个头是不是有毛病啊。
这样折腾人。
exp所有数据库内容。
创建你要的表空间 USER,TEMP
删除以前的用户,创建新用户指定USER默认表空间,TEMP默认临时表空间
imp数据。
不知道行不行。
事先做一个完整备份吧。 [/B]

不知这样做有没有保留字的冲突
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 小龙女 发布
[B]create table test tablespace temp
as select * from test2;
drop table test2;
rename test to test2;

这样,不知道可以不可以实现???我是猜的。没实验过。 [/B]

可以,但是现在它要改名字的表太多了,一个一个的来太那个了
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
如果以前的表中包含大字段的话恐怕不能改变表空间名
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
两个命令:
1、alter user xxx default tablespace USERS temporary tablespace TEMP;
2、alter table xxx move USERS;
注意在执行第2条命令后该表的索引必须重建
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
in 8i there is a new feature that can transporta tablespace to another one.
do not remember the 3 steps to perform it, let me check it for u.


回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
同志们他是要修改表空间的名字啊。
如果transport tablespace 能修改表空间的名字嘛,我不知道 :)
1、alter user xxx default tablespace USERS temporary tablespace TEMP;
2、alter table xxx move USERS;
这样的话,要有两倍的磁盘空间。如果空间运行,也是很好的办法。
使用sql plus生成移动表空间的脚本。一次执行。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
感謝各位老兄﹐因為當時很急﹐我只好用了個苯辦法﹕
即分別將每個 user都 exp 出來﹐然后刪除所有 user (除系統user) .
刪除 tablespaceUSER_DATA , TEMP_DATA .
再建立 tablespaceUSERS , TEMP
再分別建立每個 user﹐并將資料 imp 進去 .
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
对,exp/imp最方便
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行