导出
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;