Oracle重做日志文件常用操作
强制切换重做日志
ALTER SYSTEM SWITCH LOGFILE; 强制产生检查点
ALTER SYSTEM CHECKPOINT; 间接产生检查点(设定实例恢复时间不超过mm秒,亦即执行检查点之后运行超过这个时间就再次执行检查点)
ALTER SYSTEM SET FAST_START_MTTR_TARGET = 秒数; 获取重做日志文件信息
SELECT group#, sequence#, members, bytes, status, archived from v$log;
配合
SELECT * from v$logfile; 添加重做日志组
ALTER DATABASE ADD LOGFILE GROUP 5 ('a:\nihao.log', 'b:\zaijian.log') SIZE 20M;
其中GROUP段可以没有,新的组号自动产生,即当前最大组号+1 删除重做日志组
ALTER DATABASE DROP LOGFILE GROUP 5;
注意: 当前重做日志组不可删除,本删除并未真正的删除硬盘上的文件. 添加重做日志成员
ALTER DATABASE ADD LOGFILE MEMBER 'a:\nihao.log' TO GROUP 5, 'b:\zaijian.log' TO GROUP 6; 删除重做日志成员
ALTER DATABASE DROP LOGFILE MEMBER 'a:\nihao.log', 'b:\zaijian.log';
注意:不能删除当前日志组和INVALID状态的成员. 每个重做日志组的最后一个有效成员不能被删除,归档模式下未归档完的成员也不能删除. 本删除并未真正的删除硬盘上的文件 清除重做日志组.(慎用)
ALTER DATABASE CLEAR LOGFILE GROUP 5
或 清除崩溃不能归档的文件
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 5
执行本命令前后应做数据库全备份.因为执行后重做日志文件编号将会短时间不连贯,因而不能执行恢复.以前的备份也不再可用. 本删除并未真正的删除硬盘上的文件 使用OMF(Oracle自动文件管控)管理联机重做日志文件
a.)首先设定日志文件目的地目录,最多可以有5个
ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_1 = 'a:\';
ALTER SYSTEM SET DB_CREATE_ONLINE_LOG_DEST_2 = 'b:\';
b.)添加一组重做日志
ALTER DATABASE ADD LOGFILE;
两个文件分别自动添加到指定目录. Oracle会自动生成下级目录和文件名
c.)删除一组重做日志
ALTER DATABASE DROP LOGFILE GROUP 5;
禁忌同上. Or
相关文档:
1.oracle字符集问题:
数据库字符集为ZHS16BGK,汉字在数据库存放的时候占用两个字节
数据库字符集为UTF8,汉字在数据库里存放的时候占用三个字节
由于字符集不同,导致现在数据库IMP的时候有些表的字段长度不够,出现ORA-12899: value too large for column的错误。
通过修改字符集可以解决这种问题。
2.utf-8和unico ......
死锁的原因
1。模拟死锁
1。1。主表
-- Create table
create table WDZ1
(
WDZ1ID NUMBER not null,
MEMO VARCHAR2(20)
)
;
alter table WDZ1
add constraint XXXXXX primary key (WDZ1ID);
1。2。从表(没有外健的索引)
-- Create table
create table WDZ2
(
WDZ2ID NUMBER not null,
WDZ1ID NUMBER,
M ......
1.OS认证
Oracle安装之后默认情况下是启用了OS认证的,这里提到的os认证是指服务器端os认证。OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级。如果以安装Oracle时的用户登录OS,那么此时在登录Oracle数据库时不需要任何验证,如:
SQL> connect /as sysdba
已连接。
SQL> connect sys/aaa@te ......
1.创建表空间
create tablespace test datafile'c:\test.dbf' size 10m; //名字不要为数字
2.创建用户
create user userName identified by password; //不要为数字
3.给用户授权
grant dba to userName; --授予DBA权限
grant unlimited tablespace to userName;--授予不限制的表空间
grant sele ......
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO=’SCOTT’;
2. /*+FIRST_ROWS*/
表 ......