我在本地计算机上创建了一个数据库,然后执行了一个名为tables.baktable 的备份DataLabTables.
我将该备份移动到没有该表的远程计算机并尝试进行还原但出现以下错误:
System.Data.SqlClient.SqlError:在'c:\ Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables上尝试'RestoreContainer :: ValidateTargetForCreation'时,操作系统返回错误'5(访问被拒绝.)'密度纤维板".
如果这是问题,我如何修复我的权利?
有没有办法使用postgres在数据库中创建单个表的备份?如何?这也适用于pg_dump命令吗?
下面是我用来备份(创建.bak)我的数据库的查询.
但是,每当我运行它时,我总是收到此错误消息:
消息3201,级别16,状态1,行1
无法打开备份设备'C:\ Users\Me\Desktop\Backup\MyDB.Bak'.操作系统错误5(访问被拒绝.).消息3013,级别16,状态1,行1
BACKUP DATABASE异常终止.
这是我的查询:
BACKUP DATABASE AcinsoftDB
TO DISK = 'C:\Users\Me\Desktop\Backup\MyDB.Bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDB';
Run Code Online (Sandbox Code Playgroud)
提前致谢.
是否可以从物理数据库文件中恢复MySQL数据库.我有一个具有以下文件类型的目录:
client.frm
client.MYD
client.MYI
但是还有大约20张桌子.
我通常使用mysqldump或类似工具来获取1个SQL文件中的所有内容,那么处理这些类型文件的方法是什么?
我正在尝试使用pg_dump工具转储Postgresql数据库.
$ pg_dump books > books.out
Run Code Online (Sandbox Code Playgroud)
我怎么会得到这个错误.
pg_dump: server version: 9.2.1; pg_dump version: 9.1.6
pg_dump: aborting because of server version mismatch
Run Code Online (Sandbox Code Playgroud)
该--ignore-version选项现已弃用,即使有效,也不会解决我的问题.
如何升级pg_dump来解决此问题?
我一直在使用这个Docker-image tutum/wordpress来演示一个Wordpress网站.最近我发现图像使用了MySQL数据的卷.
所以问题是:如果我想备份和恢复容器,我可以尝试提交图像,然后删除容器,并从提交的图像创建一个新容器.但是,如果我这样做,卷将被删除,我的所有数据都将消失.
必须有一些简单的方法来备份我的容器及其卷数据,但我无法在任何地方找到它.
我正在编写一个shell脚本(将成为一个cronjob),它将:
1:转储我的生产数据库
2:将转储导入我的开发数据库
在步骤1和2之间,我需要清除开发数据库(删除所有表?).如何从shell脚本中最好地完成?到目前为止,它看起来像这样:
#!/bin/bash
time=`date '+%Y'-'%m'-'%d'`
# 1. export(dump) the current production database
pg_dump -U production_db_name > /backup/dir/backup-${time}.sql
# missing step: drop all tables from development database so it can be re-populated
# 2. load the backup into the development database
psql -U development_db_name < backup/dir/backup-${time}.sql
Run Code Online (Sandbox Code Playgroud) 我正在尝试备份/恢复PostgreSQL数据库,如Docker网站上所述,但数据未恢复.
数据库映像使用的卷是:
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
Run Code Online (Sandbox Code Playgroud)
而且CMD是:
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]
Run Code Online (Sandbox Code Playgroud)
我用这个命令创建数据库容器:
docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME"
Run Code Online (Sandbox Code Playgroud)
然后我连接另一个容器来手动插入一些数据:
docker run -it --rm --link "$DB_CONTAINER_NAME":db "$DB_IMAGE_NAME" sh -c 'exec bash'
psql -d test -h $DB_PORT_5432_TCP_ADDR
# insert some data in the db
<CTRL-D>
<CTRL-D>
Run Code Online (Sandbox Code Playgroud)
然后创建tar存档:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /etc/postgresql /var/log/postgresql /var/lib/postgresql
Run Code Online (Sandbox Code Playgroud)
现在我删除用于db的容器并创建另一个具有相同名称的容器,并尝试恢复之前插入的数据:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
Run Code Online (Sandbox Code Playgroud)
但表是空的,为什么数据没有正确恢复?
好吧,这里的问题很简单.我正在编写一个简单的备份代码.它工作正常,除非文件中有空格.这就是我找到文件并将它们添加到tar存档的方式:
find . -type f | xargs tar -czvf backup.tar.gz
Run Code Online (Sandbox Code Playgroud)
问题是当文件在名称中有空格时,因为tar认为它是一个文件夹.基本上有一种方法可以在find的结果周围添加引号吗?或者以不同的方式解决这个问题?