目錄
一、控制檔的管理
1、控製文件的概述
2、控制檔的建立
1、控制檔案的重新建立
3、控製檔案的備份
1、將控制檔備份為二進位檔案
2、将控制文件备份为文本文件
4、控制文件的恢复
5、添加多路复用的控制文件
二、重做日志文件的管理
1、重做日志文件概述
2、查询重做日志文件信息
3、重做日志文件组及成员的创建
4、重做日志文件组及成员的删除
5、修改重做日志文件的名称或位置
三、归档日志文件的管理
1、归档日志文件概述
2、归档日志信息的查询
3、归档模式的设置
首頁 資料庫 Oracle 詳解Oracle控製檔及日誌檔的管理問題

詳解Oracle控製檔及日誌檔的管理問題

Jul 26, 2022 pm 02:11 PM
oracle

這篇文章為大家帶來了關於Oracle的相關知識,主要介紹了Oracle控製檔案及日誌檔案的管理,控製檔案是oracle的實體檔案之一,每個oracle資料庫都必須至少有一個控製文件,它記錄了資料庫的名字、資料文件的位置等信息,下面一起來看一下,希望對大家有幫助。

詳解Oracle控製檔及日誌檔的管理問題

推薦教學:《Oracle影片教學

一、控制檔的管理

控製文件是oracle的實體文件之一,每個oracle資料庫都必須至少有一個控製文件,它記錄了資料庫的名稱、資料檔案的位置等資訊。在啟動資料實例時,oracle會根據初始化參數定位控製文件,然後oracle會根據控製文件在實例和資料庫之間建立關聯。控製文件的重要性在於,一旦控製文件損壞,資料庫將無法啟動。

1、控製文件的概述

控製文件在資料庫創建時自動創建,並在資料庫發生物理變化時會同時更新。在任何時候都要保證控製文件是可用的。只有oracle進程才能夠安全地更新控製檔案的內容,所以,任何時候都不要試圖手動編輯控製檔。

2、控制檔的建立

資料庫在建立的時候,系統會根據初始化參數檔中control_files的設定來建立控制檔。在後期資料庫的使用過程中,如果控製檔案遺失或損壞,可以透過手動建立新的控製檔。
手動建立控製文件的基本語法如下所示。

create controlfile
reuse database db_name
logfile
group 1 redofiles_list1
...
datafile
...
maxlogfiles max_value1
maxlogmembers max_value2
maxinstances max_value3
maxdatafiles max_value4
noresetlogsiresetlogs
archiveloginoarchivelog;
登入後複製

參數說明如下。
db_name:資料庫名稱。
logfile:表示下面定義日誌組檔案。
redofiles_list1:重做日誌組中的重做日誌檔案清單1名稱及路徑。
datafile:表示下面定義資料檔。
max_value1:最大的重做日誌檔案數。
max_value2:最大的重做日誌組成員數。
max_value3:最大實例數。
max_value4:最大資料檔數。
新控制檔的基本步驟如下。
1、查看資料庫中所有的資料檔案和重做日誌檔案的名稱和路徑。
2、關閉資料庫。
3、備份所有的資料檔案和重做日誌檔案。
4、啟動資料庫執行個體。
5、建立新的控制檔。
6、編輯初始化參數。
7、重新開啟資料庫。

1、控制檔案的重新建立

1、檢視資料庫中所有的資料檔案和重做日誌檔案的名稱和路徑。
如果資料庫可以打開,則可以使用資料字典獲取資料檔案和日誌檔案的基本信息,如下所示。
使用資料字典v$logfile取得日誌檔案資訊。

select member from v$logfile;
登入後複製

使用資料字典v$datafile取得資料檔資訊。

select name from v$datafile;
登入後複製

使用資料字典v$controlfile取得控制檔資訊。

select name from v$controlfile;
登入後複製

2、關閉資料庫
如果資料庫處於運作狀態,在建立控製檔案之前,先以sys使用者登錄,關閉資料庫。

conn sys/change_on_install as sysdbashutdown normal
登入後複製

3、備份所有的資料檔案和重做日誌檔案。
4、啟動資料庫執行個體。
備份完成後,啟動資料庫,但是先不載入資料庫,這主要是因為如果載入資料庫,會同時開啟控製文件,就無法實現建立新的控製文件的目的。

startup nomount
登入後複製

3、控製檔案的備份

在日常資料庫維護過程中,為了避免因控製檔案遺失或損壞而導致資料庫系統崩潰,需要經常對控制文件進行備份。特別是當修改了資料庫結構之後,例如資料檔案的新增、刪除等,都需要及時重新備份控制檔。
備份控制檔可以使用下面語句來實作。

alter database backup controlfile
登入後複製

使用該語句一般有兩種備份,一種是以二進位檔案的形式進行備份,另一種是以文字檔案的形式進行備份。下面就分別看一下如何實現控製檔的備份。

1、將控制檔備份為二進位檔案

alter database backup controlfile to 'c:\bak.bkp';
登入後複製

#上面程式碼實作將控制檔備份到C盤根目錄下,檔案名稱為bak.bkp,該文件以二進制形式存在。

2、将控制文件备份为文本文件

alter database backup controlfile to trace;
登入後複製

4、控制文件的恢复

当数据库由于各种情况发生损坏时,这时可以使用所备份的文件来恢复数据库。在日常维护中,经常会遇到两种情况,一种是控制文件损坏,另一种情况是磁盘发生故障。
当控制文件损坏时,这种情况较为简单,只需要用备份文件替换损坏的文件即可,不过复制之前要先关闭数据库,然后再复制,复制完成后需要重新启动。

5、添加多路复用的控制文件

为了提高数据库的可靠性,可以建立多个镜像的控制文件,并且分别保存在不同的磁盘中进行多路复用,这样就可以避免由于单个设备故障而使得数据库无法启动的情况发生,这种管理策略被称为多路复用控制文件。当某个磁盘发生物理损坏导致控制文件损坏,数据库将被关闭,此时就可以利用另一个磁盘中保存的控制文件来恢复被损坏的控制文件,然后再重新启动数据库,达到保护控制文件的目的。

二、重做日志文件的管理

重做日志文件也称为日志文件,是记录系统的日常操作、异常等行为的文件,是包含系统信息的文件,包括内核、服务、在系统上运行的应用程序等。重做日志文件是数据库安全和恢复的基本保障,当数据库出现故障的时候,管理员可以根据日志文件和数据库备份文件,将崩溃的数据库恢复到最近一次记录日志时的状态。

1、重做日志文件概述

在oracle数据库中,重做日志文件用于记录用户对数据库所做的各种变更操作所引起的数据变化,此时,所产生的操作会先写入重做日志缓冲区,当用户提交一个事务的时候,LGWR进程将与该事务相关的所有重做记录写入重做日志文件,同时生成一个“系统变更数”,scn会和重做记录一起保存到重做日志文件组,以标识与该事务提交成功。如果某个事务提交出现错误,可以通过重做记录找到数据库修改之前的内容,进行数据恢复。

2、查询重做日志文件信息

在oracl数据库日常运行过程中,数据库管理员可以查看重做日志文件信息,用于了解数据库的运行情况。这可以通过查询数据字典视图v l o g 、 v log、v log、vlogfile和v l o g h i s t o r y 来 实 现 , 通 过 它 们 可 以 查 询 的 信 息 如 下 。 v log_history来实现,通过它们可以查询的信息如下。 v loghistory来实现,通过它们可以查询的信息如下。vlog:包含重做日志文件组的信息。
v l o g f i l e : 包 含 重 做 日 志 文 件 成 员 信 息 。 v logfile:包含重做日志文件成员信息。 v logfile:包含重做日志文件成员信息。vlog_history:包含日志历史信息。

3、重做日志文件组及成员的创建

在数据库的日常维护过程中,数据库管理员可以通过手工方式向数据库中添加新的重做日志组或日志文件,也可以改变重做日志文件的名称与位置,或者删除重做日志组或其成员。

1、创建重做日志文件组
语法如下:

alter database add logfile [group] [编号](日志文件) size
登入後複製

上面语句中group可选,当不选择的时候,系统会自动产生组号,为当前重做日志文件组的个数加1。

4、重做日志文件组及成员的删除

当重做日志文件组,其成员不合适或者所在存储位置出现错误时,此时可以将重做日志文件组或者其成员删除。

1、删除重做日志成员文件
删除重做日志文件成员使用如下语法。

alter database drop logfile member 文件名
登入後複製

删除group5添加的新成员文件

alter database drop logfile member 'd:\app\redo05_3.log';
登入後複製

5、修改重做日志文件的名称或位置

在数据库正常使用中,如果想要改变重做日志文件的名称或位置,可以按照如下步骤进行重做日志文件的修改。
1、关闭数据库。
2、复制或者修改日志文件的位置。
3、启动数据库实例,但不打开数据库,只加载数据库。
4、重新设置重做日志文件的名称或位置。
5、打开数据库。

三、归档日志文件的管理

在oracle数据库中,重做日志文件用于记录用户对数据库所做的各种变更操作所引起的数据变化。在把这些变化写入重做的日志文件的时候,一般情况下有多个重做日志文件组,每个文件组有多个文件,oracle向这些重做文件写入的时候,一般情况下有多个重做日志文件组,每个文件组有多个文件,oracle向这些重做文件写入的时候,是使用循环的方式向这些重做日志文件组中的文件进行写入的,当最后一个重做日志文件组中的文件内容写满后,会重新写入第一个重做日志文件组中的文件。在这种情况下,原先重做日志文件的内容如何处理,是直接覆盖还是把原先的记录保存,就是我们要介绍的归档日志。

1、归档日志文件概述

所谓归档日志文件就是指当重做日志文件写满的时候,把其中内容保存到新的文件中,这些新的文件集合就是归档日志文件。但是重做日志文件并不一定主动被保存到新的文件中,根据数据库设置不同,oracle有两种日志模式:归档日志模式和非归档日志模式。在非归档日志模式下,原日志文件的内容会被新的日志内容所覆盖;在归档日志模式下,oracle会首先对原日志文件进行归档存储,且在归档未完成之前不允许覆盖原有日志。

2、归档日志信息的查询

数据库管理人员可以修改归档日志文件和非归档日志文件,但首先需要了解归档日志信息。在oracle中,可以通过查询数据字典了解归档日志的一些基本信息,常用的数据字典有v a r c h i v e d l o g 、 v archived_log、v archivedlog、varchive_dest、v$database等

3、归档模式的设置

默认情况下,oracle数据库处于非归档日志模式,即当重做日志文件写满的时候,直接覆盖里面的内容,原先的日志记录不会被写入到归档日志文件中。根据oracle数据库对应的应用系统不同,数据库管理员可以把数据库的日志模式在归档模式和非归档模式之间进行切换。可以通过alter database archivelog或noarchivelog语句实现数据库在归档模式与非归档模式之间进行切换。
切换步骤如下:
1、关闭数据库

shutdown immediate;
登入後複製

2、将数据库启动到加载状态。

startup mount;
登入後複製

3、修改数据库的归档模式或非归档模式
归档模式修改为非归档模式

alter database noarchivelog;
登入後複製

非归档模式修改为归档模式

alter database archivelog;
登入後複製

4、重新打开数据库

alter database open;
登入後複製

推荐教程:《Oracle视频教程

以上是詳解Oracle控製檔及日誌檔的管理問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

oracle打不開怎麼辦 oracle打不開怎麼辦 Apr 11, 2025 pm 10:06 PM

Oracle 打不開的解決辦法包括:1. 啟動數據庫服務;2. 啟動監聽器;3. 檢查端口衝突;4. 正確設置環境變量;5. 確保防火牆或防病毒軟件未阻止連接;6. 檢查服務器是否已關閉;7. 使用 RMAN 恢復損壞的文件;8. 檢查 TNS 服務名稱是否正確;9. 檢查網絡連接;10. 重新安裝 Oracle 軟件。

oracle游標關閉怎麼解決 oracle游標關閉怎麼解決 Apr 11, 2025 pm 10:18 PM

解決 Oracle 游標關閉問題的方法包括:使用 CLOSE 語句顯式關閉游標。在 FOR UPDATE 子句中聲明游標,使其在作用域結束後自動關閉。在 USING 子句中聲明游標,使其在關聯的 PL/SQL 變量關閉時自動關閉。使用異常處理確保在任何異常情況下關閉游標。使用連接池自動關閉游標。禁用自動提交,延遲游標關閉。

oracle怎麼循環創建游標 oracle怎麼循環創建游標 Apr 12, 2025 am 06:18 AM

Oracle 中,FOR LOOP 循環可動態創建游標, 步驟為:1. 定義游標類型;2. 創建循環;3. 動態創建游標;4. 執行游標;5. 關閉游標。示例:可循環創建游標,顯示前 10 名員工姓名和工資。

oracle數據庫怎麼停止 oracle數據庫怎麼停止 Apr 12, 2025 am 06:12 AM

要停止 Oracle 數據庫,請執行以下步驟:1. 連接到數據庫;2. 優雅關機數據庫(shutdown immediate);3. 完全關機數據庫(shutdown abort)。

HDFS配置CentOS需要哪些步驟 HDFS配置CentOS需要哪些步驟 Apr 14, 2025 pm 06:42 PM

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

甲骨文在商業世界中的作用 甲骨文在商業世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

oracle日誌寫滿怎麼辦 oracle日誌寫滿怎麼辦 Apr 12, 2025 am 06:09 AM

Oracle 日誌文件寫滿時,可採用以下解決方案:1)清理舊日誌文件;2)增加日誌文件大小;3)增加日誌文件組;4)設置自動日誌管理;5)重新初始化數據庫。在實施任何解決方案前,建議備份數據庫以防數據丟失。

oracle動態sql怎麼創建 oracle動態sql怎麼創建 Apr 12, 2025 am 06:06 AM

可以通過使用 Oracle 的動態 SQL 來根據運行時輸入創建和執行 SQL 語句。步驟包括:準備一個空字符串變量來存儲動態生成的 SQL 語句。使用 EXECUTE IMMEDIATE 或 PREPARE 語句編譯和執行動態 SQL 語句。使用 bind 變量傳遞用戶輸入或其他動態值給動態 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 執行動態 SQL 語句。

See all articles