小编Rol*_*DBA的帖子

XtraBackup 和 rsync 有什么区别?

是的,我将在他们两个上运行 strace ......但是,我想知道......

  • XtraBackup 在 rsync -ac src dest 之上做了什么?
  • XtraBbackup 有什么特别之处?
  • XtraBackup 如何与 mysqld 交互?

mysql backup percona

11
推荐指数
1
解决办法
5693
查看次数

如何在 mysql 5.0 中查找对表的依赖关系?

我试图在 MySQL 中删除一个表,但它抱怨“无法删除或更新父行:外键约束失败”......

问题

  • 有没有办法找出所有表依赖项和依赖它的对象?
  • 对于 Sybase,DBArtisan 提供了一种非常简单的方法来查找依赖项。MySQL有没有这样的工具?

mysql mysql-5.0

11
推荐指数
1
解决办法
2万
查看次数

MySQL dump restore - 如何保留注释

所以我有那个复杂的 MySQL 转储作为备份。不幸的是,备份很复杂,我们使用了邪恶的触发器。

我们的一些邪恶触发器有一个以 # 字符开头的注释行。

当我备份数据库时,生成的转储会保存 # 行。问题是当我进行恢复时。以# 开头的行被替换为空行。

所以我正在寻找一种方法来恢复以英镑开头的行的转储。

mysql mysqldump backup

11
推荐指数
1
解决办法
7146
查看次数

CREATE TABLE AS SELECT 时 MySQL 锁定

我正在运行以下(虚拟)查询

CREATE TABLE large_temp_table AS 
    SELECT a.*, b.*, c.* 
    FROM a
    LEFT JOIN b ON a.foo = b.foo
    LEFT JOIN c ON a.bar = c.bar
Run Code Online (Sandbox Code Playgroud)

假设查询运行需要 10 分钟。在运行时尝试更新表 a、b 或 c 中的值将等待上述查询首先完成。我想避免这个锁(不关心数据一致性)。我怎样才能做到这一点?

使用:MySQL 5.1.41 和 InnoDB 表

ps 设置事务隔离级别读取未提交;不会改变行为

更新 在执行查询时,显示 ENGINE INNODB STATUS 的输出如下(我特意在这里做了一个非常慢的查询)

=====================================
120323 15:26:29 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 8 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 1470, signal count 1468
Mutex spin waits 0, rounds 7525, …
Run Code Online (Sandbox Code Playgroud)

mysql locking ctas

11
推荐指数
1
解决办法
8026
查看次数

优化问题:复合聚簇键、标志条件和索引合并

三张表:

product:与列: ( a, g, ...a_lot_more... )

a: PK, clustered
g: bit-column
Run Code Online (Sandbox Code Playgroud)

main:与列: ( c, f, a, b, ...a_lot_more... )

c: PK, clustered
f: bit-column
(a, b): UQ 
Run Code Online (Sandbox Code Playgroud)

lookup 带列: ( a, b, c, i )

(a, b): PK, clustered
a: FK to product(a)
c: UQ, FK to main(c)
i: bit-column
Run Code Online (Sandbox Code Playgroud)

我找不到合适的连接索引:

FROM  
    product
  JOIN 
    lookup
      ON  lookup.a = product.a  
  JOIN
    main
      ON  main.c = lookup.c 
WHERE 
      product.g = 1
  AND
      main.f = 1
  AND 
      lookup.i = 1 …
Run Code Online (Sandbox Code Playgroud)

mysql optimization mysql-5.5

11
推荐指数
1
解决办法
229
查看次数

如何通过linux终端创建mysql存储过程

在 mysql 控制台中,我们将使用 delimiter 命令来更改分隔符,这对定义过程很有用。我 delimiter只了解 mysql 客户端的命令(客户端命令)。

但我使用不具有该命令的MySQL客户端delimiter 一样dbslayer,对这种客户我该怎么定义程序。

现在考虑:

create procedure test_pro()
begin
select 'hello pro';
end
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

mysql -u root -pmypass  test < proc_file
Run Code Online (Sandbox Code Playgroud)

其中 proc_file 包含上述过程;

但这给了我以下错误:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Run Code Online (Sandbox Code Playgroud)

事件我尝试了以下

 create procedure test_pro()
    begin
    select 'hello pro';
    end;
Run Code Online (Sandbox Code Playgroud)

(添加了尾随分号)但我得到了同样的错误。 …

mysql stored-procedures

11
推荐指数
2
解决办法
4万
查看次数

在 IPv6 地址上拒绝 Postgres 连接访问

在 Windows 上安装了 PostgreSQL 9.1 x64,设置了一个监听地址,但是在与 pgAdmin 连接时出现以下错误。不知道为什么 PostgreSQL 看到的是我的 IPv6 地址而不是我的常规 IP 地址:

在此处输入图片说明

为了让身份验证工作,根据错误消息,我更新pg_hba.conf了这个:

host all all fe80::c5d2:XXXX:XXXX:3bc0/12 trust

那行得通,但它很丑陋,而且太具体了。我根据 PostgreSQL 文档尝试了以下操作,但没有成功,我收到相同的“访问被拒绝”错误:

local all all trust
host all all 0.0.0.0/12 trust
Run Code Online (Sandbox Code Playgroud)

我让这个工作了,它涵盖了整个 IPv6 地址空间,但是如何指定 IPv6 范围以获得更多限制?

host  mydb  myuser  ::/0   trust
Run Code Online (Sandbox Code Playgroud)

问题

  • 为什么 pgAdmin 选择我的 IPv6 地址而不是我的普通 IP?
  • 如何在不诉诸于 IPv6 的情况下指定范围::/0

postgresql authentication postgresql-9.1

11
推荐指数
1
解决办法
2万
查看次数

SQL 代理 - PowerShell 步骤“语法错误”

我在未运行的 SQL 代理作业步骤中设置了以下代码。收到的消息很简单:

无法开始执行第 1 步(原因:第(46)行:语法错误)。步骤失败。

工作的持续时间是: 00:00:00

此脚本的第 46 行是here-string


    ,@DriveLetter = '$($c.DriveLetter)'
Run Code Online (Sandbox Code Playgroud)

此脚本在 SQL Server 代理之外完美运行。

服务器名称表:


CREATE TABLE ServerTable (
ServerName varchar(50)
)
Run Code Online (Sandbox Code Playgroud)

磁盘空间表类似于:


CREATE TABLE DiskSpace (
ID int IDENTITY(1,1),
ServerName varchar(50),
DriveLetter varchar(2),
DiskSpaceCapacityGB decimal(12,5),
DiskSpaceFreeGB decimal(12,5)
)
Run Code Online (Sandbox Code Playgroud)

PowerShell 脚本:


This command is to allow SQL Agent job to show failure in event PowerShell script errors
Default behavior in SQL Agent for PowerShell steps it 'Continue'
$erroractionpreference = "Stop"

$sqlInstance = 'server1' $sqlDatabase …

Run Code Online (Sandbox Code Playgroud)

powershell sql-server-2012 windows-server

11
推荐指数
1
解决办法
7367
查看次数

MySqlDump 的 DISABLE KEYS 对导入没有影响

我对我之前关于 Inno-Tables 的导入速度的问题进行了跟进(惊喜!)。

场景
我尝试在合理的时间内在我的本地开发机器上导入一些大* 数据库转储。我们有很多KEY附加到表的s 已经证明是一个瓶颈,但对我们的实时系统仍然很重要。

在提出上述问题后,我的方法是KEY ...从转储、导入和重新添加密钥中删除语句。

但是,我经常发现自己编辑当前转储以将其导入到本地,并且偶然发现了这些有趣的“评论”(disable/enable keys-lines)

--
-- Dumping data for table `monster`
--

LOCK TABLES `monster` WRITE;
/*!40000 ALTER TABLE `monster` DISABLE KEYS */;
INSERT … INSERT … INSERT
/*!40000 ALTER TABLE `monster` ENABLE KEYS */;
UNLOCK TABLES;
Run Code Online (Sandbox Code Playgroud)

但实际上这些“注释”是有条件的 MySql-Statements

这对我来说是新闻,但好吧,考虑到输出形式mysql --version,我觉得一切都很好: mysql Ver 14.14 Distrib 5.5.38, for debian-linux-gnu (x86_64) using readline 6.3

我的假设
表已锁定(很好,只有我在开发机器上)。然后禁用表模式中定义的键,导入数据,启用键。
因此,在“数据插入”阶段,不应将时间浪费在键上,而是在插入所有数据后进行检查。

我会认为这与我KEY 'foo' (foo)'从转储中删除所有 - …

mysql innodb mysqldump index backup

11
推荐指数
1
解决办法
2万
查看次数

使用 SQL CLR 的安全或性能风险

在 SQL Server 中使用 CLR 是否存在任何特定的安全或性能风险?

performance security sql-server sql-clr

11
推荐指数
2
解决办法
7996
查看次数