华为云用户手册
-
操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持10个标签配额。 用户可在创建数据库评估或对象迁移项目时添加标签,也可在项目创建成功后再添加标签。
-
字符集和兼容性设置 连接上源数据库,执行以下SQL语句查询源库Schema的字符集类型。 Oracle SELECT valueFROM nls_database_parametersWHERE parameter = 'NLS_CHARACTERSET'; MySQL #databaseName为要查询的Schema名称SELECT default_character_set_name FROM information_schema.schemata WHERE SCHEMA_NAME = databaseName; 查看字符集兼容规则参见表1到表3,在目标数据库创建兼容的数据库。 CREATE DATABASE DATABASENAME ENCODING 'UTF8' DBCOMPATIBILITY = 'B' ; “UTF8”根据字符兼容规则设置不同的字符集。 DBCOMPATIBILITY参数为兼容性设置,详情参见 GaussDB 如何创建不同兼容类型数据库。
-
SQL审核 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置300多条审核规则,覆盖DML、DDL、PL/SQL等各类SQL的深度审核,且支持规则内风险级别、阈值及建议内容的调整,和规则间的自由组合创建定制化审核模板。支持GaussDB、MySQL和PostgreSQL三种数据库的审核,可通过单语句、批量代码文件上传(自动提取SQL)、直连数据库,共3种方式接入SQL进行审核,深度看护代码,避免烂SQL流入生产环境。 语句审核 数据库审核 规则管理
-
PostgreSQL To GaussDB 数据类型转换说明 源数据库数据类型 转换后数据类型 相关的转换配置 SMALLINT SMALLINT - INTEGER INTEGER - BIGINT BIGINT - INTEGER INTEGER - REAL REAL - DOUBLE PRECISION DOUBLE PRECISION - NUMERIC NUMERIC - CHARACTER VARYING CHARACTER VARYING 字符数据类型转换 选择配置项的值为“扩展字符数据类型char/varchar长度。”,可与DRS转换后在GaussDB 存储等价。 CHARACTER CHARACTER 字符数据类型转换 选择配置项的值为“扩展字符数据类型char/varchar长度。”,可与DRS转换后在GaussDB 存储等价。 BIT BIT - BIT VARYING BIT VARYING - BOOLEAN BOOLEAN - BYTEA BYTEA - TEXT TEXT - TIME WITHOUT TIME ZONE TIME WITHOUT TIME ZONE - TIME WITH TIME ZONE TIME WITH TIME ZONE - TIMESTAMP WITHOUT TIME ZONE TIMESTAMP WITHOUT TIME ZONE - TIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE - INTERVAL INTERVAL - CIDR CIDR - PATH PATH - BOX BOX - LSEG LSEG - MACADDR MACADDR - POINT POINT - POLYGON POLYGON - INET INET - TSQUERY TSQUERY - TSVECTOR TSVECTOR - UUID UUID - JSON JSON - JSONB JSONB - 父主题: 数据类型转换说明
-
MySQL To GaussDB数据类型转换说明 源数据库数据类型 转换后数据类型(GaussDB V2.0-8.0 以前版本) 转换后数据类型(GaussDB V2.0-8.0 及其以后版本) 相关的转换配置 CHAR CHAR CHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度”,可与DRS转换后在GaussDB 存储等价。 VARCHAR VARCHAR VARCHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度。”,可与DRS转换后在GaussDB 存储等价。 BINARY BYTEA BYTEA - VARBINARY BYTEA BYTEA - TINYBLOB BYTEA TINYBLOB - BLOB BLOB BLOB BLOB类型转换 选择配置项的值为“BLOB类型保持不变”,可与DRS转换后在GaussDB 存储等价。 MEDIUMBLOB BYTEA MEDIUMBLOB - LONGBLOB BYTEA LONGBLOB LONGBLOB类型转换 选择配置项的值为“迁移脚本,将LONGBLOB类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 TINYTEXT TEXT TINYTEXT - TEXT TEXT TEXT TEXT数据类型转换 选择配置项的值为“不转换,保留TEXT数据类型,并注释长度”,可与DRS转换后在GaussDB 存储等价。 MEDIUMTEXT TEXT MEDIUMTEXT - LONGTEXT CLOB LONGTEXT LONGTEXT类型转换 选择配置项的值为“迁移脚本,将LONGTEXT类型转换为CLOB类型。”,可与DRS转换后在GaussDB 存储等价。 ENUM VARCHAR VARCHAR - SET SET SET - TINYINT SMALLINT TINYINT TINYINT类型转换 选择配置项的值为“转换TINYINT类型。”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 SMALLINT SMALLINT SMALLINT 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 MEDIUMINT INTEGER MEDIUMINT 有符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 INT INT INT - BIGINT BIGINT BIGINT - FLOAT FLOAT4 FLOAT FLOAT类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DOUBLE DOUBLE PRECISION DOUBLE DOUBLE类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DATE DATE DATE - DATETIME TIMESTAMP DATETIME - TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP - TIME TIME TIME - BIT BIT BIT - JSON JSONB JSONB json数据类型转换 选择配置项的值为“不转换,保留JSON数据类型。”,可与DRS转换后在GaussDB 存储等价。 YEAR SMALLINT SMALLINT 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DECIMAL DECIMAL DECIMAL - NUMERIC NUMERIC NUMERIC - 父主题: 数据类型转换说明
-
Microsoft SQL Server To GaussDB配置项使用说明 源数据库数据类型 转换后数据类型 相关的转换配置 TINYINT TINYINT - SMALLINT SMALLINT - INT INT - BIGINT BIGINT - DECIMAL DECIMAL - NUMERIC NUMERIC - FLOAT FLOAT - REAL REAL - SMALLMONEY numeric(10, 4) - MONEY numeric(19, 4) - BIT BOOLEAN bit类型转换 选择配置项的值为“将bit类型转换为boolean类型。”,可与DRS转换后在GaussDB 存储等价。 DATE DATE - SMALLDATETIME SMALLDATETIME - DATETIME TIMESTAMP(3) - DATETIME2(n) TIMESTAMP(n) - DATETIMEOFFSET(n) TIMESTAMPTZ(n) datetimeoffset类型转换 选择配置项的值为“将datetimeoffset类型转换为timestamptz类型“ ,可与DRS转换后在GaussDB 存储等价。 TIME(p) TIME(p) - TIMESTAMP BYTEA - XML XML xml类型转换 选择配置项的值为“将XML类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 CHAR(n) CHAR(n) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR(n) VARCHAR(n) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 varchar(max) TEXT VARCHAR(MAX)类型转换 选择配置项的值为“将VARCHAR(MAX)类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 NCHAR(n) NCHAR(n) 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NVARCHAR(n) NVARCHAR2(n) - NVARCHAR(max) TEXT NVARCHAR(MAX)类型转换 选择配置项的值为“将NVARCHAR(MAX)类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 BINARY(n) BYTEA - VARBINARY(n) BYTEA - VARBINARY(MAX) BYTEA VARBINARY(MAX)类型转换 选择配置项的值为“将VARBINARY(MAX)类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 IMAGE BYTEA IMAGE类型转换 选择配置项的值为“将IMAGE类型转换为BYTEA类型”,可与DRS转换后在GaussDB 存储等价。 HIERARCHYID BYTEA HIERARCHYID类型转换 选择配置项的值为“将HIERARCHYID类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 NTEXT TEXT NTEXT类型转换 选择配置项的值为“将NTEXT类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 TEXT TEXT TEXT类型转换 选择配置项的值为“将TEXT类型转换为TEXT类型。”,可与DRS转换后在GaussDB 存储等价。 UNIQUEIDENTIFIER UUID - 父主题: 数据类型转换说明
-
兼容模式检查 目标库为GaussDB时,会进行GaussDB兼容模式的检查。不同源数据库适配程度最高的兼容模式有所不同,如果目标数据库使用的兼容模式与推荐使用的不一致,则将提示风险。GaussDB兼容模式设置,请参考表1。 表1 兼容模式对应情况说明 源数据库 GaussDB兼容模式 MySQL、GoldenDB MySQL兼容模式。 其他 Oracle兼容模式。 MySQL兼容模式包括集中式B兼容模式、M兼容模式、以及分布式MYSQL兼容模式,Oracle兼容模式包括集中式A兼容模式和分布式ORA兼容模式。 父主题: 迁移预检查说明
-
Oracle To GaussDB数据类型转换说明 源数据库数据类型 转换后数据类型 相关的转换配置 CHAR CHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR VARCHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 VARCHAR2 VARCHAR2 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NCHAR NCHAR 字符集不匹配 选择配置项的值为“调整CHAR(n), VARCHAR(n), VARCHAR2(n)和NCHAR(n)的大小。”,可与DRS转换后在GaussDB 存储等价。 NVARCHAR2 NVARCHAR2 - NUMBER NUMBER - NUMBER (6, 3) NUMBER (6, 3) - NUMBER (6, 0) NUMBER (6, 0) - NUMBER (3) NUMBER (3) - NUMBER (6, -2) NUMBER (6, -2) - BINARY_FLOAT REAL - BINARY_DOUBLE BINARY_DOUBLE - FLOAT DOUBLE PRECISION float数据类型 选择配置项的值为“将FLOAT/FLOAT(n)转换为DOUBLE PRECISION”,可与DRS转换后在GaussDB 存储等价。 INT NUMBER(38) 整型数据类型 选择配置项的值为“将INT, INTEGER和SMALLINT转换成NUMBER(38)”,可与DRS转换后在GaussDB 存储等价。 INTEGER NUMBER(38) 整型数据类型 选择配置项的值为“将INT, INTEGER和SMALLINT转换成NUMBER(38)”,可与DRS转换后在GaussDB 存储等价。 DATE DATE - TIMESTAMP TIMESTAMP(6) - TIMESTAMP_TZ TIMESTAMP(6) WITH TIME ZONE - TIMESTAMP_LTZ TIMESTAMP(6) WITH TIME ZONE - INTERVAL_YM INTERVAL YEAR TO MONTH - INTERVAL_DS INTERVAL DAY TO SECOND - BLOB BLOB - CLOB CLOB - NCLOB TEXT nclob数据类型 选择配置项的值为“将NCLOB转换为TEXT数据类型。”,可与DRS转换后在GaussDB 存储等价。 LONG TEXT long数据类型 选择配置项的值为“将LONG类型转换为TEXT数据类型。”,可与DRS转换后在GaussDB 存储等价。 LONG_RAW BYTEA long raw数据类型 选择配置项的值为“将LONG RAW转换为BYTEA数据类型。”,可与DRS转换后在GaussDB 存储等价。 RAW RAW - RowID CHAR(18) - NUMBER(*,0) NUMBER(38, 0) - 父主题: 数据类型转换说明
-
结果验证 若论坛可以正常使用,当伸缩组中的云服务器CPU使用率持续高于70%(在伸缩组的“监控”页签可对监控指标进行观察),伸缩组会自动增加一台云服务器(在伸缩组的“活动历史”页签可对伸缩活动历史进行查看)。当伸缩组中的云服务器CPU使用率持续低于30%,且伸缩组中至少存在两台云服务器时,伸缩组会自动减少一台云服务器,则本次实践是成功的。若不然,请联系技术支持定位伸缩组不能正常进行伸缩活动的原因。
-
创建伸缩组 单击“创建弹性伸缩组”。 参考表3进行关键参数配置,未列出的参数选择默认值即可。 图2 设置伸缩组参数 表3 伸缩组关键参数 参数 解释 取值样例 最大实例数 伸缩组中弹性云服务器数量的最大值。 50 期望实例数 伸缩组中期望的云服务器数量,本实践中要将搭建Discuz!论坛的云服务器手动移入,为避免移入前发生伸缩活动,将期望实例数设置为0。 0 最小实例数 伸缩组中弹性云服务器数量的最小值。 0 虚拟私有云 为伸缩组中的实例提供所使用的网络。必须和云服务器discuz02属于同一VPC。 VPC-DISCUZ 子网 子网可以方便您管理vpc中的网络。选择中申请虚拟私有云时创建的子网。 vpc-test 负载均衡 为伸缩组中的实例均分流量,选择增强型负载均衡器elb-DISCUZ。后端端口配置为需要监听的业务端口,示例中配置为80,权重为1。 使用增强型 健康检查方式 健康检查方式选择“负载均衡健康检查”,负载均衡健康检查是通过系统向后端云服务器发起心跳检查的方式来实现的,推荐使用该方式。 负载均衡健康检查 参数配置完后,单击“立即创建”。 返回弹性伸缩组列表,若伸缩组为“已启用”状态,说明伸缩组创建成功。
-
应用场景 Discuz!论坛是全球成熟度最高、覆盖率最大的论坛软件系统之一。用户对论坛的访问可分为高峰期和平峰期,若论坛采用多服务器部署模式且满足高峰时期的负载需求,平峰期必有部分服务器处于闲置状态,增加了不必要的成本,也造成了资源浪费。 弹性伸缩可帮助您解决以上问题。当您在论坛的服务器系统中应用弹性伸缩后,弹性伸缩可以根据您设定的策略,自动地增加或减少服务器的数量,在保证您的网站正常运转的同时节约成本。本实践以搭建可自动伸缩的Discuz!论坛为例,介绍了如何使用弹性伸缩服务搭建一个可自动增加或减少弹性云服务器数量的Web服务。
-
方案介绍 为了实现创建可自动伸缩的Discuz!论坛,您需要按照表1中的步骤进行网站的搭建,本文重点介绍创建弹性伸缩实现云服务器自动伸缩的过程。当网站的负载增加时云服务器的CPU使用率会增大,负载降低时CPU使用率会降低。配置两条监控CPU使用率的告警策略,分别在CPU使用率高于70%时增加一台云服务器,在CPU使用率低于30%时减少一台云服务器,保证Discuz!论坛始终有合适数量的云服务器,实现自动伸缩云服务器的功能。 表1 搭建Discuz!论坛步骤 任务 分类 子任务描述 说明 搭建网站 申请服务 申请虚拟私有云 申请为云服务器提供网络服务的虚拟私有云vpc-DISCUZ。 购买弹性公网IP 需申请使云服务器和互联网互通的弹性公网IP。 创建安全组并添加规则 为了保证论坛的网络安全,需要设置安全组对网络访问进行控制。创建的安全组sg-DISCUZ。 购买弹性云服务器 需要购买两台弹性云服务器,云服务器discuz01用于部署论坛数据库,discuz02用于部署论坛业务。 购买云服务器 discuz01时绑定之前购买的弹性公网IP,discuz02暂不绑定弹性公网IP。 配置服务器 在discuz01上搭建数据库 在discuz01上安装云数据库 RDS for MySQL,启动RDS for MySQL,设置开机自启动。 在discuz02上部署网站代码 先将discuz01上的弹性公网IP解绑,再绑定至discuz02,在discuz02上部署Web环境和网站代码。 配置特性 释放弹性公网IP 为了节省弹性公网IP资源,使用负载均衡服务前请先释放discuz02绑定的弹性公网IP。 创建弹性负载均衡 为了在伸缩组中均衡访问网站的流量,需要购买增强型负载均衡监听器elb-DISCUZ。 制作镜像 为了后续增加的云服务器可以自动搭建Web环境和部署网站代码,需要制作discuz02的镜像discuz_centos6.5(40GB),该镜像在创建伸缩配置时作为私有镜像使用。 创建弹性伸缩 - 创建伸缩配置 伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。创建伸缩配置as-config-discuz。 创建伸缩组 伸缩组是云服务器进行伸缩的基本单位,伸缩活动将会以伸缩组为单位进行。创建弹性伸缩组as-group-discuz。 创建伸缩策略 伸缩策略能够触发伸缩活动,配置两条监控CPU使用率的告警策略,在业务负载增加时增加云服务器数量,在业务负载减少时减少云服务器数量。 手动移入实例 为保证discuz02可以和后续移入伸缩组中的服务器共同承载论坛业务,需要将discuz02手动移入伸缩组。 修改最小实例数 最小实例数定义了伸缩组中云服务的最少数量,修改最小实例数为1后,伸缩组至少会保证有一台云服务器。discuz02是手动移入,在实例移除策略中被移出的优先级最低,故修改最小实例数可以保证discuz02在伸缩组中不被移出。 访问网站 验证配置结果 验证网站是否可以正常访问 获取负载均衡服务的弹性公网IP地址,在浏览器中输入http://弹性公网IP地址/forum.php进行验证。若可以访问则说明各项配置已生效。
-
Elasticsearch集群数据迁移方案介绍 表1 Elasticsearch集群迁移方案 迁移场景 迁移工具 适用场景 使用限制 场景示例 华为云Elasticsearch集群间数据迁移 华为云Logstash 适用于低版本的华为云Elasticsearch集群到高版本的数据迁移。 适用于将多个华为云Elasticsearch集群的数据整合到一个Elasticsearch集群的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过华为云Logstash实现Elasticsearch集群间数据迁移 备份与恢复 适用于同Region或跨Region、同账号或跨账号的华为云Elasticsearch集群间的数据迁移。 适用于低版本的华为云Elasticsearch集群到高版本的数据迁移。 适用于将多个华为云Elasticsearch集群的数据整合到一个Elasticsearch集群的场景。 目标集群的版本不能低于源集群的版本,版本兼容性分析请参见Snapshot version compatibility。 目标集群的节点数要大于源集群的节点数的一半,且不能小于源集群的shard副本数。 目标集群的CPU、MEM和Disk配置不能低于源集群的配置。 通过备份与恢复实现华为云Elasticsearch集群间数据迁移 读写分离插件 适用于同Region或跨Region、同账号或跨账号的华为云Elasticsearch集群间的数据迁移。 适用于将多个华为云Elasticsearch集群的数据整合到一个Elasticsearch集群的场景。 源集群和目标集群的版本必须一致,都是7.6.2或7.10.2版本。 通过读写分离插件实现华为云Elasticsearch集群间数据迁移 Reindex API 适用于将多个华为云Elasticsearch集群的数据整合到一个Elasticsearch集群的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过Reindex API实现Elasticsearch集群间数据迁移 ESM 适用于低版本的华为云Elasticsearch集群到高版本的数据迁移。 适用于将多个华为云Elasticsearch集群的数据整合到一个Elasticsearch集群的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过ESM实现Elasticsearch集群间数据迁移 自建Elasticsearch集群迁移至华为云 华为云Logstash 适用于低版本的自建Elasticsearch集群到高版本华为云Elasticsearch集群的数据迁移。 适用于将多个自建Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将自建的Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 集群间需要保证网络连通。 可以通过给自建Elasticsearch集群配置公网访问打通网络。 通过华为云Logstash实现Elasticsearch集群间数据迁移 备份与恢复 适用于低版本的自建Elasticsearch集群到高版本华为云Elasticsearch集群的数据迁移。 适用于将多个自建Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将自建的Elasticsearch服务迁移到华为云平台的场景。 目标集群的版本不能低于源集群的版本,版本兼容性分析请参见Snapshot version compatibility。 备份与恢复不支持动态增量数据同步,建议停止数据更新后再进行备份。 自建Elasticsearch集群需要配置公网访问权限才能备份快照到OBS。 通过S3插件备份与恢复迁移自建Elasticsearch集群至华为云 Reindex API 适用于将多个自建Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将自建的Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过Reindex API实现Elasticsearch集群间数据迁移 ESM 适用于低版本的自建Elasticsearch集群到高版本华为云Elasticsearch集群的数据迁移。 适用于将多个自建Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将自建的Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过ESM实现Elasticsearch集群间数据迁移 云数据迁移 CDM 华为云服务提供的云迁移工具,实现不同云服务间的集群迁移能力。 需要建立企业内部数据中心到华为云的VPN通道或专线。 集群迁移过程中,不能删除源集群的索引数据,否则迁移的数据可能出现异常。 Elasticsearch整库迁移到 云搜索服务 第三方Elasticsearch集群迁移至华为云 华为云Logstash 适用于Elasticsearch集群版本跨度较大的迁移场景,例如从6.X版本迁移至7.X版本。 适用于将多个第三方Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将第三方Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 集群间需要保证网络连通。 需要建立企业内部数据中心到华为云的VPN通道或专线。 通过华为云Logstash实现Elasticsearch集群间数据迁移 备份与恢复 适用于低版本的第三方Elasticsearch集群到高版本华为云Elasticsearch集群的数据迁移。 适用于将多个第三方Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将第三方Elasticsearch服务迁移到华为云平台的场景。 目标集群的版本不能低于源集群的版本,版本兼容性分析请参见Snapshot version compatibility。 备份与恢复不支持动态增量数据同步,建议停止数据更新后再进行备份。 第三方存储仓库要配置公网访问才能迁移快照数据。 通过备份与恢复迁移第三方Elasticsearch集群至华为云 Reindex API 适用于将多个第三方Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将第三方Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过Reindex API实现Elasticsearch集群间数据迁移 ESM 适用于低版本的第三方Elasticsearch集群到高版本华为云Elasticsearch集群的数据迁移。 适用于将多个第三方Elasticsearch集群的数据整合到一个华为云Elasticsearch集群的场景。 适用于将第三方Elasticsearch服务迁移到华为云平台的场景。 在集群迁移期间,不要对源集群的索引进行增删改操作,避免迁移后源集群与目标集群数据不一致。 通过ESM实现Elasticsearch集群间数据迁移 云数据迁移 CDM 华为云服务提供的云迁移工具,实现不同云服务间的集群迁移能力。 需要建立企业内部数据中心到华为云的VPN通道或专线。 集群迁移过程中,不能删除源集群的索引数据,否则迁移的数据可能出现异常。 Elasticsearch整库迁移到 云搜索 服务 华为云Elasticsearch集群迁移至OpenSearch集群 跨引擎升级 适用于 CSS 服务的Elasticsearch 7.10.2升级至OpenSearch 1.3.6。 建议在业务低峰期进行升级操作,避免影响业务。 待升级的Elasticsearch集群不能存在正在进行中的任务。 升级Elasticsearch集群版本 数据库数据迁移至Elasticsearch集群 数据复制服务 DRS 适用于将MySQL数据库中的数据同步到Elasticsearch集群中。一般用于集群间的数据增量迁移,在数据同步后集群随时可割接,较其他增量迁移更加方便灵活。 不同数据库来源的迁移方式和使用约束请参见相关文档。 使用DRS从数据库导入数据至Elasticsearch 父主题: Elasticsearch数据迁移
-
应用场景 通过备份与恢复实现第三方Elasticsearch集群和华为云Elasticsearch集群之间的数据迁移,依赖存储仓库。常用于以下场景: 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。 集群整合:将分散在不同第三方Elasticsearch集群中的数据统一数据迁移到华为云Elasticsearch集群进行集中管理,以实现更高效的数据分析和查询。 跨版本迁移:将低版本的第三方Elasticsearch集群数据迁移到高版本的华为云Elasticsearch集群中。 技术栈统一:当企业已经在华为云上运行其他服务时,为了技术栈的统一和简化管理,可以选择将Elasticsearch集群也迁移至华为云。
-
操作步骤 登录Elasticsearch所在的第三方友商云,创建一个支持s3协议的共享存储仓库,例如登录阿里云的进入OSS服务创建目录“patent-esbak”, 或者登录腾讯云进入COS服务创建目录“patent-esbak”。 在第三方Elasticsearch集群中创建快照备份仓库,用于存放Elasticsearch快照数据。 例如,在Elasticsearch中创建一个备份仓库“my_backup”,关联到存储仓库OSS。 PUT _snapshot/my_backup { # 存储仓库类型。"type": "oss", "settings": {# 步骤1中存储仓库的内网访问 域名 。"endpoint": "http://oss-xxx.example.com", # 存储仓库的用户ID和密码。认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密, 确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ak和sk。"access_key_id": "ak","secret_access_key": "sk",# 步骤1创建的存储仓库的bucket名称。"bucket": "patent-esbak", # 是否打开快照文件的压缩功能。"compress": false,# 配置此参数可以限制快照数据的分块大小。当上传的快照数据超过这个数值,数据就会被分块上传到存储仓库中。"chunk_size": "1g",# 仓库的起始位置,默认是根目录。"base_path": "snapshot/" }} 在第三方Elasticsearch集群中创建快照。 为所有索引创建快照。 例如,创建一个名为“snapshot_1”的快照。 PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true 为指定索引创建快照。 例如,创建一个名为“snapshot_test”的快照,该快照包含索引“patent_analyse”和“patent”。 PUT _snapshot/my_backup/snapshot_test{"indices": "patent_analyse,patent"} 在第三方Elasticsearch集群中查看集群的快照创建进度。 执行如下命令,可以查看所有快照信息。 GET _snapshot/my_backup/_all 执行如下命令,可以查看指定快照“snapshot_1”的信息。 GET _snapshot/my_backup/snapshot_1 通过华为云 对象存储迁移 服务 OMS 将快照数据从存储仓库迁移到 对象存储服务 OBS的“esbak”桶中。 OMS支持多种云服务商数据迁移到对象存储服务OBS中,具体请参见各云服务商迁移教程。 在OMS创建迁移任务时,“元数据迁移方式”一定要选择“保留元数据”,否则数据迁移会有异常。 在CSS服务的Elasticsearch集群中创建一个存储仓库关联到OBS,用于恢复第三方Elasticsearch的快照数据。 例如,在集群中创建一个“my_backup_all”的存储仓库,关联上一步OBS桶“esbak”。 PUT _snapshot/my_backup_all/{ "type" : "obs", "settings" : {# OBS的内网访问域名。"endpoint" : "obs.xxx.example.com","region" : "xxx",# 访问OBS的用户名和密码。认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险, 建议在配置文件或者环境变量中密文存放, 使用时解密, 确保安全;本示例以ak和sk保存在环境变量中为例, 运行本示例前请先在本地环境中设置环境变量ak和sk。"access_key": "ak","secret_key": "sk", # OBS的桶名称,和上一步迁移目标集群的OBS桶名保持一致。"bucket" : "esbak", "compress" : "false","chunk_size" : "1g",# 注意“snapshot”后面没有/。"base_path" : "snapshot","max_restore_bytes_per_sec": "100mb","max_snapshot_bytes_per_sec": "100mb" }} 在CSS服务的Elasticsearch集群中通过快照恢复数据。 查看所有快照信息。 GET _snapshot 通过快照恢复数据。 恢复某一快照中的所有索引。例如恢复名为“snapshot_1”的快照的所有索引数据。 POST _snapshot/my_backup_all/snapshot_1/_restore?wait_for_completion=true 恢复某一快照中的部分索引。例如名为“snapshot_1”的快照中只恢复非“.”开头的索引。 POST _snapshot/my_backup/snapshot_1/_restore{"indices":"*,-.monitoring*,-.security*,-.kibana*","ignore_unavailable":"true"} 恢复某一快照中的指定索引,并重命名。例如在名为“snapshot_1”的快照中,将索引“index_1”恢复为“restored_index_1”,“index_2”恢复为“restored_index_2”。 POST /_snapshot/my_backup/snapshot_1/_restore{# 只恢复索引“index_1”和“index_2”,忽略快照中的其他索引。"indices": "index_1,index_2"# 查找正在恢复的索引,该索引名称需要与提供的模板匹配。"rename_pattern": "index_(.+)",# 重命名查找到的索引。"rename_replacement": "restored_index_$1"} 查看快照恢复结果。 查看所有快照的恢复结果。 GET /_recovery/ 查看指定索引的快照恢复结果。 GET {index_name}/_recovery
-
应用场景 迁移Elasticsearch集群间的Kibana可视化图表的应用场景主要包括以下几个方面: 当需要将数据从一个Elasticsearch集群迁移到另一个新集群时,Kibana可视化图表的迁移是确保业务连续性的关键步骤。通过导出源集群的Kibana可视化配置(如仪表板、图表等),并在目标集群中导入,可以确保用户界面和监控仪表板的一致性。 在开发、测试和生产环境之间复制Elasticsearch环境时,Kibana可视化图表的迁移可以确保不同环境之间的一致性,提升开发和测试效率。 在业务发生故障或数据丢失的情况下,通过迁移Kibana图表到备份集群,可以快速恢复数据监控和分析能力。 在多集群环境中,可能需要将不同Elasticsearch集群的数据和可视化图表整合到一个统一的集群,以便于实现跨集群的数据分析和管理。 这些场景展示了Kibana可视化图表迁移在实际应用中的重要性,它不仅涉及到数据的移动,还包括了确保业务连续性、提高效率和满足合规性要求等多个方面。
-
方案优势 业务连续性:通过迁移Kibana可视化图表,可以确保在集群升级或迁移过程中,集群的监控和分析工作不会中断,从而保障业务的连续性。 环境一致性:在多环境(开发、测试、生产)之间复制Kibana配置,可以确保不同环境的一致性,这有助于减少环境差异导致的问题,提高开发和测试的效率。 快速恢复:在故障恢复场景中,Kibana图表的迁移能力可以快速恢复关键的监控和分析功能,减少系统故障对业务的影响。 数据整合能力:在多集群环境中,迁移Kibana图表有助于实现数据的集中管理和分析,提高数据整合的效率和效果。
-
常见问题:迁移过程中,发现图表不兼容怎么办? 在导入可视化对象时,出现如下报错信息,则表示源集群和目标集群的图表版本不兼容。 The file could not be processed due to error: "Unprocessable Entity: Document "7.1.1" has property "config" which belongs to a more recent version of Kibana [7.13.0]. The last known version is [7.9.0]" 此时,可以在本地修改可视化对象文件“export.ndjson”,将版本号信息修改一致,本例中需要将代码中的[7.13.0]修改为[7.9.0]。保存后,重新导入文件即可。如果修改兼容字段后依然导入失败,则需要手动在目标集群重建图表。
-
通过ESM迁移集群 访问ESM下载地址,下载“migrator-linux-amd64”软件包。 通过SCP工具将下载的“migrator-linux-amd64”软件包上传到Linux ECS的执行路径下。 在Linux ECS的执行路径下执行命令,将源集群的索引结构和数据迁移到目标集群。 # 索引全量迁移./migrator-linux-amd64 -s http://source:9200 -d http://dest:9200 -x index_name -m admin:password -n admin:password --copy_settings --copy_mappings -w 5 -b 10#索引增量迁移./migrator-linux-amd6 -s http://source:9200 -d http://dest:9200 -x index-test -m admin:password -n admin:password -w 5 -b 10 -q "timestamp:[\"2022-01-17 03:41:20\" TO \"2022-01-22 03:41:20\"]" 迁移命令的常用参数说明请参见表2,更多详细参数说明请参见ESM文档。 表2 常用参数说明 选型 示例 说明 -s, --source= http://source:9200 源Elasticsearch集群访问地址。 -d, --dest= http://dest:9200 目标Elasticsearch集群访问地址。 -x, --src_indexes= index_name index1,index2 源集群迁移索引名,支持正则匹配和逗号分隔。 -y, --dest_index= index_name_rename 目标集群索引名,支持单索引名称,如果不配置则和源索引名称相同。 -m, --source_auth= admin:password 访问源Elasticsearch集群的用户名和密码,仅安全集群涉及。 -n, --dest_auth= admin:password 访问目标Elasticsearch集群的用户名和密码,仅安全集群涉及。 -w, --workers= 5 读取源端数据速率控制参数,Bulk读取数据并发线程数。 默认值:1 -b, --bulk_size= 10 读取源端数据速率控制参数,Bulk一次读取数据的数据大小。 默认值:5MB --sliced_scroll_size 4 读取源端数据速率控制参考,Bulk Scorll中sliced的大小。 默认值:1 --copy_settings - 迁移源端索引的settings。 --copy_mappings - 迁移源端索引的mappings。 --buffer_count= - 迁移虚拟机缓存在内存中的文档数量。 默认值:10w 数据迁移完成后,通过对比文档个数检查数据一致性。 # 非安全集群curl -ik http://ip:9200/{索引名称}/_count #安全集群+HTTPS访问curl -ik https://ip:9200 -u[Username]:[password]/{索引名称}/_count
-
常见问题 迁移过程出现报错“out of memory”怎么办? 迁移过程中出现报错“out of memory”, 表示迁移虚拟机内存溢出,有如下解决方案: 可能是ECS虚拟机的配置不够,建议升级ECS规格,操作指导请参见变更单台ECS规格。 调整ESM的迁移速度,通过在迁移命令中减小“buffer_count”参数,限制内存中的文档数量。 迁移完成后,为什么源集群和目标集群的索引数据存储量不一致? ESM迁移集群后,两个集群的数据存储量不一致是正常的,这是由Elasticsearch的内部存储机制决定的。Elasticsearch存储是有多个shard,每个shard又有多个segment,由于ESM迁移是把源集群数据写入到目标集群,会导致在目标集群重新生成segment和shard,由于segment和shard都会对数据有膨胀,不同集群的segment的shard不同,数据量也不同,如果需要比较数据一致性,则需要对比文档个数的多少,而不是对比数据大小。
-
方案优势 跨版本兼容性:ESM支持不同版本的Elasticsearch集群间的数据迁移,包括从老版本迁移到新版本。 简化操作:ESM使用简单方便,使用Go语言开发,只需下载编译包安装即可使用。 性能控制:在迁移过程中,可以通过配置Scroll API的参数来控制迁移速率,优化迁移性能。 灵活的迁移方案:ESM提供了灵活的迁移方案,包括全量迁移和增量迁移,以适应不同的业务需求。 开源免费:作为一个开源工具,ESM代码托管在GitHub上,用户可以免费使用。
-
性能影响 ESM迁移集群的工作原理基于Scroll API,此API能够高效地从源集群查找索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 由于ESM能够迅速从源集群读取数据,可能会对源集群的性能产生影响。因此,建议在业务低峰时段进行数据迁移,以监控源集群CPU和内存的性能指标变化。通过调整迁移速度和选择适宜的迁移时间窗口,可以有效控制性能影响。对于涉及大量数据迁移或资源占用较高的集群,特别推荐在业务低峰期执行数据迁移,以确保源端业务操作不受影响。
-
前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
-
准备迁移虚拟机 创建ECS用于迁移Elasticsearch集群。 购买Linux ECS,“镜像”选择CentOS 7系列,“虚拟私有云”和目标集群保持一致。购买操作指导请参见快速购买和使用Linux ECS。 测试ECS和源集群、目标集群的连通性。 在ECS执行如下命令测试连通性,当正常返回集群信息时表示已经连通。 # 非安全集群curl -ik http://ip:9200 #安全集群+HTTPS访问curl -ik https://ip:9200 -u[Username]:[password]
-
应用场景 ESM(Elasticsearch Migration Tool)是一个开源的Elasticsearch集群迁移工具。它支持不同版本的Elasticsearch之间的数据迁移,并且可以通过配置Scroll API的参数来控制迁移速率,以适应不同的网络环境和业务需求。以下是ESM实现Elasticsearch集群间数据迁移的一些应用场景: 跨版本迁移:在Elasticsearch集群需要升级到新版本时,ESM可以帮助平滑迁移数据,确保升级过程中数据的完整性和可用性。 集群合并:当企业需要将多个Elasticsearch集群的数据整合到一个集群中以简化管理时,ESM可以高效地完成这一任务。 服务迁移上云:企业可以将自建的Elasticsearch服务迁移至云平台,以利用云服务的弹性扩展、简化维护和成本效益。 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。
-
应用场景 7.6.2和7.10.2版本的华为云Elasticsearch集群默认安装了CSS服务的读写分离插件,通过配置读写分离可以实现Elasticsearch集群间的索引数据近实时同步。 通过读写分离插件实现华为云Elasticsearch集群间数据迁移仅适用于源集群和目标集群都是CSS服务的集群。常用于以下场景: 跨地域或跨账号迁移:将其他Region或账号下的Elasticsearch集群迁移到当前集群中。 集群合并:将两个Elasticsearch集群的索引数据合并到一个集群中。
-
方案架构 图1 迁移流程 通过CSS服务的读写分离插件迁移华为云Elasticsearch集群(源集群)至华为云Elasticsearch(目标集群)的数据迁移流程如图1所示。 通过读写分离插件建立源集群和目标集群的连接。 在目标集群配置索引自动同步,实现源集群的数据自动同步到目标集群。同步周期默认是30秒,支持修改。 查询自动同步状态,确认集群数据是否迁移完成。 更多关于CSS服务的读写分离功能的介绍请参见配置Elasticsearch集群读写分离。
-
方案架构 图1 迁移流程 通过华为云Logstash实现Elasticsearch集群间数据迁移的迁移流程如图1所示。 输入(Input):华为云Logstash接收来自华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch的数据。 华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch数据迁移到华为云Elasticsearch的操作步骤相同,只是获取源集群的访问地址有差异,具体请参见获取Elasticsearch集群信息。 过滤(Filter):华为云Logstash对数据进行清洗和转换。 输出(Output):华为云Logstash将数据输出到目标设备,如华为云Elasticsearch。 根据业务需求,可以选择全量数据迁移或增量数据迁移。 全量数据迁移:使用Logstash进行全量数据迁移,适用于迁移初期或需要确保数据完整性的场景。 增量数据迁移:通过Logstash配置增量查询,可以只迁移有增量字段的索引数据。此方法适用于需要持续同步数据或对数据实时性有较高要求的场景。
-
方案优势 高版本兼容性:适用于不同版本的Elasticsearch集群迁移。 高效的数据处理能力:Logstash支持批量读写操作,可以大幅度提高数据迁移的效率。 并发同步技术:利用slice并发同步技术,可以提高数据迁移的速度和性能,尤其是在处理大规模数据时。 配置简单:华为云Logstash的配置相对简单直观,通过配置文件即可实现数据的输入、处理和输出。 强大的数据处理功能:Logstash内置了丰富的过滤器,可以在迁移过程中对数据进行清洗、转换和丰富。 灵活的迁移策略:根据业务需求,可以灵活选择全量迁移或增量迁移,优化存储使用和迁移时间。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- ...
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333