当前位置:首页 » 网页前端 » 备份脚本怎么使用
扩展阅读
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