SGTMS

做事情
我们是认真的
您的位置:SGTMS>速记>Oracle数据库重新导入DMP

Oracle数据库重新导入DMP

前言

日常过程中,有时需要将生产数据库整体导出并重新导入测试环境,下面我把我删除数据库中用户并重新导入.dmp数据文件的全过程做了整理供大家参考。

正文

一、用xshell 登陆oracle 用户

二、登陆sqlplus

sqlplus / as sysdba

三、用约束方式重新启动数据库

shutdown immediate;(建议先这样重启下,数据库并不立即关闭,更安全)

startup;

shutdown abort;(直接关闭数据库,正在访问数据库的会话会被突然终止)

startup restrict;(约束方式启动,要求除 DBA 用户外的其它用户都不能访问数据库 )

注:如果不用约束方式启动数据库,则会有连接访问此数据库,下面步骤执行用户删除时会报错

四、删除用户

drop user username cascade;

......

注:若没执行上面第三步骤,仍会有用户连接,删除用户时报错:ORA-0194:cannot drop a user that is currently connected。

五。创建用户

create user username identified by password;//创建用户并设置密码

grant dba to username;//授予用户dba权限

alter user username account unlock;

alter user username identified by password;

注:适用于单个用户导入导出,若是system用户导出,则只需要有表空间,不需要创建用户。

六、服务重启

shutdown abort;

startup;

exit;

lsnrctl status 测试监听  ready 即成功

七、导入数据

impdp system/passwd directory=db_back dumpfile= sgtms_expdp_%U.dmp parallel=8 logfile=imp_sgtms_impdp.log cluster=n

注:导入出现未编译的函数,重新编译后正常。

ORA-39151错误加上table_exists_action=replace,oracle10g之后impdp的table_exists_action参数。

table_exists_action选项:{skip 是如果已存在表,则跳过并处理下一个对象;append是为表增加数据;truncate是截断表,然后为其增加新数据;replace是删除已存在表,重新建表并追加数据}。

本文最后更新于2022-11-21,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Oracle数据库重新导入DMP》
文章链接: https://www.sgtms.com/shorthand/125.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
分享到:

相关推荐

网友评论抢沙发

路人甲 表情
Ctrl+Enter快速提交