表空间数据文件重建



oracle一个中间数据库表空间太大,做了数据清理后,但是文件无法压缩,而且已经有了好几个数据文件,于是采用导出导入的方法,重建了数据库文件,担心导入导出有一些想不到的问题,所有先将原来的表空间更名,然后新建表空间导入,在确认没有问题后再将表空间删除。
1.exp导出数据( 停止相关应用)
EXP  EDI/EDI@WMS file='f:\offceDB\EDI.dmp' owner=EDI log=f:\offceDB\EDI.log

2.修改原来的用户名,EDI-->OLDEDI
sqlplus sys/sql  sysdba
SQL> select user#,name from user$ where name='EDI';

     USER# NAME
---------- ------------------------------
        94 EDI
SQL> update user$ set name='OLDEDI' where user#=94;

1 row updated.

SQL> commit;

Commit complete.

SQL> alter system checkpoint;

System altered.

SQL> alter system flush shared_pool;

System altered.
SQL> select username from dba_users;
SQL> select default_tablespace from dba_users where username='OLDEDI';


3修改表空间

SQL> alter tablespace EDI rename to OLDEDI;

4.新建表空间
SQL> create tablespace EDI datafile  'D:\oracleDB\oradata\WMS\EDI1.dbf'   size 1000m autoextend on  next 100m maxsize 30G;

Tablespace created.

5.创建用户
SQL> create user EDI identified by EDI default tablespace EDI;
SQL> grant dba,connect,resource to EDI;

6.导入数据
imp EDI/EDI file='D:\databasetransfer\EDIoffceDB\edi.dmp' tablespaces=EDI log='F:\imp_log.txt' full=y

猜你喜欢

转载自blog.csdn.net/samson_www/article/details/79696709