oracle 导入和导出

导出

pl/sql进行对表的导出

1如果有表结构,但是没有数据,执行

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

然后将查询结果,类似于 alter table tablename allocate extent;  进行执行

2重新导出dmp文件

exp PT_STORE/ptstore@myoracle file=e:\pt_store.dmp owner=(PT_STORE)

exp ESB_medical_client1/admin@myoracle file=e:\ESB_medical_client1.dmp owner=(ESB_medical_client1)

exp ESB_pub_client1/admin@myoracle file=e:\ESB_pub_client1.dmp owner=(ESB_pub_client1)

exp PT_GGWS/admin@myoracle file=e:\pt_ggws.dmp owner=(PT_GGWS)

exp PT_YLFW/admin@myoracle file=e:\pt_ylfw.dmp owner=(PT_YLFW)

exp PT_SWAP/PT_SWAP@myoracle file=e:\pt_swap.dmp owner=(PT_SWAP)

exp PT_INDEX/admin@myoracle file=e:\PT_INDEX.dmp owner=(PT_INDEX)

导入

命令 cmd

1创建表空间

2创建用户

3给用户赋权限

4用pl/sql 进行导入

同名用户之间的数据导入:

imp hkb/hkb@xe  file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y

不同名之间的数据导入:

imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmp

log=c:\orabackup\hkbimp.log;

/*分为四步 */

sqlplus/nolog

conn/as sysdba

/*第1步:创建数据表空间  */

create tablespace pt_store_hn 

logging 

datafile 'd:\pt_store_cjk\pt_store_hn.dbf'

size 50m 

autoextend on 

next 50m maxsize 20480m 

extent management local;

/*第2步:创建用户并指定表空间  */

create user pt_store_hn identified by pt_store_hn 

default tablespace pt_store_hn  ;

/*第3步:给用户授予权限  */

grant connect,resource,dba to pt_store_hn;

/*第4步:导入  */

imp pt_store_hn/pt_store_hn@myoracle file=d:\pt_store.dmp full=y

删除用户和表空间

1.登录sys   admin (管理员权限)

2.drop user PT_INDEX cascade

说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。

3. 删除tablespace(包含物理空间)

DROP TABLESPACE PT_INDEX_temp INCLUDING CONTENTS AND DATAFILES;

DROP TABLESPACE PT_INDEX_DATA INCLUDING CONTENTS AND DATAFILES;

你可能感兴趣的:(oracle 导入和导出)