我正在使用 MS SQL 2008 R2 (10.50.1600)
我想知道为什么我的数据库非常小(近 1200 行,只有 2 个表),恢复速度这么慢(12-15 秒)。我想它与数据库内的日志文件有关(我不确定)。问题是我不关心日志文件。我只对 mdf 文件感兴趣。是否可以加快数据库恢复速度?恐怕对于一些较大的数据库来说,这将需要很长时间。恢复时间对我来说很重要。
我这样做是这样的:
BACKUP DATABASE TEST TO DISK = 'myDataBase' WITH INIT
RESTORE DATABASE TEST
FROM DISK = 'myDataBase'
WITH REPLACE
------------------------------------------------------------------------
Processed 256 pages for database 'myDataBase', file 'myDataBase' on file 1.
Processed 1 pages for database 'myDataBase', file 'myDataBase_log' on file 1.
RESTORE DATABASE successfully processed 257 pages in 12.218 seconds (0.164 MB/sec).
Run Code Online (Sandbox Code Playgroud)
我做了一些其他测试,并创建了空的全新数据库。恢复该数据库只花了不到一秒的时间。备份与之前相同。恢复报告:
Processed 176 pages for database 'TEST', file 'TEST' on file 1.
Processed …Run Code Online (Sandbox Code Playgroud) database sql-server database-restore database-backups database-performance
我正在尝试将旧数据库的 schema.sql 文件导入到 postgresql 中新创建的数据库中。
您能否让我知道执行此操作需要遵循的步骤。
环境:linux centos 7 DB:postgresql 9.3 我已将 schema.sql 文件复制到目录 /var/lib/pgsql/9.4/data/ 中。
问候。
我正在我的Android应用程序中实现备份/恢复系统.
每隔几分钟就会发生一次自动备份.在我的应用程序被卸载然后再次安装之后,我正在尝试从我的SD卡恢复我的数据库备份文件.
备份有效,但问题在于:
每当用户再次安装我的应用程序时,就会发现文件未找到异常,但是,如果用户关闭应用程序,然后再次打开它,则恢复就可以了.不知何故,恢复首次启动应用程序时会遇到问题.
还原必须在首次启动时进行.
注意: backupExists函数返回true.
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(backUpExists()){
restoreDB();
}
}
private boolean backUpExists()
{
try{
File sd = Environment.getExternalStorageDirectory();
if (sd.canRead()){
String backupDBPath = "myDB";
File backupedDB = new File(sd, backupDBPath);
if(backupedDB.exists()){
return true;
}
}
} catch(Exception ex) {
Toast.makeText(getBaseContext(), ex.toString(), Toast.LENGTH_LONG).show();
}
return false;
}
private void restoreDB()
{
try{
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String restroredDBPath = "//data//myPackage//databases//myDB";
String backupDBPath = "myDB"; …Run Code Online (Sandbox Code Playgroud) sqlite android database-restore database-backups android-sdcard
RESTORE DATABASE Umbraco6
FROM DISK = 'C:\Temp\initial_db.bak'
WITH MOVE 'Umbraco6' TO @db_physical_path + '\test_data.mdf',
MOVE 'Umbraco6_log' TO @db_physical_path + '\test_data.ldf',
REPLACE
Run Code Online (Sandbox Code Playgroud)
在上面的SQL脚本中我收到错误:
'''附近的语法错误不正确.
有任何想法吗?
假设我pg_dump在进行大规模的破坏性迁移之前对Postgres 9.3数据库进行了快速备份转储,我发现我想撤消它.在此期间没有对DB执行任何写入操作.
假设我运行pg_restore -c -d mydb < foo.dump将转储加载回数据库.假设我已经设置WAL-E来存档每个16mb的WAL,我是否需要archive_mode在执行恢复之前关闭?当我将转储写回数据库时,归档xlog对我来说是非常有用的,因为我已经在转储之前已经存档了完全有效的基本备份和WAL段.当我恢复转储时,执行xlog传输也会产生严重后果,因为转储的大小会变得更糟.
在恢复之前,您最终会禁用存档吗?你还做其他什么来加快速度吗?在这篇文章中讨论了恢复性能,但它根本不涉及归档,除非我遗漏了一些东西.
我正在尝试.BAK使用C#和SMO 从文件中恢复数据库.这是我的代码.
public static void RestoreDatabase()
{
string dbConnString = Configuration.DatabaseConnectionString;
ServerConnection connection = new ServerConnection(@"dbserver\sqlexpress", "user", "password");
Server smoServer = new Server(connection);
Restore rstDatabase = new Restore();
rstDatabase.Action = RestoreActionType.Database;
rstDatabase.Database = "AppDb";
BackupDeviceItem bkpDevice = new BackupDeviceItem(@"TestData\db-backup.bak", DeviceType.File);
rstDatabase.Devices.Add(bkpDevice);
rstDatabase.ReplaceDatabase = true;
// Kill all processes
smoServer.KillAllProcesses(rstDatabase.Database);
// Set single-user mode
Database db = smoServer.Databases[rstDatabase.Database];
db.DatabaseOptions.UserAccess = DatabaseUserAccess.Single;
db.Alter(TerminationClause.RollbackTransactionsImmediately);
rstDatabase.SqlRestore(smoServer);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行此方法时,我尝试杀死所有进程时收到以下(错误)消息:
无法使用KILL来杀死自己的进程.
如果有人能帮忙解决这个问题,我将非常感激.
我有一个简单的mongodb数据库.我正在使用mongodump倾销.
dump命令
mongodump --db user_profiles --out /data/dumps/user-profiles
Run Code Online (Sandbox Code Playgroud)
以下是user_profiles数据库的内容.它有一个集合(user_data),包含以下内容:
{ "_id" : ObjectId("555a882a722f2a009fc136e4"), "username" : "thor", "passwd" : "*1D28C7B35C0CD618178988146861D37C97883D37", "email" : "thor@avengers.com", "phone" : "4023331000" }
{ "_id" : ObjectId("555a882a722f2a009fc136e5"), "username" : "ironman", "passwd" : "*626AC8265C7D53693CB7478376CE1B4825DFF286", "email" : "tony@avengers.com", "phone" : "4023331001" }
{ "_id" : ObjectId("555a882a722f2a009fc136e6"), "username" : "hulk", "passwd" : "*CB375EA58EE918755D4EC717738DCA3494A3E668", "email" : "hulk@avengers.com", "phone" : "4023331002" }
{ "_id" : ObjectId("555a882a722f2a009fc136e7"), "username" : "captain_america", "passwd" : "*B43FA5F9280F393E7A8C57D20648E8E4DFE99BA0", "email" : "steve@avengers.com", "phone" : "4023331003" }
{ "_id" : ObjectId("555a882a722f2a009fc136e8"), …Run Code Online (Sandbox Code Playgroud) 我正在导入一个使用psql(PostgreSQL)9.5.10的数据库.对于我的本地数据库v.9.6.5.
这是有问题的部分:
COPY timezone (id, name, windowsname, tzindex) FROM stdin;
...
315 Canada/East-Saskatchewan \N \N
...
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 9024; 0 48454 TABLE DATA timezone skysms
pg_restore: [archiver (db)] COPY failed for table "timezone": ERROR: invalid value for parameter "TimeZone": "Canada/East-Saskatchewan"
CONTEXT: SQL statement "SET local timezone to 'Canada/East-Saskatchewan'"
PL/pgSQL function display_in_other_tz(timestamp with time zone,text,text) line 7 at EXECUTE statement
COPY timezone, line 315: "315 Canada/East-Saskatchewan \N \N"
RESTORE DATABASE Tes
FROM DISK = '{7522204E-0256-47B3-9864-137D6D1FD449}6'
WITH MOVE 'Test' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\Tes.mdf',
MOVE 'Test_log' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\Tes.ldf'
Run Code Online (Sandbox Code Playgroud)
上面的restore命令对于新数据库正常工作,但是很少有旧数据库显示错误,例如
无法覆盖文件“ C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ db1.mdf”。数据库“ windb”正在使用它。消息3156,级别16,状态4,行1文件'windb'无法还原到'C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ db1.mdf'。使用WITH MOVE标识文件的有效位置
我发现只有具有多个ndf文件的数据库才出现此问题。
这个问题有什么解决办法吗?
database-restore ×10
postgresql ×4
sql-server ×4
database ×2
.net ×1
android ×1
archiving ×1
bson ×1
c# ×1
json ×1
mongodb ×1
smo ×1
sqlite ×1
timezone ×1
wal ×1