Oracle 11g -- ORACL数据库普通备份还原、数据泵备份还原
Oracle 11g -- ORACL数据库普通备份还原、数据泵备份还原
oracle11g数据库的导入/导出,就是通常所说的oracle数据的还原/备份。
数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);
数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生 成.dmp格式文件。
.dmp 格式文件:就是oracle数据的文件格式。
使用数据泵导入可以在数据库之间移动对象。
数据泵可以实现表空间之间的转移。
一、普通备份还原-exp、imp
通用命令:exp(imp) username/password@SERVERNAME:1521 file=”e:\temp.dmp” full = y;
1、数据备份(导出)
如果出现问题,可能是因为有的表已经存在,然后它就报错,对该表就不进行导入,在后面加上 ignore=y 就可以了。
exp system/manager@orcl file=D:\oracle_backup\example_exp.dmp full=y
这里file指的是导出后文件所在的路径
2、数据还原(导入)
1)建表空间
create tablespace mytablespace00001 datafile ‘D:\EFMCS.dbf’ size 50M autoextend on next 50M maxsize unlimited;
2)建用户
create user xinrong identified by 000000 default tablespace mytablespace00001;
3)赋予权限
grant connect, dba to xinrong;
4)导入指定路径下的数据
imp system/000000@orcl file = D:\oracle_backup\example.dmp fromuser=xinrong full=y log=D:\example.log
这里的fromuser指的是导出数据时使用的用户名
这里的file指的是要导入的数据文件路径
这里的log指的是执行日志所在的路径
二、数据泵备份还原-expdp、impdp
1、数据泵备份(导出)
1)system用户登陆oracle
管理员方式打开cmd.exe,输入命令:sqlplus system/manager@orcl
2)创建逻辑目录
创建备份逻辑目录,此目录不是真实的目录,它代表的是本地磁盘上存在的路径,路径里面存放的是要备份的文件。
create directory data_dir as 'D:\oracle_exp\xinrong\';
data_dir为路径名称,可自命名,D:\oracle_exp\xinrong\为数据库导出文件存放路径(路径必须存在)。
该路径下存放的是要进行备份的文件:example.dmp。
3) 将逻辑目录下的数据进行备份(导出)
另外启动一个cmd窗口,输入dos命令:
expdp system/manager@orcl directory=data_dir dumpfile=expdp00001.dmp logfile=00001.log
directory=创建的逻辑目录名
dumpfile=导出(备份)后的文件名
logfie=打印执行日志的文件名
查看本地磁盘:
2、数据泵还原(导入)
SQL> drop tablespace mytablespace00001 including contents and datafiles;
SQL> drop user xinrong;
SQL> drop directory databackup;
1)创建表空间
create tablespace mytablespace00001 datafile 'D:\oracle_imp\xinrong\mytablespace00001.DBF' size 50M segment space management auto;
datafile后是表空间的存储位置,.DBF文件所在的路径必须是已存在的,
创建成功后该路径下就会出现对应的.DBF文件。
2)建用户、设置密码
SQL> create user xinrong identified by 000000 default tablespace mytablespace00001;
3)给用户授权
SQL> grant connect,resource,dba to xinrong;
4)创建逻辑目录
SQL> create directory databackup as 'D:\oracle_backup';
5)给用户授权
SQL> grant read, write on directory databackup to xinrong;
6)还原逻辑目录下的数据
impdp xinrong/000000@orcl directory= databackup dumpfile=example.DMP logfile=impdp00001.log --remap_schema=xinrong:xinrong
dumpfile是要进行还原(导入)文件的名字
logfile指是用来打印执行日志的文件名
三、遇到的问题与解决
在磁盘上误删表空间文件的话,再次DOS命令按照之前的用户登陆的话验证会失败,解决方法:
第一步、sqlplus /NOLOG
第二步、sql>connect sys/change_on_install as sysdba
第三步、sql>shutdown normal
第四步、sql>startup mount
第五步、sql>alter database open;
这步可能会出现以下类似的错误:
ORA-01157: 无法标识/锁定数据文件19 - 请参阅DBWR 跟踪文件
ORA-01110: 数据文件19: ””C:\oracle\oradata\oradb\FYGL.ORA”
可以根据这个提示,继续输入
第六步、sql>alter database datafile 19 offline drop;(数字按照报错提示改)
接着继续输入shutdown normal,startup mount就可以了
这步之后如果还是不行 就停止所有Oracle服务,然后重新启动再次输入DOS命令连接数据库即可。