我知道这很可能是一个简单的问题,但是当您从 SQL Management Studio 内部恢复数据库时,您可以使用统计信息设置更新间隔
RESTORE DATABASE [test] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\test.bak' WITH FILE = 1, NOUNLOAD, STATS = 10
Run Code Online (Sandbox Code Playgroud)
如果我想从 c# 内部执行该行代码,我将如何获得进度?目前我只是使用System.Data.SqlClient.SqlCommand.ExecuteNonQuery(),但我不知道如何获得进度。
另外,如果速度更快,使用 Microsoft.SQLServer 命名空间也是可以接受的。
我有一个名为backupdb.bak.I的 SQL Server 2005 数据库备份。我想将它恢复到数据库MyDatabase。
但在恢复之前,我必须检查是否MyDatabase已经存在。如果是,那么我创建一个名为的新数据库MyDatabaseNew,并将备份文件恢复到这个新数据库。
如果我直接将文件恢复到MyDatabase. 但是当我检查是否存在MyDatabase并尝试创建名为 的新数据库时MyDatabaseNew,它给出了错误:
服务器 servername 的还原失败
我的代码如下所示:
Restore restore = new Restore();
restore.Action = RestoreActionType.Database;
CreateDatabase(MyDatabaseNew);
restore.Database = MyDatabaseNew;
restore.ReplaceDatabase = true;
BackupDeviceItem deviceItem = new BackupDeviceItem("C:\\backupdb.bak",DeviceType.File);
restore.Devices.Add(deviceItem);
SqlConnection sqlCon = new SqlConnection("Data Source=.;Initial Catalog=MyDatabaseNewIntegrated Security=True;User ID=uid; Pwd=Pwd");
ServerConnection connection = new ServerConnection(sqlCon);
sqlCon.Open();
Microsoft.SqlServer.Management.Smo.Server smoServer = new Server(new ServerConnection("."));
if (File.Exists("C:\\backupdb.bak"))
// restore
restore.SqlRestore(smoServer);
if (sqlCon.State == ConnectionState.Open)
sqlCon.Close(); …Run Code Online (Sandbox Code Playgroud) 我的机器上的可用空间是有限的,我想知道在恢复它们之前我可以容纳多少分贝。
那么给定一个 .bak 文件,我如何估计它在 SQL Server 上恢复的数据库有多大?
我无法恢复数据库备份 (db.bak)。
给定以下 Transact-SQL:
1> RESTORE DATABASE db
2> FROM DISK = '/var/opt/mssql/db.bak' ;
3> GO
Run Code Online (Sandbox Code Playgroud)
结果是:
Msg 5133, Level 16, State 1, Server mbü-lubuntu, Line 1
Directory lookup for the file "D:\Program Files\Microsoft SQL
Server\MSSQL12.MSSQLSERVER2014\MSSQL\DATA\db.mdf" failed with the operating
system error 2(The system cannot find the file specified.).
Msg 3156, Level 16, State 3, Server mbü-lubuntu, Line 1
File 'db' cannot be restored to 'D:\Program Files\Microsoft SQL
Server\MSSQL12.MSSQLSERVER2014\MSSQL\DATA\db.mdf'. Use WITH MOVE to
identify a valid location for the file. …Run Code Online (Sandbox Code Playgroud) 我有一个数据库,我在2天前做了第一次备份.然后昨天我花了整整一个新记录.今天早上我运行了一个备份,(但我选择了附加到现有备份集),如下图所示.
我刚刚运行了一个恢复,我发现它从昨天删除了我的所有数据,并从2天前的备份中恢复了它.不是今天早上备份的版本.
我将此备份文件压缩为安全.
我在数据库中更改了一些数据,然后我再次运行备份,但这次我选择"覆盖所有现有的备份集"
现在,当我恢复数据库时,它似乎正确地从备份中恢复数据. 如果我错了,我想我在这里吸取了教训
我的问题是,我是否失去了一整天的工作?
我仍然有今天早上的备份.bak文件安全拉链.无论如何我可以恢复是否有正确的数据?
这是一个测试环境,我需要一些数据来测试Update查询,但是意外地更新了所有行中的列以获得错误的数据.我是否必须使用备份将数据还原回上一个实例,或者是否有一些我可以利用的事务日志的秘密?
提前致谢.
我已经定义了所有的东西,而且这段代码是我代码的一部分
if (Sql_Conn == null)
Sql_Conn = new SqlConnection(Str_Con);
// str_con is my connection string
if (Sql_Conn.State != ConnectionState.Open)
Sql_Conn.Open();
Data_Table = new DataTable();
DataA_dapter = new SqlDataAdapter();
Sql_Cmd = new SqlCommand();
Sql_Cmd.Connection = Sql_Conn; //
string sql = "RESTORE DATABASE [" + str_directory + "] From DISK = " +
"'" + strFileName + "' ; ";
// str_directory is the source of my database as DB.MDF
// srtFileName is the directory of DB.bak
Sql_Cmd.CommandType = CommandType.Text;
Sql_Cmd.CommandText = …Run Code Online (Sandbox Code Playgroud) 我想备份/还原分布在某些链接服务器中的数据,这些链接服务器在中央服务器中连接或链接。我怎样才能做到这一点?
我在所有节点上都使用SQL Server 2012。
我正在使用Django和Heroku Postgreql.我在默认数据库设置上使用英语和土耳其语.我的数据库在本地和Heroku上都没有问题.但是,当我尝试将db从本地转储并恢复到生产时,我收到错误.
psql -U user -d db_name -f "b003.dump"
psql:b003.dump:270: ERROR: invalid byte sequence for encoding "UTF8": 0xa3
Run Code Online (Sandbox Code Playgroud) 我的mongodb今天被黑客入侵,所有数据都被删除了,黑客需要一定的金额才能将其取回,我不会付钱给他,因为我知道他不会把我的资料发回我的数据库。
但是我打开了oplog,我看到它包含30万多个文档,保存了所有操作。
是否有任何工具可以从此日志中还原我的数据?
database-restore ×10
sql-server ×5
backup ×2
c# ×2
database ×2
django ×1
mongodb ×1
postgresql ×1
progress ×1
smo ×1
sql ×1
ubuntu-16.04 ×1