ORACLE成长日记之ORACLE 11G 数据库备份(一)

脱机备份和恢复

步骤:

1、关闭数据库。

2、将数据文件、控制文件、参数文件复制到备份设备上。

3、重新启动数据库。

例如27:脱机备份数据库

答:

第一步:确定要备份的文件名称和路径

A、确定要备份的数据文件的名称和路径。

SQL> SELECT FILE_NAME FROM DBA_DATA_FILES;

FILE_NAME

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

G:\APP\ORA\ORADATA\TEST\USERS01.DBF

G:\APP\ORA\ORADATA\TEST\UNDOTBS01.DBF

G:\APP\ORA\ORADATA\TEST\SYSAUX01.DBF

G:\APP\ORA\ORADATA\TEST\SYSTEM01.DBF

B、确定要备份的控制文件的名称和路径。

SQL> SELECT NAME FROM V$CONTROLFILE;

NAME

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

G:\APP\ORA\ORADATA\TEST\CONTROL01.CTL

G:\APP\ORA\FLASH_RECOVERY_AREA\TEST\CONTROL02.CTL

C、确定要备份的日志文件的名称和路径

SQL> SELECT MEMBER FROM V$LOGFILE;

MEMBER

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

G:\APP\ORA\ORADATA\TEST\REDO03.LOG

G:\APP\ORA\ORADATA\TEST\REDO02.LOG

G:\APP\ORA\ORADATA\TEST\REDO01.LOG

第二步:关闭数据库

SQL> SHUTDOWN IMMEDIATE;

数据库已经关闭。

已经卸载数据库。

ORACLE例程已经关闭。

第三步:复制数据库文件

SQL> $COPYG:\APP\ORA\ORADATA\TEST\USERS01.DBF F:\BACKUP\;

第四步:恢复数据库

关闭数据库,将复制出来的文件,复制回原来的位置,重启数据库。

联机备份数据库

步骤:

1、切换到归档模式,数据库实现联机备份必须在归档模式下运行。如果不是归档模式,可以使用以下方式切换至归档模式。

A、关闭数据库

SQL>SHUTDOWN IMMEDIATE;

B、使用STARTUP MOUNT启动例程,装载数据库。但此时数据库还没有打开,要切换运行模式,数据库必须处在装载但不打开的状态。

SQL>STARTUP MOUNT;

C、切换到归档模式

SQL>ALTER DATABASE ARCHIVELOG;

D、打开数据库

SQL>ALTER DATABASE OPEN;

E、确认是否成功

SQL>ARCHIVE LOG LIST;

2、联机备份

A、备份表空间

a)、设置表空间为热备份模式。

例如28:将表空间USERS设置为热备份模式。

答:SQL>ALTER TABLESPACE USERS BEGIN BACKUP;

b)、复制处于热备份模式下的表空间所对应的所有数据文件。

c)、设置表空间为非热备份模式。

SQL> ALTER TABLESPACE USERS END BACKUP;

d)、对每个表空间都执行上诉步骤。

e)、强制进行一次日志切换,归档当前的联机重做日志文件。

SQL> ALTER SYSTEM SWITCH LOGFILE;

B、备份控制文件

备份控制文件要以SYSDBA的身份登录数据库。

a)、直接复制控制文件

SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'F:\BACKUP\';

b)、生成跟踪文件的方式复制控制文件。

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

此时ORACLE会在USER_DUMP_DEST指定的目录下生成一个跟踪文件,可根据下列语句查看跟踪文件的物理位置,该文件记录了重建控制文件的SQL语句。

SQL> SHOW PARAMETER USER_DUMP_DEST;

下列语句可以查询SPID,获得SPID之后到上面查询的路径下找到ORCL_ORA_[SPID].TRC文件,此文件便记录了重建控制文件的SQL语句。

SQL> SELECT SPID FROM V$PROCESS WHERE ADDR = (SELECTPADDR FROM V$SESSION WHERE SID =(SELECT SID FROM V$MYSTAT WHERE ROWNUM = 1));

C、备份日志文件

a)、强制转换

SQL> ALTERSYSTEM ARCHIVE LOG CURRENT;

b)、使用$COPY命令。

联机恢复数据库

A、关闭数据库

SQL>SHUTDOWN IMMEDIATE;

B、在V$RECOVER_FILE中查找损坏的文件

SQL> SELECT * FROM V$RECOVER_FILE;

C、恢复数据库

a)、以STARTUP MOUNT方式启动。

b)、查询V$DATAFILE列出所有数据文件的状态,确保左右数据文件都处于联机状态,根据恢复需要执行不同的RECOVER命令。

SQL>RECOVER DATABASE恢复整个数据库。

SQL> RECOVER TABLESPACE表空间名恢复某一个表空间。

SQL> RECOVER DATAFILE数据文件名恢复某一个数据文件。

D、打开数据库

SQL>ALTER DATABASE OPEN;

推荐阅读更多精彩内容