回覆列表
  • 1 # 小飯飯愛小米米

    在“執行”裡開啟cmd

    2

    輸入命令:sqlplussystem/123456@orcl

    其中system是登入資料庫的使用者名稱

    123456是使用者名稱的密碼

    orcl是資料庫例項名稱

    3

    如果提示命令無效,那就是你沒有配置好oracle的環境變數(想當年我也被這個問題困擾著),配置oracle環境變數的方法如下:

    1、右擊“我的電腦”->選擇“屬性”->選擇“高階”->單擊“環境變數”2、選擇“path”這一行,單擊“編輯”,在“path”的變數值文字框的最後面先加入一個分號“:”,然後再分號後面加入sqlplus檔案的目錄路徑,如“c:\programfiles\oracle\product\10.2.0\db_1\bin”,然後點選“確定”按鈕。3、如果在“系統變數”列表框下面的“變數”列中找不到“oracle_home”和“oracle_sid”這兩個變數,則需要下面操作,否則無需一下操作。4、在“系統變數”中點選“新建”按鈕,在“變數名”中輸入“oracle_home”,變數值中輸入oracle的安裝目錄路徑,如“c:\programfiles\oracle\product\10.2.0\db_1”,然後點選“確定”按鈕。5、在“系統變數”中點選“新建”按鈕,在“變數名”中輸入“oracle_sid”,變數值中輸入資料庫的例項名,然後點選“確定”按鈕。

    oracle_home:oracle資料庫軟體的安裝目錄oracle_sid:oracle資料庫的例項名oracle資料庫例項名:用於和作業系統進行聯絡的標識,即資料庫和作業系統之間的交換是透過資料庫例項名來體現的。

    end

    第二步,expdp備份命令

    1

    建立oracle的備份目錄:

    sql>createdirectorydpdata1as"d:\temp\dmp";

    這僅僅是在oracle裡設定的目錄,並沒有真正建立

    2

    可以透過這句命令檢視到這個目錄

    sql>select*fromdba_directories;

    3

    賦於要匯出資料表的所屬使用者許可權

    sql>grantread,writeondirectorydpdata1tosshe;

    4

    好了,到了關鍵一步,之前走了不少彎路,但其它是小問題,在網上零零碎碎查了很多資料,終於找到原因。

    首先,要切換回命令視窗,不要再在sql>下執行,然後輸入命令:

    expdpsystem/123456@orcldirectory=dpdata1dumpfile=sshe.dmplogfile=sshe.logschemas=sshe

    5

    上面報了一個錯ora-39002:操作無效

    原因是d:\temp\dmp這個目錄不存在,別以為createdirectory之後就會自動生成資料夾,也別以為執行expdp後會自動生成資料夾,要自己手動新建這個目錄資料夾的。新建資料夾後再試一下,果然成功了!恭喜你,已成功備份!

    6

    如果你要問,匯出來的dmp檔案怎樣還原回去。好吧,做人做到底,為了省去你再找方法的麻煩,這裡我也做一個演示(一般備份的資料是等到資料庫有問題時才用的上)。

    首先,再一次登入資料庫sqlplussystem/123456@orcl

    7

    現在來再一次建立使用者,可以用命令建立,也可以在plsql裡建立,這裡在plsql建立。

    用system登入資料庫,然後右鍵users--新建

    然後填寫你的賬號名稱,必須和備份時的使用者一致,並賦於相應的許可權

    8

    返回dos命令視窗,不再是sql>

    輸入匯入命令:impdpsystem/123456@orcldirectory=dpdata1dumpfile=sshe.dmplogfile=sshe.logschemas=sshe

    匯入成功!

    end

    步驟3定時執行備份任務

    做一個按年月日命名的批處理。在d:\temp\目錄下新建一個檔案,隨便命名為.bat,我的命名為sshe.bat,編輯為如下程式碼

    -------------------------------------------------------------------------

    @echooffremsetbackupfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmpremsetlogfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.logremdelete30daysfilesforfiles/p"d:\temp\dmp"/d-30/c"cmd/cechodeleting@file...&&del/f@path"cdd:\temp\dmp

    rembackupschemassetbackupfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmpsetlogfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.logexpdpsshe/sshedirectory=dir_dpdumpfile=%backupfile%logfile=%logfile%schemas=ssheparallel=4

    -------------------------------------------------------------------------------

    可以試執行一下,會自動生成一個以年月日命名的備份檔案

    做一個windows每晚自動執行資料庫備份的bat,我的命名為auto.bat編輯如下內容

    ------------------------------------------------------------------------------

    @echooffschtasks/create/tnsshe資料庫定時備份/tr"d:\temp\sshe_bak.bat"/scdaily/st00:00:00/ru"system"pauseexit

    ------------------------------------------------------------------------------

    雙擊auto.bat,就會在windows新增一個定時任務,每晚0點0分就會自動執行一次sshe.bat,從而完成自動備份的目的。

    右鍵我的電腦:管理——任務計劃程式——任務計劃程式庫,可以看到剛才新增進去的定時任務

    5

    可以將電腦的時鐘設為23點59分50秒,等待10秒鐘,看看自動備份能否成功。如果成功那就大功告成了!!

  • 中秋節和大豐收的關聯?
  • 混凝土腹板為什麼會出現開裂問題?