云服务器内容精选

  • 迁移准备 Flexus云数据库RDS支持开启公网访问功能,通过弹性公网IP进行访问。您也可以通过Flexus云服务器X实例的内网访问FlexusRDS。 准备Flexus云服务器X实例或可通过公网访问FlexusRDS实例的设备。 通过公网地址连接FlexusRDS实例,需要对实例绑定弹性公网IP。 在准备Flexus云服务器X实例或可访问FlexusRDS的设备上,安装和FlexusRDS相同版本的MySQL客户端。 MySQL客户端自带mysqldump和mysql工具。 MySQL系统库mysql和sys不支持导入到FlexusRDS。
  • 场景描述 图1 迁移场景 主要包括云上和云下的MySQL数据迁移,支持整库迁移或者单表迁移,本文以云下MySQL的整库迁移为例。 云下MySQL数据迁移: CDM 通过公网IP访问MySQL数据库,CDM与 GaussDB (DWS)在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。 云上RDS-MySQL数据迁移: RDS、CDM和GaussDB(DWS)均在同一个VPC下,CDM分别与MySQL和DWS建立JDBC连接。如果云上RDS与DWS不在一个VPC,则CDM通过弹性公网IP访问RDS。
  • 创建GaussDB(DWS)集群 参见创建集群进行创建,区域可选择“华北-北京四”。 确保GaussDB(DWS)集群与CDM集群在同一区域,同一个VPC下。 参见使用gsql客户端连接集群连接到集群。 创建迁移前数据检查的目标数据库test01和test02,确保与原MySQL的数据库同名,数据库编码一致。 1 2 create database test01 with encoding 'UTF-8' dbcompatibility 'mysql' template template0; create database test02 with encoding 'UTF-8' dbcompatibility 'mysql' template template0;
  • 迁移后数据一致性验证 使用gsql连接DWS的test01集群。 gsql -d test01 -h 数据库主机IP -p 8000 -U dbadmin -W 数据库用户密码 -r; 查询test01库的表。 1 select * from pg_tables where schemaname= 'public'; 图10 查询test01库的表 查询每个表的数据是否齐全,字段是否完整。 1 2 select count(*) from table name; \d+ table name; 图11 查询表字段 图12 查询表数据 抽样检查,验证表数据是否正确。 1 select * from persons where city = ‘Beijing' order by id_p; 图13 验证表数据 重复执行2~4查看其它库和表数据是否正确。
  • GaussDB(DWS)可以存储多少业务数据? 数据仓库 集群每个节点默认能够支持1.49TB、2.98TB、4.47TB、160GB、1.68TB、13.41TB六种规格的存储容量,一个集群支持的节点数范围为3~256,集群总的存储容量随集群规模等比例扩充。 为增强可靠性,每个节点都有一个副本,副本会占用一半的存储空间,选择容量时副本容量会自动翻倍存储。 数据仓库系统会备份数据,生成索引、临时缓存文件、运行日志等内容,并占用存储容量。每个节点实际存储的数据,大致为总存储容量的一半。 父主题: 数据迁移
  • 操作步骤 直接执行如下命令统计满足如下条件的行数。rowkey在从“row_start”到“row_stop”的范围,字段“f3:age”的值为“25”,rowkey的前两个字符为“mi”的行数。 hbase com.huawei.hadoop.hbase.tools.bulkload.RowCounter -Dcounter.rowkey.start="row_start" -Dcounter.rowkey.stop="row_stop" -Dcounter.qualifier="f3:age:25" -Dcounter.rowkey.value="substring(0,2) == 'mi'" table1 -Dcounter.rowkey.start="row_start":表示开始的rowkey为"row_start"。 -Dcounter.rowkey.stop="row_stop":表示结束的rowkey为"row_stop"。 -Dcounter.qualifier="f3:age:25":表示列族f3中列为age的列值为25。 -Dcounter.rowkey.value="substring(0,2) == 'mi'":表示rowkey的值中前两个为mi。 如果指定了“row_start”和“row_stop”,则统计的为大于等于“row_start”并且小于“row_stop”的数据。
  • 按自定义分隔符导入数据至HBase 将数据文件上传到客户端所在节点,例如上传名为“data.csv”的文件到客户端所在节点的“/opt/test”目录下,分隔符为“|^[”,文件内容如下所示: 以客户端安装用户,登录安装客户端的节点。 执行以下命令切换到客户端目录。 cd 客户端安装目录 执行以下命令配置环境变量。 source bigdata_env 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限和HDFS的操作权限: kinit 组件业务用户 如果当前集群未启用Kerberos认证,则执行以下命令设置Hadoop用户名: export HADOOP_USER_NAME=hbase 执行以下命令,把1的数据文件“data.csv”上传至HDFS目录,例如上传至“/tmp”目录: hdfs dfs -put /opt/test/data.csv /tmp 执行Phoenix客户端命令。 sqlline.py 执行以下命令创建TEST表: CREATE TABLE TEST ( ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR, AGE INTEGER, ADDRESS VARCHAR, GENDER BOOLEAN, A DECIMAL, B DECIMAL ) split on (1, 2, 3,4,5,6,7,8,9); 表创建成功后,执行!quit退出Phoenix命令行。 执行导入命令: hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '自定义分隔符' -t 表名 -i 数据路径 例如:导入数据文件“data.csv”到TEST表: hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '|^[' -t TEST -i /tmp/data.csv 执行以下命令,查看导入表TEST的数据: sqlline.py SELECT * FROM TEST LIMIT 10;
  • 逻辑架构 此处以使用Commvault备份本地单节点部署的SAP HANA为例,其逻辑架构如图1所示。 图1 逻辑架构 逻辑架构中各组件说明如表1所示: 表1 组件说明 Name 说明 iDataAgent (iDA) 备份客户端代理,Commvault备份软件的组成部分,部署在SAP HANA节点上,负责获取SAP HANA上需要备份的数据。 CommServe ( CS ) 备份服务器,Commvault备份软件的组成部分,部署在备份管理节点,负责全局备份策略的制定和备份业务的调度。 Media Agent (MA) 备份介质,Commvault备份软件的组成部分,部署在备份业务节点,负责直接将备份数据存储至OBS。 OBS 在备份场景下OBS负责存储备份数据,桶是OBS中存储数据的容器,最终数据都存储在OBS桶中。 一个CommCell是一个备份管理域 ,是软件的逻辑组合 ,包含获取数据 、传输数据 、管理数据和信息的所有软件组件。
  • 备份流程 安装和预配置备份软件 在备份SAP HANA场景下,需要安装和配置备份服务器(CommServe)、备份介质(MediaAgent)及SAP HANA备份客户端代理(iDataAgent)三个组件。 创建备份存储空间(OBS桶) 登录OBS控制台,创建一个桶,作为备份数据存储空间。详细创建桶操作请参见创建桶。 在CommCell Console上创建 云存储 库,输入OBS终端节点地址、访问密钥、桶名,用以将Commvault的备份介质(MediaAgent)与OBS关联。 CommCell Console是用于管理CommCell环境、监视和控制活动作业以及查看与活动相关的事件的图形用户界面。 制定Commvault备份策略 在Commcell Console上创建备份策略,指定数据备份的周期、时间以及加密方式等。 检查备份执行情况 备份策略执行期间,用户可以通过Commcell Console查看备份执行情况。 (可选)执行数据恢复 在SAP HANA源机上执行数据恢复。 Commvault的具体操作请参见Commvault官方文档。
  • 使用场景 传统的备份与恢复方案需要将备份数据写入磁带等存储设备,然后再运输至数据中心。在此过程中数据的安全及完整性依赖很多因素,比如硬件、人员等等。无论是从前期搭建数据中心还是后期的维护,都使得传统的备份与恢复方案面临着管理复杂、投入成本高的难题。 云存储定位于简单、安全、高效且低成本,使其成为磁带等传统存储设备的非常有吸引力的替代品。OBS即一种云存储服务,它提供海量、可弹性扩展的存储服务。OBS所有的业务、存储节点采用分布集群方式工作使得OBS的可扩展性更高。提供数据多份冗余、一致性检查等功能使得存储在OBS中的数据更加安全、可靠。OBS按照使用量付费,使得成本易于预测。 Commvault、爱数云备份服务(AnyBackup Cloud)等第三方备份软件,都支持对接OBS进行数据备份。通过这些备份软件,用户可以根据自身需求制定合适的备份策略,达到安全、高效的备份目的。
  • 操作步骤 进入金山云KS3对象存储控制台界面,单击左侧导航树存储空间。 在存储空间列表中,单击目标存储空间名称,打开该存储空间内容管理页面。 找到您需要解冻的文件,单击文件名或操作列的“详情”。 在文件详情页,单击“解冻”按钮, 单击“确定”。 解冻操作预计1分钟。 解冻状态默认持续24小时,最多可延长7天,到期后文件自动恢复归档状态。 您还可以通过调用Restore Object接口解冻归档对象,更多详情,请参见金山云对象存储Restore Object接口相关文档。 解冻完成后,请参考金山云KS3迁移至华为云OBS教程,将数据迁移到华为云OBS。
  • 时间宏变量和定时任务配合完成增量同步 这里列举两个简单的使用场景: 数据库表中存在表示时间的列DS,类型为“varchar(30)”,插入的时间格式类似于“2017-xx-xx”。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',这样就可以在每天的凌晨0点导出前一天产生的所有数据。 数据库表中存在表示时间的列time,类型为“Number”,插入的时间格式为时间戳。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为time between ${timestamp(-1,DAY)} and ${timestamp()},这样就可以在每天的凌晨0点导出前一天产生的所有数据。 其它的配置方式原理相同。
  • Where子句中的时间宏变量 以SQOOP.CDM_20171016表为例,该表中存在表示时间的列DS,如图2所示。 图2 表数据 假设当前时间为“2017-10-16”,要导出前一天的数据(即DS=‘2017-10-15’),则可以在创建作业时配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',即可将符合DS=‘2017-10-15’条件的数据导出。
  • timestamp timestamp支持两种形式的参数: timestamp() 返回当前时间的时间戳,即从1970年到现在的毫秒数,如1508078516286。 timestamp(dateOffset, dateType) 返回经过时间偏移后的时间戳,“dateOffset”和“dateType”表示日期的偏移量以及偏移量的类型。 例如当前日期为“2017-10-16 09:00:00”,则“timestamp(-10, MINUTE)”返回当前时间点10分钟前的时间戳,即“1508115000000”。
  • 路径和表名的时间宏变量 如图1所示,如果将: 源端的“表名”配置为“CDM_/${dateformat(yyyy-MM-dd)}”。 目的端的“写入目录”配置为“/opt/ttxx/${timestamp()}”。 经过宏定义转换,这个作业表示:将Oracle数据库的“SQOOP.CDM_20171016”表中数据,迁移到HDFS的“/opt/ttxx/1508115701746”目录中。 图1 源表名和写入目录配置为时间宏变量 目前也支持一个表名或路径名中有多个宏定义变量,例如“/opt/ttxx/${dateformat(yyyy-MM-dd)}/${timestamp()}”,经过转换后为“/opt/ttxx/2017-10-16/1508115701746”。