怎么从oracle数据库备份数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么从oracle数据库备份数据库相关的知识,希望对你有一定的参考价值。

1、首先先确认oracle服务器上oracle中标红的相关的服务是否已经正常启动。

2、然后要把PLSQL关闭,让连接先退出一下,确保断开数据库的所有连接,如果数据库中有正在连接客户端,备份的时候可能会出现异常。

3、接着打开cmd命令提示符窗口,输入备份数据库的命令,xp命令的后面跟用户名和密码,file是备份的路径,owner则是数据库的用户名,按下回车键等待备份。

4、耐心等待。当数据完成导出之后,cmd窗口中会出现的提示语,这就表示已经完成了数据库备份导出的动作。

5、这时候在计算机中找到第四步中设定的文件保存路径,如下截图,你会发现多了一个dmp的文件,这个文件就是我们需要的备份文件了。

参考技术A exp user/pwd@实例名称(远程电脑的话是你本地配置好的链接名称) file=D:\a.dmp 参考技术B Oracle用户的导出与导入
导出:
1、 找到你Oracle安装位置的bin目录下的 emp.exe
如: D:\oracletools\oracle\product\10.2.0\db_1\BIN
2、双击运行,输入你要导出的用户名和密码(密码不可见)
3、输入你导出文件存放的位置
如:d:\crm.dmp 【一定是bmp文件】

导入:
1、 创建用户 如:crm 【如果存在crm用户(里面含有数据等 先删除 drop user crm cascade)】
2、 赋权让其拥有导入的权限 grant dba to crm
3、 找到你Oracle安装位置的bin目录下的 imp.exe
4、 输入你要导入dmp文件的位置本回答被提问者和网友采纳

oracle数据库如何每天自动执行脚本完成正式数据库到备份数据库的备份

楼主:供参考
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。
建议一(做周备份并压缩为RAR)以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现 :
例:
@ECHO OFF
SET BACKPATH=d:\
ECHO 准备备份数据库
REM 7天一个循环
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E > %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP ccense/ccense FILE=%BACKPATH_FULL%.DMP
RAR a %BACKPATH_FULL%.rar %BACKPATH_FULL%.DMP
DEL %BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
说明:
文件名以星期来命名
备份后调用rar进行压缩
这样可以保存一个星期的历史数据
注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下
建议二:
1,批处理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
将生成oracle2006-01-09.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环 $date$日期参数可灵活运用。
参考技术A 我不知道你用的是什么工具,如果是PL/SQL的话,看左边的菜单栏,有个jobs ,或者有一个dbms_job 好像,在那里面配置一些参数就可以让脚本每天到时间自动执行。追问

我使用的是PLSQL,但没用过jobs,能麻烦告诉我详细步骤吗?另外,脚本是直接写的表备份语句吗?

参考技术B 写个脚本完成正式数据库到备份数据库的备份
再设定Task Schedule 每天某个时间自动执行这个脚本
参考技术C 写个脚本定时调用存储过程就好了。

以上是关于怎么从oracle数据库备份数据库的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 怎么做数据备份? oracle 软件本身不带备份功能吗? 和怎么还原。

ORACLE备份恢复问题,请帮忙解析

linux下怎么定时备份oracle数据库

oracle数据库备份exp命令

oracle 备份

怎么把数据从oracle11迁到oracle12