过去几年,我在多台 SQL Express 服务器(2008 至 2012 R2)上设置了Ola Hallengren 的 SQL Server 维护解决方案。我最近开始在所有新的网络备份组件上遇到问题。过去我曾在几台服务器上使用过它,所以我知道它可以工作,但我不知道是什么阻止了它现在工作。作为一个兴趣点,我不是 DBA,对 SQL 几乎一无所知,这就是我来这里的原因。
问题
特别是在一台服务器上,我大约在一年半前制定了维护计划。它使用 UNC 路径(和其他几个命令)每晚备份到另一台本地服务器。该脚本的代码如下:
sqlcmd -E -S SERVER\INSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = '\\techstore1.domain.local\Backups', @BackupType = 'FULL', @Verify = 'Y', @CheckSum = 'Y', @CleanupTime = 14" -b
Run Code Online (Sandbox Code Playgroud)
这在很长一段时间内运行良好,但大约一个月前停止工作。我将它设置为本地备份,然后添加一个字符串将其 xcopy 到远程位置,并在远程服务器上添加一个脚本来清理旧备份。不理想。
我尝试在命令行中以我自己和超级权限帐户的身份运行它。这是我在所有情况下收到的错误:
Msg 50000, Level 16, State 1, Server SERVER\INSTANCE, Procedure DatabaseBackup, Line 384
The directory \\techstore1.domain.local\Backups does not exist.
Msg 50000, Level 16, State 1, Server …Run Code Online (Sandbox Code Playgroud) 我很难在 Apache Cassandra(3.0.9 版)上恢复快照。据我所知,我正在遵循 datastax 博客上描述的程序以及其他几个程序(例如:http ://datascale.io/cloning-cassandra-clusters-fast-way/ )。然而我可能会遗漏一些东西,每次我进行恢复时,数据都会丢失。
设置: 6 节点集群(1 个 DC,3 个机架,每个机架有 2 个节点),复制因子设置为 3。机器托管在 AWS 上。
备份程序(在每个节点上):
nodetool snapshot mykeyspacecqlsh -e 'DESCRIBE KEYSPACE mykeyspace' > /tmp/mykeyspace.cqlnodetool ring | grep "$(ifconfig | awk '/inet /{print $2}' | head -1)" | awk '{print $NF ","}' | xargs > /tmp/tokens 我获取由 nodetool snapshot 命令生成的文件,并将它们与 S3 上的令牌和 cql 一起备份。
恢复过程(对于每个节点,除非指定):
(在创建新虚拟机之后)
/var/lib/cassandra/commitlog/*和/var/lib/cassandra/system/cassandra.yamlmykeyspace.cql一个节点恢复 mykeyspace我们最近开始使用 Yandex ClickHouse 作为我们的数据后端,我正在研究如何最好地备份我们的数据。似乎有两种方法可以做到这一点。
ALTER TABLE ...冻结分区
该ALTER TABLE ... FREEZE PARTITION命令似乎只是创建一个分区的本地快照。我必须编写一个脚本来发现每个表中的所有分区,然后发出适当的命令。
为了从系统中获取备份,我认为我必须shadow在每台服务器上创建目录的备份,并将该备份存储在另一个位置(如 S3 或其他位置)。
我如何保持shadow目录干净?可以删除冻结吗?
数据转储
我见过的另一种备份数据的方法是简单地将其转储到文件中,正如本页所建议的那样。
https://github.com/resure/scpnet/wiki/ClickHouse-backup
我必须编写一个脚本来发现每个数据库中的所有表,并将所有数据转储到一个文件中。这让我想起了很多使用 mysqldump 来备份 MySQL 中的数据库,但无法在一个命令中转储所有内容。
就我个人而言,我倾向于这个解决方案,因为我似乎更容易编写和维护脚本,但我真的很想知道其他人在做什么。
由于我们的备份策略依赖于 RDS Postgresql 手动备份,因此我们遇到了在创建快照期间 RDS 实例(单可用区)可能停机的问题。根据 AWS:
在单可用区数据库实例上创建此数据库快照会导致短暂的 I/O 暂停,可能会持续几秒到几分钟,具体取决于数据库实例的大小和类别。
这并不清楚我们如何确定数据库实例 I/O 在快照期间是否正常运行,就好像数据库在短时间内关闭一样,我们希望停止相应的 Web 服务器或将其从负载均衡器以确保客户端不会发生连接中断。
让我们非常疑惑的是:
数据库在快照期间真的有停机时间吗,AWS 只是说“I/O 暂停”和“延迟”?我在某处读到停机时间仅在快照初始化期间持续很短时间(从几秒钟到几分钟),我们是否可以知道停机时间是否已经过去并且数据库实例已准备好提供服务(同时其快照仍在创建中)?
处理这些 IO 暂停的一般最佳做法是什么?似乎即使使用自动备份也会发生这种情况,这是否意味着在进行数据库快照创建时站点每天可能会停机?
high-availability snapshot amazon-web-services database-backup amazon-rds
是否可以创建一个 MySQL 存储过程,该过程可以执行给定的插入或更新,然后还可以连接到第二台服务器并运行相同的命令?我想基本上调用一台服务器并实时将其备份到第二台服务器。除非您有一个或两个方便的链接或其他解决方案,否则只需一个 yah 或 ney 就足够了。
感谢您的时间。亚伦
有没有办法知道数据库备份来自哪个版本的 Microsoft SQL Server 而无需恢复它?
希望你过得很好。
我们在 centos 服务器上安装了 postgres,并从 Ubuntu 机器通过 DBeaver 访问它。
每当我们尝试备份数据库时,都会出现错误“未指定本机客户端进行连接”。
我做了搜索,解决方案就像“哪个 postgres-> 并将其结果放入其中”
我不确定这一点,我们需要在 ubuntu 机器上安装 psql 客户端吗?
请帮忙
我需要检查一些旧数据。我需要将昨晚的数据与今天的数据进行比较。
我将使用 SQL Data Compare 来执行此操作,但我需要设置一个新的数据库来恢复备份,以便我可以将其与现有数据库进行比较。
我的问题是,如果我有 4-5 天前的完整备份,以及此后直到今天的每一天的 .dif,我是否需要直到我想要恢复的时间点为止的所有 .dif,或者是否需要 .dif那天就够了吗?我想我需要最新的 .bak 作为新数据库的基础?
我使用 rsync 在本地设备上备份我的远程服务器,但是当我将它与 cron 作业结合使用时,我的 ssh 超时了。需要明确的是,数据存储在远程服务器上,我希望它存储在我的本地服务器上。备份请求必须从我的本地服务器发送到远程服务器。
当我像这样在终端中输入数据时,备份数据的命令正在工作:
rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
Run Code Online (Sandbox Code Playgroud)
但是当我将它与这样的 cron 工作结合起来时:
10 11 * * * rsync -chavzP --stats USERNAME@IP_ADDRESS: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
Run Code Online (Sandbox Code Playgroud)
ssh 连接超时。当 cronjob 执行时,它会向 root 用户发送一封邮件,输出如下:
From local.xx.xx.xx Tue Jul 2 11:20:17 2013
X-Original-To: username
Delivered-To: username@username.local
From: username@username.local (Cron Daemon)
To: username@username.local
Subject: Cron <username@server> rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=username>
X-Cron-Env: <USER=username>
X-Cron-Env: <HOME=/Users/username>
Date: Tue, 2 Jul 2013 11:20:17 +0200 (CEST)
ssh: connect …Run Code Online (Sandbox Code Playgroud) 我最近一直在尝试制定一个有效的数据库备份加密方案。
我有一个 Postgres 9.4 服务器,我认为我已经充实了大部分备份方案。备份将存储在标准的 .sql 文件中,gzipped 然后通过 AES-CBC 和 OpenSSL 运行。
我唯一遇到麻烦的部分是钥匙。我不想使用单个主密钥,我想要某种密钥轮换或生成。所有备份(或至少大多数)都有不同的密钥,但也有我可以在需要时轻松找到/生成和使用的密钥。我在谷歌上看过,但找不到任何明确的解决方案。
我也愿意评估完全不同的加密解决方案,我与 AES-CBC/OpenSSL 无关。
任何解决方案将不胜感激。
谢谢。
database-backup ×10
backup ×4
database ×2
postgresql ×2
sql-server ×2
amazon-rds ×1
cassandra ×1
centos ×1
centos5 ×1
data-loss ×1
encryption ×1
federated ×1
linux ×1
mysql ×1
restore ×1
rsync ×1
scripting ×1
snapshot ×1
ubuntu ×1