我有一个带.SQL扩展名的转储文件(实际上它是一个纯文本的SQL文件).我想将其恢复到我创建的数据库中.我正在使用pgAdmin III,当我使用它的"还原向导"时,它不会突出显示"恢复"按钮.相反,它期待.backup文件扩展名.
我尝试使用shell命令来恢复转储,但它仍然无法正常工作.
我是新手.如果有人可以帮助我,我将被迫.
我坐在newTestDB时使用了以下命令到PostGres的Shell SQL窗格.
newTestDB-# \i E:\db-rbl-restore-20120511_Dump-20120514.sql
Run Code Online (Sandbox Code Playgroud)
它仍然给出了相同的错误("权限被拒绝").
提升权限后,它只显示PostgreSQL的默认表:
List of tablespaces
Name | Owner | Location
-----------+----------+----------
pg_default | postgres |
pg_global | postgres |
(2 rows)
Run Code Online (Sandbox Code Playgroud)
我不知道如何从SQL文件导入/恢复数据库.
我们最近将一些数据移植到MongoDB,现在正在考虑运行每日备份,最好是从cron作业,并将其中一个备份恢复到辅助mongo数据库.
我们的系统设置如下:
有三个服务器:服务器1有开发mongo数据库,服务器2有两个mongo数据库,一个用于登台数据,一个用于生产,第三个服务器是我们运行所有cron作业/批处理脚本的地方.
我检查了mongo文档,并登录到我们的cron作业服务器并尝试运行以下命令:(为了安全性,我更改了用户名,主机和密码,我实际上并没有连接到localhost)
mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
星期一10月7日10:03:42开始新副本集监视器副本集127.0.0.1与种子开发:27017
星期一10月7日10:03:42成功连接到种子开发:27017 for replica set 127.0.0.1
Mon Oct 7 10 :03:42警告:节点:开发:27017不是set的一部分:127.0.0.1 ismaster:{ismaster:true,maxBsonObjectSize:16777216,ok:1.0}
Mon Oct 7 10:03:44 replica set monitor for replica设置127.0.0.1开始,地址是127.0.0.1/
星期一10月7日10:03:44 [ReplicaSetMonitorWatcher]启动无法连接到[127.0.0.1/development:27017]连接失败设置127.0.0.1/development:27017
我确认我可以使用连接到mongo数据库 mongo -u -p ip/development
我们的最终目标是从生产数据库转储数据并将其存储在临时数据库中.这两个数据库都位于同一个框中,如果这有所不同,但出于测试目的,我只是试图获得开发测试数据的备份.
我正在寻找一个开源的全英文字典,其中包括某种数据库格式的单词类型(即:形容词,过去时态等),无论是SQL还是可以轻松解析并变成sql的东西.
知道在哪里可以找到这样的东西吗?
我正在尝试使用以下命令将数据库转储到本地系统中:
pg_restore --host=localhost --port=5432 --dbname=dev_db --no-owner --no-privileges db_dump_new.backup
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
pg_restore: [archiver] input file is too short (read 0, expected 5)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我知道要采取数据库转储我可以忽略一些表.但我想把所有表的转储与一些百分比的数据,如20%40%,因为整个转储太大了.这是我的普通转储查询.
mysqldump -h dburl -u user -p password --databases dbname > dbname.sql
Run Code Online (Sandbox Code Playgroud)
我不是在寻找特定的操作系统和使用Linux Ubuntu.
我有一个Postgres转储文件,我需要将其转换为MySQL转储,以便我可以创建匹配的MySQL数据库.我是Postgres的新手,我把它安装在我的Ubuntu服务器上,我将看看是否可以导入和导出某种类型的SQL.我不知道该怎么做.
这是我试过的命令:
pg_dump -Fc --no-acl --no-owner -h localhost -U dbuser testdb > b526.dump
Run Code Online (Sandbox Code Playgroud)
这不是错误,但我认为没有发生任何事情:
testdb=# \dt;
No relations found.
testdb=# \d
No relations found.
testdb=# \t
Showing only tuples.
testdb=# \d
Run Code Online (Sandbox Code Playgroud)
此外,我希望有一个更简单的方法将此.dump转换为MySQL转储.
我有一个 MySQL 数据库,其中包含大约 50 个表和每个表中的数千条记录。如何创建包含所有表且每个表只有 10 条记录的数据库转储?
我可以转储一个heroku数据库$ heroku pgbackups:capture.此外,此SO帖子显示有一些工具可用于获取开发数据库并将其转储到seed.rb.
我想知道是否有一种简单的方法来组合这两个过程,有效地将数据从生产Heroku数据库转储到我的本地seeds.rb中,以进行更真实的开发测试.
如果可以的话,最干净的方法是什么?
更新:
根据dB'的深刻回答,我可能会考虑在本地使用PGSQL.但是,我仍然对问题的seed.rb方面感兴趣,如果有办法轻松地做到这一点.
我有一个脚本,pg_dump失败时显示如下消息:
pg_dump -h db1 --format plain --encoding UTF8 --schema=public --schema-only --no-owner me
pg_dump: [archiver (db)] query failed: ERROR: permission denied for relation notmytable
pg_dump: [archiver (db)] query was: LOCK TABLE public.notmytable IN ACCESS SHARE MODE
Run Code Online (Sandbox Code Playgroud)
这导致整个转储中止。
有没有一种方法可以:
我真的不希望这些表出现在转储中,因此即使我们可以访问它们,也无法完全解决问题。
(Postgres 9.6.3)
database-dump ×10
database ×4
postgresql ×4
mysql ×3
mongodb ×2
dictionary ×1
dump ×1
heroku ×1
pg-dump ×1
pg-restore ×1
phpmyadmin ×1
seeding ×1
sql ×1