Oracle的控制文件和日志文件

时间:2022-07-21 15:18:59
--什么是控制文件
控制文件是数据库的一个二进制文件,它主要记录数据库的名称、
数据库的数据文件存放位置等信息。
一个控制文件只能属于一个数据库。如果控制文件丢失,这数据库就无法操作。
--下面查询语句必须在 sql plus工具中执行。
--查询控制语句数据字典
desc v$controlfile; --什么是日志文件
日志文件在Oracle数据库中分为重做日志文件和归档日志文件两种。重做日志文件
是Oracle数据库正常运行不可缺少的文件。重做日志文件主要记录了数据库
操作过程。用于备份和还原数据库,以达到数据库的最新状态。 --查看日志文件信息的数据字典
desc v$logfile
--查看日志文件的数据字典
desc v$database select name as 数据库名称,log_mode as 归档模式 from v$database; --查看控制文件的内容
select name as 文件位置,status as 文件状态 from v$controlfile; --数据库的初始化文件里配置这控制文件的路径
初始化文件init.ora,init.ora文件在安装目录下admin\orcl\pfile --实现多路复用控制文件的方式,就是将控制文件(ctl)放到不同的磁盘物理位置,通过初始化文件
--init.ora配置就可以实现多路复用了。 --使用spfile多了复用控制,也事件通过命令修改init.ora文件配置信息。
--具体步骤
1、修改control_files参数,数据库必须是打开状态
Alter system set control_files='ctl文件位置'
,'ctl文件位置','ctl文件位置' scope=spfile; 2、关闭数据库,因为数据库打开时,任何控制文件是无法操作的。
shutdown immediate;
3、通过dos工具的copy命令复制控制文件到指定位置。也可以手动赋值。
copy 旧文件 , 新文件
4、启动数据库实例并验证
startup 启动命令 --创建控制文件
1、查看数据库需要的日志文件和和数据文件
select name from v$datafile;--查询数据库数据文件
select member from v$logfile;--查询数据库日志文件 2、关闭数据库,为了数据库安全,关闭数据库之前要将日志文件、数据文件、参数文件等备份到其它位置。
shutdown immediate; 3、创建新的控制文件
必须启动的实例:startup nomount;
create controlfile
reuse database "数据库名称"
[ noresetlogs | resetlogs] --noresetlogs是否重做日志或重命名数据库;resetlogs非重做日志或重命名数据库
[ noarchivelog | archivelog ] --noarchivelog非归档模式;archivelog归档模式
maxlogfiles --日志文件大小
maxlogmembers --日志文件组成员数
maxinstances --最大实例数
maxloghistory --最大历史日志文件数
logfile --日志文件
group 1 '日志文件路径' size 日志文件大小,
...
group n '日志文件路径' size 日志文件大小
datafile --数据文件
'路径1',..,'路径n'
Character set we8dec; --实例
create controlfile
reuse database "orcl" noresetlogs
noarchivelog
maxlogfiles 35
maxlogmembers 3
maxinstances 1
maxloghistory 400
logfile
group 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' size 50M,
group 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' size 50M,
group 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' size 50M
datafile
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF'
character set we8dec;
4、修改init.ora中controlfiles参数
Alter system set control_files='ctl文件位置'
,'ctl文件位置','ctl文件位置' scope=spfile;
5、验证控制文件
重启数据库,查看数据字典,检查控制文件是否全部正确加载。
数据库启动不了,就重新启动数据库服务。 --日志文件管理
--创建重做日志组
alter database [database_name]
add logfile group n
filename size m; database_name:数据库名称。
n:日志组的组号。
filename:日志文件组存储的位置。
m:日志文件组的大小,默认为50M。
--实例
alter database add
logfile group 8
<'E:\APP\ADMINISTRATOR\ORADATA\ORCL\NewLog8.log'>
size 15M;
---给日志文件组添加日志文件组
alter database [database_name]
add logfile member
filename to group n;
database_name:数据库名称,默认当前数据库
filename:日志文件的地址。
n:日志文件组名。 --实例
alter database
add logfile member
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\NewLog10.log' to group 8; --查看日志文件组
select * from v$log; --删除日志组
alter database [database_name]
drop logfile
group n;
--删除日志文件
alter database [database_name]
drop logfile member
filename;