前言
日常过程中,有时需要将生产数据库整体导出并重新导入测试环境,下面我把我删除数据库中用户并重新导入.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是删除已存在表,重新建表并追加数据}。
文章名称:《Oracle数据库重新导入DMP》
文章链接: https://www.sgtms.com/shorthand/125.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
网友评论抢沙发