数据迁移

Redis分布式集群几点说道

北慕城南 提交于 2019-11-28 23:07:30
Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,大部分都是采用分片技术,保证单实例内存增大带来的一系列问题,下面所列出的codis方案目前正在不断测试过程中,测试过程没有展示出来,主要从以下几点出发。 测试架构 和性能 :   1、keepalived+haproxy故障测试   2、Zookeeper集群节点测试   3、Codis-proxy集群节点测试   4、Codis-server集群节点测试   5、脚本写入大量测试数据并模拟数据迁移   6、性能测试 下面具体介绍codis和其他几大集群方案 集群方案:   1、 主从高可用(该方案就是单实例形式,只是为了保证数据的安全,对于用户数据少,业务的前期可以采用,目前我司缓存架构就是采用该方案)   2、 客户端分片(典型代表:Jedis。自主写分片算法,代码掌握在自己手中,可控性强,但是需要专业的开发运维人员维护,技术要求和维护成本高)   3、代理分片(典型代表:Twemproxy,redis集群没有正式推出之前官网推荐的方案,也是目前使用最多的)   4、 Redis cluster(3版本推出的集群方案,历时四年之多的开发)   5、 Codis集群(豌豆荚15年开源的解决方案

替换OSD操作的优化与分析

萝らか妹 提交于 2019-11-28 21:51:34
http://www.zphj1987.com/2016/09/19/%E6%9B%BF%E6%8D%A2OSD%E6%93%8D%E4%BD%9C%E7%9A%84%E4%BC%98%E5%8C%96%E4%B8%8E%E5%88%86%E6%9E%90/ 前言 之前有写过一篇 删除OSD的正确方式 ,里面只是简单的讲了下删除的方式怎样能减少迁移量,本篇属于一个扩展,讲述了 Ceph 运维当中经常出现的坏盘提换盘的步骤的优化 基础环境两台主机每台主机8个 OSD,一共 16 个 OSD,副本设置为2,PG 数设置为800,计算下来平均每个 OSD 上的 P G数目为100个,本篇将通过数据来分析不同的处理方法的差别 开始测试前先把环境设置为 noout ,然后通过停止 OSD 来模拟 OSD 出现了异常,之后进行不同处理方法 测试三种方法 首先 out 一个 OSD,然后剔除 OSD,然后增加 OSD 停止指定 OSD 进程 out 指定 OSD crush remove 指定 OSD 增加一个新的 OSD 一般生产环境会设置为 noout ,当然不设置也可以,那就交给程序去控制节点的 out,默认是在进程停止后的五分钟,总之这个地方如果有 out 触发,不管是人为触发,还是自动触发数据流是一定的,我们这里为了便于测试,使用的是人为触发,上面提到的预制环境就是设置的 noout

Sqoop 数据迁移工具

眉间皱痕 提交于 2019-11-28 19:49:05
Sqoop 数据迁移工具 sqoop : SQL to hadOOP 两个功能: 1、 RDB 向HDFS导入 2、 HDFS向RDB导入 注:拷贝mysql-connector.jar 和 json.jar 到sqoop/lib目录下 HDFS导入使用 命令很长,一般写成shell脚本。(运行需要启动 HDFS 、Yarn[mapreduce作业必须]、SQL) COLUMN 、WHERE限定 sqoop import \ #import指从sql导入到hdfs --connect jdbc:mysql://localhost:3306/test \ # 可选 --driver com.mysql.jdbc.Driver #test是目标数据库名 --table customers \ #目标表名 --columns "fname,lname" \ #可以使用columns指定字段 --where "order_date>'2019-1-1'" \ #可以使用where筛选原数据 --username root \ #数据库登陆用户名 --password rw \ #密码 --target-dir /sqoop/test_rdb/customers \ #hdfs 的目标路径,不指定的话会放在/user/【username】/【tbl_name】下 --delete

Oracle迁移到MySQL方案之——ogg(goldengate)

家住魔仙堡 提交于 2019-11-28 17:09:30
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

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

Deadly 提交于 2019-11-28 13:20:39
老集群 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

理解ConcurrentHashMap源码

社会主义新天地 提交于 2019-11-28 11:24:36
ConcurrentHashMap源码分析 其实ConcurrentHashMap我自己已经看过很多遍了,但是今天在面试阿里的时候自己在描述ConcurrentHashMap发现自己根本讲不清楚什么是ConcurrentHashMap,以及里面是怎么实现的,搞的我突然发现自己什么都不懂,所以我想要再次的来分析一下这个源码,完全理解ConcurrentHashMap,而不是以为自己懂了,实际上自己不懂。 首先我们看一下put方法,put方法会调用到putVal方法上面。 final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerException(); int hash = spread(key.hashCode()); //如果put进去的是个链表,这个参数表示链表的大小 int binCount = 0; for (Node<K,V>[] tab = table;;) { Node<K,V> f; int n, i, fh; if (tab == null || (n = tab.length) == 0) //初始化链表 tab = initTable(); //如果这个槽位没有数据 else if ((f =

云图说|华为云数据库在线迁移大揭秘

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-28 06:06:17
传统模式下,数据迁移面临诸多挑战和风险,技术门槛高,耗时长,成本高。 更头疼的是需要长时间中断业务,企业损失大。 华为云推出数据复制服务DRS,在线迁移功能,可以有效避免传统场景下数据迁移带来的各种复杂问题,快速有效地实现业务中断最小化的数据迁移。 到底它是如何实现在线迁移,并且保证数据“零”丢失? 下面通过“云图说”来一起揭秘: 点击“ 了解更多 ”,数据复制服务 DRS 等着您! 来源: CSDN 作者: 华为云 链接: https://blog.csdn.net/devcloud/article/details/103034601

Linux Centos 迁移Mysql 数据位置

丶灬走出姿态 提交于 2019-11-28 01:29:06
Linux Centos 迁移Mysql 数据位置 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like '%dir%'; datadir 就是数据路径 转移操作 新建 mysql 数据目录 mkdir /data/mysqlData 停止mysql服务 service mysqld stop 输入密码, 等待停止 把 /var/lib/mysql 整个目录复制到 /data/mysqlData cp -rf /var/lib/mysql /data/mysqlData/ 修改 my.cnf 文件 cp /etc/my.cnf /etc/my.cnf.bak vim /etc/my.cnf 文件内容如下, 需要修改 datadir , socket 对应的目录 [mysqld] default-character-set=utf8 #datadir=/var/lib/mysql datadir=/data/mysqlData/mysql #### #socket=/var/lib/mysql/mysql.sock socket=/var/lib/mysql

php artisan migrate数据迁移报错

雨燕双飞 提交于 2019-11-28 00:33:27
laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。 当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误: D:\project\pro\lar-test>php artisan migrate Migration table created successfully. In Connection.php line 664: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table ` users` add unique `users_email_unique`(`email`)) In Connection.php line 458: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes 解决办法,可以在

【Linux】宝塔上 GitLab数据迁移修改配置后nginx无法启动

六眼飞鱼酱① 提交于 2019-11-27 22:16:58
背景: 服务器A 向 服务器B 迁移数据,修改配置重启。发现gitlab的 nginx 无法启动。 查找原因 gitlab-ctl tail 错误信息: 网上查了查,似乎是宝塔的问题, 原因应该是为了防止nginx冲突, 把gitlab的nginx启动文件名改成了gitlab-web, 但有个配置文件没改造成的 解决办法:   修改nginx启动文件 vi /opt/gitlab/sv/nginx/run 把 exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx 改为 exec chpst -P /opt/gitlab/embedded/sbin/gitlab-web -p /var/opt/gitlab/nginx 重启 gitlab 的 nginx 服务,启动成功,问题解决 来源: https://www.cnblogs.com/richerdyoung/p/11380203.html