Oracle -- oracle如何热备份(一定要理解归档模式和非归档模式!!)

最保险的的方式是物理冷备份,不要轻易试水!!

以下是物理热备份:

查询当前的模式

selectname,log_mode from v$database;

配置数据库的归档模式

1.改变非归档模式到归档模式:

1)SQL>conn / as sysdba (以DBA身份连接数据库)

2)SQL>shutdown immediate; (立即关闭数据库)

3)SQL>startup mount (启动实例并加载数据库,但不打开)

4)SQL>alter database archivelog; (更改数据库为归档模式)

5)SQL>alter database open; (打开数据库)

6)SQL>alter system archive log start; (启用自动归档)

7)SQL>exit (退出)

做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!

2.改变归档模式到非归档模式:

1)SQL>SHUTDOWNNORMAL/IMMEDIATE;

2)SQL>STARTUPMOUNT;

3)SQL>ALTERDATABASE NOARCHIVELOG;

4)SQL>ALTERDATABASE OPEN;

3.启用自动归档:LOG_ARCHIVE_START=TRUE

归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,直到归档完成为止.

这时只能读而不能写.

运行过程中关闭和重启归档日志进程

SQL>ARCHIVELOG STOP

SQL>ARCHIVELOG START

4.手动归档:LOG_ARCHIVE_START=FALSE

归档当前日志文件

SQL>ALTERSYSTEM ARCHIVE LOG CURRENT;

归档序号为052的日志文件

SQL>ALTERSYSTEM ARCHIVE LOG SEQUENCE 052;

归档所有日志文件

SQL>ALTERSYSTEM ARCHIVE LOG ALL;

改变归档日志目标

SQL>ALTERSYSTEM ARCHIVE LOG CURRENT TO '&PATH';

5.归档模式和非归档模式的转换

第4步的逆过程.

6.配置多个归档进程

Q:什么时候需要使用多个归档进程?

A:如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTERSYSTEM动态修改.

SQL>ALTERSYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;

Oracle9i中最多可以指定10个归档进程

与归档进程有关的动态性能视图

v$bgprocess,v$archive_processes

7.配置归档目标,多归档目标,远程归档目标,归档日志格式

归档目标LOG_ARCHIVE_DEST_n

本地归档目标:

SQL>LOG_ARCHIVE_DEST_1= "LOCATION=D:ORACLEARCHIVEDLOG";

远程归档目标:

SQL>LOG_ARCHIVE_DEST_2= "SERVICE=STANDBY_DB1";

强制的归档目标,如果出错,600秒后重试:

SQL>ALTERSYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORYREOPEN=600";

可选的归档目标,如果出错,放弃归档:

SQL>ALTERSYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOGOPTIONAL";

归档目标状态:关闭归档目标和打开归档目标

关闭归档目标1

SQL>ALTERSYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER

打开归档目标2

SQL>ALTERSYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE

归档日志格式

LOG_ARCHIVE_FORMAT

8.获取归档日志信息

V$ARCHIVED_LOG

V$ARCHIVE_DEST

V$LOG_HISTORY

V$DATABASE

V$ARCHIVE_PROCESSES

ARCHIVELOG LIST;

出处:http://zhan.renren.com/javabar?tagId=132778&page=1&from=pages&checked=true

你可能感兴趣的:(数据库,Oracle)