如何远程备份SQL SERVER数据库

如何远程备份SQL SERVER数据库,第1张

手头上只有C#的代码,不知道对你有没有帮助

远程备份要注意权限的问题,普通的访问帐户没有备份和还原的权限,最好用sa的帐户,并且程序访问的帐户必须添加到远程机器的系统内

你说的远程备份到本地是不可能的,你只有开放远程某个文件夹加入你的特殊访问帐户权限

最好直接用远程桌面,这样最方便

方法一(不使用SQLDMO):

///

///备份方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();

cmdBKCommandType = CommandTypeText;

cmdBKConnection = conn;

cmdBKCommandText = @"backup database test to disk='C:\ba' with init";

try

{

connOpen();

cmdBKExecuteNonQuery();

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

connDispose();

}

///

///还原方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

//KILL DataBase Process

SqlCommand cmd = new SqlCommand("SELECTspidFROMsysprocesses ,sysdatabases WHEREsysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

SqlCommand cmdRT = new SqlCommand();

cmdRTCommandType = CommandTypeText;

cmdRTConnection = conn;

cmdRTCommandText = @"restore database test fromdisk='C:\ba'";

try

{

cmdRTExecuteNonQuery();

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

}

方法二(使用SQLDMO):

///

///备份方法

///

SQLDMOBackup backup = new SQLDMOBackupClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMOBackupSink_PercentCompleteEventHandler progress = new SQLDMOBackupSink_PercentCompleteEventHandler(Step);

backupPercentComplete += progress;

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

backupAction = SQLDMOSQLDMO_BACKUP_TYPESQLDMOBackup_Database;

backupDatabase = "test";

backupFiles = @"D:\test\myProg\backupTest";

backupBackupSetName = "test";

backupBackupSetDescription = "Backup the database of test";

backupInitialize = true;

backupSQLBackup(server);

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

///

///还原方法

///

SQLDMORestore restore = new SQLDMORestoreClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMORestoreSink_PercentCompleteEventHandler progress = new SQLDMORestoreSink_PercentCompleteEventHandler(Step);

restorePercentComplete += progress;

//KILL DataBase Process

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

SqlCommand cmd = new SqlCommand("SELECTspid FROMsysprocesses ,sysdatabases WHEREsysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

connClose();

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

restoreAction = SQLDMOSQLDMO_RESTORE_TYPESQLDMORestore_Database;

restoreDatabase = "test";

restoreFiles = @"D:\test\myProg\backupTest";

restoreFileNumber = 1;

restoreReplaceDatabase = true;

restoreSQLRestore(server);

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

远程Oracle数据库导出到本地用exp命令

导出一个完整数据库:

1、win键+R键,输入cmd,打开命令提示符。

2、执行

1

exp 用户名/密码@实例名 file=导出路径\文件名 log=导出路径\日志名 full=y

mysql>mysqldump -u root -p dbcurr> 20090219sql;

上面这个是你写的,-p后面是密码还是数据库的名字,如果是数据库的名字,那么你没有指定备份到哪个目录里面自然报错

举例

mysql>mysqldump -uroot -p密码 dbcurr > /root/20090219sql;

一、Mysql数据库备份指令格式:

mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名sql

注:直接cmd执行该指令即可,不需要先mysql -u root -p链接数据库

1、备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfilesql

2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfilesql

二、数据库还原有三种方式:source命令、mysql、gunzip命令

1、source 命令

进入mysql数据库控制台,

mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的sql)

mysql>source /home/work/db/bkdbsql

2、mysql

mysql -hhostname -uusername -ppassword databasename < backupfilesql

3、gunzip

gunzip < backupfilesqlgz | mysql -uusername -ppassword databasename

什么数据库?

Oracle备份:

逻辑备份

开始à运行àcmd

在命令行窗口输入备份命令—即导出命令

导出scott用户模式—这将导出scott用户的所有对象exp scott/tigerfile=c:\scottdmp

或者exp system/managerowner=(scott) file=c:\sysdmp

导出scott用户的dept表和emp表exp scott/tigerfile=c:\scott2dmp tables=(dept,emp)

或者exp system/manager tables=(scottdept,scottemp)file=c:\sys2dmp

导出scott用户模式和wks030用户模式—这将导出scott用户和wks030用户的所有对象exp system/managerowner=(scott, wks030) file=c:\sys3dmp

导出scott的emp表以及 wks030的tbuser表和tbscore表exp system/manager tables=(scottemp,wks030tbuser,wks030tbscore)file=c:\sys4dmp

导出整个数据库(要求必须是管理员)—这将导出整个数据库的内容, 不推荐尝试, 时间太长, 文件太大exp system/managerfull=y file=c:\sys5dmp

要点

普通用户可以导出自己的表或整个模式

DBA可以导出其他用户的表或模式

DBA可以导出整个数据库

Owner和tables是2种导出模式, 不可同时使用owner: 导出指定用户的整个模式tables: 导出指定的表

db2 cmd命令 *** 作

1、 打开命令行窗口

  #db2cmd

2、 打开控制中心 >

以上就是关于如何远程备份SQL SERVER数据库全部的内容,包括:如何远程备份SQL SERVER数据库、怎么将远程oracle数据库备份到本地、mysql在dos命令下备份还原数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9335217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存