可以参考:http://www.2cto.com/database/201206/136574.html
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
JSCE NOARCHIVELOG
SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 117
当前日志序列 119
SQL> select group#,status, FIRST_CHANGE#,NEXT_CHANGE# from v$log;
GROUP# STATUS FIRST_CHANGE# NEXT_CHANGE#
---------- ---------------- ------------- ------------
1 INACTIVE 1888087 1911357
2 CURRENT 1911357 2.8147E+14
3 INACTIVE 1861561 1888087
SQL> alter system switch logfile;
系统已更改。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1917945
SQL> alter system checkpoint;--做检查点
系统已更改。
SQL> select group#,status, FIRST_CHANGE#,NEXT_CHANGE# from v$log;
GROUP# STATUS FIRST_CHANGE# NEXT_CHANGE#
---------- ---------------- ------------- ------------
1 INACTIVE 1888087 1911357
2 INACTIVE 1911357 1917909
3 CURRENT 1917909 2.8147E+14
OMF oracle管理文件
SQL> show parameter db_create;
NAME TYPE VALUE
------------------------------------ ----------- -------
db_create_file_dest string
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> select group#,member from v$logfile;
GROUP#
----------
MEMBER
---------------------------------------------------
3
E:\APP\XS\ORADATA\JSCE\REDO03.LOG
2
E:\APP\XS\ORADATA\JSCE\REDO02.LOG
1
E:\APP\XS\ORADATA\JSCE\REDO01.LOG
GROUP#
----------
MEMBER
---------------------------------------------------
4
E:\APP\XS\FLASH_RECOVERY_AREA\JSCE\ONLINELOG\O1_MF_
归档模式-mount下操作
SQL> alter database archivelog;
alter database archivelog
*
第 1 行出现错误:
ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 226492880 bytes
Database Buffers 301989888 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_
最早的联机日志序列 118
下一个存档日志序列 120
当前日志序列 120
SQL> alter database archivelog;
SQL> show parameter log;--归档日志多个地址
mount下打开database
SQL> alter database open;
数据库已更改。
SQL> alter system archive log list;
alter system archive log list
*
第 1 行出现错误:
ORA-01974: 非法的归档选项
SQL> alter system archive log current;
alter system archive log current
*
第 1 行出现错误:
ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志
SQL> select name from v$archived_log;--查看归档
日志
要做的实验
1 将数据库日志模式由非归档改为归档模式(archive log list)
2 查看v$log和v$logfile
3 增加一个日志文件组4,组中放入一个成员(REDO04.LOG)
SYS@ncbeta>alter database add logfile group 4 ('C:\app\dell\oradata\ncbeta\red00
4.lgo') size 10M;
数据库已更改。
注意这里()里面需要加上单引号
4 向日志文件组4再增加一个成员(REDO04a.LOG)
SYS@ncbeta>alter database add logfile member 'C:\app\dell\oradata\ncbeta\red004a
.log' to group 4;
注意:alter 语句中不可设定redo04a.log的大小。
5 将REDO01.LOG移动到一个新地方
( 日志文件的移动或重命名:
1. 关闭数据库
2. 使用操作系统的命令拷贝、移动或重命名重做日志文件
3. 启动
需要退出之后重新进入,并且starup mount
4. 使用ALTER DATABASE RENAME FILE 'original name' TO 'new name'命令更新控制文件
5. 打开数据库)
6 删除日志成员和日志文件组(current、active)
alter system switch logfile
alter system checkpoint
检查一下对应的物理文件是否被删除
7 OMF
检查一下对应的物理文件是否被删除
8 设置归档目的地并测试归档
9 日志文件的修复
(1) SQL>alter database clear logfile group n;
(2) SQL>alter database clear unarchived logfile group n;
(3) SQL>recover database until cancel;
SQL>alter database open resetlogs;
SQL>archive log list;
_allow_resetlogs_corruption
附加:
改变当前联机日志文件的大小
系统环境:
1、操作系统:Windows 2000
2、数据库: Oracle 8i (8.1.7) for NT 企业版
3、安装路径:D:\ORACLE
实现方法:
方法:加入新的大的日志文件,然后删掉旧的小的日志文件
假设现有三个日志组,每个组内有一个成员,每个成员的大小为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;
alter system archive log current
alter system checkpoint;
两个执行之后,可以将联机日志触发DBWR,写入数据文件,变成inactive删除,否则有可能在drop的时候提示
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