oracle备份恢复(dmp文件)

oracle备份恢复(dmp文件)oracle备份恢复(dmp文件)jidmp文件恢复方式:只能通过代码恢复注意:Oracleexpdp/impdp导出导入命令及数据库备份2者之间的区别使用EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EX..

oracle备份恢复(dmp文件)

jidmp文件恢复方式:只能通过代码恢复

注意: Oracle expdp/impdp导出导入命令及数据库备份  2者之间的区别

使用EXPDP和IMPDP时应该注意的事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:

expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

参考博客:https://www.cnblogs.com/zhangruiBlog/p/4682616.html

附imp导入命令:

imp SKZY2018/skzy2018 file=’F:\backup\20200807120000.DMP’ full=y

 

dmp备份文件为EXPDP导出的文件 因此只能在服务端使用impdb命令导入

alter user sys identified by SKZY 修改oracle 用户密码

开始导入数据:

参考博客:https://www.cnblogs.com/hellowood23/p/5249630.html

由于我的数据库备份文件指定了库名,因此必须创建相同的用户进行数据导入

创建用户(启动cmd )

以dba运行sqlplus:

sqlplus “/as sysdba”

 

创建用户SKZY :

CREATE USER SKZY PROFILE DEFAULT IDENTIFIED BY SKZY

DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE temp ACCOUNT UNLOCK ;

 

赋予用户SKZY 权限

GRANT UNLIMITED TABLESPACE TO SKZY;

GRANT CONNECT,RESOURCE TO SKZY;

grant dba to SKZY;

 

在我的电脑里面,建立文件夹D:/SKZY,把要还原的DMP文件拷贝进该文件夹

创建DIRECTORY,并且赋权限给SKZY用户

CREATE OR REPLACE DIRECTORY tempdump AS ‘D:/SKZY/’;

GRANT READ, WRITE ON DIRECTORY tempdump TO SKZY;

 

新开cmd窗口运行impdb导入数据:

导入数据:impdp SKZY/SKZY@ORCL full=Y directory=tempdump dumpfile=20200807120000.DMP

 

正常来说运行上述程序即可导入数据成功,但是也有特殊情况:

实际遇上的问题:

表空间不存在

第一次导入数据时提示表空间“BJHYS”不存在,导入失败

解决方案:创建表空间BJHYS

首先删除刚才创建的用户,然后在sqlplus dba模式下新建表空间:

create tablespace BJHYS datafile ‘D:/SKZY/BJHYS.dbf’ size 2000m autoextend on next 100m maxsize unlimited;

(创建表空间BJHYS 初始大小2000M 自动增加大小100M)

附:删除用户出现问题:无法删除当前已连接用户

网上解决办法:

 

select username,sid,serial# from v$session 查看当前oracle连接

 

alter system kill session ‘14,60596’ 杀死oracle连接

 

drop user SKZY2018 cascade ///删除oracle用户

 

但是我在运行上述解决办法时并不成功,于是我用了最直接的办法,重启server服务

找到OracleServiceORCL服务 直接停止重新启动即可删除用户及用户数据

字符集问题

解决表空间问题之后重新导入,出现导入失败,ORA-02374 ,ORA-12899,ORA-02372

参考博客:https://www.linuxidc.com/Linux/2018-05/152228.htm之后发现是数据库字符集不对

正式环境的字符集是ZHS16GBK 而测试环境安装oracle之后默认字符集是AL32UTF8

由于utf8人为汉字是3个字符,而gbk汉字是两个字符,所以一直导入失败

 

解决办法:修改测试环境字符集

参考博客:https://www.cnblogs.com/test-7/p/10454758.html

https://www.cnblogs.com/zhangxiaokui/p/13100488.html

 

select * from nls_database_parameters 查看当前oracl数据库字符集

cmd下sqlplus 以dba模式启动运行

正常关闭数据库 :shutdown immediate

将数据库启动到mount状态:startup mount 

将数据库设置为首先模式: ALTER SYSTEM ENABLE RESTRICTED SESSION; 

            ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;(只用于复制环境)

            ALTER SYSTEM SET AQ_TM_PROCESSES=0; 【如果大于零, 就会启用对队列消息的时间监视。该时间值可用于指定消息的延迟和失效属性 (用于应用程序的开发)。】

打开数据库:alter database open;

       alter database character set INTERNAL_USE ZHS16GBK;

      或者ALTER DATABASE character set INTERNAL_USE AL32UTF8;  

关闭数据库:shutdown immediate

将数据库启动:startup;

由于之前你设置了restricted限制了其他用户的登录,可能导致其他客户不能通过pl/sql来登录影响正常使用,

      alter system disable restricted session;

 

第一次运行shutdown immediate出现ORA-24324

参考博客:https://blog.csdn.net/qq_36998053/article/details/82758843

解决办法:简单粗暴,重启OracleServiceORCL服务即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35780.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注