在虚拟机上安装了oracle 11g数据库,就是为了自己平时做实验什么的,今天上午想把数据库设置为归档模式下运行,结果搞出问题了,整了一个多小时才搞定,不过这个过程还是蛮有意思的,记录下来和大家分享,不足之处,欢迎大家批评指正。
将一个数据库设置为归档模式一般要经过以下几个步骤:
(1)设置归档目录:
md C:\oracle\archive1
md C:\oracle\archive2
(2)设置参数命名第(1)步中创建的两个目标目录,并控制归档日志文件名:(以sys用户连接)
alter system set log_archive_dest_1='location=C:\oracle\archive1' scope=spfile;
alter system set log_archive_dest_2=’location=C:\oracle\archive2’ scope=spfile;
alter system set log_archive_format=’arch_%d_%t_%r_%s.log’ scope=spfile;
(3)干净的关闭数据库:
Shutdown immediate
(4)以加载模式启动数据库:
startup mount
(5)将数据库转换成归档日志模式:
Alert database archivelog;
(6)打开数据库:
Alter database open;
(7)确认数据库为归档日志模式,并用下列两个查询运行归档器:
Select log_mode from v$database;
Select archiver from v$instance;
按照上述步骤我在设置数据库归档时,在第二步中,在设置归档日志文件名称时,自己写错了,写成如下了:
alter system set log_archive_format=’arch_%d_%t_%s.log’ scope=spfile;
将%r参数给丢了,但是数据的数据库给出的提示是:“系统已更改。”
这一步并没有给出错误提示,所以没有注意丢东西了。接下来是干净的关闭数据库,这一步也没有问题,然后以加载模式启动数据库,这个时候出问题了,问题提示如下:
ORA-19905: log_archive_format must contain %s, %t and %r
这说明是设置归档文件名称时缺少了%r导致的,log_archive_format参数设置归档日志文件的名称是在文件名称中添加了一些动态的参数,防止文件重名被覆盖,其中%s表示日志切换序列号,%t表示线程号,%r表示场景号;现在数据库已经干净关闭了,然而spfile又出了问题,数据库已经无法启动了,现在想再重新设置这个参数已经不可能了(看来oracle这一点做的还是不够好啊,如果参数设置出现问题了,应该在设置时就提示设置错误,在设置的时候没有给出提示,而是在启动的时候提示参数错误)。
在网上查了一下资料只能通过init.ora文件重建spfile文件来解决这个问题了,在数据库安装目录中搜索到init.ora.062013114010(我理解这个应该是init.ora的备份文件,不知道正确不,所以后面的数字每个机器应该是不同的,要所要按照init.ora匹配搜索)文件,找到这个文件后,执行命令,创建spfile文件:
create spfile from pfile='C:\app\Administrator\admin\orcl\pfile\init.ora.062013114010';
尝试启动数据库:startup
启动结果如下:
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 264242320 bytes
Database Buffers 159383552 bytes
Redo Buffers 6037504 bytes
ORA-00214: ???? ''C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'' ?? 1726 ???
''C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL'' ?? 1713 ???
数据库已经可以启动了,但是出现了ora-00214错误,这个是控件文件的错误,在设置归档之前我曾经设置过数据库控制文件的多路复用,现在重新设置一下控制文件的位置:
alter system set control_files="C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01
.CTL","C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL" scope=spfile;
这个时候再关闭重新启动一下数据库试试,终于搞定了:
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 268436624 bytes
Database Buffers 155189248 bytes
Redo Buffers 6037504 bytes
数据库装载完毕。
数据库已经打开。
虽然问题是搞定了,但是还是有一个问题没有搞明白,在重新创建spfile文件之后尝试启动数据库为什么会出现控制文件的错误,另外在错误提示中的
ORA-00214: ???? ''C:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'' ?? 1726 ???
''C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL'' ?? 1713 ???
两个位置的控制文件都是存在的,而且是建库时系统创建的控制文件,内容肯定没错,但是为什么还是会报错,这个和我以前调整过数据库控制文件参数有关系吗?欢迎大家解答、指正。
相关推荐
### Oracle归档模式命令详解 #### 一、Oracle归档模式简介 在Oracle数据库中,归档模式(Archivelog Mode)是一种重要的操作模式,它允许数据库管理员将已提交的数据更改记录保存到独立的归档日志文件中,即使当前...
ORACLE归档日志设置 ORACLE数据库的归档日志设置是一种重要的机制,旨在保障数据库的安全性和灾难恢复能力。通过设置数据库的日志模式和自动归档模式,可以确保数据库的可靠性和可恢复性。 数据库日志模式的设置是...
Oracle的归档模式是数据库管理中的一个重要概念,尤其在企业级数据库应用中,它关乎数据的安全性和可恢复性。在Oracle数据库系统中,联机重做日志(Online Redo Log)是记录数据库事务操作的关键组件,它保存了对...
一:重做日志文件 oracle的重做日志文件,会记录数据库的任何操作,包括DML和DDL语句,数据结构的更改等. ...非归档模式只能做冷备份,归档模式可以做热备份并且可以做增量备份和部分恢复. 冷备份要关闭数据库。
#### 二、Oracle归档模式与非归档模式对比 ##### 1. 非归档模式特点 - **冷备份**:在非归档模式下,只能进行冷备份,即必须在数据库完全停止的状态下才能备份数据。 - **恢复限制**:非归档模式下的恢复仅能进行...
### Oracle归档模式详解 #### 一、Oracle归档模式简介 Oracle数据库的归档模式是一种数据保护机制,主要用于在数据库出现故障时能够快速恢复数据。归档模式下,数据库的所有事务日志(redo log)都会被归档保存,这...
3. **设置归档模式**: - 执行`alter database archivelog`命令来开启归档模式。 4. **打开数据库**: - 使用`alter database open`命令来打开数据库。 示例代码: ```sql SQL> shutdown immediate; SQL> startup...
Oracle 归档日志是 Oracle 数据库中的一种日志机制,用于记录数据库的所有变化,以便在出现问题时进行恢复。归档日志可分为在线重做日志和归档重做日志两大类。 在线重做日志(Online Redo Log) 在线重做日志是 ...
2. **备份策略**:在更改归档模式之前,应确保已对数据库进行了完整的备份,以防万一出现任何问题。 3. **环境兼容性**:确认当前的硬件与软件环境(如操作系统版本、Oracle数据库版本等)与计划执行的操作相兼容。...
### Oracle归档模式转换详解 在Oracle数据库管理中,归档模式(Archivelog Mode)是一种重要的操作模式,它允许数据库记录所有事务处理的更改,这些更改被存储为归档日志文件,即使在系统故障后也能恢复数据库至...
2. **设置归档模式**: ```sql alter database archivelog; ``` 将数据库切换到归档模式。在归档模式下,每当重做日志文件组写满时,就会自动创建归档日志。 3. **打开数据库**: ```sql alter database open...
### Oracle RAC环境中开启归档模式的详细步骤与注意事项 #### 一、概述 Oracle Real Application Clusters (RAC) 是一种多实例集群技术,它允许多个Oracle数据库实例同时访问共享存储上的同一数据库。在RAC环境中,...
在Oracle数据库中,归档模式(ARCHIVELOG mode)和非归档模式(NOARCHIVELOG mode)是两种不同的运行模式,它们决定了数据库在发生故障时数据恢复的能力。归档模式允许数据库记录所有事务的完整历史,以便在需要时...
在Oracle数据库管理中,归档模式(Archival Logging Mode)是一种重要的日志管理方式,它允许数据库在发生故障时进行更完整的恢复。归档模式下,数据库系统不仅记录在联机重做日志(Online Redo Logs)中的更改,还会将...
#### 一、Oracle归档模式概述 在Oracle数据库管理中,归档模式是一项非常重要的功能,它对于保证数据的安全性和系统的稳定性至关重要。归档模式允许数据库管理员将已完成的日志文件(Redo Log Files)复制到归档...
### Oracle归档与非归档模式的深度解析 在Oracle数据库管理中,归档与非归档模式的选择至关重要,它不仅影响着数据的安全性、备份策略以及系统的可用性,还直接关系到数据恢复的能力和效率。本文将深入探讨这两种...