oracle在归档模式下正常工作设置(转)

【PostgreSQL归档模式详解:配置、管理与清理 PostgreSQL归档模式Archive Mode)是一种通过持续归档事务日志(WAL文件)实现数据持久化保护的机制。时间点恢复(PITR):允许恢复到任意历史时间点增量备份基础:配合物理备份实现高效数据保护主从复制支持:为流复制提供故障恢复保障。 阅读详情

oracle数据库要在归档模式下正常工作,要进行如下设置

一、设置数据库为归档模式

如果数据库归档模式没有开启,查询显示如下信息(非归档模式):

1、查询当前数据库的模式

SQL> archive log list;

数据库日志模式 非存档模式
自动存档 禁用
存档终点 D:oracleora81RDBMS
最早的概要信息日志序列 64
当前日志序列 66

2、shutdown immediate

3、
a.关闭数据库后,备份已有的数据,改变数据库的运行方式是对数据库的重要改动,所以要对数据库做备份,对可能出现的问题作出保护。
b.
修改初始化参数文件init.ora,在初始化参数文件中添加

#log_archive_start = true

#log_archive_dest = D:oracleoradatapeiyzarchive
#log_archive_duplex_dest = D:oracleoradatapeiyzarchiveachive

log_archive_dest_1='location=D:oracleoradatapeiyzarchive1'
log_archive_dest_3='location=D:oracleoradatapeiyzarchive3'

#log_archive_dest_2 = "SERVICE=standby_db1" //这里是把归档文件保存到远程standby机子上LOG_ARCHIVE_FORMAT = ARC%T%S.arc //这里变量 %s or %S 为日志序列号,%t or %T为线程号,都有操作系统自动生成(为文件名的一部分),另外%S为一固定长度,如果不够左边补0


注意:
这里log_archive_dest和log_archive_duplex_dest是一组;log_archive_dest_1到log_archive_dest_5是一组(8i中最多可有5个镜像目录而9i中可达10个镜像目录);这两组在初始化参数文件中只能设置一组,二者不能同时存在;

4、把数据库启动到mount状态,进行如下操作设置数据库为归档模式

SQL> alter database archivelog;

数据库已更改。

a、查看当前数据库归档模式是不是开启,如果在初始化参数文件中没有定义归档路径的话显示如下信息:

SQL> archive log list

数据库日志模式 存档模式
自动存档 禁用
存档终点 D:oracleora81RDBMS //注意,这里为在初始化参数文件中没有指定归档路径的情况下的默认归档
路径最早的概要信息日志序列 64
下一个存档日志序列 66
当前日志序列 66


b、而我当前的显示为:

SQL> archive log list;

数据库日志模式 存档模式
自动存档 禁用
存档终点 D:oracleoradatapeiyzarchive3 //当前日志切换时日志文件被归档到这个目录下
最早的概要信息日志序列 66
下一个存档日志序列 68
当前日志序列 68


5、手工修改数据库为自动归档模式(如果在初始化参数文件中设置了log_archive_start = true选项,则该步可以省略

SQL> archive log start;

已处理的语句

SQL> archive log list

数据库日志模式 存档模式
自动存档 启用 //已启动自动归档,如果在初始化参数文件中设置了log_archive_start = true选项,
则为启动实例后自动开启自动归档功能
存档终点 D:oracleoradatapeiyzarchive3
最早的概要信息日志序列 66
下一个存档日志序列 68
当前日志序列 68

6、打开数据库

SQL> alter database open;

数据库已更改。

7、做一些日志切换检查是否设置生效

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

检查操作系统目录 D:oracleoradatapeiyzarchive1和D:oracleoradatapeiyzarchive3下是否有归档文件生成,如果存在说明设置成功。

 

二、有关归档模式下测试的两个问题(rdbms:8.1.7.0/os:win2000)


A.在数据库打开的情况下,通过alter system set ...语句修改的归档路径在下次重启后会生效吗?

1、修改归档路径

SQL> alter system set log_archive_dest_2='location=D:oracleoradatapeiyzarchive2';

系统已更改。

SQL> alter system set log_archive_dest_3='location=D:oracleoradatapeiyzarchive4';

系统已更改。

2、手工进行日志切换

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

3、检查D:oracleoradatapeiyzarchive2和D:oracleoradatapeiyzarchive4目录下是否有新的归档日志文件生成检查发现仅有D:oracleoradatapeiyzarchive4目录下有新的归档文件生成;说明仅在初始化参数文件中定义的参数才能通过动态修改归档路径;那么虽然log_archive_dest_3参数路径能够修改并确实将归档文件归档到新的路径下了,那么重启系统后还能保存动态修改的归档路径吗,通过下面试验我们便知。

注意:如果通过alter system set log_archive_dest_2='location=D:oracleoradatapeiyzarchive2';修改,虽然修改成功而且操作系统中D:oracleoradatapeiyzarchive2目录也存在,但通过alter system switch logfile;日志切换,该目录下仍不会产生归档日志文件,因为改参数并没有在初始化参数中定义。

4、shutdown immediate


数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

5、startup

ORACLE 例程已经启动。

Total System Global Area 51648540 bytes
Fixed Size 75804 bytes
Variable Size 42651648 bytes
Database Buffers 8388608 bytes
Redo Buffers 532480 bytes
数据库装载完毕。
数据库已经打开。


6、修改数据库为自动归档模式

SQL> archive log start;

已处理的语句

7、检查归档信息

SQL> archive log list

数据库日志模式 存档模式
自动存档 启用
存档终点 D:oracleoradatapeiyzarchive3
最早的概要信息日志序列 76
下一个存档日志序列 78
当前日志序列 78

8、手工进行日志切换

SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

9、检查操作系统中归档目录

检查操作系统D:oracleoradatapeiyzarchive1和D:oracleoradatapeiyzarchive2和D:oracleoradatapeiyzarchive3和D:oracleoradatapeiyzarchive4目录下内容,仅有1和3下有归档文件生成,说明通过动态修改的参数在数据库重启后不能生效(8i中,如果想在重启后仍然生效9i中某些参数可以通过加scope=both指定),仍然保持初始化参数中定义的设置;如果想在下次重启后仍然生效必须通过修改初始化参数文件内容。

 


B、如果数据库处于归档模式但自动归档功能没有开启会产生什么后果呢,产生这种情况后又怎样解决呢,下面我将就这个问题进行一些

试验

1、启库

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 51648540 bytes
Fixed Size 75804 bytes
Variable Size 42651648 bytes
Database Buffers 8388608 bytes
Redo Buffers 532480 bytes
数据库装载完毕。
数据库已经打开

2、检查数据库归档情况

SQL> archive log list

数据库日志模式 存档模式
自动存档 禁用
存档终点 D:oracleoradatapeiyzarchive3
最早的概要信息日志序列 76
下一个存档日志序列 78
当前日志序列 78

注意:这里虽然数据库为归档模式,但自动存档功能并未开启。

3、手工进行日志切换看会出现什么情况

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> / ...... //这里日志切换不了了,hang在这了,并没有“系统已更改。”提示,只是光标在闪

这时我检查操作系统相关归档目录并没有发现新的归档日志生成,说明日志切换一周后,最初的日志还没被归档,这时lgwr进程又要等这个日志被归档后才能使用,所以数据库hang在这了;
那么这个问题怎么解决呢?难道一直等在这吗?答案是否定的

可以通过如下方法解决

4、另开一个sqlplus窗口,以sysdba登陆到数据库

SQL> conn / as sysdba
已连接。

5、手工把数据库的自动归档功能打开

SQL> archive log start;

已处理的语句


6、查看刚才hang住的窗口,发现日志切换完成了

SQL> /

系统已更改。

7、检查操作系统中相关归档目录,发现新的归档日志生成。

数据库正常工作。

 

另一种方法为当数据库hang住后,另启一个sqlplus窗口,以sysdba登陆到数据库,进行如下操作:

1、首先查询归档信息

SQL> archive log list

数据库日志模式 存档模式
自动存档 禁用
存档终点 D:oracleoradatapeiyzarchive3
最早的概要信息日志序列 81
下一个存档日志序列 81
当前日志序列 83

2、手工进行归档,因为从查询结果来看启库后最早的联机日志为81号,所以首先进行归档81号联机日志文件。再归档82、83号文件:

SQL> alter system archive log sequence 81;

系统已更改。

注意:

这时到刚才hang住的窗口查看发现日志操作已经切换完毕,显示如下

SQL> /

系统已更改。

还需要注意一下:

a、如果先归档83号联机日志,则报如下错误(因为它为当前正在hang住的联机日志,不能进行归档):

SQL> alter system archive log sequence 83;

alter system archive log sequence 83
*
ERROR 位于第 1 行:
ORA-00259: 日志 2 (打开线程 1) 为当前日志,无法存档
ORA-00312: 联机日志 2 线程 1: 'D:ORACLEORADATAPEIYZREDO02.LOG'

b、如果先归档82号联机日志文件的话,系统自动把81号的联机日志文件一同进行归档了,不必要再进行81号联机文件的归档操作了

SQL> alter system archive log sequence 82;

系统已更改。

SQL> alter system archive log sequence 81;

alter system archive log sequence 81
*
ERROR 位于第 1 行:
ORA-00260: 无法找到联机日志序列 81 (线程 1)


3、查看操作系统中归档相关目录,发现所有联机日志都被归档完成;

4、当然这只是一种暂时的解决方法,要想不再使数据库被hang住又不要手工进行归档,必须通过开启自动归档功能,也即:

SQL> archive log start;

已处理的语句

或者

在初始化参数文件中添加log_archive_start=true参数选项。

 
数据库归档模式详解 数据库归档模式详解 很详细的介绍,又需要的可以看看 立即下载

相关推荐

数据库归档模式

数据库运行有2种模式,归档模式和非归档模式 归档模式下: 用户做的所有操作都会记录在redo online log里面, 一般都是3 redo log, 默认情况下一个redo log file是50m,当满了后,

数据归档模式

1.归档模式与非归档模式介绍 1)归档模式:归档会在日志切换时,备份历史日志对于oltp系统都应该考虑归档模式,以便数据库支持热备,并提供数据库完全恢复和不完全恢复(基于时间点)。 2)非归档模式:非归档适用于莫衷静态库,测试库,或者可有远程提供数据恢复的数据库,非归档值能冷备,且仅能还原最后一次全备,归档可以恢复到最后一次commit。 注意:归档会启用ARCn的后台进程,也会占用磁盘空间。 2...

Noblelxl的博客 2044

Oracle数据库设置归档模式(超级简单)

oracle数据库变成归档模式(超级简单)

DBA成长之路 7674

达梦数据库“库、表空间的联机备份操作需要数据库实例运行在归档模式并处于打开状态...“

达梦数据库图形化界面不能备份问题。解决办法:1.打开管理服务器 - 系统管理中状态换修改为配置点击换2.在归档配置中开启归档模式,点击确定。3.重新打开管理服务器把状态换为开启,然后查看归档配置是否开启,点击确定。4.现在就可以新建备份。...

xh3123011的博客 2009

达梦数据库归档模式介绍

归档是实现数据守护系统的重要技术手段,根据功能与实现方式的不同,DM 数据库的归档可以分为 6 类:本地归档、远程归档、实时归档、即时归档、异步归档和同步归档。其中,本地归档日志的内容与写入时机与数据库模式相关;主库 Redo 日志写入联机日志文件后,再进行本地归档;备库收到主库产生的 Redo 日志后,直接进行本地归档,同时启动 Redo 日志重演。什么是归档模式归档模式是与非归档模式对应的,这两种模式是DM8数据库的两种运行状态。,数据库只会将重做日志写入联机日志文件中进行存储;

话别深秋 2506

oracle 11g设置归档模式及修改归档目录

oracle 11g设置归档模式及修改归档目录归档模式查看非归档模式数据库更改为归档模式修改归档日志目录修改归档日志格式归档模式修改为非归档模式 Oracle分为非归档模式(NOARCHIVELOG)归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份,数据安全无法保证,还原也只能还原到备份那一时刻的数据。Oracle安装...

hanruiding的博客 3877

Oracle 数据库归档模式和非归档模式的区别以及设置

介绍如何为 Oracle 单实例和 RAC 集群环境设置数据库归档模式和非归档模式。非归档模式只能进行冷备,只能还原到备份点,之后的数据无法恢复;一般在开发或者测试环境使用;归档模式可以执行热备,同时支持增量备份,可以执行时间点恢复;归档日志文件需要占用额外的磁盘空间。

Tony.Dong的专栏 3553

Oracle 归档模式和非归档模式

归档模式和非归档模式在DBA部署数据库之初,必须要做出的最重要决定之一就是选择归档模式ARCHIVELOG)或者非 归档模式(NOARCHIVELOG )下运行数据库。我们知道,Oracle 数据库需要至少两组联机日志,每当一组 联机日志写满后会发生日志切换,继续向下一组联机日志写入。如果是归档模式,日志切换会触发归档进程 (ARCn)进行归档,生成归档日志。Oracle 保证归档完成前,联机日

苏南生的CSDN博客 1万+

oracle11g设置归档模式和非归档模式

1、首先查看当前数据库是否处于归档模式            可使用如下两种方式查看 1.1  select name, log_mode from v$database; log_mode的值为 NOARCHIVELOG 表示数据库处于非归档模式 log_mode的值为 ARCHIVELOG 表示数据库处于归档模式 1

神谕梦醒 2万+

oracle归档模式开启-如何查看和开启归档模式

Oracle数据库中,主要有两种 日志操作模式,分别为非归档模式归档模式。 默认情况下,数据库采用的是非归档模式。 部署数据库时,必须要依据自身的业务情况选择归档模式ARCHIVELOG)或者非归档模式(NOARCHIVELOG )下运行数据库。例如,对于测试环境、开发环境,有的O友采用非归档模式,看业务和个人喜好。 Oacle归档模式ORACLE热备份的必要条件,特别是7X24生产数据库,必须要工作归档模式。 归档日志文件中保留了数据库的改动信息。该模式下可实现: 1、可以进..

qinzaoxiaozhu的专栏 9243

Oracle归档模式与非归档模式设置

Oracle归档模式与非归档模式设置 Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置归档模式,下面就其方法和步骤做一些总结,虽然简单,但这是管理oracle数据库必备之工,故有如下陈述。  例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考。 O

Dake 1074

oracle归档模式设置

自己机子一直装着ORACLE但一直对其如何,初始化,如何运作莫名其妙。今天突然想看看,首先就看到了归档模式这一个东西。下面是我在自己机子上实验步骤。首先用SYS以DBA的身份登陆改变非归档模式归档模式:1)SQL>SHUTDOWN NORMAL/IMMEDIATE;2)SQL>STARTUP MOUNT;用ARCHIVE LOG LIST可以查看ORACLE运行的状态SQL> a

xiaoduan9678的专栏 1375

AIX下oracle数据库归档模式设置

AIX下oracle数据库归档模式设置 (老邓撰写)由于oracle数据库安装的时候如果采用归档模式数据库空间会比非归档模式大20%左右,所以我们安装oracle数据库时默认都是采用非归档的模式安装,等安装好以后再改成归档模式,以下是修改归档模式的步骤。以下文档红色粗体字是命令,蓝色字是屏幕信息1、在修改数据库之前,首先要把所有的应用都停掉。AIX下直接杀进程好了。(ps

2474

oracle 设置归档与非归档模式

-,查看oracle归档模式 archive log list SQL> conn evan/evan  (dba) Connected. SQL> archive log list ORA-01031: insufficient privileges SQL>

Laughing 2162

怎么查询oracle归档模式,查看oracle数据库归档模式

如何把Oracle数据库设置归档模式归档模式真的那么重要吗?对于Oracle数据库,一定要设置归档模式,尤其是生产库,只有这样才能实现数据库的有效完全恢复,为了安全,切记。对于有些数据库刚装好后可能是非归档模式,这是很危险的。那么究竟如何设置归档模式呢?下面康哥带大家来看一下究竟如何设置数据库归档模式:① 查看数据库当...文章忆夏老师2017-10-17695浏览量oracle之归档日...

weixin_39804629的博客 1693

oracle数据库要在归档模式正常工作

oracle数据库要在归档模式正常工作,要进行如下设置: 一、设置数据库归档模式 如果数据库归档模式没有开启,查询显示如下信息(非归档模式): 1、查询当前数据库的模式 SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 D:oracleora81RDBMS 最早的概要信息日志序列 64 当前日志序列 66 2...

abc123098098的博客 167

设置oracle归档模式

设置oracle归档模式  将oracle设为归档模式  [root@localhost ~]#sqlplus /nolog SQL> conn /as sysdba; Connected. SQL>create spfile frompfile=/opt/oracle/admin/orcl/pfile/ init.ora.72020111;1142'(文件已存在) SQL>

leili0806的专栏 829

Oracle 修改归档模式

首先查看数据库现有模式可使用以下语句 select name,log_mode from v$database; 也可以用下面的语句 archive log list;(该方法需要as sysdba)对于非归档模式数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤: 1. SQL>

2131
下一篇: 配置数据库归档模式
herry2008
博客等级 码龄19年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值