1. 程式人生 > >Linux下使用expdp定時備份Oracle資料庫

Linux下使用expdp定時備份Oracle資料庫

  • 使用Xshell連線伺服器輸入使用者名稱密碼
  • 建立備份資料庫儲存路徑
    • 在根目錄下建立oradata目錄
    • 在oradata目錄下建立databak用於存放shell指令碼
    • 在oradata下建立dum用於存放備份的資料庫以及備份日誌
  • 使用sqlplus連線資料庫建立備份資料庫目錄,並授予所備份資料庫使用者讀寫許可權
     
    1. –使用sqlplus連線資料庫
    2. sqlplus / as sysdba;
    3. –查詢當前所有的目錄
    4. select * from dba_directories;
    5. –建立目錄dump_cmis並給cmis使用者授權
    6. create directory dump_cmis as ‘/oradata/dum’;
    7. grant read,write on directory dump_cmis to cmis;
    8. –使用quit或exit退出sqlplus
    9. exit
  • 編寫備份資料庫的shell指令碼並授予執行其許可權
     
    1. #編寫備份資料庫指令碼cmisexp.sh
    2. vi cmisexp.sh
    3. #!/bin/sh
    4. #ORACLE系統環境變數設定
    5. ORACLE_BASE=/ora11g/app/oracle
    6. export ORACLE_BASE
    7. ORACLE_HOME=/ora11g/app/oracle/product/11.2.0
    8. export ORACLE_HOME
    9. ORACLE_SID=cmis
    10. export ORACLE_SID
    11. PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
    12. export PATH
    13. NLS_LANG=american_america.zhs16gbk
    14. export NLS_LANG
    15. CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib
    16. export CLASSPATH
    17. #日誌路徑
    18. CMISLOGPATH=/oradata/dum
    19. #獲取今天系統日期
    20. now=date +%Y%m%d_%H%M%S
    21. DATE=date +%Y%m%d
    22. DAY=date +%d
    23. ##備份此使用者下的資料
    24. bakuser=cmis
    25. #執行備份的使用者密碼
    26. bakpass=cmis
    27. echo “開始備份資料庫”$DATE
    28. #執行備份
    29. expdp $bakuser/$bakpass schemas=$bakuser dumpfile=cmis_$now.dmp
    30. DIRECTORY=dump_cmis logfile=cmis_$now.log
    31. echo “資料庫備份完成”$DATE
    32. #獲取昨天日期
    33. LASTYEAR=TZ=CST+16 date +%Y
    34. LASTMONTH=TZ=CST+16 date +%m
    35. LASTDATE=TZ=CST+16 date +%Y%m%d
    36. #進入日誌資料夾中
    37. cd ${CMISLOGPATH}
    38. #日誌處理,將當前日誌儲存為昨天日誌,並清空當前日誌
    39. cp cmis_$now.log cmis_${LASTDATE}.log
    40. >cmis_$now.log
    41. #月初日誌處理
    42. if [ “$DAY” -eq “1” ]
    43. then
    44. tar -cvf cmis_${LASTYEAR}${LASTMONTH}log.tar cmis${LASTYEAR} ${LASTMONTH}*.log
    45. tar -cvf cmis_${LASTYEAR}${LASTMONTH}dmp.tar cmis${LASTYEAR}${LASTMONTH}*.dmp
    46. rm -f cmis_${LASTYEAR}${LASTMONTH}*.log
    47. >logdeal.log
    48. rm -f cmis_${LASTYEAR}${LASTMONTH}*.dmp
    49. >dmpdeal.log
    50. fi
    51. echo ${LASTDATE}”的Oracle資料庫cmis使用者備份日誌遷移成功!”>>logdeal.log
    52. echo ${LASTDATE}”的Oracle資料庫cmis使用者備份檔案遷移成功!”>>dmpdeal.log
    53. #給shell指令碼授予執行許可權
    54. chmod +x cmisexp.sh
    55. #執行shell指令碼
    56. ./cmisexp.sh
  • Linux設定定時任務
     
    1. #編輯當前使用者的任務
    2. crontab -e
    3. #輸入i進入插入模式,設定每天9:30備份一次資料庫
    4. 30 9 * * * /oradata/databak/cmisexp.sh
    5. #進入命令模式,輸入x,儲存退出
    6. :x

相關推薦

Linux使用expdp定時備份Oracle資料庫

使用Xshell連線伺服器輸入使用者名稱密碼 建立備份資料庫儲存路徑 在根目錄下建立oradata目錄 在oradata目錄下建立databak用於存放shell指令碼 在oradata下建立dum

Linuxmysql定時備份及恢復

備份1.資料庫定時備份工作指令碼:(日期時間作為名稱的壓縮檔案,解壓開是sql指令碼)/root/backup/script/backup_mysql.sh2.備份輸出路徑:/root/backup/mysql3.執行計劃任務的命令:#crontab -e 開啟計劃任務編輯器

linux 使用python3 定時備份mysql資料庫指令碼 修改配置直接可用。親測!

# Time : 2018/12/24 # Author : [email protected]#依賴包 pip install schedule#注意事項#1. linux中 使用os.system()包裹的命令有特殊字元如)(請使用轉義\)\(或'(' ')'#2. 輸入的資料庫密碼 -p+密

linux伺服器上定時備份 mysql 資料庫

<span style="font-size:14px;color:#330033;">#!/bin/bash db_name=enocp_sta file_name="$db_name"_$(date +%Y%m%d_%H%M) dir=/root/backup/mysql/`date +%Y_

Linux通過mysqldump備份MySQL資料庫成sql檔案

階段1:傻瓜式全備份   mysqldump -h ip地址 -uusername -ppassword -A >~/name.sql   此種情況將整個資料庫(結構和資料)匯出備份成一個sql檔案   階段2:適當的調整引數達到不同的備份效果   我們先help一下   mysqldump --hel

Linux用unixODBC連線Oracle資料庫的配置

1.環境 1[[email protected] ~]# cat /etc/redhat-release  Red Hat Enterprise Linux Server release 5.9 (Tikanga) [[email protected]

linuxSVN定時備份

 利用svnadmin hotcopy可以實現完全備份,但不能進行增量備份。svnadmin hotcopy是將整個庫都“熱”拷貝一份出來,包括庫的鉤子指令碼、配置檔案等;任何時候執行這個指令碼都得到一個版本庫的安全拷貝,不管是否有其他程序正在使用版本庫。     優點是:

linuxSVN定時備份並刪除歷史備份

sco 利用 exe abs tabs file 腳本 壓縮 安全 利用svnadmin hotcopy可以實現完全備份,但不能進行增量備份。svnadmin hotcopy是將整個庫都“熱”拷貝一份出來,包括庫的鉤子腳本、配置文件等;任何時候運行這個腳本都得到一個版本庫的

windoworacle數據庫expdp定時備份

compress res 當前 http com 命令 amp remote pscp window下的批處理腳本如下: rem @echo off rem 獲取當前日期字符串 for /f "tokens=1,2,3 delims=/- " %%a in (

linux啟用定時任務對mysql資料庫進行定時備份

                                          &

linux使用crontab定時備份MYSQL資料庫

第一步:在伺服器上配置備份目錄程式碼: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/li

Linux備份oracle資料庫

轉自:https://blog.csdn.net/li951383937/article/details/52475982今天遇到需要備份oracle資料庫在Linux環境下,以前沒有弄過,今天嘗試了一次,特此記錄。 首先1:我們需要連結到安裝oracle的機器上,我是使用的

linux定期備份oracle資料庫

http://hi.baidu.com/tianfu_xue/blog/item/c26c501ce6bd319286d6b6eb.html 2011-06-29 15:42 在/u01/app/oracle/product/11.2.0/db_1下建立back.sh備份資

linux平臺的oracle11201借用expdp定時備份數據庫-1225

body source pro scripts table bsp $path base profile 備份腳本如下: #!/bin/bashexport ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE

Linux 定時備份oracle庫的數據

腳本 變量 style 數據 sar dmp ble %d nbsp 思路:1.使用crontab來實現定時任務2.用shell腳本來執行exp備份指令 ************************************** 配置好crontabcrontab -e

Windows定時任務備份Oracle資料庫(批處理bat)

參考文獻: http://www.jb51.net/article/98732.htm https://blog.csdn.net/woshixuye/article/details/18050769   auto_back_tie.bat REM 建立目錄 set

linux定時備份mysql資料庫

1、檢視磁碟空間情況: [[email protected] backup]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 17G 2.7G 15G 16

linux使用定時任務完成mysql定期備份

Crontab相關 首先,定時任務需要安裝crontab 執行crontab 命令如果報command not found,就表明沒有安裝。 crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾

Linux中實現定時備份資料庫

需求分析 1)每天凌晨 2:10 備份 資料庫 mydatebase 到 /data/backup/db 2)備份開始和備份結束能夠給出相應的提示資訊 3)備份後的檔案要求以備份時間為檔名,並打包成 .tar.gz 的形式,比如:2018-12-12_230201.tar.gz 4) 在備

linux自動備份oracle資料庫並上傳到備份伺服器 指令碼實現

實際專案中,備份資料是不可缺少的一步,完成資料的自動備份減少個人的工作量,是我們的目標。之前很少寫過指令碼,不過這些簡單的操作還是可以做到的!話不多說,開始具體介紹: oracle版本:10.2.0 作業系統:linuxredhat6.3 具體操作: (1)在伺服器上建立備