oracle数据库怎么备份恢复

oracle数据库怎么备份恢复,第1张

单击开始,这里输入cmd,打开dos窗口

输入命令

exp bms/BMSPASS@TCDB file=E:\DBback\dbback20160112dmp

这里说明一下

这里的bms是指备份时,登录数据实例TCDB的用户名;

这里的/是语法符号。

这里的BMSPASS是用户bms登录数据库TCDB时的密码;

@是语法符号。

这里的TCDB是Oracle数据库的实例名。

这里的file=E:\DBback\dbback20160112dmp 是只指备份文件的存放路径。

等待导出完成,如果看到这里的导出成功,说明备份完成了。

打开备份时指定的存储路径,就可以看到备份文件了。

如果在导出命令的最后加上full=y的参数,也就是

exp bms/BMSPASS@TCDB file=E:\DBback\dbback20160112dmp full=y

意思是将用户bms在TCDB数据库实例中的所有文件都备份,也就是完整备份。

数据库还原使用语法

imp bms/BMSPASS@TCDB file=E:\DBback\dbback20160112dmp

这里的E:\DBback\dbback20160112dmp是备份文件的存放路径

(1) 为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。 (2) 回滚未提交的事务,按步1重新生成回滚段所指定的 *** 作。 (3) 释放在故障时正在处理事务所持有的资源。

一、逻缉备份:exp/imp 导出导入

二、用户管理的备份恢复:1、冷备份,正常关闭数据库, *** 作系统拷贝整个数据库文件。

2、热备份,在数据库开启时,把要备份的数据文件改为bakcup状态

联机拷贝文件。

三、rman管理的备份恢复

========exp导出表的dmp文件==============

1、表数据不大的时候,可一次导出多张表

exp username/password file=/home//filenamedmp tables=(tablename1,tablename2,)

如:

exp username/password file=/home/oracle/20110909_other1dmp tables=(tablename1,tablename2,)

2、表的数据比较大的时候,可以添加查询条件:query

exp username/password file=/home//filenamedmp tables=(tablename) query=\"where column1 in \(,,\) and column2 \>= to_Date \(\'2011-08-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) and column2 \<to_date\(\'2011-09-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) \"

如:

exp username/password file=/home/oracle/201108_101_PortRatedmp tables=(T_PORTRATE) query=\"where subregionid in \(102,103,104,105,106,108,109,110,111,112,114,1135216\) and CREATETIME \> =to_date\(\'2011-08-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) and CREATETIME \<to_date\(\'2011-09-01 00:00:00\' ,\'yyyy-MM-DD HH24:MI:SS\'\) \"

exp中的file后面的路径和文件名,都是指的在exp那台机器上的路径和文件名。

=======imp导入表的dmp文件=============================

imp username/password file ='/home///filenamedmp' full=y indexes=y buffer=65536

当被导入的数据库的表中已经存在一部分数据,而我们imp的dmp文件中的数据可能是另外一些查询条件emp出来的,

可以不覆盖原表中的数据,直接继续导入,加上以下参数。

ignore=y,即告诉IMP如果当前表存在就不创建表结构而直接导入新的数据。

imp username/password file ='/home///filenamedmp' full=y indexes=y buffer=65536 ignore=y

=========exp过程中的错误:EXP-00091===========

原因:EXP-00091问题是exp工具所在的环境变量中的NLS_LANG与DB中的NLS_CHARACTERSET不一致导致的

解决方法:在exp的机器上,

1、[oracle@>

Oracle数据库备份与还原命令

数据导出:

1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochudmp中

exp system/manager@TEST file=d:\daochudmp full=y

2 将数据库中system用户与sys用户的表导出

exp system/manager@TEST file=d:\daochudmp owner=(system,sys)

3 将数据库中的表table1 、table2导出

exp system/manager@TEST file=d:\daochudmp tables=(table1,table2)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

exp system/manager@TEST file=d:\daochudmp tables=(table1)query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。

不过在上面命令后面 加上 compress=y 就可以了

数据的导入

1 将D:\daochudmp 中的数据导入 TEST数据库中。

imp system/manager@TEST file=d:\daochudmp

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上 ignore=y 就可以了。

2 将d:\daochudmp中的表table1 导入

imp system/manager@TEST file=d:\daochudmp tables=(table1)

基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

注意:

你要有足够的权限,权限不够它会提示你。

数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上

附录一:

给用户增加导入数据权限的 *** 作

第一,启动sqlpuls

第二,以system/manager登陆

第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字

第五, 运行-cmd-进入dmp文件所在的目录,

imp userid=system/manager full=y file=dmp

或者 imp userid=system/manager full=y file=filenamedmp

安装oracle9I

Szportdb\szportdb\szportdb

用sysdba 登录建立用户:szportdb 表空间可以自己设定,也可以Users

倒入数据库。

Imp szportdb/szportdb@szportdb full=y C:\szportdbdmp ignore=

以上就是关于oracle数据库怎么备份恢复全部的内容,包括:oracle数据库怎么备份恢复、如何Oracle 数据库备份与恢复、Oracle 数据库的备份与恢复都有哪几种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10073200.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存