oracle 归档模式ARCHIVELOG

2018-06-15

oracle 部署数据库之初必须选择归档模式(ARCHIVELOG)或者非 归档模式(NOARCHIVELOG )下运行数据库。

归档模式的优点
◦可以进行完全、不完全恢复:由于对数据库所做的全部改动都记录在日志文件中,如果发生硬盘故 障等导致数据文件丢失的话,则可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。
◦可以进行联机热备:所谓联机热备,就是在数据库运行状态下,对数据库进行备份。备份时用户对 数据库的使用不受任何影响。
◦可以实施 Data Guard:可以部署 1 个或多个备用数据库,从而最大限度地提供灾难保护手段。
◦可以实施 Stream:利用 Stream 技术,可以实现最简单的单向复制到复杂的双向复制、多向复制, 提供更加灵活的数据冗余方案。
◦表空间可以脱机:可以备份部分数据库,比如重要的表空间。
◦能够增量备份:只需做一次完全备份,以后只备份发生改变的数据,可以提高备份速度。
◦更多的优化选项:随着 Oracle 版本升级,在联机热备方面不断有新的优化策略出现。

非归档模式的缺点包括:
◦只能进行脱机备份,也就是所谓的“ 冷备份”,和联机备份的“ 热备份” 相对应,数据库必须完全 关闭后备份,在备份过程中数据库不可用;
◦必须备份整个数据库,不能只备份部分数据库;
◦不能增量备份,对于 TB 级数据库(VLDB) ,这是一个非常大的缺点;
◦只能部分恢复,如果数据文件丢失需要恢复,DBA 只能恢复最后一次的完全备份,而之后的所有 数据库改变全部丢失。

1、(设置数据库为归档日志模式)
start mount
alter database archivelog;
alter database open;
archive log list;

2、存放的文件
show parameter log
3、select name from v$archived_log;
4、rman的作用
在rman中执行
RMAN>list archivelog all; /*列出所有的归档日志文件
RMAN>crosscheck archivelog all; /*与物理归档日志文件保持同步,之前移走了一部分文件,因此执行此命令后会在/oracle目录下找不到的归档日志标记为expired
RMAN>list expired archivelog all; /*列出所有expired(过期)的归档日志文件,此时你就可看到移走的归档日志文件均被标记为expired
RMAN>delete expired archivelog all; /*在oracle中删除所有过期的expired文件
RMAN>list archivelog all; /*再列出所有的归档日志文件,就可发现移走的日志文件被删掉了
RMAN>exit /*退出

specification does not match any archived log in the repository

delete archivelog until time ″sysdate-1″;

DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';直接删除7天之前的归档
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=173 device type=DISK

report obsolete;报告过期备份
no obsolete backups found

show retention policy;
show archivelog deletion policy;
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default缺省情况下,该策略被设置为none。
RMAN 配置归档日志删除策略, Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除。

使用下面的方式来配置归档日志删除策略
configure archivelog deletion policy to backed up 2 times to sbt;
configure archivelog deletion policy to backed up 1 times to device type disk;
configure archivelog deletion policy to applied on standby;
configure archivelog deletion policy to shipped on standby;
configure archivelog deletion policy clear;
rman>list copy;
rman>sql " alter system archive log current";
"select name,status from v$archived_log where STATUS='A'"; 不可以
backup archivelog all delete input tag=arc_2nd;
list backup of archivelog all;
show all;
find /data1/oracle/arch -ctime +30 -delete
可以基于不同的条件来清除归档日志,如基于SCN,基于SEQUENCE,基于TIME等方式。
delete archivelog until sequence 16;
delete noprompt archivelog all completed before 'sysdate'; --->该命令清除所有的归档日志
delete noprompt archivelog all; --->同上一命令

清除过期归档
#!/bin/sh

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
#if [ -z "${1}" ];then
# echo "Usage: "
# echo " `basename $0` ORACLE_SID"
# exit 1
#fi
#ORACLE_SID=$1; export ORACLE_SID
$ORACLE_HOME/bin/rman log=rman.log < catalog start with '/opt/oracle/archive/db'; 重新注册这些旧归档文件到控制文件中

delete archivelog until logseq 1007;
list archivelog all;

5、归档模式参数
alter system set ARCHIVE_LAG_TARGET=3600 scope=both;一个小时必须强制归档

LOG_ARCHIVE_CONFIG
该初始化参数用于控制发送归档日志到远程位置、接收远程归档日志,并指定Data Guard配置的惟一数据库名,默认值为SEND,RECEIVE,NODG_CONFIG。当设置该参数为SEND时,会激活发送归档日志到远程位置;当设置该能数为NOSEND时,会禁止发送归档日志到远程位置;当设置该参数为RECEIVE时,会激活接收远程归档日志;当设置该参数为NORECEIVE时,会禁止接收远程归档日志;当设置该参数为DG_CONFIG时,可以最多指定9个惟一数据库名;当设置该参数为NODG_CONFIG时,会禁止指定惟一数据库名。该初始化参数是动态参数,可以使用ALTER SYSTEM命令进行修改。示例如下:
[sql] view plain copy
1.SQL>ALTER SYSTEM SET Log_archive_config=’SEND’;

6、LOG_ARCHIVE_DEST_N
该初始化参数用于指定归档日志文件所在目录ALTER SESSION SET Log_archive_dest_l=’Location=D:\Prod\Arch’;

7、LOG_ARCHIVE_DEST_STATE_N 该初始化参数用于指定归档目录的可用状态,默认值为ENABLE
ALTER SESSION SET Log_archive_dest_state_3=DEFER;

8、show parameter log_archive_format;

string %t_%s_%r.dbf
a).%s  --archvied redo file 的文件序列号
b).%t  --归档线程号
c).%d  --dbid,注意不同于rman中format的%d,而是同%I
d).%r  --resetlogsID号

The following variables can be used in the format:

%s log sequence number日志序列号

%S log sequence number, zero filled带有前导

%t thread number

%T thread number, zero filled带有前导

%a activation ID

%d database ID

%r resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database

standby_archive_dest string ?/dbs/arch
log_archive_dest_1 string location=/data1/oracle/arch

9、LOG_ARCHIVE_MAX_PROCESSES该初始化参数用于指定要启动的归档进程个数,其数值范围为1~10
ALTER SYSTEM SET Log_archive_max_processes=3;
10、LOG_ARCHIVE_MIN_SUCCEED_DEST
11、LOG_ARCHIVE_TRACE该初始化参数用于控制归档日志的跟踪级别 0禁止1时,会激活跟踪归档日志文件
当设置该参数为2时,会跟踪每个归档位置的状态;当设置该参数为4时,会跟踪归档操作步骤;当设置该参数为8时,会跟踪归档位置活动;当设置该参数为16时,会跟踪详细的归档位置活动;当设置该参数为32时,会跟踪归档位置参数的修改;当设置该参数为64时,会跟踪ARCn进程活动;当设置该参数为128时,会跟踪FAL进程的相关活动。该初始化参数是动态参数,可以使用ALTER SYSTEM命令进行修改。示例如下:
1.SQL>ALTER SYSTEM SET Log_archive_trace=2;

回收站
SQL>alter database flashback on
SQL>flashback database to scn SCNNO;
SQL>flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');
手动归档:
Alter system archive log current.
alter system archive log current;

System altered.

12、 通过rman全库备份迁移数据库
备份:
backup database;
backup tablespace users;
备份表空间:

RMAN> backup tablespace users;

RMAN> list backup of tablespace users;

备份数据文件

RMAN> backup datafile 1;

RMAN> list backup of datafile 1;

RMAN> delete backupset 1;删除备份:
备份控制文件:

RMAN> backup current controlfile;

RMAN> list backup of controlfile;

备份归档日志:

RMAN> backup archivelog all;

RMAN> list backup of archivelog all;

备份参数文件:

RMAN> backup spfile;
list archivelog all;
核查备份:

RMAN> crosscheck backup;

列出无效备份:

RMAN> list expired backup;

删除无效备份:

RMAN> delete expired backup;
报告需要备份:

RMAN> report need backup;

恢复:
使用rman进入一个空实例并制定dbid开启到nomount状态:
rman target /
set dbid 238796283
startup nomount;
从A库复制迁移过来的参数文件与控制文件的自动备份文件恢复spfile参数文件:
restore spfile to pfile '?/dbs/initORA11GR2.ora' from '/u01/app/FRA/ORA11GR2/autobackup/2016_10_10/o1_mf_s_924880064_czphl11d_.bkp';
ls $ORACLE_HOME/dbs/initORA11GR2*
创建审计文件与数据文件等所需目录:
mkdir -p /u01/app/oracle/admin/OCMU/{a,b,c,u}dump
通过pfile文件修改参数文件:
从pfile参数文件生成spfile参数文件:
从自动备份文件中还原控制文件:
---从迁移过来的备份数据文件中还原数据文件:
RMAN> run{

2> SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/OCMU/system01.dbf';

3> SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/OCMU/undotbs01.dbf';

4> SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/OCMU/sysaux.dbf';

5> SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/OCMU/users01.dbf';

6> SET NEWNAME FOR DATAFILE 5 TO '/u01/app/oracle/oradata/OCMU/example01.dbf';

7> SET NEWNAME FOR DATAFILE 6 TO '/u01/app/oracle/oradata/OCMU/ts_ora11gr2_01.dbf';

8> SET NEWNAME FOR DATAFILE 7 TO '/u01/app/oracle/oradata/OCMU/test01.dbf';

9> SET NEWNAME FOR DATAFILE 8 TO '/u01/app/oracle/oradata/OCMU/MYTEST02.dbf';

10> SET NEWNAME FOR DATAFILE 9 TO '/u01/app/oracle/oradata/OCMU/ts_audit01.dbf';

11> RESTORE DATABASE;

12> SWITCH DATAFILE ALL;

13> RECOVER DATABASE;

14> }
alter database open resetlogs;
补充临时表空间与临时数据文件:

分类:数据库 | 标签: |

相关日志

评论被关闭!