小编syl*_*lye的帖子

mysqldump没有中断现场制作INSERT

我即将将生产数据库迁移到另一台服务器.它大约38GB,它正在使用MYISAM表.由于我没有物理访问新服务器文件系统,我们只能使用mysqldump.

我查看了这个网站,看看mysqldump在线备份是否会打倒我们的生产网站.从这篇文章:运行没有锁定表的MySQLDump,它说明显mysqldump将锁定数据库并防止插入.但经过几次测试后,我很想知道其他情况.

如果我使用

mysqldump -u root -ppassword --flush-logs testDB > /tmp/backup.sql
Run Code Online (Sandbox Code Playgroud)

mysqldump最终会默认执行' --lock-tables ',这是一个READ LOCAL锁(参考mysql 5.1 doc),其中并发插入仍然可用.我已经做了一个for循环,每秒插入一个表,而mysqldump需要一分钟才能完成.每一秒都会在此期间插入记录.这意味着,mysqldump不会中断生产服务器,INSERT仍然可以继续.

有没有人有不同的经历?我想在继续我的生产服务器之前确保这一点,所以很高兴知道我做错了什么让我的测试不正确.

[我的mysql-server版本是5.1.52,而mysqldump是10.13]

mysql mysqldump

10
推荐指数
1
解决办法
9012
查看次数

AWS boto3.session.Session() 和 boto3.Session() 之间的区别

我正在尝试使用 AWS python 库 boto3 创建会话。我发现我们也可以这样做

session = boto3.Session(profile_name='profile1')
Run Code Online (Sandbox Code Playgroud)

或者

session2 = boto3.session.Session(profile_name='profile2')
Run Code Online (Sandbox Code Playgroud)

我检查了他们的文档,它应该使用boto3.session.Session()

为什么两种方法都有效?它们背后的理念有何不同?

python aws-sdk boto3

4
推荐指数
1
解决办法
1477
查看次数

使用jq循环遍历json以获取多个值

这是volumes.json:

{
"Volumes": [
    {
        "AvailabilityZone": "us-east-1a",
        "Tags": [
            {
                "Value": "vol-rescue-system",
                "Key": "Name"
            }
        ],
        "VolumeId": "vol-00112233",
    },
    {
        "AvailabilityZone": "us-east-1a",
        "Tags": [
            {
                "Value": "vol-rescue-swap",
                "Key": "Name"
            }
        ],
        "VolumeId": "vol-00112234",
    },
    {
        "AvailabilityZone": "us-east-1a",
        "Tags": [
            {
                "Value": "vol-rescue-storage",
                "Key": "Name"
            }
        ],
        "VolumeId": "vol-00112235",
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我需要获取和的值,VolumeId并将Tags.Value其用作调用另一个命令的输入.从json数组中获取单个值很容易,但我无法从中提取多个值并将其传递给另一个bash命令.

我可以使用这个得到一个值:

cat volumes.json |jq -r '.Volumes[].VolumeId' |while read v; do another_bash_command $v; done
Run Code Online (Sandbox Code Playgroud)

但我无法获得多重值因为这是错误的:

 cat volumes.json |jq -r '.Volumes[].VolumeId, .Volumes[].Tags[].Value' |while read …
Run Code Online (Sandbox Code Playgroud)

arrays bash json jq

3
推荐指数
2
解决办法
7371
查看次数

标签 统计

arrays ×1

aws-sdk ×1

bash ×1

boto3 ×1

jq ×1

json ×1

mysql ×1

mysqldump ×1

python ×1