数据库启动之OPEN
1、数据库OPEN模式 start open,默认是此模式,或alter database open;这是数据库正常操作的状态,此状态下,任何合法用户都可以数据库连接和执行正常的数据访问操作。 此时, ORACLE启动实例,并打开控制文件,打开所有联机数据文件,打开所有联机重做日志
1、数据库OPEN模式
start open,默认是此模式,或alter database open;这是数据库正常操作的状态,此状态下,任何合法用户都可以数据库连接和执行正常的数据访问操作。
此时,ORACLE启动实例,并打开控制文件,打开所有联机数据文件,打开所有联机重做日志文件。
此时任何数据文件或联机重做日志文件不存在,ORACLE将返回出错信息。此后ORACLE将检查所有联机数据文件和所有联机重做日志文件能否打开并检查数据一致性,如不一致则由SMON后台进程进行实例恢复。
2.数据库OPEN的几种特殊模式:
alterdatabase read only; 将数据库打开至只读模式。
alterdatabase read write; 恢复至正常模式。
只读模式的数据库可以: 执行查询,使用本地管理的表空间来执行磁盘排序。将数据文件脱机、联机,不能对表空间进行此操作。执行数据文件和表空间的脱机恢复。
数据库的限制模式: 此时只有具有restricted session系统权限的用户才可以登陆,。startup restrict
将已运行的数据库设置为限制模式 alter system enable restricted session; 此时已经登陆的用户将不受影响,未登陆的需要有restricted session系统权限。可以使用ALTER SYSTEM KILL SESSION 'sid,serial#' 杀掉已登陆用户进程。
查询有哪些用户已经登陆:
SQL>select sid,serial#,username,type from v$session where type like '%USER';
3.控制文件重要性
由于控制文件中记录了数据库数据文件、日志文件位置、检查点信息等,在OPEN阶段,ORACLE根据控制文件中记录的 这些信息找到对应文件,然后进行检查点及完整性检查。不存在问题则正常启动数据库。如存在检查点不一致或文件丢失,则需要进行恢复。
4.在OPEN过程吕,ORACLE检查以下两项:
检查数据文件头中检查点计数(checkpoint CNT)是否与控制文件中检查点计数(checkpoint CNT)一致。以此确定数据文件是否来自恢复文件。
如果检查点计数检查通过,数据库进行第二次检查,检查数据文件头的开始SCN和控制文件中记录的该文件的结束SCN是否一致,如果控制文件中记录的结束SCN等于数据文件头的开始SCN,不需要恢复。
关于实例恢复的详细分析:http://blog.csdn.net/haibusuanyun/article/details/17082235
以上两次检查通过后,打开数据库,锁定数据文件,并将每个数据文件的结束SCN设置为无穷大。
下面是实验:
SQL>alter database open;
alterdatabase open
*
第 1 行出现错误:
ORA-01157:无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110:数据文件 1:'E:\SYSORADATA\SYSTEM01.DBF' ----------------在本文开始部分重命令了这个文件
SQL>host move e:\sysoradata\system01bak.dbf e:\sysoradata\system01.dbf
SQL>alter database open;
数据库已更改。
SQL>select status from v$instance;
STATUS
------------
OPEN
5.OPEN时的ALERT日志中信息---对字符集的判断
日志中红字的Database Characterset is ZHS16GBK 是每次数据库启动时,ORACLE判断控制文件中记录的字符集为数据库中字符集是否相符,相符则记录此条记录。
不相符,则以数据库中字符集为准更新控制文件中字符集信息,产生日志类似:updating Character set in controlfile to ZHS16GBK
第一次因数据文件不存在时的日志:
SunFeb 03 22:44:07 2013
alterdatabase open
SunFeb 03 22:44:07 2013
Errorsin file c:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_dbw0_988.trc:
ORA-01157:cannot identify/lock data file 1 - see DBWR trace file
ORA-01110:data file 1: 'E:\SYSORADATA\SYSTEM01.DBF'
ORA-27041:unable to open file
OSD-04002:无法打开文件
O/S-Error:(OS 2) 系统找不到指定的文件。
Errorsin file c:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_324.trc:
ORA-01157:无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110:数据文件 1:'E:\SYSORADATA\SYSTEM01.DBF'
ORA-1157signalled during: alter database open...
SunFeb 03 22:44:09 2013
Checkerrun found 1 new persistent data failures
恢复数据文件后OPEN日志:
Database Characterset is ZHS16GBK语句在偏后
SunFeb 03 22:45:01 2013
alterdatabase open
SunFeb 03 22:45:01 2013
LGWR:STARTING ARCH PROCESSES
SunFeb 03 22:45:01 2013
ARC0started with pid=19, OS id=420
ARC0:Archival started
LGWR:STARTING ARCH PROCESSES COMPLETE
ARC0:STARTING ARCH PROCESSES
SunFeb 03 22:45:02 2013
ARC1started with pid=21, OS id=2440
SunFeb 03 22:45:02 2013
ARC2started with pid=22, OS id=3216
ARC1:Archival started
ARC2:Archival started
ARC1:Becoming the 'no FAL' ARCH
ARC1:Becoming the 'no SRL' ARCH
ARC2:Becoming the heartbeat ARCH
SunFeb 03 22:45:02 2013
ARC3started with pid=23, OS id=2460
Thread1 opened at log sequence 56
Current log# 8 seq# 56 mem# 0: D:\DISK1\REDO05A.LOG
Current log# 8 seq# 56 mem# 1:D:\DISK2\REDO05B.LOG
Current log# 8 seq# 56 mem# 2: D:\DISK3\REDO05C.LOG
Current log# 8 seq# 56 mem# 3:D:\DISK4\REDO05D.LOG
Current log# 8 seq# 56 mem# 4: D:\DISK5\REDO05E.LOG
Successfulopen of redo thread 1
MTTRadvisory is disabled because FAST_START_MTTR_TARGET is not set
SunFeb 03 22:45:02 2013
SMON:enabling cache recovery
ARC3:Archival started
ARC0:STARTING ARCH PROCESSES COMPLETE
ArchivedLog entry 86 added for thread 1 sequence 53 ID 0x4f44a7a1 dest 1:
Successfullyonlined Undo Tablespace 2.
Verifyingfile header compatibility for 11gtablespace encryption..
Verifying11g file header compatibilityfor tablespace encryption completed
SMON:enabling tx recovery
SunFeb 03 22:45:17 2013
ArchivedLog entry 87 added for thread 1 sequence 54 ID 0x4f44a7a1 dest 1:
ArchivedLog entry 88 added for thread 1 sequence 54 ID 0x4f44a7a1 dest 2:
ArchivedLog entry 89 added for thread 1 sequence 54 ID 0x4f44a7a1 dest 3:
ArchivedLog entry 90 added for thread 1 sequence 54 ID 0x4f44a7a1 dest 4:
ArchivedLog entry 91 added for thread 1 sequence 54 ID 0x4f44a7a1 dest 5:
SunFeb 03 22:45:18 2013
ArchivedLog entry 92 added for thread 1 sequence 55 ID 0x4f44a7a1 dest 1:
ArchivedLog entry 93 added for thread 1 sequence 55 ID 0x4f44a7a1 dest 2:
ArchivedLog entry 94 added for thread 1 sequence 55 ID 0x4f44a7a1 dest 3:
ArchivedLog entry 95 added for thread 1 sequence 55 ID 0x4f44a7a1 dest 4:
ArchivedLog entry 96 added for thread 1 sequence 55 ID 0x4f44a7a1 dest 5:
SunFeb 03 22:45:18 2013
Database Characterset is ZHS16GBK
NoResource Manager plan active
SunFeb 03 22:45:30 2013
Startingbackground process QMNC
SunFeb 03 22:45:30 2013
QMNCstarted with pid=24, OS id=3684
SunFeb 03 22:45:40 2013
Completed: alter database open

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

即使在「請勿打擾」模式下接聽電話也可能是一種非常煩人的體驗。顧名思義,請勿打擾模式可關閉來自郵件、訊息等的所有來電通知和警報。您可以按照這些解決方案集進行修復。修復1–啟用對焦模式在手機上啟用對焦模式。步驟1–從頂部向下滑動以存取控制中心。步驟2–接下來,在手機上啟用「對焦模式」。專注模式可在手機上啟用「請勿打擾」模式。它不會讓您的手機上出現任何來電提醒。修復2–更改對焦模式設定如果對焦模式設定中存在一些問題,則應進行修復。步驟1–打開您的iPhone設定視窗。步驟2–接下來,開啟「對焦」模式設

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

在C++中使用DataAccessObjects(DAO)函式庫連接和操作資料庫,包括建立資料庫連線、執行SQL查詢、插入新記錄和更新現有記錄。具體步驟為:1.包含必要的函式庫語句;2.開啟資料庫檔案;3.建立Recordset物件執行SQL查詢或操作資料;4.遍歷結果或依照特定需求更新記錄。
