怎么完全备份ORACLE数据库,并在另一台电脑上恢复。

我公司有一数据库,我想在自己的电脑上也建一同样的数据库,回家后也可以继续工作。像sqlserver有将数据库备份,再在另一电脑上直接恢复的功能,在ORACLE中不知在哪里... 我公司有一数据库,我想在自己的电脑上也建一同样的数据库,回家后也可以继续工作。像sql server有将数据库备份,再在另一电脑上直接恢复的功能,在ORACLE中不知在哪里。 展开
 我来答
千锋教育
2015-12-18 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
Oracle10G数据库中,数据库文件的备份与恢复可以有很多的方式来实现,这里介绍一种基于用户管理的备份与恢复。基于用户管理的备份是指使用OS命令来备份数据库物理文件。

备份数据库

数据库一致性备份:关闭数据库以后备份数据库物理文件,这时数据文件scn值完全一致,所以称之为数据库的一致性备份或冷备份,适用于归档模式与非归档模式。

对基于用户管理的冷备份的暂时理解:在数据库shutdown状态下使用OS命令直接拷贝数据库物理文件。

数据库非一致性备份:在open状态下备份数据库物理文件,这时数据库内容可能会改变导致数据文件scn不一致,所以称之为数据库的非一致性备份或热备份,只适用于归档模式。

基于用户管理的完全恢复(归档模式下)

1.在open状态下备份数据库物理文件(数据库非一致性备份,热备份,不影响业务运行)

2.删除数据文件来模拟文件丢失(只是删除了所有的数据文件;控制文件等其它文件处于正常状态)

3.对数据文件进行恢复

4.应用归档日志

5.查看数据是否完全恢复

--sysdba执行备份

SQL> conn / as sysdba

Connected.

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf

/oracle/10g/oracle/product/10.2.0/oradata/oralife/undotbs01.dbf

/oracle/10g/oracle/product/10.2.0/oradata/oralife/sysaux01.dbf

/oracle/10g/oracle/product/10.2.0/oradata/oralife/users01.dbf

/oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf

SQL> alter database begin backup;

Database altered.

SQL> host cp /oracle/10g/oracle/product/10.2.0/oradata/oralife/*.dbf /oracle/10g/oracle/bakup/database/ --备份所有数据文件

SQL> alter database backup controlfile to '/oracle/10g/oracle/bakup/database/oralife.ctl'; --备份控制文件

Database altered.

SQL> alter system archive log current; --归档当前日志组

System altered.

进行完全恢复
copy备份的数据文件到指定的目标位置,进行恢复:
SQL> recover database --open状态

ORA-00283: recovery session canceled due to errors

ORA-01124: cannot recover data file 1 - file is in use or recovery

ORA-01110: data file 1:

'/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'

SQL> shutdown immediate --open状态

ORA-01122: database file 1 failed verification check

ORA-01110: data file 1: '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'

ORA-01208: data file is an old version - not accessing current version

SQL> startup force mount; --进入mount状态进行恢复

ORACLE instance started.

Total System Global Area 528482304 bytes

Fixed Size 1220360 bytes

Variable Size 163578104 bytes

Database Buffers 356515840 bytes

Redo Buffers 7168000 bytes

Database mounted.

SQL> recover database

Media recovery complete.

SQL> alter database open;

Database altered.

没有出现应用归档日志,应用归档日志有几种方式:

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

当在open状态下对数据文件进行恢复时,应该将其offline,恢复完成后,再将其online;所有的恢复应该尽量在open状态下完成。
zjwssg
2010-10-27 · TA获得超过1232个赞
知道答主
回答量:441
采纳率:0%
帮助的人:244万
展开全部
最简单的办法是 把你公司oracle关闭后,冷备份;复制相关的 数据文件 控制文件 redo 密码文件 初始化文件 等到你自己PC上就可以直接启动了(你自己PC上只需求安装oracle程序就行)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
推荐于2018-02-27 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
1,在公司,不知道你公司数据库是什么操作系统,暂且当成是windows吧
开始-运行-cmd
然后进到一个相对空间比较大的盘符及目录,执行以下:
exp 数据库用户名/密码 file=生成的文件名.dmp log=日志.dmp full=y

这样会在你进的那个目录下生成一个dmp文件,用移动硬盘copy

2,回家,装oracle,版本最好与你公司相同
建用户,与公司相同,权限、表空间等最好也一样,省得导入的时候麻烦

3,cmd下进入你copy回家的东西的目录,执行:
imp 你家数据库的用户名/密码 file=之前导出的文件名 log=日志 full=y ignore=y

基本就差不多了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nweibd
2015-10-12 · TA获得超过394个赞
知道小有建树答主
回答量:533
采纳率:54%
帮助的人:185万
展开全部
expdp
impdp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式