利用windows指令碼實現Oracle資料庫

2021-06-25 22:51:29 字數 3117 閱讀 3254

oracle 10g為我們提供了expdp命令來將資料庫資料匯出到檔案,因此我們可以使用指令碼來實現資料定時匯出檔案的功能,其步驟如下:

1、建立指令碼檔案,並儲存為exportoracle.bat

2、配置expdp匯出命令

其命令示例如下:

expdpsystem/pwddirectory=pms_backup_schemadumpfile=�te:~0,10%exp.dmplogfile=�te:~0,10%exp.logschemas=pmsuserjob_name=exp_test_schema

(注意:以上所有**都寫在一行)

以上黑體部分為可替換字元,其說明如下:

system

具有匯出許可權的使用者名稱

pwd

上述使用者密碼與使用者名稱使用「/」連線

pms_backup_schema

oracle的目錄空間物件名

�te:~0,10%exp.dmp

該字串指示了匯出檔案的檔名,「%」之間為系統日期變數,並格式化為從0字元開始的10個字元大小。例如2023年11月30日星期四,格式化為2006-11-30。

�te:~0,10%exp.log

該字串指示了匯出日誌的檔名,規則同上

pmsuser

表空間名

exp_test_schema

作業名

3、複製匯出檔案到臨時資料夾

命令示例如下:

e:

cde:\oracle\pmsschemabackup

copy�te:~0,10%exp.dmp 

temp\�te:~0,10%exp.dmp

(注意:以上**分三行)

以上黑體部分為可替換字元,其說明如下:

e:

進入匯出檔案所在碟符

cde:\oracle\pmsschemabackup

進入匯出檔案所在資料夾

copy�te:~0,10%exp.dmp 

temp\�te:~0,10%exp.dmp

複製已匯出的檔案到temp下,檔名規則同上

4、建立ftp伺服器

在源機器(比如資料庫所在伺服器)或目標機器(比如需要同步備份到的機器)上使用iis搭建ftp伺服器,並設定相應的目錄指向和許可權。

如在目標機器搭建ftp伺服器,將目錄指向即將存放備份檔案的路徑,並使目錄可寫,這樣做的優點是同步執行指令碼處於同一機器,有利於統一管理。

如在源機器搭建ftp伺服器,則只需將目錄指向匯出檔案所在路徑,開放讀取許可權即可,但以下的指令碼需要執行在目標機器上。

這裡使用了目標機器搭建ftp伺服器。

5、建立ftp操作指令碼

建立乙個新檔案,並命名為ftpup.src,其內容如下:

open127.0.0.1

useroraclebackup

password

pute:\oracle\pmsschemabackup\temp\*exp.dmp

close

quit

(注意:以上**分行是必須的)

以上黑體部分為可替換字元,其說明如下:

open127.0.0.1

登入指定ip的ftp伺服器

useroraclebackup

使用者名稱

password

該行必須位於單獨一行,為密碼

pute:\oracle\pmsschemabackup\temp\*exp.dmp

上傳temp目錄下所有的檔案

close

關閉連線

quit

退出 6、在exportoracle.bat中加入ftp操作指令碼

在exportoracle.bat後追加**:

ftp -n -s:e:\oracle\pmsschemabackup\ftpup.src

黑體部分為步驟5建立的ftpup.src檔案的絕對路徑

7、刪除臨時檔案

命令:del temp\*exp.dmp

以刪除temp的臨時檔案

8、建立計畫任務

開啟windows計畫任務,新建乙個計畫,設定執行檔案為exportoracle.bat,並設定相應的時間間隔。

如果選擇了源機器搭建ftp資料庫,則需要在源機器和目標機器上分別建立計畫任務。

利用IAT hook實現windows通用密碼後門

windows有通用密碼嗎?去問比爾大叔吧。先不管是不是真的有,我們可以自己實現乙個這樣的後門。先簡單介紹一下windows登陸過程中的一些過程。winlogon程序用gina.dll獲取使用者名稱和密碼,通過lpc傳給lsass程序。然後lsass程序呼叫預設認證包msv1 0.dll來驗證密碼的...

Windows和Linux指令碼實現for迴圈批量

應用場景舉例,git上面的專案很多,有幾十個,不想乙個乙個去拉取,建立gitclone.bat指令碼檔案,內容如下 echo off echo start git clone pause for f i in list.txt do git clone i echo git clone finish...

利用windows指令碼備份VSS伺服器

需求 vss伺服器需要每天備份一次到公司的備份專用伺服器上。環境 vss伺服器安裝在 windows xp 上面,公司的備份伺服器為 linux 需要編寫乙個批處理實現,由於我的這個scp命令比較特殊,自帶引數可以直接輸入密碼,如果是安裝的openssh,可以和linux做信任連線,如下 echo ...