数据迁移

高级开发不得不懂的Redis Cluster数据分片机制

匿名 (未验证) 提交于 2019-12-03 00:43:02
Redis 集群简介 Redis Cluster 是 Redis 的分布式解决方案,在 3.0 版本正式推出,有效地解决了 Redis 分布式方面的需求。 Redis Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。 如上图所示,该集群中包含 6 个 Redis 节点,3主3从,分别为M1,M2,M3,S1,S2,S3。除了主从 Redis 节点之间进行数据复制外,所有 Redis 节点之间采用 Gossip 协议进行通信,交换维护节点元数据信息。 一般来说,主 Redis 节点会处理 Clients 的读写操作,而从节点只处理读操作。 数据分片策略 分布式数据存储方案中最为重要的一点就是数据分片,也就是所谓的 Sharding。 为了使得集群能够水平扩展,首要解决的问题就是如何将整个数据集按照一定的规则分配到多个节点上,常用的数据分片的方法有:范围分片,哈希分片,一致性哈希算法和虚拟哈希槽等。 范围分片假设数据集是有序,将顺序相临近的数据放在一起,可以很好的支持遍历操作。范围分片的缺点是面对顺序写时,会存在热点。比如日志类型的写入,一般日志的顺序都是和时间相关的,时间是单调递增的,因此写入的热点永远在最后一个分片。

深入学习Redis(5):集群

匿名 (未验证) 提交于 2019-12-03 00:43:02
原文: 深入学习Redis(5):集群 前言 在前面的文章中,已经介绍了Redis的几种高可用技术:持久化、主从复制和哨兵,但这些方案仍有不足,其中最主要的问题是存储能力受单机限制,以及无法实现写操作的负载均衡。 Redis集群解决了上述问题,实现了较为完善的高可用方案。本文将详细介绍集群,主要内容包括: 集群的作用;集群的搭建方法及设计方案;集群的基本原理;客户端访问集群的方法;以及其他实践中需要的集群知识(集群扩容、故障转移、参数优化等) 。 系列文章 深入学习Redis(1):Redis内存模型 深入学习Redis(2):持久化 深入学习Redis(3):主从复制 深入学习Redis(4):哨兵 深入学习Redis(5):集群 Ŀ¼ 一、集群的作用 二、集群的搭建 1. 执行Redis命令搭建集群 2. 使用Ruby脚本搭建集群 3. 集群方案设计 三、集群的基本原理 1. 数据分区方案 2. 节点通信机制 3. 数据结构 4. 集群命令的实现 四、客户端访问集群 1. redis-cli 2. Smart客户端 五、实践须知 1. 集群伸缩 2. 故障转移 3. 集群的限制及应对方法 4. Hash Tag 5. 参数优化 6. redis-trib.rb 参考文献 一、集群的作用 集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。

gitlab 数据目录迁移

匿名 (未验证) 提交于 2019-12-03 00:15:02
mkdir -p /data/gitlabchown -R git:root /data/gitlab git_data_dirs({ "default" => { "path" => "/data/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } }) cp -R /var/opt/gitlab/gitlab-data /data/gitlab或mv /var/opt/gitlab/gitlab-data /data/gitlab gitlab-ctl reconfigure gitlab-ctl start # 启动所有 gitlab 组件; gitlab-ctl stop # 停止所有 gitlab 组件; gitlab-ctl restart # 重启所有 gitlab 组件; gitlab-ctl status # 查看服务状态; gitlab-ctl reconfigure # 启动服务; vim /etc/gitlab/gitlab.rb # 修改默认的配置文件; gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab; gitlab-ctl tail # 查看日志; 来源:博客园 作者:

Hbase 0.92.1集群数据迁移到新集群

匿名 (未验证) 提交于 2019-12-02 23:55:01
老集群 hbase(main):001:0> status 4 servers, 0 dead, 0.0000 average load hbase(main):002:0> list TABLE class_stats geocode_cache_ta_us stats_validation vendor_delta_poi_530_3048 vendor_source_poi_10066 vendor_source_poi_530 vendor_source_poi_history vendor_source_rf_10066 8 row(s) in 0.3020 seconds 迁移命令 hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=ec2d-newcntprocnn-01,ec2d-newcntprocdn-01,ec2d-newcntprocdn-02:2181:/hbase class_stats hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=ec2d-newcntprocnn-01,ec2d-newcntprocdn-01,ec2d-newcntprocdn-02:2181:/hbase geocode_cache

LVM 数据迁移

匿名 (未验证) 提交于 2019-12-02 23:42:01
当用作LVM的某磁盘需挪作他用时,我们需要把该磁盘上的数据迁移到其它磁盘 数据迁移有两种方式:1.手动选择迁移位置、2.不选择迁移位置 1.手动选择迁移位置 首先我们查看一下当前pv 空间 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb1 vg0 lvm2 a-- 96.00m 16.00m /dev/sdb2 vg0 lvm2 a-- 96.00m 96.00m /dev/sdb3 vg0 lvm2 a-- 96.00m 96.00m 我们可以看到sdb1剩余空间为16M,我们需要把sdb1 上的数据迁移到sdb3上 [root@localhost ~]# pvmove /dev/sdb1 /dev/sdb3 /dev/sdb1: Moved: 100.00% [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb1 vg0 lvm2 a-- 96.00m 96.00m /dev/sdb2 vg0 lvm2 a-- 96.00m 96.00m /dev/sdb3 vg0 lvm2 a-- 96.00m

pgloader 学习(一)支持的特性

匿名 (未验证) 提交于 2019-12-02 23:42:01
pgloader 是一个不错的多种格式数据同步到pg 的工具,pgloader 使用postrgresql 的copy 协议进行高效的数据同步处理 csv、fixed 列、dbase、sqlte、ibm ixf、postgresql、mysql、sql server 在加载数据之前可以进行数据调整,清理 可以加载需要字段 zip、tar、gzip 导入数据 支持http 请求数据的加载 加载数据的时候,pgloader 会考虑现有列,并尽可能的猜测csv 格式 在部分情况下,可能是需要完整数据的 pre post 可以方便的在数据加载之前,以及之后进行一些sql 操作,比如索引、表,权限的创建管理 对于迁移可能只需要进行schema 的迁移,也可能只进行数据的迁移 可以在迁移的时候进行数据类型的转换 可以在迁移的时候将view 转化为table 分发数据到citus pgloader 可以帮助做这样的事情 可以让我们的数据库迁移类似持续集成一样,可以增强我们迁移的信心 https://pgloader.readthedocs.io/en/latest/ https://github.com/dimitri/pgloader

hadoop跨集群之间迁移HDFS数据

匿名 (未验证) 提交于 2019-12-02 23:34:01
Hive跨集群迁移数据工作是会出现的事情, 其中涉及到数据迁移, metastore迁移, hive版本升级等。 1. 迁移hdfs数据至新集群 hadoop distcp -skipcrccheck -update hdfs://xxx.xxx.xxx.xxx:8020/user/risk hdfs://xxx.xxx.xxx.xxx:8020/user/ -skipcrccheck 因本次迁移涉及低版本迁移高版本, 如果Hadoop版本则不需要 -update 增量更新, 通过名称和大小比较,源与目标不同则更新 hadoop distcp /apps/hive/warehouse/userinfo hdfs://10.11.32.76:8020/apps/hive/warehouse/(我的环境操作) hadoop distcp -update /apps/hive/warehouse/ hdfs://10.11.32.76:8020/apps/hive/warehouse/ (差异复制) xxx.xxx.xxx.xxx这个位置最好使用IP地址,尽量不要使用主机名或集群名称,否则需要配置hosts文件解析 2. 源集群metastore数据备份导出(mysql导出) mysqldump -u root -p’密码’--skip-lock-tables -h xxx.xxx

4.alembic数据迁移工具

匿名 (未验证) 提交于 2019-12-02 22:51:30
alembic是用来做ORM模型与数据库的迁移与映射。alembic使用方式跟git有点类似,表现在两个方面,第一个,alemibi的所有命令都是以alembic开头; 第二,alembic的迁移文件也是通过版本进行控制的。安装方式: pip install alembic 1.1.alembic的使用 models.py from sqlalchemy import Column,Integer,String,create_engine from sqlalchemy.ext.declarative import declarative_base DB_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/alembic_demo?charset=utf8" engine = create_engine(DB_URI) Base = declarative_base(engine) class User(Base): __tablename__ = 'user' id = Column(Integer,primary_key=True,autoincrement=True) username = Column(String(50),nullable=False) (2)在cmd终端初始化,创建一个仓库 alembic init

oracle迁移到mysql方案之――ogg(goldengate)

匿名 (未验证) 提交于 2019-12-02 22:06:11
source源端 oracle 11.2.0.4 ogg12c ip:10.200.3.193 ϵͳcentos 7.1 1. 创建source表和一些初始化数据 su - oracle sqlplus / as sysdba SQL>alter database add supplemental log data; SQL>select supplemental_log_data_min from v$database; SQL>alter database forcelogging; SQL> select supplemental_log_data_min from v$database; NO SQL> alter database add supplemental log data; Database altered. SQL> alter system switch logfile; System altered. SQL> select supplemental_log_data_min from v$database; YES SQL> create tablespace ggs; Tablespace created. SQL> create user ggs identified by ggs default tablespace ggs; User

MySQL数据迁移到SQL Server

匿名 (未验证) 提交于 2019-12-02 22:02:20
数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持。 此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL Server Migration Assistant for MySQL 的使用. 从上面链接的官网下载安装. 需要注意的是你需要选择迁移到的SQL Server数据库的版本,目前支持:SQL Azure,SQL Server 2005,SQL Server2008,SQL Server 2012,SQL Server2014,根据实际需要选择你要迁移到目标数据库的版本。 上面的是源:MySql,下面的是目标:SQL Server 此报告会分析当前需要迁移的数据库中的所有表结构并会生成一个可行性报告 生成的报告如下:分析需要转换的对象,表,数据库有多少个,是否存在不可转换的对象等信息,如有检查错误会下下面输出 迁移分两步:1.转换数据库结构,2.迁移数据 否则转换的数据库结构是不会到目标数据库的 点击同步之后同样会有一个同步的报告: 点击ok之后就真正执行同步操作会将你转换完的结构同步到目标数据库上,创建对应的表及其他对象。同步操作完成之后会有如下输出: 我们可以看到右边有几个tab页,当前选中的是Type Map,会列出源数据库和目标数据库的字段类型的mapping关系