Oracle的控制文件和日志文件


--什么是控制文件
  控制文件是數據庫的一個二進制文件,它主要記錄數據庫的名稱、
數據庫的數據文件存放位置等信息。
  一個控制文件只能屬於一個數據庫。如果控制文件丟失,這數據庫就無法操作。
--下面查詢語句必須在 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;
 

 
 
 
  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM