`
- 浏览:
165938 次
- 性别:
- 来自:
济南
-
alter system switch logfile和alter system archive log current的区别
alter system switch logfile
此语句的作用是强制系统进行日志切换
SQL> show parameter log_archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
主要区别:
ALTER SYSTEM SWITCH LOGFILE 对单实例数据库或RAC中的当前实例执行日志切换。
ALTER SYSTEM ARCHIVE LOG CURRENT 会对数据库中的所有实例执行日志切换。
详细解释:
-------------------------
我们都知道在自动归档的数据库中,这两个命令几乎产生的结果是一样的。来看看oracle的解释:
本帖最后由 YingYing 于 2010-2-28 04:39 编辑
主要区别:
ALTER SYSTEM SWITCH LOGFILE 对单实例数据库或RAC中的当前实例执行日志切换。
ALTER SYSTEM ARCHIVE LOG CURRENT 会对数据库中的所有实例执行日志切换。
详细解释:
-------------------------
我们都知道在自动归档的数据库中,这两个命令几乎产生的结果是一样的。来看看oracle的解释:
ALTER SYSTEM SWITCH LOGFILE ;
SWITCH LOGFILE Clause
The SWITCH LOGFILE clause lets you explicitly force Oracle to begin writing to a new redo log file group, regardless of whether the files in the current redo log file group are full. When you force a log switch, Oracle begins to perform a checkpoint but returns control to you immediately rather than when the checkpoint is complete. To use this clause, your instance must have the database open.
ALTER SYSTEM ARCHIVE LOG CURRENT ;
CURRENT Clause
Specify CURRENT to manually archive the current redo log file group of the specified thread, forcing a log switch. If you omit the THREAD parameter, then Oracle archives all redo log file groups from all enabled threads, including logs previous to current logs. You can specify CURRENT only when the database is open.
ALTER SYSTEM ARCHIVE LOG CURRENT NOSWITCH;
NOSWITCH
Specify NOSWITCH if you want to manually archive the current redo log file group without forcing a log switch. This setting is used primarily with standby databases to prevent data divergence when the primary database shuts down. Divergence implies the possibility of data loss in case of primary database failure.
You can use the NOSWITCH clause only when your instance has the database mounted but not open. If the database is open, then this operation closes the database automatically. You must then manually shut down the database before you can reopen it
我们首先要明白两个事实:
一个就是在logfile switch的时候会触发arch进程,即通知归档进程说那个日志可以归档了。
另一个是logfile switch的时候会触发ckpt进程。而ckpt进程又会触发dbwr进程。dbwr进程会把上一个redo中保护的储藏在buffer cache中的dirty buffer全部写回磁盘。然后,ckpt进程纪录scn到controlfile中,这时会把redo log的状态由active 变成inactive。
由此我们可以看出处于inactive状态的redo log对于instance recovery是没有用处了。但是它可能对于meda recovery还有用处,因为处于inactive状态的redo log可能已经归档,也可能没有归档。
出现 checkpoint not complete,unable to allocate new redo log file的错误,是因为lgwr要覆盖一个其上检查点过程没有结束的日志文件,lgwr会等待dbwr完成,同时出现此错误。出现这个错误的原因,大概有几点,一个是dbwr写出速度太慢,一个是buffer cache中的脏数据太多。即事务太频繁,另一个也可能是日志太小,或日志组太少导致的。
备份恢复中用到的几个操作:
alter system checkpoint;
alter system archive log all;
alter system archive log current
alter system switch logfile;
1:alter system checkpoint;
Specify CHECKPOINT to explicitly force Oracle to perform a checkpoint, ensuring that all changes made by committed transactions are written to datafiles on disk. You can specify this clause only when your instance has the database open. Oracle does not return control to you until the checkpoint is complete.
强迫oracle进行以次检查点,确保所有提交的事务的改变都被写到磁盘数据文件上。但此时数据库必须是打开的状态。
2: alter system archive log all;
手工归档所有的日志文件组
3:alter system archive log current
手工归档活动的日志文件组。
4: alter system switch logfile;
The SWITCH LOGFILE clause lets you explicitly force Oracle to begin writing to a new redo log file group, regardless of whether the files in the current redo log file group are full. When you force a log switch, Oracle begins to perform a checkpoint but returns control to you immediately rather than when the checkpoint is complete. To use this clause, your instance must have the database open.
开始写新的日志文件组。不管当前日志文件组是否满了。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
> Specify CURRENT to manually archive the current redo log file group of the specified thread, forcing a log switch. If you omit the THREAD parameter, then Oracle Database archives all threads. 这一...
- 强制切换日志: `sql>alter system switch logfile;` - 在RAC环境下强制所有实例进行归档: `sql>alter system archivelog current;` ### 3. 归档日志的参数 #### 关键参数介绍 - **log_archive_dest**: 指定归档...
- 测试归档功能,通过`alter system switch logfile`命令切换日志,确认归档日志的生成。 4. **创建备用归档路径**: 创建备用归档目录`/oracle/oradata/reddb/stdby_arch`,用于在主库变为备用数据库时接收归档...
- 使用`ALTER SYSTEM SWITCH LOGFILE`命令可以显式地强制数据库开始写入新的重做日志文件组,无论当前重做日志文件组中的文件是否已满。 - 当执行此命令时,Oracle会开始执行检查点操作,并立即返回控制权,而不会...
SQL> alter system switch logfile; SQL> alter system archive log current; ``` 8. **确认归档日志** 检查归档日志是否已成功生成于指定目录。 #### 四、自动归档模式设置 自动归档模式通过启用数据库中的`...
执行`ALTER SYSTEM SWITCH LOGFILE`命令时,只会影响当前节点的当前redo thread进行日志切换,而`ALTER SYSTEM ARCHIVE LOG CURRENT`命令则会作用于所有可用节点,使得所有实例的redo thread进行切换并归档到归档...
### Oracle数据库基本操作知识点 #### 一、表空间操作 **1.... ALTER SYSTEM SWITCH LOGFILE; ``` - **创建初始化参数文件:** ```sql CREATE PFILE='/u01/app/oracle/admin/orcl/pfile/init....
执行 `alter system switch logfile;` 指令可以强制数据库进行日志切换,开始使用新的重做日志文件。而 `alter system archive log current;` 则是将当前活动重做日志归档。这对于管理日志文件的轮转,保证事务日志...
`和`SQL> alter system switch logfile;`命令多次切换归档日志。 ##### 2.2 物理冷备份 物理冷备份是在数据库关闭状态下进行的备份,适用于不需要高可用性的场景。 **操作步骤:** 1. **关闭数据库**:使用`SQL>...
- `sql`命令在RMAN会话中执行SQL语句,如`alter system archive log current`,用于切换当前的归档日志。 2. **数据库迁移**: - 数据库迁移通常包括备份源数据库,然后在目标系统上恢复这些备份。 - 示例中的`...
然后设置归档日志目的地,如`alter system set log_archive_dest_1 = ‘location=+HISDATA’;`,这指定归档日志的存储位置。 5. **关闭和切换数据库**: 在迁移过程中,可能需要关闭数据库并切换配置。例如,关闭...
SQL> alter system switch logfile; ``` 3. **RMAN 备份数据库**:使用RMAN工具对整个数据库进行备份。 ```sql Recovery Manager: Release 12.2.0.1.0 - Production on Fri Jun 29 11:41:03 2018 Copyright ...
- **方法**:使用`ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP n;`(其中n是日志组号)清除已损坏的日志文件。此外,可以通过查询`V$LOG`视图来检查当前的在线日志状态。 **1.3 检查Oracle表空间的状态** - **...