快到新一年了 ,复习一下oracle为以后做多准备
一、Oracle备份方式分类:
Oracle有两类备份方式:
(1)物理备份:将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,就是冷备份、热备份;
(2)逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程,逻辑备份需要使用导入导出工具: EXPDP/IMPDP或EXP/IMP;
两种方式有什么优缺点:
oracle备份 |
概述 | 优点 | 缺点 | |
冷备份 | 数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。 | 备份安全迅速,容易维护 | 必须关闭数据库,不能随意在任意时间点上备份数据库 | |
热备份 |
热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作 | 不需要关闭数据库 ,时间点精确. | 过程复杂,操作不可恢复,数据量较小的时候 | |
逻辑备份 | 是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。 |
不可关闭,跨平台操作和迁移数据 | ||
下面来详细冷热备份的简单操作,逻辑备份需要使用工具,以后在进行概述
1.冷备份
当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:
(1)首先关闭数据库(shutdown normal)
(2)拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))
(3)重新启动数据库(startup)
以上的步骤我们可以用一个脚本来完成操作:
su – oracle < sqlplus /nolog
connect / as sysdba
shutdown immediate;
//注意11G需要使用copy,可以先通过等命令找到需要copy的文件位置
2.1 控制文件:
SQL: select * from V$CONTROLFILE
2.2 参数文件:
SQL: select * from V$PARAMETER where name like '%spfile%'
2.3 密码文件
D:\Oracle11g\product\11.2.0\dbhome_1\database\PWDorcl.ora
2.4 数据文件
SQL: select * from V$DATAFILE
2.5 日志文件
SQL: select * from V$LOGFILE
copy 文件 备份位置(所有的日志、数据、控制及参数文件);
startup;
exit;
这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。
物理冷备份的恢复:
恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。
2.热备份
当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉(少许访问量)时,这个情况下,我们就需要归档方式下的备份,就是下面讨论的热备份。热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。具体步骤如下:
1关闭数据库
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1290208 bytes
Variable Size 130023456 bytes
Database Buffers 155189248 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
3
SQL> alter database archivelog;
数据库已更改。
4
SQL> select open_mode from v$database;
OPEN_MODE
------------------
READ WRITE
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 D:\oracle\arch
最早的联机日志序列 3
下一个存档日志序列 5
当前日志序列 5
5 如果设置成自动归档
alter system set log_archive_start=true scope=spfile;
6联机备份
先启动数据库
alter database open;
将表空间设置为备份模式
alter tablespace users begin backup;
当表空间设置为备份模式后就可以对其中的数据文件进行复制了,使用命令如下
host copy D:\ora11g\*.DBF E:\backup\
复制之后 就不要设置为备份模式了,因此可以返回正常模式
alter tablespace users end backup;
7脱机备份,脱机备份的优点是会产生较少的重做日志文件,但缺点是当用户正在进行脱机备份时所备份的表空间将不能访问,由于system 系统表空间和正在使用
的undo表空间不能脱机,因此脱机备份不适用于system 表空间和正在使用的undo表空间
SQL> alter tablespace users offline;
表空间已更改。
SQL> host copy F:\app\Administrator\oradata\orcl\*dbf F:\backup\
F:\app\Administrator\oradata\orcl\EXAMPLE01.DBF
F:\app\Administrator\oradata\orcl\SYSAUX01.DBF
SQL> alter tablespace users online;
表空间已更改。
逻辑备份:未完待续!