概念:指在OPEN 状态下备份数据库所有数据文件和控制文件的方法。因为在OPEN 状态下数据库内容随时都会改变,从而导致不同数据库文件的当前SCN值完全不同,所以打开时的数据库备份被称为数据库非一致性备份。
注意:非一致性备份只适用:ARCHIVELOG模式,而不适用与NOARCHIVELOG模式。
具体步骤:
一 列出要备份的数据文件和控制文件。
SQL> select name from v$datafile;
NAME
--------------------------------------------------
F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF
F:\APP\YANG\ORADATA\ORACL\SYSAUX01.DBF
F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF
F:\APP\YANG\ORADATA\ORACL\USERS01.DBF
F:\APP\YANG\ORADATA\ORACL\EXAMPLE01.DBF
二 开始备份数据库。。将数据库设置为备份模式,此时数据库会发出全局检查点,并且会在所有的数据文件头上加锁,以确保备份期间数据文件的头内容不会改变。
SQL> alter database begin backup;
数据库已更改。
三。 备份所有数据文件和控制文件。需要注意的是由于在open状态下,备份控制文件时要用 ALTER DATABASE BACKUP CONTROLFILE 命令。
SQL> @f:\backup.sql
SQL> alter database backup controlfile to 'f:\lib\control.ctl' reuse;
数据库已更改。
四。结束数据库备份,在结束数据库备份之后,为了保护数据库文件备份的同步性,还应该归档当前日志文件。
SQL> alter database end backup;
数据库已更改。
SQL> alter system archive log current;
系统已更改。
back.sql脚本的内容:
host copy F:\APP\YANG\ORADATA\ORACL\CONTROL01.CTL f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\CONTROL02.CTL f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\CONTROL03.CTL f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\EXAMPLE01.DBF f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\SYSAUX01.DBF f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF f:\backup
host copy F:\APP\YANG\ORADATA\ORACL\USERS01.DBF f:\backup
其实可以将其脚本设置的更加优化,将步骤二,三 四都加入到该脚本。有兴趣的朋友可以试试。。。我就不做了。