手头上只有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;
导出一个完整数据库:
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命令下备份还原数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)