記一次Oracle自動備份任務的經歷

o minute: 區間為 0 – 59

o hour: 區間為0 – 23

o day-of-month: 區間為0 – 31

o month: 區間為1 – 12. 1 是1月. 12是12月.

o Day-of-week: 區間為0 – 7. 週日可以是0或7.

目前為止,就可以達到指定時間自動備份oracle內容的目的了。當然,提前要先手動執行腳本測試一下,沒有問題了再設置任務。

補充

以下是我遇到的一些坑。特此記錄,以備不時之需

腳本文件編碼問題

我一開始編輯腳本文件是在windows系統下的notepad++編輯,然後上傳到服務器的,執行腳本的時候遇到個奇怪的問題:

記一次Oracle自動備份任務的經歷

錯誤信息提示我第一行有個^M的符號,我一開始以為是內容不對,刪除第一行之後還有,在百度找了下,網友說是文件編碼問題,可以使用以下命令查看此文件中的所有符號:

記一次Oracle自動備份任務的經歷

執行以上命令後,發現此文件裡好多怪異的符號,才發現是windows下編輯文件的錯。不得已我又使用vi命令重新創建了文件,把內容敲進去了才可以。

以前也一直使用notepad++編輯sh文件,但是這個錯誤還是第一次,不知道發生的原因,但是起碼知道了如何解決。

Oracle SGA設置過小問題

腳本文件編輯後,肯定要先手動運行看看效果的,然後執行發現又出錯了:

記一次Oracle自動備份任務的經歷

百度了一下是因為SGA太小造成的,使用命令查看當前SGA設置(我這個是阿里雲系統環境鏡像,沒有自己安裝和設置,是默認值)

記一次Oracle自動備份任務的經歷

接下來很明顯了,就是要調整這個SGA的大小了。這裡遇到了更大的坑。

網上的資料都是直接告訴你把sga設置的大一點然後重啟就可以了,就像下面這樣:

SYS@ xxxx1> alter system set sga_max_size=10G scope=spfile;

SYS@ xxxx1> alter system set sga_target=10G scop=spfile;

SYS@ xxxx1> shutdown immediate

SYS@ xxxx1> startup

但是,千千萬萬別直接按照這個操作來,我就是因此入坑的

網上的資料都是告訴你調大就行了,其實這個參數的設置是和另外一個參數相關聯的,如果直接把它調大,直接的後果就是oracle關閉後起不來了,我今天就是這種情況,把我嚇的一身冷汗。

詳細說明我就不再贅述了,內容太多了,扯得有點遠,在這裡只給大家幾個忠告:

1、 要修改sga配置,先備份oracle的spfile文件

2、 sga_target不能大於sga_max_size,但是可以相等

3、 sga_max_size不能大於另外一個參數:memory_target,否則你的oracle就啟動不了,我就說被這個害了

4、 如果真的不小心改了sga,然後啟動不了,不要慌,還有辦法處理的,可以百度找,或者給你推薦個地址,我就是這麼解決的:https://www.jb51.net/article/100103.htm

5、 最後一個忠告,對自己不熟悉的數據庫進行操作,一定要找個有經驗的人給你個建議方案,不要盲目相信網上的每個教程,包括我這個,因為每個系統的環境不一樣,解決方案和遇到的問題也不一樣的

6、 努力提高自己的技術吧,遇到的坑越多,你成長的越快

補充:評論區有朋友給指出了一些本文的不足,首先這裡介紹的方法不是很嚴格的oracle數據庫備份的方法,因為是導出數據庫的過程中還有可能在增加新的數據,不能很好的保證數據一致性。另外,裡邊有些關於問題的解決和概念的介紹都比較模糊,是我從網上查閱資料瞭解的,並不能保證其嚴謹性和專業性,僅僅在我的環境下是可以解決問題的。

本文只作為拋轉引玉之作用,歡迎大家指點評價,也希望大家在做相關工作時一定要更加嚴謹和負責,謝謝各位!


分享到:


相關文章: