数据迁移 1、最好是先进行锁表操作,防止数据被写入,我这里由于使用的atlas,只要停掉该程序,就不会有数据写入。 1 mysql> flush tables with read lock 解锁用: 1 mysql> unlock tables; 2、将MySQL旧的数据目录里的数据拷贝到SSD目录 1 2 \cp -a /usr/local/mysql/data/* /mysql_data/data/ chown -R mysql.mysql data 3、配置文件里修改数据目录 1 datadir 03:29:37 15255 [ERROR] Failed to initialize the master info structure 找不到relay-bin.000471文件,原因是我们的数据目录指向了新的位置 master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=222; start slave; 如果问题依然出现,则需要看下数据目录中的
生产环境kafka集群,在数据量大的情况下,经常会出现单机各个磁盘间的占用不均匀情况。 目录间迁移步骤 假设我在server.properties文件中配置了多个日志存储路径(表示日志数据存储在多块磁盘),如下所示: # A comma seperated list of directories 查询这些数据目录,发现Kafka均匀地将 9 个分区分布在这三个路径上: > ll /data1/kafka-logs/ |grep test-topic drwxr-xr-x 6 kafka staff 需要将test-topic的6,7,8分区全部迁移到/data2路径下,并且把test-topic的1分区迁移到/data1下。 迁移结果 执行完成后,我们再次查看存储目录副本分布: > ll /data1/kafka-logs/ |grep test-topic drwxr-xr-x 6 kafka staff 192
注:一开始没有考虑到把gitlab划分好存储目录,占用系统磁盘,由于gitlab是默认安装的,随着公司代码越来越多,导致gitlab数据目录空间不足 磁盘空间: [root@gitlab ~]# df 设置存储仓库数据 默认情况下omnibus-gitlab 将仓库数据存储在 /var/opt/gitlab/git-data目录下,仓库存放在子目录 repositories里面。 1.2,如果 /var/opt/gitlab/git-data 目录已经存在Git仓库数据, 你可以用下面的命令把数据迁移到新的位置: # 准备迁移之前要停止GitLab服务,防止用户写入数据。 [root@gitlab ~]# gitlab-ctl start 设置存储仓库数据的备用目录 注意的是:自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置 , 来增加多个 git 数据存储目录。
数据目录迁移,是指的数据库所在的目录磁盘空间不足,需要更大的空间数据目录默认在/var/lib/mysql/show variables like "%datadir%"; 查询数据目录systemctl stop mysqld && systemctl status mysqld mkdir -pv /home/mysql_new 创建新目录chown -R mysql:mysql /home/mysql_new 授权yum install rsync rsync -av /var/lib/mysql /home/mysql_new 迁移在/etc/my.cnf中修改相应的配置文件,如datadir = /home
背景: 最近在Azure上自建原生k8s集群,然后很不稳定有时雪崩,日志一直报如下,网上查了很多资料说是etcd数据存储磁盘io影响etcd查查询慢。 request took too long with etcd 3.2.24 #70082 issue:https://github.com/kubernetes/kubernetes/issues/70082 迁移方法 : 1.关闭服务并拷贝数据库文件到新的目录下 [root@node1 ~]# systemctl stop etcd [root@node1 ~]# cp -ar /data/etcd/ /var/lib root@node1 ~]# ll /var/lib/etcd/ total 0 drwx------. 4 root root 29 Apr 28 05:54 member 2.修改etcd.env文件新数据目录
目的:为了解决 /var/lib/docker/overlay2 占用大 /var 分区空间不够问题 一、查看docker默认目录的方法 docker默认目录为/var/lib/docker,可以通过下面的方法查看 ]# docker info |grep "Docker Root Dir" Docker Root Dir: /var/lib/docker 二、停止docker服务并移动原有docker文件到新目录 四、重新加载配置启动服务 systemctl daemon-reload systemctl start docker.service 然后可以重复第一步确认结果,即完成迁移。 ---- 附其他几个相关命令 # 类似于Linux上的df命令,用于查看Docker的磁盘使用情况 docker system df # 用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling
对于 MySQL 数据库的强制访问控制策略通常是激活的,如果用户采用默认的配置,并不会感到强制访问控制策略对 MySQL 数据库的影响,一旦用户修改了 MySQL 数据库的默认配置,例如默认的数据目录或监听端口 mysql/mysql.socklog-error=/opt/mysql/log/mysqld.logpid-file=/opt/mysql/run/mysqld/mysqld.pid2.3 创建新的数据目录根据上一步的配置文件 :service mysqld stopservice mysqld start往数据库添加数据,查看是否切换到了新数据目录:图片或者在SQL 执行界面执行以下语句:show VARIABLES like 'datadir'图片三、小结MySQL 迁移数据目录其实很简单,只需要有对应的目录路径,并修改对应的配置信息即可。 Windows 系统的简便性远超Linux 系统,甚至在Windows 系统你还可以直接复制某一个数据库文件到数据目录中(相当于复制了一个数据库到指定的数据库系统中),这也是能生效的。
首先理解一个知识点, 未来目录(-future) : 我们在做跨目录数据迁移的时候,实际上会先再目标目录中创建一个新的分区目录,他的格式为: topic-partition.uniqueId-future , 具体是如果指定了dir,则创建的时候会使用指定的dir创建分区,否则的话,就会按照分区数量对各个目录排序,选择最少的那个创建。 跨目录迁移数据的时候,是从源目录读取分区副本的数据呢? 分区副本限流机制中, 在跨目录数据迁移的场景中, 会把这一部分的数据同步流量计算到 分区Leader限流的统计里面吗? 不会! 因为在跨目录数据迁移的场景中, 在判断 是否需要进行Leader层面的限流时候 shouldLeaderThrottle ,Quota限流传入的对象是 UnboundedQuota 意思是不进行限流。 而且 跨目录迁移本来就不是去Leader副本读取数据来同步的,所以也不存在Leader层面的限流 Follower 记录流量的地方在哪里?
如何跨目录迁移 为什么线上Kafka机器各个磁盘间的占用不均匀,经常出现“一边倒”的情形? 首先理解一个知识点, 未来目录(-future) : 我们在做跨目录数据迁移的时候,实际上会先再目标目录中创建一个新的分区目录,他的格式为: topic-partition.uniqueId-future , 具体是如果指定了dir,则创建的时候会使用指定的dir创建分区,否则的话,就会按照分区数量对各个目录排序,选择最少的那个创建。 跨目录迁移数据的时候,是从源目录读取分区副本的数据呢? 分区副本限流机制中, 在跨目录数据迁移的场景中, 会把这一部分的数据同步流量计算到 分区Leader限流的统计里面吗? 不会! 而且 跨目录迁移本来就不是去Leader副本读取数据来同步的,所以也不存在Leader层面的限流 Follower 记录流量的地方在哪里?
(如:/、/opt、/var等目录),CDH安装的安装目录默认是在/opt下,随着版本的升级和新组件的安装占用了大量的/opt目录空间,为了确保opt目录有足够的空间来存放CDH的安装包,需要将CDH的安装目录进行迁移 ,本篇文章Fayson主要介绍如何迁移CDH的安装目录/opt/cloudera。 2.CDH安装目录迁移 ---- 这里的迁移Fayson使用软链接的方式将CDH的安装目录/opt/cloudera迁移至/data/disk1目录下,具体操作如下: 1.首先将/opt/cloudera 目录mv到需要迁移的目录下 [root@cdh01 disk1]# cd /opt/ [root@cdh01 opt]# mv cloudera/ /data/disk1/ (可左右滑动) ? 如上操作就完成了CDH安装目录的迁移。 3.总结 ---- 1.在CDH安装目录迁移完成后需要重启cloudera-scm-agent服务 2.使用软链接的方式可以在不修改配置的情况下完成,更方便。
安装完Docker后,默认存储路径在/var/lib/docker目录,如果服务器挂载的硬盘不是根目录的话,可能会造成资源不够用。这时候就需要迁移docker默认的目录。 1.停止docker服务 systemctl stop docker 2.创建docker新目录 mkdir -p /data/docker/lib 3.安装迁移软件包 yum install rsync -y 4.开始迁移 rsync -avzP /var/lib/docker /data/docker/lib/ 5.修改docker配置文件docker.service vi /lib/systemd /docker/lib/docker 6.重启docker systemctl daemon-reload systemctl restart docker 7.确认docker没有问题,删除原目录
Docker安装后默认目录在/var/lib/docker,如果没有对该目录单独分区,会占用/分区空间,如果根分区占满将影响服务器正常使用,因此有必要将Docker目录迁移到非根分区目录下。 Docker目录迁移到其它分区 如果您Docker已经在跑了,使用之前也忘记规划分区,这时候就需要迁移数据了。 首先停用Docker服务: systemctl stop docker 将文件进行备份: mv /var/lib/docker /var/lib/docker_bak 迁移文件到其它分区,这里已经提前建了一个新的分区 /home/disk2,我们将数据迁移到这个分区: cd /home/disk2 cp -a /var/lib/docker_bak docker 创建软连接: ln -s /home/disk2/docker /var/lib/docker 最后重新启动Docker服务: systemctl start docker 测试没有问题后,即可将备份目录/var/lib/docker_bak进行删除。
前言 今天再次在MySQL WorkBench折腾,这个开源的数据库客户端老是读不出数据,以为是数据库权限的问题,服务端毕竟是Linux的,但是不是这问题,不过还是搞了。那只好记录记录一下! ---- 你没有看出标题,是一步就可以迁移MySQL数据库目录,但是使用环境是Ubuntu、基于apt-get安装。一步安装在篇章的最后。 说明 在 Ubuntu 下使用 sudo apt-get install mysql-server 安装的 MySQL 数据库,默认的数据目录是/var/lib/mysql。 ---- 原理步骤 现在希望将数据目录移到 /home/alic/data/mysql ,做法如下: 停止MySQL服务 sudo service mysql stop 迁移数据库文件 mv /var /usr.sbin.mysqld && \ sudo service apparmor restart && \ sudo service mysql restart && \ echo "MySQL数据库目录迁移完成
参考于网络各样教程 本次下载的docker for windows的版本为20.10.14,关于安装,安装时我选择了使用wsl替代hyper-v,所以这篇教程主要是记录wsl的迁移也符合标题! \\wsl$ 题外话:上图输入 \\wsl$ 即可看见,如果看不见则打开隐藏目录显示的选项来查看,这里可以直接打开wsl目录;但并不重要知道就行 接下来打开cmd-----》》使用win+r打开窗口输入 data\docker-desktop.tar 以上为大概的命令,后面的d盘路径看你情况自行定义,如果提示路径不存在则手动创建一下文件夹或者使用命令创建都是可以的,命令的大概意思是把运行的wsl系统的数据备份成 服务了 wsl --unregister docker-desktop wsl --unregister docker-desktop-data 输入之后就会显示注销之类的文字就算成功 然后我们来启动迁移后的数据
对项目重构时有这样一个需求,1)要把代码库某个目录下的所有代码作为一个新代码库的根目录,2)并且之前所有的代码提交记录要一并迁移到这个新的git repo。 YOUR_GIT_REPO_URL/myProject cd myProject 3) 拉取所有信息到本地 git fetch --all git pull --all 4)执行 filter-repo 命令,让某个子目录成为新 repo的根目录。 git filter-repo --subdirectory-filter The_SubDir_in_myProject 5) 在github/gitlab创建一个新repo,把这个repo设为这个子目录的 commits、branches、tags的信息已经被迁移过来了。
分片 假设我们有一个单机数据库,上面有三张表:用户表、商品表和订单表。 ? 无分片 业务刚起步的时候,数据量很少,这个只有三张表的数据库运行得很好。 ? 垂直分片 随着业务发展,用户数量、商品数量、订单数量都在持续增长,数据库的负载越来越高。我们开始对数据库进行垂直拆分(垂直分片),把这三张表拆到三个数据库,而业务代码改改数据库的配置就好。 ? 再后来,一个数据库也承载不了用户表的数据,需要对用户表进行水平拆分(水平分片)。比如,根据用户 ID 将数据哈希到 n 个数据库。 比如,如果 key 是单调递增的,那所有插入数据都会集中在最后一个分片。这个分片的数据插入速度会成为插入性能的瓶颈。单调递增的 key 在关系数据库领域是非常常见的。 对单副本的数据库来说,持久性的意思是数据被写入外存,比如 HDD 或 SSD。对多副本的数据库来说,持久性意味着数据以及成功复制到其它节点。
作者:吴国柱 文档编写目的 CDSW使用一段时间以后,Master节点的/var/lib/cdsw目录挂载的是单块磁盘没有做raid等数据备份而且已经运行时间长达两年,因此为规避磁盘低概率损坏造成数据丢失风险 ,现准备将该目录的数据进行迁移至做了raid且空间更大的磁盘中。 由于现有/var/lib/cdsw存储的数据量已经高达3T之巨,为了不影响业务需要在规定时间内(5小时)将数据进行迁移,需要选择一种快速的迁移手段进行迁移,本文将对linux现有的数据迁移同步工具rsync 服务不停止限速迁移 3.1 服务不停止数据迁移 这个过程由于有服务在使用(有作业在运行)因此为了不影响业务对该迁移进行限速最高速度不超过50M/s,测试步骤及结果如下: time rsync -ac - 服务已经停止 4.2 数据迁移 1.检查/var/lib/cdsw目录是否还有进程在操作。 lsof +D /var/lib/cdsw ? 该目录下已经没有进程在操作。
摘要 在上一篇中我们介绍了数据迁移的套路,但是没有介绍具体的方案,这篇着重介绍下具体的数据迁移方案 一. 设计目标 设计一个数据迁移的方案,需要实现以下目标 迁移速度 qps 需要达到1k,这样能保证1亿的数据能够在1~2天内跑完 迁移qps可控 迁移有可能对线上服务有影响,需要可动态调整qps 数据完整, 不丢失 不能遗漏数据,虽然事后我们有数据校验的过程,但是设计数据迁移方案时,需要尽可能的包装数据不丢失。 进度可控 迁移过程可中断,可重试。比如先迁移10分之一的数据,再继续来 二. 架构设计 数据迁移任务大致分为3个步骤,如下图所示 ? 因为有迁移速度的要求,我们将每个步骤进行分解,确保每个部分可以异步化,并发处理。这样可以提升速度。 遍历数据 完整遍历老的数据库。
以dedecms为例,用ftp将本地建好的文件传到网站上,重新生成文档出现了很多错误,相对路径要改,最重要的是系统配置参数的安装目录要放空,否则会提示错误。 ? dedecms网站迁移的正确方法: 1.首先登录织梦的后台,进入到“系统》数据库备份/还原”栏目。 ? 2.将备份好的数据文件传过去,备份文件一般是在织梦程序根目录下的data文件夹下的backupdata文件夹 3.将模板文件传过去 4.进入到“系统-》数据库备份/还原-》右上角数据还原-》左下角开始还原数据 ” 5.设置相应的系统配置文件,特别是开始所说的将安装目录设为空 6.生成html文件,全站更新。
---- 简介 虚拟机迁移主要分为两种:静态迁移和动态迁移 静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上。 动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS来实现。 -- 动态迁移 1、KVM虚拟机动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件(本例为“/home/kvm”目录),这里的动态迁移是基于共享存储动态迁移 2中 使用 sudo apt-get install nfs-common 安装client端 ---- 3、配置NFS服务器,IP为192.168.10.161,将NFS服务器上的“/mnt/vg”目录设为服务目录 首先使用命令“sudo mkdir /mnt/vg”创建该目录,然后使用命令“sudo chmod 777 /mnt/vg”修改该目录权限,接下来使用vim修改“/etc/exports”文件添加共享目录