--在E盘的所写目录下建立一个叫NEW_TABLESPACENAME的表空间,初始大小为1M,会自动增大
create tablespace NEW_TABLESPACENAME
datafile 'E:/app/Administrator/oradata/orcl/NEW_TABLESPACENAME'
size 1M autoextend on next 50M maxsize unlimited nologging;
--/home/app/oracle/oradata/orcl/
--新建用户,新用户名为NEW_USERNAME,新密码为NEW_PASSWORD,使用的表空间为NEW_TABLESPACENAME
create user NEW_USERNAME
identified by "NEW_PASSWORD"
default tablespace NEW_TABLESPACENAME
profile DEFAULT
ACCOUNT UNLOCK;
--一般需要赋予dba\connect\resource权限和unlimited tablespace系统权限
--然后就可以登录了
grant dba to NEW_USERNAME;
grant unlimited tablespace to NEW_USERNAME;
grant connect to NEW_USERNAME;
grant resource to NEW_USERNAME;
补充:导入导出有时候会遇到某些表限定表空间,我们是可以直接修改表空间名称的,语句是:
alter tablespace space1 rename to space2;
例如:
alter tablespace accounting_user rename to accounting_use;
补充:如果数据量大,有可能一个表空间文件装不下(表空间文件最大30G),那么就需要给这个表空间新增一个表空间文件,语句是这样的:
alter tablespace TABLESPACE_NAME add datafile 'E:/app/fy/oradata/orcl/TABLESPACE_NAME2' size 500M AUTOEXTEND on next 100m;
--查看表的表空间(当前用户)
SELECT TABLE_NAME, TABLESPACE_NAME FROM USER_TABLES
修改表空间的步骤:
1、利用上面的语句新建一个表空间
2、将所有的表移到这个表空间来:先将新的表空间名称填到下面的语句,然后运行一下,生成移动表空间的语句,把生成的语句再运行一下,就移动好了
select 'alter table '|| table_name ||' move tablespace 新的表空间名称;' from user_tables;
3、将所有的索引移到这个表空间来(如果需要的话):
select 'alter index '|| index_name ||' rebuild tablespace 新的表空间名称;' from user_indexes;
4、导出dmp文件,导入新的库。
--删除用户并删除表空间,释放硬盘空间
DROP USER username CASCADE;
DROP TABLESPACE CZ_BI INCLUDING CONTENTS AND DATAFILES;