當前位置:首頁 » 網頁前端 » 備份腳本怎麼使用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

備份腳本怎麼使用

發布時間: 2022-01-19 00:54:31

❶ oracle rman備份腳本怎麼寫

在ORACLE資料庫中,RMAN備份的腳本非常多,下面介紹一例shell腳本如何通過RMAN備份,以及FTP上傳RMAN備份文件以及歸檔日誌文件的腳本。
fullback.sh 裡面調用RMAN命令做資料庫備份,它使用的cmdfile為/home/oracle/backup/bin/fullback.rcv,同時在/home/oracle/backup/logs目錄下生成日誌文件。
1: [oracle@DB-Server bin]$ more fullback.sh
2:
3: #!/bin/bash
4:
5: export ORACLE_BASE=/u01/app/oracle
6:
7: export ORACLE_SID=gps
8:
9: ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1; export ORACLE_HOME
10:
11: TMP=/tmp; export TMP
12:
13: TMPDIR=$TMP; export TMPDIR
14:
15: PATH=/usr/sbin:$PATH; export PATH
16:
17: PATH=$ORACLE_HOME/bin:$PATH; export PATH
18:
19: LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
20:
21: CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
22:
23: export CLASSPATH
24:
25: TODAY=`date +%Y_%m_%d`
26:
27: rman nocatalog target / cmdfile /home/oracle/backup/bin/fullback.rcv log /home/oracle/backup/logs/fullbackup_$TODAY.log
28:
29: /home/oracle/backup/bin/ftpbackup.sh
30:
fullback.rcv文件非常簡單, 如下所示:
1: [oracle@DB-Server bin]$ more /home/oracle/backup/bin/fullback.rcv
2:
3: run{
4:
5: allocate channel c4 type disk;
6:
7: backup as compressed backupset
8:
9: skip inaccessible
10:
11: tag fullbackupwitharchivelog
12:
13: (database);
14:
15: backup current controlfile;
16:
17: backup spfile;
18:
19: sql "alter system archive log current";
20:
21: delete noprompt obsolete;
22:
23: release channel c4;
24:
25: }
26:
RMAN生成的備份文件,需要通過FTP上傳到FTP伺服器,一則資料庫伺服器沒有這么多空間存儲多天的備份,二則是出於容災、數據安全需要。
下面腳本中FTP伺服器,用戶名密碼均使用xxx替代,在實際環境中,使用具體的信息替代即可。
1: [oracle@DB-Server bin]$ more ftpbackup.sh
2:
3: #!/bin/sh、
4:
5: rm -f /home/oracle/.netrc
6:
7: date_yesterday=`date -d'yesterday' +%Y_%m_%d`
8:
9: date_today=`date +%Y_%m_%d`
10:
11: echo "default login xxxx password xxxxxx" >> /home/oracle/.netrc
12:
13: echo "macdef init" >> /home/oracle/.netrc
14:
15: echo "binary" >> /home/oracle/.netrc
16:
17: echo "cd archivelog" >> /home/oracle/.netrc
18:
19: echo "mkdir $date_yesterday" >> /home/oracle/.netrc
20:
21: echo "cd $date_yesterday" >> /home/oracle/.netrc
22:
23: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_yesterday" >> /home/oracle/.netrc
24:
25: echo "mput *" >> /home/oracle/.netrc
26:
27: echo "cd .." >> /home/oracle/.netrc
28:
29: echo "mkdir $date_today" >>/home/oracle/.netrc
30:
31: echo "cd $date_today" >>/home/oracle/.netrc
32:
33: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_today" >>/home/oracle/.netrc
34:
35: echo "mput * ">>/home/oracle/.netrc
36:
37: echo "cd .." >>/home/oracle/.netrc
38:
39: echo "cd ../backupset" >> /home/oracle/.netrc
40:
41: echo "mkdir $date_today" >> /home/oracle/.netrc
42:
43: echo "cd $date_today" >> /home/oracle/.netrc
44:
45: echo "lcd /u04/flash_recovery_area/gps/backupset/$date_today" >> /home/oracle/.netrc
46:
47: echo "mput *" >> /home/oracle/.netrc
48:
49: echo "cd .." >> /home/oracle/.netrc
50:
51: echo "cd ../autobackup" >> /home/oracle/.netrc
52:
53: echo "mkdir $date_today" >> /home/oracle/.netrc
54:
55: echo "cd $date_today" >> /home/oracle/.netrc
56:
57: echo "lcd /u04/flash_recovery_area/gps/autobackup/$date_today" >> /home/oracle/.netrc
58:
59: echo "mput *" >> /home/oracle/.netrc
60:
61: echo "quit" >> /home/oracle/.netrc
62:
63: echo "" >> /home/oracle/.netrc
64:
65: chmod 600 /home/oracle/.netrc
66:
67: ftp -i -v xxx.xxx.xxx.xxx 8021 >>/home/oracle/backup/logs/ftp$date_today.log 2>&1
68:
另外,關於歸檔日誌也需要每隔2小時上傳一次到FTP伺服器,2小時上傳一次歸檔日誌的shell腳本如下所示:
1: [oracle@DB-Server bin]$ more ftp2hours.sh
2:
3: #!/bin/sh
4:
5: rm -f /home/oracle/.netrc
6:
7: date_yesterday=`date -d'yesterday' +%Y_%m_%d`
8:
9: date_today=`date +%Y_%m_%d`
10:
11: echo "default login xxxx password xxxx" >> /home/oracle/.netrc
12:
13: echo "macdef init" >> /home/oracle/.netrc
14:
15: echo "binary" >> /home/oracle/.netrc
16:
17: echo "cd archivelog" >> /home/oracle/.netrc
18:
19: echo "mkdir $date_today" >>/home/oracle/.netrc
20:
21: echo "cd $date_today" >>/home/oracle/.netrc
22:
23: echo "lcd /u04/flash_recovery_area/gps/archivelog/$date_today" >>/home/oracle/.netrc
24:
25: echo "mput * ">>/home/oracle/.netrc
26:
27: echo "quit" >> /home/oracle/.netrc
28:
29: echo "" >> /home/oracle/.netrc
30:
31: chmod 600 /home/oracle/.netrc
32:
33: ftp -i -v xxx.xxx.xxx.xxx 8021 >>/home/oracle/backup/logs/ftp2hours.$date_today.log 2>&1
34:
最後需要將RMAN備份生成的日誌文件,以及FTP上傳備份文件以及歸檔日誌的記錄通過郵件形式發送給DBA或系統管理員,
1: [oracle@DB-Server bin]$ more chkbackandmail.sh
2: #!/bin/bash
3: rm -f /home/oracle/backup/bin/sendmail.pl
4: date_today=`date +%Y_%m_%d`
5: subject="Oracle Backup Alert Service on $date_today"
6: content="Dear colleagues,
7:
8: Attached please find the logs of xxx(xxx.xxx.xxx.xxx) oracle database backup and transfer to FTP Server(xxx.xxx.xxx.xxx), please
9: review the file and check whether the backup succeeded or not,and double check all backups have been mped to tape, many tha
10: nks
11:
12:
13:
14:
15: Best regards
16: Oracle Alert Services
17:
18: "
19: file="/home/oracle/backup/logs/fullbackup_$date_today.log,/home/oracle/backup/logs/ftp$date_today.log"
20: echo "#!/usr/bin/perl" >> /home/oracle/backup/bin/sendmail.pl
21: echo "use Mail::Sender;" >> /home/oracle/backup/bin/sendmail.pl
22: echo "\$sender = new Mail::Sender {smtp => 'xxx.xxx.xxx.xxx', from => '[email protected]'}; ">> /home/oracle/backup/bin/sendmai
23: l.pl
24: echo "\$sender->MailFile({to => '[email protected]',">> /home/oracle/backup/bin/sendmail.pl
25: echo "cc=>'[email protected],[email protected],[email protected]'," >> /home/oracle/backup/b
26: in/sendmail.pl
27: echo "subject => '$subject',">> /home/oracle/backup/bin/sendmail.pl
28: echo "msg => '$content',">> /home/oracle/backup/bin/sendmail.pl
29: echo "file => '$file'});">> /home/oracle/backup/bin/sendmail.pl
30: perl /home/oracle/backup/bin/sendmail.pl
最後在Crontab 作業裡面配置調用這些shell腳本。例如如下所示,在1:01分執行fullback.sh ,每隔兩個小時(例如0:50、2:50...)執行一次ftp2hours.sh, 在每天早上8:40執行chkbackandmail.sh 發送fullback.sh 以及ftp2hour.sh的執行日誌記錄。

❷ 如何使用腳本批量恢復資料庫備份

蛙蛙推薦:利用WMI腳本批量恢復SQLSERVER資料庫

問題提出

蛙蛙求助:以編程的方式還原sqlserver資料庫問題

我有一個目錄下面都是sqlserver的資料庫備份文件,比如a.bak,b.bak,c.bak等,有沒有辦法一下把他們都還原到本地SQLSERVER資料庫裡面呀,過程是自動建立a,b,c這樣的資料庫,然後把a.bak恢復到a,b.bak恢復到b,依次類推,因為備份文件的原路徑和新庫的路徑不一樣,所以要有一些額外處理,誰能解決一下,因為這個目錄下有幾十個庫的備份文件呢,現在我的機器新安裝了一個SQLSERVER,要把他們全部恢復,當時沒有分離庫,所以不能直接附加.

設計方案

可以利用WMI腳本掃描存放資料庫備份文件的目錄,然後按照一定的規則生成一個恢復資料庫的T-sql腳本文件,然後用腳本執行osql程序來執行這個腳本完成資料庫恢復,這里沒有使用過多的錯誤處理和事務的代碼,因此要人為的確定資料庫恢復的T-SQL語句盡量不要引發異常。

解決方案

一、我們先來看一下恢復資料庫的T-SQL命令,以便理解後面通過腳本來創建T-SQL的原理

USE master

GO

--如果要創建的資料庫已經存在,那麼刪除它

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'article')

DROP DATABASE [article]

GO

--創建一個新資料庫,要指定新建資料庫的數據文件和日誌文件的名稱和位置,初始化大小

--增長幅度,最大值等內容

CREATE DATABASE article

ON

( NAME = N'article_dat',

FILENAME = N'd:\sql2000\MSSQL\data\article_Data.MDF',

SIZE = 1,

MAXSIZE = 50,

FILEGROWTH = 5 )

LOG ON

( NAME = N'article_log',

FILENAME = N'd:\sql2000\MSSQL\data\article_Log.LDF',

SIZE = 1MB,

MAXSIZE = 25MB,

FILEGROWTH = 5MB )

GO

--把指定的資料庫備份文件恢復到剛剛建立的資料庫里,這里要指定資料庫備份文件的位置

--以及要恢復到的資料庫,因為備份文件來自未知的機器,備份的時候原資料庫和新資料庫

--的數據文件和日誌文件的位置不匹配,所以要用with move指令來完成強制文件移動,如果

--是通過管理器備份的資料庫文件,資料庫文件和日誌文件名分別是資料庫名跟上"_Data"或

--"_Log",這是一個假設哦,如果不是這樣,腳本有可能會出錯

RESTORE DATABASE [article]

FROM DISK = 'E:\windowdatabase\article.bak'

WITH

MOVE 'article_Data' TO 'd:\sql2000\MSSQL\data\article_Data.MDF',

MOVE 'article_Log' TO 'd:\sql2000\MSSQL\data\article_Log.LDF'

GO

從中可以看到T-SQL的強大。

❸ 話說各位用Tampermonkey的 怎麼備份腳本

tampermonkey 作為Chrome的一個插件,可以通過其掛載的js腳本實現某些頁面的功能,比如批量簽到或是很簡單的切換背景色或是隱藏某一個元素。那麼我分幾方面介紹 1 如何安裝使用tampermonkey 2 如何寫一個簡單的腳本 3 如何將寫的腳本上傳上去 【...

❹ 文件備份腳本bat命令cmd

@echooff&
x/s/e/d/yD:*D:a
for/f"delims="%%ain('dir/a-d/b/sD:a')do(
setfile=%%~a
ifnotexist"D:!file:~4!"del/f/q"!file!"
)
for/f"delims="%%ain('dir/ad/b/sD:a')do(
setfolder=%%~a
ifnotexist"D:!folder:~4!"rd/s/q"!folder!"
)
pause

怎麼又是這個問題??

❺ 求助:怎樣備份腳本

聰明的人會用export的方式進行導出明文備份。詳細查本BBS---------------------------------------------------------------------------------簡單的問題:
system
backup
load
name=backup.bak備份:system
backup
save
name=backup.bak測試環境:ros3.0
rc5這是全系統備份。格式是官方的。查export的用法[
本帖最後由
cracks

2007-10-6
19:53
編輯
]

❻ Oracle資料庫備份腳本怎麼寫

沒必要用root許可權執行,oracle用戶同樣可以執行crontab計劃任務
1、su - oracle
crontab -e
0 4 * * 0 /home/oracle/exp.sh 2>&1 >>/home/oracle/script_exp.log;
0~59 表示分
0~23 表示小時
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
2、cat /home/oracle/exp.sh
. ~/.bash_profile
bakdir=/opt/dbbak
logdir=/home/oracle/dbbak
rq=$(date +%Y%m%d)
exp system/***** owner=jysh file=${bakdir}/jysh_${rq}.dmp log=${logdir}/jysh_${rq}.log;
find ${bakdir} -type f -mtime +30 -exec rm -rf {} \;

❼ 異機文件備份的bat腳本怎麼製作

NET USE \\備份機器名"密碼" /user:"用戶名"
NET USE Z: \\備份機器名\SharedDocs
x D:\用友備份 z:\ /D /E /Y /H /K
net use \\備份機器名 /delete

❽ 怎麼備份 暴力猴的腳本

手機備份我一直使用的是騰訊手機管家
可以把手機上重要的文件備份到微雲網盤,
打開騰訊手機管家--更多--微雲網盤備份。
它的備份功能很好,它的同步助手:
可以整合通訊錄備份功能,實現通訊錄永不丟失喲

❾ Tampermonkey的腳本怎麼備份

備份手機的第三方軟體可以通過騰訊手機管家的備份功能來完成備份
可以使用騰訊手機管家的手機備份功能進行備份
進入主界面點擊更多,從裡面找到微雲軟體
先進行微雲軟體的下載安裝,之後登陸微雲軟體的界面
把需要備份的東西進行上傳就可以完成備份了

❿ 如何利用shell腳本備份網站數據到遠程linux主機上

第一步: 設置免密碼登錄 請參考 如何ssh免密碼登錄linux伺服器
第二步:輸入以下代碼後(注意最後一行的199.101.117.xx改成你自己的那個伺服器地址) 保存退出
[root@niko ~]# vi backup.sh
#!/bin/bash backdir=/backup month=`date +%m` day=`date +%d` year=`date +%Y` dirname=$year-$month-$day mkdir -p $backdir/$dirname mkdir -p $backdir/$dirname/conf mkdir -p $backdir/$dirname/web mkdir -p $backdir/$dirname/db gzupload=upload.tgz cp /etc/httpd/conf/httpd.conf $backdir/$dirname/conf/httpd.conf cd /var/www/html/ tar -zcvf $backdir/$dirname/web/$gzupload ./ scp -r /backup/$dirname [email protected]:/backup
第三步 crontab -e 設置每日定時
[root@niko ~]# crontab -e
第四步 設置每日的10:28分運行backup.sh腳本,注意腳本名最好寫絕對路徑
28 10 * * * /root/backup.sh
第五步 設置腳本運行許可權
[root@niko ~]#chmod +x /root/backup.sh
第六步 在另一台也就是要存放備份的伺服器上新建backup這個文件夾
[root@testvpn backup]#mkdir /backup