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