国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

漫談數據庫的啟動和關閉

2024-07-21 02:36:22
字體:
來源:轉載
供稿:網友

  對于DBA們來說,關閉和重新啟動數據庫以便優化、調整應用的運行是經常碰到的事情。假如用戶已經log進如了數據庫,你用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令來執行關閉數據庫,那用戶將不能連接,直到數據庫重新啟動,用戶時常會抱怨:怎么又要重起。 其實,每次這樣的啟動關閉都是為了數據庫能更好的運做。這篇文章將具體介紹shutdown/startup操作時應想到的步驟和許多注重事項,或許這些能對你有所幫助。
  
  NOTE:在執行第一步前,SHUT DOWN 數據庫,不要提前關閉SQL*NET,直到你確認關閉了SERVER上的數據庫后再關閉SQL*NET。因為一旦你關閉了SQL*NET,用戶將將失去和數據庫的會話。
  
  第一步---存檔或刪除老的trace files 和 logs
  當你啟動Oracle的一個實例(INSTANCE)時,ORACLE把關于該實例的診斷信息寫入指定的trace 和 log文件。每個后臺進程都增加一個TRACE文件,它被存儲在指定的目錄(該路徑由INIT.ORA 或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST參數指定)。用戶在數據庫中碰到一個內部錯誤時也增加 USERS' TRACE文件,該文件的位置由INIT.ORA 或 CONFIG.ORA 文件中的USER_DUMP_DEST參數指定。
  
  TRACE文件的個數和名稱形式由你的操作系統決定。例如在UNIX下,文件名是一個數字加下畫線加后臺進程號,類似3_12345.trc,當你下一次啟動實例時,一個新的文件將被產生,因為進程號的不同,文件名可能是3_13245.trc 。
  
  由于每次啟動和關閉數據庫時,ORACLE并不自動刪除TRACE文件,所以假如忽略這個步驟,那這些沒有用的文件將占據大量的自由空間。所以DBA應該主動的治理這些文件,或刪除或存檔在別的指定目錄下,如何治理主要是根據你自己的開發環境需要而訂了。 SQL*NET也產生LOG文件,一般叫LISTENER.LOG,為了能知道他的位置,可以鍵入命令
  lsnrctl status
  
  LISTENER.LOG文件大小也隨著啟動的次數不斷的變大,所以通過妥善治理它也能有效的利用空間。
  
  第二步---改名ALERT LOG文件
  ALERT LOG文件也是用來記錄INSTANCE的診斷信息的。它的存放目錄也通過BACKGROUND_DUMP_DEST參數來指定。一般情況下ALERT LOG文件命名方式為:ALERT_.LOG。ALTER LOG文件包括了一些數據庫主要事件信息,例如:startup,dhutdown, redo log 的使用,tablespace的改變,文件的改變,內部錯誤信息,tablespace-backup的狀態的改變等。ALTER LOG文件是重要的,同時該文件的大小增長的速度也很驚人,假如你不檢查他,一段時間后你想看看它將是很費勁,因為它已經很大了,查起來也費勁。
  
  為了既能留下這些有用的信息,同時不至于浪費很大的空間,可以用改名的方法。你可以在任何時候更改ALTER LOG文件名,甚至在DATABASE OPEN時。當ORACLE不能找到被BACKGROUND_DUMP_DESC指定的文件時,他將增加一個新的ALTER LOG文件。雖然改名不要求SHUTDOW,但選擇在SHUTDOWN/STARTUP數據庫時更改名字是一個好的主意。
  
  NOTE:下面的幾步是在restart數據庫時做的。
  
  第三步---產生一個增加控制文件(CREATE CONGROLFILE )命令的文件
  為了recover一個被破壞的數據庫,你不得不用CREATE CONTROLFILE 命令來重建control files。CREATE CONTROLFILE命令有兩個使用:
  1、在你的現有CONTROL FILES文件破化后重建它
  2、在ALTER DATABASE 級別的參數時,如:MAXDATAFILES
  
  你可以手輸入命令,但最好在STARTUP前發送一命令,以便你擁有最新版本的CREATE CONTROLFILE命令。從進入SQLDBA,SERVER MANAGER或者SQL*PLUS,輸入:
  alter database backup controlfile to trace;
  
  該命令在USER_DUMP_DESC參數指定的路徑產生一個TRACE文件,名字可能是SIDNAME_PROCESSID.TRC,該文件將包含針對你的數據庫的完整的CREATE CONTROLFILE 語法。
  
  第四步--把PACKAGES 和 PROCEDURES駐留SGA區
  眾所周知,當PL/SQL OBJECTS被一個用戶調用時,它將被存儲在SGA區的SQL共享池中,當別人再度調用該OBJECT時直接從SGA區讀取,能感受到明顯的速度提升。所以,把常用的PACKAGES 和 PROCEDURES在STARTUP時就載入并駐留SGA,將提高應用的整體性能。通過從新編譯、調用等方法可以調用OBJECT(PROCEDURES 或 CURSORS)進SGA,然后用DBMS_SHARED_POOL.KEEP來駐留SGA。如下:
  alter package APPOWNER.ADD_CLIENT compile;
  execute DBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT','P');

  (P代表PROCEDURES,C代表CURSORS)
  
  一般每個數據庫包括兩類駐留程序:
  1、數據庫的核心PACKAGES
  2、用戶自定義的PACKAGES
  核心PACKAGES包括SYS 所有的PACKAGES,STANDARD,DBMS_SQL, DBMS_UTILITY, DIUTIL,為了查看你的INSTANCE中那些被駐留了,查詢DBA_OBJECT_SIZE,用下面的語句:
  select Owner,
  Name,
  Type,
  Source_Size+Code_Size+Parsed_Size+Error_Size Total_Bytes
  from DBA_OBJECT_SIZE
  where Type = 'PACKAGE BODY' order by 4 desc;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凭祥市| 六枝特区| 安阳县| SHOW| 乌拉特中旗| 石渠县| 禄丰县| 肇东市| 泽州县| 弋阳县| 两当县| 沙洋县| 安阳县| 定边县| 那曲县| 西青区| 肃南| 鹤庆县| 望江县| 凤城市| 吉首市| 五台县| 英德市| 西畴县| 广灵县| 彰化县| 阳城县| 罗江县| 会昌县| 牡丹江市| 乡宁县| 五大连池市| 乌兰察布市| 新野县| 锡林郭勒盟| 永嘉县| 长葛市| 彭州市| 招远市| 石城县| 泸水县|