AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-5325

Mike Purcell's questions

Martin Hope
Mike Purcell
Asked: 2016-07-22 10:40:59 +0800 CST

MySQL 备份——完全备份与增量备份——innobackupex

  • 0

因此,我正在为我们的项目实施备份策略,并遇到了一些我需要绝对澄清的文本,误报是 IT 的致命伤。

我希望执行您的典型备份策略,即每周完整备份和每日增量备份。这是问题所在:

根据文档,在进行完整备份时,您必须“准备”它,即运行所有未提交的事务等。您可以使用 innobackupex --apply-log /path/to/BACKUP-DIR 命令准备备份.

但是根据这些文档,如果您进行增量备份,则必须使用 innobackupex --apply-log --redo-only BASE-DIR 命令以不同的方式“准备”它。

我的计划是编写一个 cronjob 以在周日凌晨 12:01 进行完整备份,并在凌晨 12:01 在 M-Sa 上进行增量备份。所以我的问题是,cronjob 是否应该使用 --redo-only 标志准备每个备份,以确保完整备份可以与后续增量备份合并?

mysql backup
  • 1 个回答
  • 476 Views
Martin Hope
Mike Purcell
Asked: 2014-12-11 10:06:01 +0800 CST

SELECT INTO OUTFILE 与 INSERT INTO ... SELECT

  • 6

在我粗略的研究中,我无法找到关于SELECT INTO OUTFILE提供的好处的明确答案INSERT INTO ... SELECT。在阅读与InnoDB 表上有关锁相关的文档时,它指出:INSERT INTO ... SELECT

对插入到 T 的每一行设置一个不带间隙锁的独占索引记录。如果事务隔离级别为 READ COMMITTED 或启用了 innodb_locks_unsafe_for_binlog,并且事务隔离级别不是 SERIALIZABLE,则 InnoDB 将 S 上的搜索作为一致读取(no锁)。否则,InnoDB 在 S 中的行上设置共享的 next-key 锁。

为了避免锁定INSERT INTO ... SELECT似乎我必须确保隔离级别是READ COMMITTED避免在查询期间锁定源表。

但是,我还没有找到任何关于 locks 和 usingSELECT INTO OUTFILE的权威答案,甚至没有 MySQL文档参考 lock 信息。

我的目标是避免在查询运行时锁定源表以避免连接堆叠。

mysql innodb
  • 1 个回答
  • 4942 Views
Martin Hope
Mike Purcell
Asked: 2014-10-20 14:42:08 +0800 CST

HA - MySQL Master Master 复制 - 重复条目错误

  • 2

我在两个 master 上运行 Percona MySQL 5.5.39,keepalived 监控一个 VIP,如果主 master 变暗,它将故障转移到备用 master。在实验室中测试我的设置的容错性时,我注意到我在两个主机上都得到了重复的密钥条目。

基本上我运行 siege 来模拟用户负载,持续 5 分钟,在这段时间内我关闭了主主机,在大约 10 秒后让 keepalived 检测到中断,VIP 切换到备用主机,此时一切正在按预期工作。然后大约一分钟后,当 siege 仍在运行时,我打开主 master 电源,当它在线时,它假定为 VIP。

我认为在交换 VIP 期间会出现重复条目​​问题。我按照这篇文章解释了如何实现“崩溃恢复”复制,但是在实现了建议的 my.cnf 更改并重新运行用户模拟之后,我最终得到了同样的损坏复制。

备用主机还可以将其索引增加 2 而不是 1,以避免与主主机发生冲突,但我觉得这更像是一种破解而不是解决方案。

有没有更好的方法来避免 HA 环境中的主键冲突?

mysql high-availability
  • 3 个回答
  • 1617 Views
Martin Hope
Mike Purcell
Asked: 2014-08-14 14:06:27 +0800 CST

MySQL Replication - Master Master - Single Master write

  • 2

我希望提高我们对持久存储的容错能力。在阅读了几个关于如何设置 master <> master replication 的在线文档之后,我仍然想请教专家关于设置的顺序,以确保我不会错过任何重要的事情。

我们的设置将是一个 master <> master,但是,一次只能写入一个 master。这将通过“浮动 ip”来控制,如果主要 master 发生故障,可以将其设置为指向次要 master。

  1. 使用单个 write master <> master 设置,我不需要担心设置auto_increment_offset是否正确?

  2. 默认情况下,MySQL 是否复制所有数据库,或者我是否需要通过明确标识它们binlog-do-db?

  3. 在开始复制之前,我是否需要从 master1 导出并导入到 master2,或者我是否可以启动 master 2 来获取过去几个月的所有交易?

  4. 明确一点,我需要在 master1 和 master2 上设置一个“复制器”用户(具有复制权限)?

--更新 8.15.2014 --

这是我初始设置时遵循的指南


为了回答问题 #2,我做了以下事情:

请注意,我有一个performance_schema表,这是因为我使用的是 Percona MySQL。根据 Rolando 的编辑,如果您想复制所有数据库,则不需要以下内容,但是我离开这里是为了后代,以向其他人展示他们如何指定多个数据库,如果他们不想全部导出的话。

binlog_do_db = information_schema
binlog_do_db = mysql
binlog_do_db = performance_schema
binlog_do_db = example_blog
binlog_do_db = example_core
binlog_do_db = example_log

为了回答问题 #3,我最终通过发出以下命令创建了 Master1 的快照:

mysqldump -h localhost -p -u root --opt --all-databases --single-transaction --master-data  > /tmp/example_snapshot_`date +%Y_%m_%d__%H_%M_%S`.sql

注意--master-data参数,根据 mysql 文档,这允许我们创建快照而无需创建新会话和处理表锁定。.sql但是它确实在生成的文件中添加了一行:

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000029', MASTER_LOG_POS=107;

我删除了这一行 b/c 我想在每个主机上手动影响此更改。


很高兴地报告复制似乎正在工作。谢谢罗兰多!

mysql replication
  • 1 个回答
  • 527 Views
Martin Hope
Mike Purcell
Asked: 2014-04-09 14:27:27 +0800 CST

MySQL - 基于复制的系统中最好的长读查询解决方案

  • 1

我正在从事一个项目,在该项目中,队列中的工作需要针对异构表模式 (InnoDB/MyISAM) 进行数据库读取。在“读取”过程中构造的查询可能会导致 10-15 分钟的执行时间,并且它们将并行运行,比如一次 10-15 个,但它们每个都相互排斥并且不知道任何同级进程。

问题

  • 停止复制,发出读取查询,然后重新启动复制是否更好?如果是这样,如果复制突然重新打开(由同级进程),当前正在运行的读取查询会发生什么情况?
  • 允许同时读取查询和复制处理是否安全?
mysql replication
  • 1 个回答
  • 1051 Views
Martin Hope
Mike Purcell
Asked: 2013-10-25 13:08:53 +0800 CST

MySQL - 向低基数文本列添加索引?

  • 3

我正在处理将枚举列转换为文本列的项目(我无法更改)。该列的基数很低(7 个唯一值)。我会通过添加 10-15 char 索引来提高性能,还是基数足够低,索引会导致收益递减?

mysql performance
  • 2 个回答
  • 3887 Views
Martin Hope
Mike Purcell
Asked: 2013-07-19 10:58:13 +0800 CST

CREATE INDEX 与 ALTER TABLE ADD INDEX - MySQLism 还是 SQL Standard?

  • 31

刚刚遇到一个奇怪的问题,根据我创建索引的方式,需要一个索引名称。

http://dev.mysql.com/doc/refman/5.5/en/create-index.html

http://dev.mysql.com/doc/refman/5.5/en/alter-table.html

CREATE INDEX `random_name` ON `my_table` (`my_column`); # Requires an index name

ALTER TABLE `my_table` ADD INDEX (`my_column`); # Does not require an index name

在我看来, CREATE INDEX 调用不应该要求索引名称。我想知道这是 MySQL 主义还是 SQL 标准?

mysql index
  • 2 个回答
  • 73276 Views
Martin Hope
Mike Purcell
Asked: 2012-07-11 13:33:07 +0800 CST

MySQL - 插入...选择...联合

  • 2

我遇到了一个相当复杂的查询的问题,我需要将一个表中的 ID(基于繁重的标准)存储到一个狭窄的备用表中以供将来参考,但我一直遇到错误的 sql 构造错误。

如果我自己运行以下查询,它可以正常工作:

(SELECT DISTINCT a.id FROM accounts AS a
WHERE a.createdate >= date_sub(now(), INTERVAL 1 YEAR)
AND a.email NOT LIKE '%gmail.com')
UNION DISTINCT
(SELECT DISTINCT a.id FROM accounts AS a
WHERE a.createdate < date_sub(now(), INTERVAL 1 YEAR)
AND a.email NOT LIKE '%yahoo.com') AND a.email NOT IN
(SELECT email FROM inactive_clients));

但是,如果我尝试像这样运行相同的查询:

INSERT INTO my_backup_table (account_id) VALUES ($aboveQuery);

我收到以下错误:

MySQL server version for the right syntax to use near 'UNION DISTINCT (SELECT DISTINCT a.id FROM accounts at line 1

我尝试了任意数量的括号排列,但仍然收到相同的错误。

mysql insert
  • 2 个回答
  • 15056 Views
Martin Hope
Mike Purcell
Asked: 2012-06-26 12:43:22 +0800 CST

MySQL - SELECT INTO OUTFILE,带有 UNION

  • 2

是否可以发出多个选择查询,其结果集通过联合组合到同一个输出文件中?

我正在尝试做的,但没有工作:

(SELECT email FROM table WHERE createdate >= date_sub(now(), interval 1 year))
UNION DISTINCT
(SELECT email FROM table WHERE createdate < date_sub(now(), interval 1 year) AND email not like '%@gmail.com')
INTO OUTFILE '/tmp/emailDump.txt' FIELDS TERMINATED BY "," LINES TERMINATED BY "\n";
mysql union
  • 1 个回答
  • 8711 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve