oracle 通过sql语句备份数据库

oracle 通过sql语句备份数据库,第1张

oracle没有sql语句备份,只有exp导出或者RMAN备份,都不是sql,RMAN是标准的数据块备份,前提要求是数据库一定要开启归档,然后才可以进行RMAN备份,这个方法对数据量大的数据库可以使用,速度会比较快,具体方法可以从网上查,不是很难,但比较繁琐,还有一个exp导出,这个是直接将数据库内的表直接导出城dmp文件,具体的语法是

exp user/password@DBSID file=D:\备份目标文件夹\文件名dmp log=D:\备份目标文件夹\文件名log owner=用户名

上述语句是需要在cmd命令行下执行的,如果想导出哪个用户就可以导出哪个用户,只要能用sql语句连接到数据库就可以使用,不管在哪个机器

ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。

数据库逻辑备份方法,ORACLE数据库的逻辑备份分为三种模式:完全备份、用户备份和表备份。

1、完全:

EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULLDMP FULL=Y

如果要执行完全导出,必须具有特殊的权限

2、用户模式:

EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONICDMP OWNER=SONIC

这样用户SONIC的所有对象被输出到文件中。

3、表模式:

EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONICDMP OWNER=SONIC TABLES=(SONIC)

这样用户SONIC的表SONIC就被导出

备份恢复:

具有三种模式(完全、用户、表)

1、完全:

IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULLDMP FULL=Y

2、用户模式:

IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONICDMP FROMUSER=SONIC TOUSER=SONIC

这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。

3、表模式:

EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONICDMP OWNER=SONIC TABLES=(SONIC)

冷备份

冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。

过程:

冷备份数据必须是数据库不在open状态下。 以下步骤会给出详细的过程:

◆(1): 关闭DB : shutdown immediate;

◆(2):copy oradata目录下的所有文件, 包括数据文件, 控制文件,redo,等,还需要copy 密码文件 在目录ora92下 的database 中的pwd 文件全部copy到一个安全目录中。在sql 下可以直接加一个 host 然后使用dos命令。如host copy

◆(3):如果是 *** 作系统的重新安装,只要是同样系统,同样数据库版本,是可以做冷备恢复。一下谈的是系统的重新安装后的步骤。

◆(4):正常安装oracle软件,只需要安装软件,可以不用建实例,建实例的时间也比较长,也没有必要。 软件安装好以后,开始准备恢复。

◆(5):数据覆盖过去包括pwd文件,放在原来的目录,如果目录有所改变则需要另外建立控制文件,修改pfile。

◆(6):建立服务:使用oradim 命令 cmd下 oradim -new -sid erp 表示建立一个服务,sid为erp。关于oradim的命令另外给出专门解释。

◆(7):建立监听: net configuration assintant 来建立,或用脚本建立并且开启。

◆(8):打开数据库: 用oem也行,cmd下也行。

set oracle_sid=erp;

sqlplus "/as sysdba";

startup;

select from v$instance;

至此,冷备份恢复成功。即使你现在用oem打开数据库时发现提示找不到sid ,但实际上你已经成功了,此时只需要重启一下的你的服务器就可以了。

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

热备份

热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下 *** 作,并需要大量的档案空间。一旦数据库处于archive loh

模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。

过程:

1准备工作

由于在备份过程中,数据库仍然是打开的,所以要求正在复制的各个数据文件管理的表空间必须处于备份模式。备份完后再脱离备份模式。因此备份前必须将ORACLE 数据库调整为归档模式。查看代码如下

查看当前数据库归档状态:ARCHIVE  LOG  LIST:以下为非归档

<img src=">

2数据库备份

21查询要备份表空间对应的数据文件的详细信息

select file_name from dba_data_files

where

tablespace_name='USERS';

22将表空间设为备份模式

ALTER  TABLESPACE  USERS  BEGIN  BACKUP;

23查看处于备份模式的数据文件:

select     from   v$backup;

24使用 *** 作系统命令备份表空间的数据文件

HOST COPY f:\BAK\ HOST COPY f:\oracle\oradata\orcl\dbf//将前面ORACLE数据库热备份的文件拷贝到系统目录中

25将表空间设置为正常模式

ALTER TABLESPACE  USERS  END  BACKUP。

exp/imp

下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。

数据导出:

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)

基本上上面的导入导出够用了。

以上就是关于oracle 通过sql语句备份数据库全部的内容,包括:oracle 通过sql语句备份数据库、oracle数据库怎么备份恢复、oracle如何备份单表并在新数据库恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10183052.html

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

发表评论

登录后才能评论

评论列表(0条)

保存