perl脚本备份还原sql server

写了一个perl脚本灵活来备份或还原。

1.将config.txt保存到c盘根目录

username:sa

password:passwd123!

根据实际情况修改该文件内容

2.执 行bcp.pl

#!C:\Perl64\bin

#通过BCP备份和还原SQLSERVER指定的表

use 5.014;

#加载用户和密码配置文 件

my $username ;

my $passwd;

##获取用户名

my $dir="c:";

$dir=$dir."/";

my $filename="config.txt";

my $keysword="username:";

my $count="50";

my $begincount=index($keysword,":");

my ($file);

open(FILEH,$dir.$filename);

while(my $test=<FILEH>){

  if((index($test,$keysword))>=0){

my $test1=substr ($test,$begincount+1,$count);

   #print "$test1";

chomp($username=$test1);

  }

}

close(FILEH);

##获取密码

my $dir="c:";

$dir=$dir."/";

my $filename="config.txt";

my $keysword="password:";

my $count="50";

my $begincount=index($keysword,":");

my ($file);

open(FILEH,$dir.$filename);

while(my $test=<FILEH>){

  if((index($test,$keysword))>=0){

my $test2=substr ($test,$begincount+1,$count);

   #print "$test2";

chomp($passwd=$test2);

  }

}

close(FILEH);

print "----------------------------------------------------------------- --\n";

print "请首先检查用户和密码配置文件config.txt保存路径是否为 $dir$filename\n";

print "----------------------------------------------------------------- --\n";

print "重要提示:备份表操作请输入0;还原表操作请输入1\n";

print "请输入操作代码:";

chomp(my $inp=<STDIN>);

print "你输入的操作代码为$inp\n";

#判断输入为0即备份操作

if ($inp eq 0){

print '服务器IP:(不输入默认为 localhost)';

chomp(my $a = <STDIN>);

if ($a=='') {

$a='localhost';

}else{

print "你输入的服务器IP为:$a\n";

}

print '用户名:';

chomp(my $b = <STDIN>);

print "你输入的用户名为:$b\n";

if($b eq $username) {

 print "用户通过!\n";

} else {

 print "对不起,用户名错误\n";

 exit;

}

print "用户密码: ";

chomp (my $readPsw = <STDIN>);

if($readPsw eq $passwd) {

 print "密码正确!\n";

} else {

 print "对不起,密码错误\n";

 exit;

}

print "重要提示:备份表的表名格式为:test.dbo.t1\n";

print '备份的表:';

chomp(my $d = <STDIN>);

print "你输入的备份的表:$d\n";

print '保存路径:';

chomp(my $e = <STDIN>);

print "你输入的保存路径:$e\n";

if (-e $e){

print "$e已经存在!是否删除?(y删除;n不删除)\n";

chomp(my $i=<STDIN>);

given ($i)

{

when ("y") {

unlink $e;

print "开始备份表!\n";

system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

when  ("n")

{

print "-----------备份已经终止-----------\n";

print "指定文件存在,请重新输入文件名!\n";

}

default {print "只能输入y或n!\n";}

}

}

else{

{

system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

}

}

#判断输入 为1还原操作

elsif($inp eq 1){

print '服务器IP:(不输入默认为localhost) ';

chomp(my $a = <STDIN>);

if ($a=='') {

$a='localhost';

}else{

print "你输入的服务器IP为:$a\n";

}

print '用户名:';

chomp(my $b = <STDIN>);

print "你输入的用户名为:$b\n";

if($b eq $username) {

 print "用户通过!\n";

} else {

 print "对不起,用户名错误\n";

 exit;

}

print "用户密码: ";

chomp (my $readPsw = <STDIN>);

if($readPsw eq $passwd) {

 print "密码正确!\n";

} else {

 print "对不起,密码错误\n";

 exit;

}

print '需要还原的表:';

chomp(my $d = <STDIN>);

print "你输入的备份的表:$d\n";

print '备份保存路径:';

chomp(my $e = <STDIN>);

if (-e $e) {

print "你输入的备份保存路径:$e\n";

system (" bcp $d in $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

else {

print "对不起,指定的备份文件$e不存在,请核实!\n";

}

}

else{

print "请参考重要提示!\n";

}

system 'pause';

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

时间: 2024-09-14 15:00:56

perl脚本备份还原sql server的相关文章

在asp.net中备份还原SQL Server数据库

在web中,安全性主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码:另一个是数据库安全性,这个我们可以经常备份数据库来实现. 在文中,我将演示如果在网页中备份和恢复数据库. 其实备份和恢复数据库都是利用SQL Server提供的SQL语句来备份的. 备份:use master;backup database @name to disk=@path; 恢复:use master;restore database @name from disk=@path; 上面用的是参数化SQL语句

如何在Asp.Net中备份还原Sql Server数据库

在Web程序中,程序的安全性很重要,其中表现为防止恶意代码对程序的破坏性及对数据库的备份,以防止程序破坏后可以及时还原得回数据. 首先建立一个数据库连接类 代码如下:

ASP视频教程:备份和还原SQL Server 2000数据库

大家在初学ASP程序的时候,我们经常第一个任务就是配置环境!在这里根据网页教学网站长的经验,有时克隆版的XP系统有时是安装不了IIS的!前面我们已经讲解了ASP视频教程:制作网站前台首页,本讲主要讲述备份和还原SQL Server 2000数据库.大家请看视频教程.

ASP.NET备份、还原SQL Server数据库

一.备份SQL Server数据库 string SqlStr1 = "Server=(local);database=''" + this.DropDownList1.SelectedValue + "'';Uid=sa;Pwd=";string SqlStr2 = "backup database " + this.DropDownList1.SelectedValue + " to disk=''" + this.Tex

ASP.NET备份恢复Sql Server数据库

本文将向大家介绍如何使用 ASP.NET 备份恢复 Sql Server 数据库,大家可以做个参考,也希望对大家有所帮助. 备份SqlServer数据库: string SqlStr1 = "Server=(local);database='" + this.DropDownList1.SelectedValue + "';Uid=sa;Pwd=";string SqlStr2 = "backup database " + this.DropDo

用脚本定时监控SQL Server主从一致性

原文:用脚本定时监控SQL Server主从一致性 用脚本定时监控SQL Server主从一致性 首先说一下我们的环境 我们使用的是事务复制,复制是单向的,主服务器和从服务器都在同一个机房,当然不同机房也可以,只需要改一下IP和端口 下面的脚本在我们的SQLServer2008上已经应用,暂时没有发现问题,当然,如果大家使用过程中有发现问题欢迎向我反馈o(∩_∩)o    首先,我们为什麽要校验呢? 我们知道因为网络延迟,或者从库有写入的情况(当然一般我们在订阅端会设置为db_datareade

migration-Entity Framework 7 Migration生成的脚本不支持SQL Server

问题描述 Entity Framework 7 Migration生成的脚本不支持SQL Server 应该如何设置才能生成支持SQL Server的脚本? 执行代码:dnx . ef Migration apply

企业管理器备份和还原SQL Server数据库

在日常的数据库操作中,我们常常对数据库进行备份操作,以方便在数据库发生灾难时对数据库进行还原,从而确保数据库的安全性.SQL Server数据库使用企业管理器可以简单直观地完成这些操作,还可以每天自动备份数据库.本文我们就介绍了这一过程,接下来就让我们来一起了解一下吧. 一.备份数据库 1.打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server. 2.SQL Server组-->双击打开你的服务器-->双击打开数据库目录. 3.选择你的数据库名称(如论坛数据库F

企业管理器备份和还原SQL Server数据库_MsSql

在日常的数据库操作中,我们常常对数据库进行备份操作,以方便在数据库发生灾难时对数据库进行还原,从而确保数据库的安全性.SQL Server数据库使用企业管理器可以简单直观地完成这些操作,还可以每天自动备份数据库.本文我们就介绍了这一过程,接下来就让我们来一起了解一下吧. 一.备份数据库 1.打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server. 2.SQL Server组-->双击打开你的服务器-->双击打开数据库目录. 3.选择你的数据库名称(如论坛数据库F