Time of Update: 2014-06-15
由於高可用的資料庫伺服器可能很少停機,SQL Server的記錄檔增長會非常大。這樣對於DBA使用錯誤記錄檔尋找資訊就會比較困難,而且日誌大了寫入以後效能也會受到影響。 我們通常認為SQLServer啟動的時候才會建立錯誤記錄檔,所以需要停機才能重新建立記錄檔,而這樣的維護對於高可用性的資料庫是不可想象的。 其實完全可以不通過重啟服務就可以實現日誌的迴圈。 微軟提供了一個預存程序sp_cycle_errorlog可以實現日誌的迴圈。
Time of Update: 2014-06-15
很多情況下,DBA需要線上執行一些無法線上進行的操作。這句話說著很繞口,比如給某個核心級表加一列或者執行修改操作,此時不但主庫從庫要長時間鎖表,主從延遲也會變大。那麼應該如何操作呢?很簡單,使用SET SESSION SQL_LOG_BIN= {0|1}在只在本地操作,就可以了,可以先在備庫執行,然後切換主備,在原主庫再執行。然後在各個從庫分別執行。考慮的變更操作的具體性,到底是先在主庫執行還是先在從庫執行要自己斟酌。
Time of Update: 2014-06-15
Oracle sql語句中不支援boolean類型(decode&case)版本資訊:SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit ProductionPL/SQL
Time of Update: 2014-06-15
小結:1.在資料庫(資料檔案)中所存的資料是否一致?在資料庫關閉的情況下應該一致;在資料庫非正常關閉的情況下應該不一致;在資料庫開啟的情況下可能存在不一致的資料。2.資料庫寫進程是提交之前把在資料庫高速緩衝區中的資料寫入到資料檔案中還是在提交之後寫呢?可能在之前寫也可能在之後寫。應該掌握的內容:1.在資料庫系統中什麼是稀有資源?記憶體2.Oracle伺服器的組成?oracle資料庫,oracle執行個體3.oracle體繫結構的輪廓?包括oracle伺服器,oracle其他的關鍵檔案(passw
Time of Update: 2014-06-15
今天裝了個Oracle 11.2.0.3的環境,結果發現diskmon總是處於offline狀態:[root@osdbso ~]# crs_stat -tName Type Target State Host ---------------------
Time of Update: 2014-06-15
MySQLDumper是一個備份和恢複MySQL資料庫的PHP管理指令碼,使用上簡單便捷。主要用於使用免費空間及共用主機等不能直接動作伺服器的使用者管理MySQL資料庫。即便你能直接動作伺服器,使用mysqldump命令的效率未必會比會MySQLDumper更高且更方便。相對於同類的PHP指令碼備份/恢複工具如帝國備份王(Empirebak)、BigDump及PHPMyAdmin,MySQLDumper是上上之選。相對PHPMyAdmin來說,其對資料庫的管理能力並沒有那麼強。但術業有專攻,My
Time of Update: 2014-06-15
/etc/my.cnf配置[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Default to using old password format for compatibility with mysql 3.x# clients (those using the mysqlclient10 compatibility package).old_passwords=1# Disabling
Time of Update: 2014-06-15
今天使用sql在Oracle直接insert update一個表時,出現ORA-01704: string literal too
Time of Update: 2014-06-15
我們在exp匯入的時候,經常會有警告字元不一致的問題。下面來看看在imp/exp匯入匯出的時候,nls_lang這個參數到底應該怎麼來配置。Oracle推薦在執行exp的時候nls_lang配置與database nls_character一致,這樣不會出現字元轉換的問題,能提高exp的效率。查看database
Time of Update: 2014-06-15
mysqlcheck用戶端工具可以檢查和修複MyISAM表,還可以最佳化和分析表。實際上,它整合了mysql工具中check、repair、analyze、optimize的功能、有3種方式來調用mysqlcheck:shell> mysqlcheck[options] db_name [tables]shell> mysqlcheck[options] ---database DB1 [DB2 DB3...]shell> mysqlcheck[options] --all--
Time of Update: 2014-06-15
資料庫在沒有歸檔的情況下active狀態日誌損壞SQL> select * from v$Log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
Time of Update: 2014-06-15
按照Oracle官方文檔所說,資料庫字元集在建立後原則上不能更改。因此,在設計和安裝之初考慮使用哪一種字元集十分重要。對資料庫server而言,錯誤的修改字元集將會導致很多不可測的後果,可能會嚴重影響資料庫的正常運行.但是由於每家軟體公司使用的字元集一樣,遷移資料時肯定是會遇到字元集轉換的問題.比如最常遇到是英文字元集轉換成中文,中文的轉換成英文.而且在遷移資料時都是上百GB的dmp檔案啊.在遷移資料過程中我使用過兩種方法一是修改dmp檔案的字元集一是修改資料庫的字元集.修改dmp檔案字元集,d
Time of Update: 2014-06-15
應用背景:某些情況下,由於前期設計上沒有考慮全面,導致資料表空間預建太大,遠遠超出實際使用大小。於是,就出現了收縮資料表空間這樣的需求,即將這個資料表空間的佔用空間進行收縮。 處理方案:對於資料表空間收縮,Oracle只提供擴大的功能,而不提供收縮。所以,要實現這樣的要求,就只能先建立一個中間資料表空間,然後將待收縮資料表空間中的資料移轉到這個資料表空間下 處理方法:1、找出該資料表空間下的所有資料對象;select segment_type, partition_name,
Time of Update: 2014-06-15
起因:由於在查詢中需要用到 UNION ALL 操作,而表中的存在 LONG 類型欄位,操作無法完成,根據具體業務情境,將 LONG 類型欄位修改為 CLOB 類型。修改後,UNION ALL 操作可行,但是子表的增刪改操作出現了問題,提示為父表的 INDEX
Time of Update: 2014-06-15
1、概述Oracle 10g InMemory Undo新特性: 通過以前的介紹,可知道Undo的管理方式和常規的資料管理方式是相同的,當進行資料修改時,會在Buffer中建立前鏡像,同時會記錄相應的Redo,然後這些Undo資料同樣會寫出到UNDO SEGMENT上,當進行一致性讀或復原時,可能會產生大量的consistentgets和physical reads。注意到這裡,Undo會產生Redo資訊,又會寫UNDO
Time of Update: 2014-06-15
一.Consistentgets 說明我們使用autotrace 查看執行計畫和統計資訊時,會顯示類似如下資訊: 0 recursive calls :遞迴調用。一般原因:dictionary cache未命中;動態儲存裝置擴充;PL/SQL語句 0 db block gets
Time of Update: 2014-06-15
對於存在NAT或防火牆的RAC資料庫,在啟用了伺服器端的load balance後,經常會碰到ORA-12545串連錯誤,這是因為伺服器端轉寄用戶端串連請求到其它節點後,用戶端使用返回的IP再次發出串連請求而出現不可識別的IP地址或主機名稱而造成的。本文描述了這個問題並給出瞭解決方案。有關RAC監聽配置請參考Oracle RAC 監聽配置 (listener.ora tnsnames.ora) ORACLE RAC 下非預設連接埠監聽配置(listener.ora tnsnames.
Time of Update: 2014-06-15
網上有人給出了最佳的最佳化思路是:1.先將大表中滿足條件的記錄抽出來產生一張暫存資料表.2.再將這較小的暫存資料表與另一張較小的表進行關聯查詢.先不論思路是否值得商榷,這把暫存資料表當成中轉站的做法還是很值得肯定暫存資料表本質上就是一種cache的表現形式,Oracle的暫存資料表都是事先建好的一旦用了暫存資料表,存放的就是和本會話相關的資料沒有人會傻乎乎地用暫存資料表來儲存本應該共用的資料with子查詢實際上也是用了暫存資料表,Oracle會替你建立一張暫存資料表因此暫存資料表的開銷WITH子
Time of Update: 2014-06-15
使用Oracle內建的Universal Installer卸載存在兩個問題:1) 速度慢;2) 不乾淨;不完全;還有一些註冊表殘留,會影響到後來的安裝。所以,推薦使用手工卸載Oracle。1.【win+R】->【services.msc】,關閉oracle所有的服務。2. 開啟註冊表【win+R】->【regedit】。開啟路徑: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
Time of Update: 2014-06-15
這個問題是在一次測試中發現的。在虛擬機器上恢複生產庫的備份,伺服器是24G記憶體,而虛擬機器才分配了2G。好了,言歸正傳:當系統報出ORA-00845錯誤時,是由於Oracle 11g的記憶體管理新特性要求更多的共用記憶體和檔案描述符導致的。解決方案呢就是更改/dev/shm的大小,當然也可以更改MEMORY_MAX_TARGET大小,但是這個方法不好。下面是官方手冊裡的說明,為了讓暫時看英文還頭大的朋友稍微舒服點兒,在每段後面都加上中文的簡要說明。Automatic Memory