Oracle11g日志文件

用户对数据库的一切操作都记录在数据库的日志文件中,通过日志文件可以查看用户对数据库进行了哪些操作

0. 查询日志文件
a. select * from v$log; (查询数据库使用哪一日志文件组)
b. select * from v$logfile; (查询正在使用的日志文件组中的日志文件)
c. select * from v$log_history; (查询历史日志)
d. select dbid,name,created,log_mode from v$database;(查询日志归档模式)

1. 创建日志文件组(对于一切数据库的操作的记录)
alter database database_instance_name
add logfile [group group_number] (group_number为日志文件组指定组编号)
(file_name [,file_name[,..]]) (为该组创建日志文件成员)
[size size_number] 指定日志文件成员的大小)
[reuse] (如果创建的日志文件成员已存在,可以使用reuse覆盖已存在额文件。但是该文件不嫩已经属于其它日志文件组,否则无法替换。)
alter database add logfile group4
(
'e:\app\log2.log',
'e:\app\log3.log'
) size 10M;

2. 创建日志文件(一般是指向日志文件组中天剑日志成员)
alter database ... add logfile member to group_number;
如下实例,向文件组group4中添加一个新的日志文件。
alter database add logfile member
'd:\app\redo009.log'
to group4

查询日志文件组以及成员
select group#,member from V$logfile;

3. 重新定义日志成员
1. 为日志文件组重新指定一个日志文件。
2. 在一个已存在的日志文件组中添加一个新创建的日志文件。
分步骤:
a. conn sys/admin as sysdba
b. shutdown 数据库(关闭数据库例程)
c. 到日志所在目录,执行剪切,复制以及重命名等草组。
d. startup mount 启动数据实例例程,加载数据库实例。
e.
alter database rename file
'e:\app\redo009.log' 旧的日志文件
to
'd:\test\redo033.log'; 新的日志文件
f.alter database open; 打开数据库实例

4. 操作日志文件组(切换/清空)
a. 切换日志文件组(日志文件组是循环使用的,当一组日志文件被写满是,oracle自动切换到下一组日志文件。在需要的时候,数据库管理员也可以手动切换日志文件按组。)
手动切换执行的命令:alter system switch logfile.
可以先查看数据库中日志文件组使用的状态select group#,status from v$log;
b. 清空日志文件组
如果日志文件组中的日志文件受损,将导致数据库无法将受损的日志文件进行归档,这会最终导致数据库停止运行。 此时在不关闭数据库的情况下可以选择清空日志文件组中的内容。
alter database clear logfile group group_number
注意:被清空的日志文件不能出入current状态,即不能清空数据库正在使用的日志文件组。
当数据库中只有两个日志文件组时,不能清除日志问价组。

5. 删除日志文件(只是在数据字典和控制文件中进行删除日志文件,不会在物理上删除相应的文件)
a.删除日志文件语法: alter database drop logfile member logfile_name
注意: 被删除的日志文件,所在日志文件组必须是非curent.如果是current的需要执行手工日志切换,将该日志文件组的状态修改为inactive.
该日志文件所在的日志文件组中必须还包含其它日志文件。
如果数据库运行在归档模式下,则在删除日志文件之前,确定所在日志文件组已经被归档,否则会导致数据丢失。
6.日志文件组的状态: active/current/inactive/unused
日志文件的状态: valid/invalid/stale.

7. 删除日志文件组
alter database drop logfile group group_number
注意:删除的日志文件组所在的数据库中必须只是有两个日志文件组。
日志文件组不能处于current状态。
如果数据库运行在归档模式,应该确定该日志文件组也已归档。

8. 归档日志
Oracle利用重做日志文件记录对数据库的操作,但是重做日志文件组是循环使用的,当所有的日志文件都被填满是,系统自动切换到第一组日志文件
当然数据库管理员也可以使用命令手工且黄。而在循环使用日志文件时,日志文件中已经存在的日志内容将会被覆盖。为了完整地记录数据库的全部操作,Oracle提出来归档日志概念。
如果是非归档日志模式,则切换日志文件时,日志文件中又有点内容将被新的内容覆盖;
如果是归档日志模式,则切换日志文件时,系统会首先进行归档存储,之后才容许想文件中写于新的日志文件。

9. 修改数据库日志归档模式(archive log list 查看数据库归档模式)
alter database archivelog | noarchivelog
第一步:shutdown 关闭数据库
第二部:start mount 启动数据库实例,但不打开数据库
第三部:执行alter database noarchivelog、archivelog修改数据库归档模式。
第四部:alter database open. 打开数据库。

10. 设置归档目标(查询数据库当前的归档目标:show parameter db_recovery_file_dest_name)
存放归档日志文件目录,一个数据库可以有多个归档目标。在创建数据库是,默认摄者来归档目标,可以通过db_recovery_file dest 参数查看。
设置归档目标:
alter system set
log_archive_dest_n = '{location|server}=directory' local本地;server是远程目标。

11. 设置归档日志名称。
alter system set log_archive_format = 'fix_name%S_%R.%T' SCOPE = scope_type;
a. fix_name%S_%R.%T 其中fix_nam是自定义的命名前缀; %S表示日志序列号;%R联机重做日志的ID值;%T表示归档线程编号。
log——archive_format 参数的值必须包含%S,%R以及%T。
b. scope可以是memory/spfile/both(memory表示之改变当前实例运行参数;spfile表示只改变服务器参数文件;both表示两者都改变)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值