因客户项目需要,将原数据库从之前的表空间迁移到新的表空间,特记录次过程:
1.原数据库的 用户名/密码: me17/me17
在cmd中导出数据库sql:
exp me17/me17@me17 file=d:\me17.dmp full=y
2.新建数据表空间,临时表空间
--创建临时表空间
create temporary tablespace me17_temp
tempfile 'E:\oracle\tablespace\me17_temp.dbf'
size 40m
autoextend on
next 40m maxsize 5000m
extent management local;
--创建数据表空间,每次增值是之前的110%
create tablespace me17_data
logging datafile 'E:\oracle\tablespace\me17_data.dbf'
size 40m autoextend on next 40m maxsize unlimited default storage (initial 40m next 40m pctincrease 10);
3.创建新用户,并为新用户指定默认数据表空间与默认临时表空间
--创建用户与指定默认数据表空间与默认临时表空间
create user me17v2 identified by me17v2
default tablespace me17_data
temporary tablespace me17_temp;
--赋权限
grant connect,resource to me17v2;
4.由于之前导出的数据所在的空间是系统默认的users表空间,如果直接导入
imp me17/me17@me17 file=d:\me17.dmp fromuser=me17 touser=me17v2 grants=n
me17v2/me17v2登录 查询:
select * from user_tables;
会发现 表所在的表空间依旧是oralce默认的表空间:users,并不是新建的表空间:me17_data
5.修改新建用户的表空间:
revoke unlimited tablespace from me17v2;
alter user me17v2 quota 0 on users;
alter user me17v2 quota unlimited on me17_data;
6.导入数据
cmd:
imp me17/me17@me17 file=d:\me17.dmp fromuser=me17 touser=me17v2 grants=n
7.通过新建用户登录查看结果:
select * from user_tables;
新建用户中的表所在的表空间为:新建的表空间:me17_data