数据库中的原有配置3个redolog文件,由于切换频繁,想扩大大小,操作简介
2007-11-01 14:08
357 查看
假设现有三个日志组,每个组内有一个成员,每个成员的大小为1MB,现在想把此三个日志组的成员大小都改为10MB
1、创建2个新的日志组
alter database add logfile group 4 ('D:/ORACLE/ORADATA/ORADB/REDO04_1.LOG') size 1024k;
alter database add logfile group 5 ('D:/ORACLE/ORADATA/ORADB/REDO05_1.LOG') size 1024k;
2、切换当前日志到新的日志组
alter system switch logfile;
alter system switch logfile;
3、删除旧的日志组
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
4、操作系统下删除原日志组1、2、3中的文件
5、重建日志组1、2、3
alter database add logfile group 1 ('D:/ORACLE/ORADATA/ORADB/REDO01_1.LOG') size 10M;
alter database add logfile group 2 ('D:/ORACLE/ORADATA/ORADB/REDO02_1.LOG') size 10M;
alter database add logfile group 3 ('D:/ORACLE/ORADATA/ORADB/REDO03_1.LOG') size 10M;
6、切换日志组
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
7、删除中间过渡用的日志组4、5
alter database drop logfile group 4;
alter database drop logfile group 5;
8、到操作系统下删除原日志组4、5中的文件
9、备份当前的最新的控制文件
SQL>; connect internal
SQL>; alter database backup controlfile to trace resetlogs
(注意:如果为安全考虑每个group可以多加几个文件)
引用:跟redo logfile有关的其它数据库参数
1、log_buffer
log_buffer是ORACLE SGA的一部分, 所有DML命令修改的数据块先放在log_buffer里, 如果满了或者
到 了check_point时候通过lgwr后台进程写到redo logfile里去。它不能设得太大,这样在意
外发生时会丢失很多改变过的数据。它最好不要大于512K或者128K*CPU个数。
我们可以用下面的SQL语句检测log_buffer使用情况:
SVRMGRL>; select rbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value||'%' "radio"
from v$sysstat rbar,v$sysstat re
where rbar.name='redo buffer allocation retries'
and re.name='redo entries';
这个比率小于1%才好,否则增加log_buffer的大小
2、log_checkpoint_interval
Oracle8.1 版本后log_checkpoint_interval指的是两次checkpoint之间操作系统数据块的个数。
checkpoint时Oracle把内存里修改过的数据块用DBWR写到物理文件,用LGWR写到日志和控制文件。
一般UNIX操作系统的数据块为 512 bytes。
从性能优化来说 log_checkpoint_interval = redo logfile size bytes / 512 bytes
3、log_checkpoint_timeout
Oracle8.1 版本后log_checkpoint_timeout指的是两次checkpoint之间时间秒数。
Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。
log_checkpoint_timeout = 0
log_checkpoint_timeout = 900
1、创建2个新的日志组
alter database add logfile group 4 ('D:/ORACLE/ORADATA/ORADB/REDO04_1.LOG') size 1024k;
alter database add logfile group 5 ('D:/ORACLE/ORADATA/ORADB/REDO05_1.LOG') size 1024k;
2、切换当前日志到新的日志组
alter system switch logfile;
alter system switch logfile;
3、删除旧的日志组
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
4、操作系统下删除原日志组1、2、3中的文件
5、重建日志组1、2、3
alter database add logfile group 1 ('D:/ORACLE/ORADATA/ORADB/REDO01_1.LOG') size 10M;
alter database add logfile group 2 ('D:/ORACLE/ORADATA/ORADB/REDO02_1.LOG') size 10M;
alter database add logfile group 3 ('D:/ORACLE/ORADATA/ORADB/REDO03_1.LOG') size 10M;
6、切换日志组
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
7、删除中间过渡用的日志组4、5
alter database drop logfile group 4;
alter database drop logfile group 5;
8、到操作系统下删除原日志组4、5中的文件
9、备份当前的最新的控制文件
SQL>; connect internal
SQL>; alter database backup controlfile to trace resetlogs
(注意:如果为安全考虑每个group可以多加几个文件)
引用:跟redo logfile有关的其它数据库参数
1、log_buffer
log_buffer是ORACLE SGA的一部分, 所有DML命令修改的数据块先放在log_buffer里, 如果满了或者
到 了check_point时候通过lgwr后台进程写到redo logfile里去。它不能设得太大,这样在意
外发生时会丢失很多改变过的数据。它最好不要大于512K或者128K*CPU个数。
我们可以用下面的SQL语句检测log_buffer使用情况:
SVRMGRL>; select rbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value||'%' "radio"
from v$sysstat rbar,v$sysstat re
where rbar.name='redo buffer allocation retries'
and re.name='redo entries';
这个比率小于1%才好,否则增加log_buffer的大小
2、log_checkpoint_interval
Oracle8.1 版本后log_checkpoint_interval指的是两次checkpoint之间操作系统数据块的个数。
checkpoint时Oracle把内存里修改过的数据块用DBWR写到物理文件,用LGWR写到日志和控制文件。
一般UNIX操作系统的数据块为 512 bytes。
从性能优化来说 log_checkpoint_interval = redo logfile size bytes / 512 bytes
3、log_checkpoint_timeout
Oracle8.1 版本后log_checkpoint_timeout指的是两次checkpoint之间时间秒数。
Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。
log_checkpoint_timeout = 0
log_checkpoint_timeout = 900
相关文章推荐
- hibernate连接多个数据库,如何动态切换(我一般用配置文件动态切换)
- java从操作配置文件中连接数据库的简单写法
- mybatis文件配置方式和注解方式操作数据库
- spring-使用配置文件完成JdbcTemplate操作数据库-dbcp
- Linux下oracle11gR2系统安装到数据库建立配置及最后oracle的dmp文件导入一站式操作记录
- Hibernate操作数据库的3个准备和七个步骤,以及在SSH框架中Hibernate的配置。
- 检测数据库日志的切换频率及归档文件大小的sql
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- java操作数据库的类——SqlHelper(读取properties配置文件)
- 如何读取配置文件并连接后台数据库,且对数据库进行操作实例(查询或修改等)
- C++操作数据库写入到json配置文件中
- 【JavaWeb-19】Hibernate简介、入门案例、Session操作、2个配置文件详解
- Linux下oracle11gR2系统安装到数据库建立配置及最后oracle的dmp文件导入一站式操作记录
- spring配置文件---之数据库切换
- Spring整合Hibernate开发 - 使用事务管理器操作数据库 - 主配置文件
- 2. 数据库文件配置与简单操作 Model / M()
- JDBC 实现 配置文件和数据库操作的分离
- spring-使用配置文件完成JdbcTemplate操作数据库-c3p0
- "System.Data.SqlServerCe.SqlCeException: 数据库文件大于配置的最大数据库大小。该设置仅在第一次并发数据库连接后生效"解决方案