Oracle学习笔记(基本概念) 物理结构 数据文件、日志文件、控制文件、参数文件 系统全局区(System Global Area) 共享池、数据缓冲区、日志缓冲区 进 程 用户进程、服务器进程、后台进程 数据文件 每一个数据文件只与一个数据库相联系。 数据文件一旦被建
Oracle学习笔记(基本概念)
物理结构
数据文件、日志文件、控制文件、参数文件
系统全局区(System Global Area)
共享池、数据缓冲区、日志缓冲区
进 程
用户进程、服务器进程、后台进程
数据文件
• 每一个数据文件只与一个数据库相联系。
• 数据文件一旦被建立则不能修改其大小。
• 一个表空间可包含一个或多个数据文件。
日志文件
• 每一个数据库至少包含两个日志文件组。
• 日志文件组以循环方式进行写操作。
• 每一个日志文件成员对应一个物理文件。
日志开关(Log Switch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:
• 当一个日志文件组被填满时
• 关闭数据库时
• DBA手动转移日志开关
镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。
其特点如下:
• 每个日志文件组至少包含两个日志文件成员。
• 每组的成员数目相同。
• 同组的所有成员同时被修改。
• 同组的成员大小相同,不同组的成员大小可不同。
控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。
描述信息如下:
• 数据库建立的日期。
• 数据库名。
• 数据库中所有数据文件和日志文件的文件名及路径。
• 恢复数据库时所需的同步信息。
参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。
初始参数文件:init.ora
生成参数文件:initSID.ora config.ora
参数文件的作用:
• 确定存储结构的大小。
• 设置数据库的全部缺省值。
• 设置数据库的范围。
• 设置数据库的各种物理属性。
• 优化数据库性能。
实例( INSTANCE )
是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。
SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。
共享SQL区包括
• SQL或PL/SQL语句的文本
• SQL或PL/SQL语句的语法分析形式
• SQL或PL/SQL语句的执行方案
数据字典区用于存放数据字典信息行。
共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。
数据缓冲存储区分为
• 脏列表
包括被修改过但尚未写到数据文件的缓冲块。
• LRU(Least Recently Used)列表
包括空闲缓冲块、正在存取的缓冲块、已被修改但尚未移到脏列表的缓冲块。
专用服务器方式为每个用户单独开设一个服务器进程。适用于实时系统。
不设置参数:
MTS_SERVICE
MTS_DISPATCHERS
MTS_SERVERS
MTS_LISTERNET_ADDRESS
多线索服务器方式通过调度器为每个用户进程分配服务器进程。设置参数:
MTS_SERVICE
MTS_DISPATCHERS
MTS_SERVERS
MTS_LISTERNET_ADDRESS
• MTS_SERVICE:服务器名,缺省值为DB_NAME
• MTS_DISPATCHERS:调度器个数
• MTS_SERVERS:可以启动的服务器进程的个数
• MTS_LISTERNET_ADDRESS:SQL*NET监听器地址
• MTS_MAX_SERVERS:服务器进程的最大数
主要的后台进程有
• DBWR 数据库写进程
• LGWR 日志写进程
• CKPT 检查点写进程
• SMON 系统监控进程
• PMON 进程监控进程
• ARCH 归档进程
• RECO 恢复进程
LCKn:封锁进程
DBWR(Data Base Writer)
将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。
DBWR进行写操作的情况:
• 脏列表达到最低限制。
相当于参数DB_BLOCK_WRITE_BATCH值的一半。
• 一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。
参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。
• 出现超时
3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。
• 出现检查点。
LGWR进行写操作的情况:
• 用户进程提交一个事务(Commit)
• 日志缓冲区达到1/3范围
• DBWR对一个检查点需要清除缓冲块
• 出现超时(3秒钟内未活动,则进行一次写操作。)
检查点(Checkpoint)
在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。
• 预定数目的记录项被填满。
参数LOG_CHECKPOINT_INTERVAL确定了预定数目。
• 设置指定的秒数。
参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。
• 每个日志开关处
• 关闭实例时
• DBA手动操作。
• 表空间离线。
ARCH(Archiver)
在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。
• LOG_ARCHIVE_START
确定了该进程的启动/不启动状态。
• LOG_ARCHIVE_DEST
当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。
• LOG_ARCHIVE_FORMAT
当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。
SMON(System Monitor)
负责完成自动实例恢复。该进程在启动实例时自动启动。
PMON(Process Monitor)
撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。
RECO(Recover)
在分布式操作的情况下,恢复一个事务的失败。
LCKn(Lock)
在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,¼,LCK9。
处理SQL语句的三个阶段
• 语法分析
• 执行
• 返回指令
ORACLE的逻辑结构是由一个或多个表空间组成。
• 一个表空间由一组分类段组成
• 一个段由一组范围组成
• 一个范围由一批数据库块组成
• 一个数据库块对应一个或多个物理块
数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。
一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。

MySQL在數據庫和編程中的地位非常重要,它是一個開源的關係型數據庫管理系統,廣泛應用於各種應用場景。 1)MySQL提供高效的數據存儲、組織和檢索功能,支持Web、移動和企業級系統。 2)它使用客戶端-服務器架構,支持多種存儲引擎和索引優化。 3)基本用法包括創建表和插入數據,高級用法涉及多表JOIN和復雜查詢。 4)常見問題如SQL語法錯誤和性能問題可以通過EXPLAIN命令和慢查詢日誌調試。 5)性能優化方法包括合理使用索引、優化查詢和使用緩存,最佳實踐包括使用事務和PreparedStatemen

MySQL適合小型和大型企業。 1)小型企業可使用MySQL進行基本數據管理,如存儲客戶信息。 2)大型企業可利用MySQL處理海量數據和復雜業務邏輯,優化查詢性能和事務處理。

InnoDB通過Next-KeyLocking機制有效防止幻讀。 1)Next-KeyLocking結合行鎖和間隙鎖,鎖定記錄及其間隙,防止新記錄插入。 2)在實際應用中,通過優化查詢和調整隔離級別,可以減少鎖競爭,提高並發性能。

MySQL不是一門編程語言,但其查詢語言SQL具備編程語言的特性:1.SQL支持條件判斷、循環和變量操作;2.通過存儲過程、觸發器和函數,用戶可以在數據庫中執行複雜邏輯操作。

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL是一個開源的關係型數據庫管理系統,適用於數據存儲、管理、查詢和安全。 1.它支持多種操作系統,廣泛應用於Web應用等領域。 2.通過客戶端-服務器架構和不同存儲引擎,MySQL高效處理數據。 3.基本用法包括創建數據庫和表,插入、查詢和更新數據。 4.高級用法涉及復雜查詢和存儲過程。 5.常見錯誤可通過EXPLAIN語句調試。 6.性能優化包括合理使用索引和優化查詢語句。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

InnoDB的鎖機制包括共享鎖、排他鎖、意向鎖、記錄鎖、間隙鎖和下一個鍵鎖。 1.共享鎖允許事務讀取數據而不阻止其他事務讀取。 2.排他鎖阻止其他事務讀取和修改數據。 3.意向鎖優化鎖效率。 4.記錄鎖鎖定索引記錄。 5.間隙鎖鎖定索引記錄間隙。 6.下一個鍵鎖是記錄鎖和間隙鎖的組合,確保數據一致性。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。