如果你去看其他dba的操作的時候,如果要判斷他們水平的高低,我想就是通過一些操作的差別來看了,而水平高低就體現於此。細節決定成敗,越是看起來簡單的操作越是要嚴謹,一絲不苟。
1.停止資料庫
shutdown immediate應該是停止資料庫的首先方案,而如果你選擇shutdown abort的方式,先去面壁。
在刪除資料庫之前,你需要考慮哪些方面呢。
首先你需要判斷這是乙個主庫還是備庫,
select database_role from v$database;
如果顯示為primary,那就一定要小心了。你是否確實要停這個庫
然後檢視資料庫的狀態
select open_mode from v$database;
有raed only,read write,mounted幾種狀態
然後檢視會話的使用情況
select username,count(*)from v$session group by username;
這個步驟是停止資料庫必看,如果已經有會話一定要確認是否需要停止應用端,是否連線了正確的資料庫。
明確了以上的基本條件,確認沒有相關的會話,那就可以shutdown immediate了。
2.啟動資料庫
資料庫啟動中的問題較多,我只是簡單給出幾個概要步驟,如果你啟動資料庫是直接一條命令startup,也需要面壁
啟動最起碼是從nomount,mount,open這幾個階段一步一步來。尤其是哪些異常宕機的資料庫,你的有些不經意的操作就會使得恢復從可能變為不可能。在此主要說計畫內的資料庫重啟。
首先是startup nomount這個階段啟動之後,還是需要檢視是否啟用spfile,使用show parameter spfile來看,然後檢視資料庫日誌,啟動的過程中是否有一些異常,大頁是否開啟,是否有numa的報警,是否有memlock的報警。
alter database mount,資料庫啟動到這個階段本身不難,但是這個階段是乙個分水嶺,資料庫還原恢復相關的操作都需要在這個階段完成
所以我們需要檢視v$recover_file是否資料檔案狀態都正常.
如果需要更多的恢復,這個階段就要把握好了。
最後是alter database open階段,資料庫是否可用就在這個階段了。可用使用select open_mode,database_role from v$database來檢視.
計畫外的場景要複雜的多,就不再贅述了。
3.殺掉會話
殺掉會話,整個世界就清淨了。但是kill session這種操作還是有些建議。
首先我們得到的是乙個基本的資訊,session的sid,serial#資訊,我們在kill 之前還是需要做一些簡單的準備工作。
select paddr,username,osuser,machine from v$session where sid=*** and serial#='***x';
得到了會話的基本資訊之後,我們在資料庫中關聯程序得到系統的程序pid,主要適應輸出的paddr欄位。
然後關聯v$process來得到對應的程序號。
select spid from v$process where addr='***xx'
如果確認需要kill session,則有很大的餘地,如果清理資料庫層面的會話有一些較大的延遲,我們可以直接清理系統級程序,否則這個過程就會麻煩很多。
4.建立使用者
如果有一天,接到了乙個需求是建立乙個使用者,需要有查詢表test_tab的許可權即可。對於這個需求我們還是需要考慮很多的方面。
--查詢表屬主
select synonym_name, table_owner, table_name from dba_synonyms where synonym_name=upper(『test_tab』);
--建立profile,限制訪問的會話數
--建立使用者
--或--授權,注意此處,多一點許可權都不多給
--建立同義詞
所以不要忽視這些看起來很簡單的操作。
gp資料庫日常運維sql語句筆記
更新中 psql d database h ip p 5432 u username psql d database h ip p 5432 u username c sql output data.csv 當要遠端匯出大檔案時sqlplus sys password ip 1521 databas...
資料庫設計的幾個建議
一 一般好的資料庫設計需要注意以下幾點 1 乙個好的資料庫設計首先要滿足使用者的需求 所有資訊系統最後都將提交給終端使用者使用,對於這一點,相信大家都已經達成共識。但是準確地把握使用者的需求是很難的,雖然 各方面的專家已經從不同方面給出了解決方案,但是使用者需求仍然是軟體工程中最不確定的因素之一。2...
資料庫運維原則
一 資料庫運維工作總原則 1 能不給資料庫做的事情不要給資料庫,資料庫只做資料容器。2 對於資料庫的變更必須有記錄,可以回滾。二 許可權相關 總原則,以最低粒度控制許可權。select許可權 所有開發人員均可擁有自己業務範圍內的表許可權。insert update delete許可權 所有專案經理可...