我想保留所有MySQL数据库的备份.我有超过100个MySQL数据库.我想同时导出所有这些,并再次将所有这些导入我的MySQL服务器.我怎样才能做到这一点?
如何使用MySQL Workbench进行数据库备份?我们可以通过以下方式进行备份 -
我使用该命令为Postgres数据库转储了一个干净的,没有所有者备份
pg_dump sample_database -O -c -U
后来,当我用数据库恢复时
psql -d sample_database -U app_name
但是,我遇到了一些错误,导致我无法恢复数据:
ERROR: must be owner of extension plpgsql
ERROR: must be owner of schema public
ERROR: schema "public" already exists
ERROR: must be owner of schema public
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
Run Code Online (Sandbox Code Playgroud)
我深入研究了纯文本SQL pg_dump生成,发现它包含SQL
CREATE SCHEMA public;
COMMENT ON SCHEMA public IS 'standard public schema';
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
Run Code Online (Sandbox Code Playgroud)
我认为原因是用户 …
我有一个名为dump的MySQL用户,其中包含以下权限:
GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'
Run Code Online (Sandbox Code Playgroud)
我想使用dump用户转储所有数据(包含的触发器和过程).我用以下方式调用mysqldump:
mysqldump -u dump -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
除了触发器之外,转储文件一切正常,它们都丢失了 !!
如果我使用root MySQL用户尝试mysqldump,则会正确转储触发器:
mysqldump -u root -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
所以,我想这是一个perms问题... 我的转储 MySQL用户正确执行完全转储所需的额外资金是多少?
我在不同服务器上的数据库上进行备份,并且具有与我需要的不同的角色,使用以下命令:
pg_dump -Fc db_name -f db_name.dump
Run Code Online (Sandbox Code Playgroud)
然后我将备份复制到我需要还原数据库的另一台服务器,但是没有这样的所有者用于该数据库.假设数据库拥有所有者owner1,但在不同的服务器上我只有owner2,我需要恢复该数据库并更改所有者.
我在恢复时在另一台服务器上做了什么:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Run Code Online (Sandbox Code Playgroud)
但是当运行恢复时,我会收到以下错误:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Run Code Online (Sandbox Code Playgroud)
如何指定它以便更改所有者?还是不可能?
我有一个.bak文件,我想使用此文件在全新安装的SQL Server 2008 Management Studio中重新创建数据库.
有人能指出我如何做到这一点的正确方向?
我试过了:
右键单击object explorer中的Databases容器
从上下文菜单中选择Restore database
将"数据库"指定为新数据库或现有数据库
从设备指定要还原的源
选择备份媒体作为文件
单击"添加"按钮,然后浏览到BAK文件的位置
但我得到的错误
服务器'MyServer-PC'的恢复失败.(Microsoft.SqlServer.SmoExtended)
附加信息:
System.Data.SqlClient.SqlError:备份集包含现有"invent"数据库以外的数据库的备份.(Microsoft.SqlServer.Smo)
sql-server database-restore database-backups sql-server-2008
我已经备份了一个我在运行SQL Server 2012 Express Edition的其他机器上创建的数据库,我想在我的机器上恢复它,运行相同的机器.我勾选了复选框覆盖现有的复选框,并收到此错误:
Backup mediaset is not complete. Files: D:\question.bak. Family count:2. Missing family sequence number:1
Run Code Online (Sandbox Code Playgroud) backup database-backups sql-server-2012 sql-server-2012-express
有没有办法简单地使用SQL备份.bak文件,并将其用作还原以在Azure SQL数据库上生成新数据库?
我在这种情况下通常建议使用的向导想要创建一个要使用的自定义文件,但它会对加密对象(函数和视图)产生影响,而我看不到另一种方法来实现它.
我有一个使用Postgres数据库的Django应用程序.我需要能够备份和恢复数据库,以确保没有数据丢失,并且能够在测试期间将数据从生产服务器复制到开发服务器.
似乎有几种不同的方法可以做到这一点:
只需直接与db交互.因此,对于Postgres,我可能会使用pg_dumpall和编写脚本psql.
使用Django 附带的sqlclear/ sqlall命令.
使用Django 附带的dumpdata/ loaddata命令.因此,从要备份的db创建新的fixture,然后将它们加载到要还原的db中.
使用Django插件,如django-dbbackup.
我真的不明白这些不同技术的优点/缺点.
刚刚开始:选项1是特定于数据库的,选项3似乎更适合设置初始数据.但我仍然不确定选项4对选项2的优势.
我想使用此代码备份数据库
sqlcmd -S servername -Q "BACKUP DATABASE [DBName] TO DISK = 'C:\backup.bak'"
Run Code Online (Sandbox Code Playgroud)
有用.但是,如果备份文件已存在,则数据将附加到文件而不是替换文件.每次我调用BACKUP DATABASE文件变大.
有BACKUP DATABASE强制替换的选择吗?
database-backups ×10
database ×4
mysql ×3
sql-server ×3
backup ×2
postgresql ×2
azure ×1
django ×1
grant ×1
mysql-backup ×1
mysqldump ×1
owner ×1