备份数据oracle题目,Oracle专题17之数据备份和恢复

由于计算机系统的各种软硬件故障,用户的错误操作以及一些恶意破坏难以避免,因此这就影响到数据的正确性,甚至造成数据损失,服务器崩溃的严重后果。

所以经常的备份可以有效地防止数据丢失,能够把数据从错误状态恢复到正确状态。

b、备份解决方案

Oracle备份有分为:物理备份和逻辑备份。

物理备份又分为冷备份和热备份。(热备份又分为用户管理备份和Oracle管理备份)

bd7c60c64258b3589a8c73b06dee9379.png

c、冷备份(脱机备份)具体步骤

脱机备份是在关闭数据库后进行的完整备份

脱机备份是最快和最安全的方法。

脱机备份是数据库全部文件的备份,包括参数文件、所有控制文件、所有数据文件、所有联机重做日志文件。

脱机备份的具体步骤分为三步:

1、以sys用户或者system身份登录数据库,以immediate方式关闭数据库。

SQL> conn sys/02000059 as sysdba

已连接。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

2、把需要备份的文件拷贝到指定的位置。(复制所有需要备份的文件)

bb60222e6e26b27d5cc22b2fefbdab7c.png

3、拷贝完成后,如果继续让用户使用数据库,需要以open方式启动数据库。

SQL> startup open

ORACLE 例程已经启动。

Total System Global Area 3373858816 bytes

Fixed Size 2180424 bytes

Variable Size 2013268664 bytes

Database Buffers 1342177280 bytes

Redo Buffers 16232448 bytes

数据库装载完毕。

数据库已经打开。

d、脱机备份的优点和不足

优点:

1、是非常快速的备份方法(只需要拷贝文件)。

2、容易归档(简单拷贝即可)。

3、容易恢复到某个时间点上(只需要将文件在拷贝回去)。

4、能够与归档方法向结合,作为数据库“最新状态”的恢复。

5、低度维护,高度安全。

不足:

1、单独使用时,只能提供到“某一时间点上”的恢复。

2、在实施备份的全过程中,数据库必须要做备份而不能作为其他工作。也就是说,在脱机备份过程中,数据库必须是关闭状态。

3、若磁盘空间有限,只能拷贝到其他外部存储设备上时,速度会很慢。

4、不能按表或者按用户恢复。

e、数据库恢复

数据库恢复就是把数据库中备份出来的数据重新还原给原来的数据库。

数据库恢复技术分为完全恢复和不完全恢复。

安全恢复是指把数据库恢复到数据库失败时的数据库状态;不完全恢复是指将数据库恢复到数据库失败前的某一时刻的数据库状态。

f、脱机恢复

脱机恢复是使用备份文件将数据库恢复到备份时的状态。

g、脱机恢复的具体操作

脱机恢复的具体步骤分为三步:

1、以sys用户或者system身份登录数据库,以immediate方式关闭数据库。

2、将所有备份文件全部拷贝到原来的位置。

3、拷贝完成后,如果继续让用户使用数据库,需要以open方式启动数据库。

2、数据的导入和导出

a、图形化导入导出数据的方式

1、使用PLSQL Developer工具导出数据:

第一种是导出为.dump的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最为广泛。

cbdc1433c25acd2fc5f195339f935edf.png

dd72a34b5f22efbe74ce1b44f540562a.png

第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但是效率不如第一种,适合小数据量导入导出。

0349f53081deeb1ba362c85b32ee9db6.png

2、使用PLSQL Developer工具导出数据:

第一种是导入为.dump格式的文件:

1e5b153f0586f96f8dde7624376bc257.png

第二种是导入为.sql格式的文件:

003e29e22137b755909c5f689c95587c.png

需要注意,导入的.sql格式的文件可以没有数据,但是必须要有表的结构,不然导入会失败。

b、命令行的方式进行数据的导出

数据导出命令执行方式如下:

EXP[username/password] 参数1 参数2

示例1:将数据库orc完全导出。

exp system/oracle@orcl file=c:\dump\oracle_bak.dmp full=y

示例2:将数据库中scott用户的所有对象导出。

exp scott/tiger1@orcl file=c:\dump\scott_bak.dmp owner=scott

示例3:将scott用户中表emp,dept导出

exp scott/tiger1@orcl file=c:\dump\table_bak.dmp tables=(emp, dept)

c、命令行的方式进行数据的导入

导入数据命令执行方式如下:

IMP [username/password] 参数1 参数2 ... ...

将备份文件导入到数据库中:

imp scott/tiger1@orcl file=c:\dump\scott_bak.dmp ignore=y

需要注意,此示例中用scott用户进行的导出操作,在导入时也必须由scott用户进行导入操作。

3、利用触发器实现数据的同步备份

a、利用触发器实现数据的同步备份图示

dd4ce583677287727b45ec5c92dc4cdd.png

b、示例:利用触发器实现数据的同步备份

因为在系统中只安装一个Oracle数据库,选择的方式是在同一数据库中进行备份:(即A表和A表备份都在同一个数据库中)

43d29391a976ced64a0f4a1644458767.png

1、创建员工表的备份表:

CREATE TABLE emp_bak

AS

SELECT * FROM emp;

2、创建触发器来实现数据的同步备份。(如当删除员工后,备份表同步删除)

CREATE OR REPLACE TRIGGER syno_bak_tirgger

AFTER DELETE

ON emp

FOR EACH ROW

BEGIN

DELETE FROM emp_bak WHERE empno = :old.empno;

END;

3、测试

DELETE FROM emp WHERE empno = 7951;

SELECT * FROM emp;

SELECT * FROM emp_bak;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值