資料庫重新跑
『壹』 跑數據什麼意思啊
跑數據指多個終端或伺服器跑同一個AP應用。現在比較大型點的系統基本上是AP+DB的架構:AP指應用程序,DB指資料庫端。AP放在一個伺服器上,DB放在另一個伺服器上。
當一個系統比較大,訪問的用戶數量比較多的時候,比如QQ,上億用戶。這時一個伺服器就吃不消了,也就是說跑不起資料庫。這樣就想到多個伺服器跑同一個AP應用。DB端也一樣。資料庫集群指的就是多個伺服器跑同一個DB資料庫。資料庫管理員的工作,一般是linux集群。目前市面上有各種單位提供資料庫運維服務,選擇的話要根據辦公所在地及服務內容來定;一是有問題可以及時解決,方便;二是內容涵蓋廣減少不必要的問題;推薦杭州美創科技,總部在杭州,各個地區都有分部和辦事處,每個地區都有專業的技術,提供遠程和本地化服務,_降低運維門檻,減少成本,而且提供多種資料庫運維工具。
『貳』 資料庫系統中的常見故障有哪些
新增archives 時的狀況:
條件和假設:自上次鏡像備份以來已經生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的鏡像(冷)拷貝;archive log(s) 可用。
恢復步驟:
1. 如果資料庫尚未關閉,則首先把它關閉: $ svrmgrl svrmgrl> connect internal
svrmgrl> shutdown abort
2. 將備份文件抄送回原始地點: 所有Database Files
所有Control Files(沒有archive(s) 或redo(s) 的情況下,control files 的更新無任何意義)
所有On-Line Redo Logs (Not archives) init.ora file(選項)
3. 啟動資料庫: $ svrmgrl
svrmgrl> connect internal
svrmgrl> startup
數據文件, 重作日誌和控制文件同時丟失或損壞:
條件和假設:Archivelog Mode; 有同步的所有所失文件的鏡像(冷)拷貝;archive log(s) 可用
恢復步驟(必須採用不完全恢復的手法):
1. 如果資料庫尚未關閉,則首先把它關閉: $ svrmgrl svrmgrl> connect internal
svrmgrl> shutdown abort
2. 將備份文件抄送回原始地點:
所有Database Files
所有Control Files
所有On-Line Redo Logs(Not archives)
init.ora file(選項)
3. 啟動資料庫然而並不打開:
svrmgrl>startup mount
4. 做不完全資料庫恢復,應用所有從上次鏡像(冷)備份始積累起來的archives:
svrmgrl> recover database until cancel using backup controlfile;
......
......
cancel
5. Reset the logfiles (對啟動而言不可省略):
svrmgrl> alter database open resetlogs;
6. 關閉資料庫並做一次全庫冷備份。
數據文件和控制文件同時丟失或損壞:
條件和假設:Archivelog Mode; 有同步的datafile(s) 和control file(s) 的冷拷貝;archive log(s) 可用
恢復步驟:
1. 將冷拷貝的datafiles(s) 和control file(s) 抄送回原始地點:
$ cp /backup/good_one.dbf /orig_loc/bad_one.dbf
$ cp /backup/control1.ctl /disk1/control1.ctl
2. 以mount 選項啟動資料庫:
$ svrmgrl
svrmgrl> connect internal
svrmgrl> startup mount
3. 以舊的control file 來恢復資料庫:
svrmgrl> recover database until cancel using backup controlfile;
*** 介質恢復完成
(須在應用完最後一個archive log 後cancel )
4. Reset the logfiles (對啟動而言不可省略):
svrmgrl> alter database open resetlogs;
重作日誌和控制文件同時丟失或損壞時:
條件和假設:Control Files 全部丟失或損壞;Archivelog Mode; 有Control Files 的鏡像(冷)拷貝
恢復步驟:
1. 如果資料庫尚未關閉,則首先把它關閉:
$ svrmgrl
svrmgrl> connect internal
svrmgrl> shutdown abort
svrmgrl>exit
2. 以Control File 的鏡像(冷)拷貝覆蓋損壞了的Control File:
$ cp /backup/control1.ctl /disk1/control1.ctl
3. 啟動資料庫然而並不打開:
$ svrmgrl
svrmgrl> connect internal
svrmgrl> startup mount
4. Drop 壞掉的redo log (排除硬體故障):
svrmgrl> alter database drop logfile group 2;
5. 重新創建redo log:
svrmgrl> alter database add logfile group 2 '/orig_loc/log2.dbf' size 10M;
6. 以舊的control file 來恢復資料庫:
svrmgrl> recover database until cancel using backup controlfile;
(必須馬上cancel )
7. Reset the logfiles (對啟動而言不可省略):
svrmgrl> alter database open resetlogs;
8. 關閉資料庫並做一次全庫冷備份
只發生歸檔重作日誌丟失或損壞時:
根據不同環境和情況,選擇下述手段之一:
a. 馬上backup 全部datafiles (如果系統採用一般熱備份或RMAN 熱備份)
b. 馬上正常關閉資料庫並進行冷備份(如果系統採用冷備份)
c. 冒險前進!不做備份而讓資料庫接著跑,直等到下一個備份周期再做備份。這是在賭資料庫在下一個備份周期到來之前不會有需要恢復的錯誤發生。
注意:冒險前進的選擇:如果發生錯誤而需要資料庫恢復,則最多隻能恢復到出問題archive log 之前的操作現場。從另一個角度講,archive log(s) 出現問題時,資料庫若不需要恢復則其本身並沒有任何問題。
Oracle邏輯結構故障的處理方法:
邏輯結構的故障一般指由於人為的誤操作而導致重要數據丟失的情況。在這種情況下資料庫物理結構是完整的也是一致的。對於這種情況採取對原來資料庫的全恢復是不合適的,我們一般採用三種方法來恢復用戶數據。
採用exp/imp工具來恢復用戶數據:
如果丟失的數據存在一個以前用exp命令的備份,則可以才用這種方式。
1. 在資料庫內創建一個臨時用戶:
svrmgrl>create user test_user identified by test;
svrmgrl>grant connect,resource to test_user;
2. 從以前exp命令備份的文件中把丟失數據的表按照用戶方式倒入測試用戶:
$imp system/manager file=export_file_name tables=(lost_data_table_name…) fromuser=lost_data_table_owner touser=test_user constraint=n;
3. 用相應的DML語句將丟失的數據從測試用戶恢復到原用戶。
4. 將測試用戶刪除:
svrmgrl>drop user test_user cascede;
採用logminer來恢復用戶數據:
Logminer是oracle提供的一個日誌分析工具。它可以根據數據字典對在線聯機日誌、歸檔日誌進行分析,從而可以獲得資料庫的各種DML操作的歷史記錄以及各種DML操作的回退信息。根據這些用戶就可以將由於誤操作而丟失的數據重新加入資料庫內。
1. 確認資料庫的utl_file_dir參數已經設置,如果沒有則需要把這個參數加入oracle的初始化參數文件,然後重新啟動資料庫。下面例子中假設utl_file_dir=』/opt/oracle/db01』;
2. 創建logminer所需要的數據字典信息,假設生成的數據字典文本文件為dict.ora:
svrmgrl>execute dbms_logmnr_d.build(dictionary_filename=>'dict.ora', dictionary_location=>'/opt/oracle/db01』);
3. 確定所需要分析的日誌或者歸檔日誌的范圍。這可以根據用戶誤操作的時間來確定大概的日誌范圍。假設用戶誤操作時可能的日誌文件為/opt/oracle/db02/oradata/ORCL/redo3.log和歸檔日誌』/opt/oracle/arch/orcl/orclarc_1_113.ora』。
4. 創建要分析的日誌文件列表,按日誌文件的先後順序依次加入:
svrmgrl>execute dbms_logmnr.add_logfile(logfilename=>』/opt/oracle/arch/orcl/orclarc_1_113.ora』,options=>dbms_logmnr.NEW);
svrmgrl> execute dbms_logmnr.add_logfile(logfilename=>』 /opt/oracle/db02/oradata/ORCL/redo3.log』,options=>dbms_logmnr.ADDFILE);
5. 開始日誌分析,假設需要分析的時間在』2003-06-28 12:00:00』和』2003-06-28 13:00:00』之間:
svrmgrl>execute dbms_logmnr.start_logmnr(dictfilename=>』 /opt/oracle/db01/dict.ora』,starttime=>to_date(』 2003-06-28 12:00:00』,』YYYY-MM-DD HH:MI:SS』),endtime=>to_date(to_date(『2003-06-28 13:00:00』,』YYYY-MM-DD HH:MI:SS』));
6. 獲取分析結果:
svrmgrl>select operation,sql_redo,sql_undo from v$logmnr_contents;
7. 根據分析結果修復數據。
8.結束logmnr:
svrmgrl>dbms_logmnr.end_logmnr;
9. 用適當的方法對原資料庫進行資料庫全備份。
利用備份恢復用戶數據:
採用這種方法時並不是在原資料庫進行恢復,而是利用資料庫備份在新的機器上重新建立一個新的資料庫。通過備份恢復在新機器上將資料庫恢復到用戶誤操作前,這樣就可以獲得丟失的數據將其恢復到原資料庫。
1. 在新的機器上安裝資料庫軟體。
2. 對於採用帶庫備份的現場,需要在新的資料庫伺服器上安裝調試相應的備份管軟體。
3. 根據用戶誤操作的時間點進行基於時間點的資料庫恢復操作。對於沒有採用帶庫備份的現場,可以選取用戶誤操作前最近的備份磁帶進行恢復;對於才用帶庫備份的點可以通過基於時間恢復點恢復的rman腳本來進行恢復。
4.重新打開資料庫:
svrmgrl>alter database open resetlogs;
5. 從新的資料庫中獲取丟失的用戶數據,通過DML操作將其恢復到原資料庫中。
6. 用適當的方法對原資料庫進行資料庫全備份。
『叄』 oracle資料庫開發人員說『需要重新編譯一下』是什麼意思 是說要重新跑某個過程嗎
重新編譯,就是某個過程或者函數哪裡做了修改 需要重新編譯成可以執行的文件,並不是說重新跑某個過程。編譯完成之後,把編譯好了的過程再重新運行。
『肆』 存儲過程空跑是什麼意思
存儲過程是資料庫中一個經常使用的對象,它被用於存儲一組可以被其它程序多次調用的SQL語句。通常情況下,存儲過程會返回結果或者執行指定的一些操作。空跑是指在執行存儲過程時,沒有任何操作被執行,此時只是簡單地調用了存儲過程,但並沒有返回任何結果或執行任何操作。
首先,存儲過程空跑說明存儲過程可以被成功地調用,這是個好兆頭。通常情況下,存儲過程被調用時要傳遞一些參數,這些參數將用於執行SQL語句。如果存儲過程空跑成功,說明參數傳遞正確,它能夠執行程序的代碼,但代碼並沒有返回任何結果或執行任何操作。
其次,存儲過程空跑可能會發生在一些特殊的情況下。例如,在存儲過程的開發中,我們需要經常進行測試和調試。此時,我們需要多次運行存儲過程,以驗證其正確性和可靠性。在這種情況下,存儲過程空跑不會對程序的整體性能和正確性產生任何影響,反而可以有效地驗證存儲過程的基本框架。
存儲過程空跑也有可能是程序存在錯誤的表現。如果存儲過程執行失敗,並返回錯誤信息,這說明存儲過程的代碼存在一定的問題。此時,我們需要對代碼進行仔細的檢查和審查,找出並解決存在的問題,確保程序的正常運行。因此,在存儲過程空跑時,我們需要仔細分析結果,及時發現問題並解決。
『伍』 程序員刪庫跑路是一種什麼行為
因為對公司不滿。這個程序員辭職了,沒有得到應有的待遇。發生這種事只是一時賭氣。您好!這個通常一天備份一次。即使它被刪除,也可以通過歸檔日誌來恢復。事實上,你應該控制你的權威。如果能給他們訪問許可權的用戶沒有刪除資料庫的許可權豈不是很好?祝您好運。聽說IT運維人員學到的第一課就是「從刪資料庫到跑馬路」。
只是有點慢。比如在此次事件中被刪除的魏夢,已經宣布已經完全取回數據,所以涉及的數據和備份都達到了一天幾個級別。所以微信資料庫很有可能不是一個運維人員掌握的,而是分成幾個甚至上百個部分,分別由不同運維控制。每個操作和維護都有不同的許可權,不能相互訪問。甚至每一條數據都存儲在不同的地方。這樣,即使運維資料庫刪除中有一個跑了,也可能是資料庫的一小部分影響了微信,不會影響整體。比如刪除某個用戶資料庫,可能只會導致幾十萬或者幾百萬的微信用戶正常登錄,但其他大部分用戶可能根本感受不到任何影響。此外,微信的聊天數據並不存儲在伺服器中,而是存儲在用戶的手機中。
『陸』 銀行跑批量是什麼意思
銀行的跑批量是指通過一系列程序處理銀行相關數據的操作。這些數據可以包括客戶賬戶信息、存款數據、貸款信息、交易記錄等等。跑批量的目的是將這些數據分析整理,更新後上傳至銀行的主資料庫中,以便於提供給銀行員工和客戶查詢和使用。
銀行跑批量一般都是在銀行業務低峰期進行的,以避免對業務的影響。銀行跑批量的具體流程包括負責跑批量的人員收集數據,對數據進行轉換和清洗,將數據上傳至銀行的主資料庫,並在上傳完成後進行相關的確認和檢驗。此外,還需要進行安全測試來確保數據的安全和完整。
銀行跑批量對於銀行業務而言至關重要。通過跑批量,銀行能夠及時掌握業務數據變化情況,為業務決策提供參考。同時,對於客戶而言,跑批量能夠確保其賬戶數據的准確性和安全性,保護客戶的利益。因此,銀行跑批量的作用非常重要,銀行需要保證跑批量的准確性和及時性,以達到業務的高效和可靠性。