华为云用户手册
-
数据类型对应关系 GaussDB (for MySQL)实例数据同步到HTAP时会被转成对应的类型,详情请参考表1。 表1 数据类型转换 数据类型 GaussDB(for MySQL)数据类型 HTAP数据类型 NUMERTIC TYPES TINYINT TINYINT TINYINT UNSIGNED SMALLINT SMALLINT SMALLINT SMALLINT UNSIGNED INT MEDIUMINT INT INTEGER/INT INT INTEGER/INT UNSIGNED BIGINT BIGINT BIGINT BIGINT UNSIGNED LARGEINT DECIMAL/NEMERIC DECIMAL FLOAT FLOAT DOUBLE/REAL DOUBLE BIT BIT DATE TIME TYPES DATE DATE DATETIME DATETIME TIMESTAMP DATETIME TIME STRING YEAR INT String Data Types CHAR CHAR/VARCHAR VARCHAR VARCHAR BINARY VARBINARY VARBINARY VARBINARY BLOB VARBINARY TINYTEXT TEXT TEXT TEXT MEDIUMTEXT TEXT LONGTEXT TEXT ENUM 暂不支持 SET 暂不支持 Spatial Data Types GEOMETRY 暂不支持 POINT 暂不支持 LINESTRING 暂不支持 POLYGON 暂不支持 MULTIPOINT 暂不支持 MULTILINESTRING 暂不支持 MULTIPOLYGON 暂不支持 GEOMETRYCOLLECTION 暂不支持 JSON Data Types JSON JSON AP引擎将BLOB类型转换为VARBINAY类型进行兼容。由于VARBINARY最大规格为1MB,无法满足BLOB类型的正常使用;所以有BLOB类型的表需要同步的情况下,需要将库同步设置中enable_filter_lob_column置为True,对Blob类型的列进行过滤。 父主题: 开发指南
-
系统账户说明 您在创建HTAP实例时,系统会自动为HTAP实例创建如下系统账户(用户不可使用),用于给HTAP实例提供完善的后台运维管理服务。 rdsAdmin:管理账户,拥有最高的superuser权限,用于查询和修改实例信息、故障排查、迁移、恢复等操作。 rdsMetric:指标监控账户,用于watchdog采集数据库状态数据。 删除、重命名、修改这些账户的密码和权限信息,会导致实例运行异常,请谨慎操作。
-
语法 创建一个或多个HASH-HASH分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num] SUBPARTITION BY [LINEAR] HASH(expr) [SUBPARTITIONS sub_num] [partition_definition [, partition_definition] ...]; 其中,partition_definition为: PARTITION partition_name (subpartition_definition [, subpartition_definition] ...) subpartition_definition为: SUBPARTITION subpartition_name 表1 参数说明 参数名称 描述 table_name 要创建的表名称。 expr 分区字段表达式,目前只支持INT类型,不支持字符类型。 num 用于分区是HASH或者KEY类型的分区表,来指定分区个数。 sub_num 用于二级分区是HASH或者KEY类型的分区表,来指定单个分区的子分区的个数。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称, 同一个表中不可重复。
-
使用示例 HASH-HASH类型的使用示例 CREATE TABLE tbl_hash_hash ( col1 INT, col2 INT, col3 varchar(20), col4 DATE ) PARTITION BY HASH(col1) PARTITIONS 9 SUBPARTITION BY HASH(col2) SUBPARTITIONS 3;
-
存储类型介绍 表1 存储类型介绍 存储类型 特点 适用场景 DL6(Cloud Database Engine Level 6) 原“共享存储”,即GaussDB(for MySQL)历史版本默认支持的存储类型,2024年7月前创建的GaussDB(for MySQL)实例默认的存储类型。 DL6存储类型的实例采用3AZ部署,RPO=0。性能更佳、峰值吞吐量更高。 对性能敏感,业务高峰对存储IO要求极高的核心应用系统,如金融、电商、政务和游戏等。 DL5(Cloud Database Engine Level 5) GaussDB(for MySQL)全新推出的存储类型,底层基于华为云自研硬件及网络底座技术,保持了DL6的3AZ,RPO=0的高可用性,峰值性能有所下降,单位容量的成本显著降低。 CPU密集型的次核心业务系统;或有降低成本诉求,追求高性价比的应用模块。 由于两类存储依托于不同物理介质,对于已创建的实例,存储类型无法支持直接切换。如需切换存储类型,建议您购买一个新的GaussDB(for MySQL)实例并配置预期的存储类型,将原有实例的数据通过DRS工具迁移到新实例上。
-
约束与限制 GaussDB(for MySQL)使用和命名上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1和表2。 表1 功能使用限制 功能 使用限制 GaussDB(for MySQL)访问 如果GaussDB(for MySQL)数据库实例没开通公网访问,则该实例必须与弹性云服务器在同一个虚拟私有云内才能访问。 弹性云服务器必须处于目标GaussDB(for MySQL)数据库实例所属安全组允许访问的范围内。 如果GaussDB(for MySQL)数据库实例与弹性云服务器处于不同的安全组,系统默认不能访问。需要在GaussDB(for MySQL)数据库的安全组添加一条“入”的访问规则。“入”规则开放TCP协议,使用数据库实例的默认端口。 GaussDB(for MySQL)数据库实例的默认端口: 主备版默认端口为3306,需用户手动修改端口号后,E CS 或外网才能访问其他端口。具体操作请参见修改数据库端口。 数据库的root权限 创建实例页面只提供管理员root用户权限(仅限主备版)。 修改数据库参数设置 大部分数据库参数可以通过控制台进行修改。 数据迁移 使用DRS或mysqldump迁移到GaussDB(for MySQL)数据。 MySQL存储引擎 GaussDB(for MySQL)只支持InnoDB存储引擎。 重启GaussDB(for MySQL)实例 无法通过命令行重启,必须通过GaussDB(for MySQL)的管理控制台重启实例。 查看GaussDB(for MySQL)备份 GaussDB(for MySQL)数据库实例在 对象存储服务 上的备份文件,对用户不可见。 开启Binlog GaussDB(for MySQL) 不支持只读节点开启Binlog。 分区表 GaussDB(for MySQL)现有产品能力和社区8.0.22版本是兼容的,对于分区表,如果是list分区,目前每个分区的values最多只支持256个,超出会报错。(规避措施:将values个数过多的分区拆成更小的分区,确保每个分区的values个数都不超过256个。) 小规格实例 对于2U8GB的GaussDB(for MySQL)实例,单个实例中总的表数量不能超过30万个,单个数据库中的表数量不能超过5000个。 表2 命名约束 参数 约束 实例名称 长度在4个到64个字符之间,必须以字母开头,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。 数据库名称 长度可在1~64个字符之间,由字母、数字、下划线、中划线组成,中划线累计总长度小于等于10个字符,且不能包含其他特殊字符。 账号(非管理员) 长度在1到32个字符之间,由字母、数字、下划线组成,不能包含其他特殊字符 密码 长度为8~32个字符,至少包含大写字母、小写字母、数字、特殊字符三种字符的组合,其中允许输入~!@#$%^*-_=+?,()&特殊字符。 参数模板名称 长度在1~64个字符之间,区分大小写,可包含字母、数字、中划线、下划线或句点,不能包含其他特殊字符。 备份名称 长度在4~64个字符之间,必须以字母开头,区分大小写,可以包含字母、数字、中划线或者下划线,不能包含其他特殊字符。 保留关键字 除社区MySQL8.0的保留关键字外,GaussDB(for MySQL)新增部分保留关键字,在命名时需要避开,防止报错。
-
规格要求 RegionlessDB支持在1个区域部署主实例,多个区域部署从实例,每个RegionlessDB最多支持创建5个从实例。其中主实例和普通GaussDB(for MySQL)数据库实例能力相同,提供读写服务,从实例提供只读服务。表1列出了RegionlessDB支持的最大规格。 表1 规格说明 描述 主实例 从实例 最大实例数量 1 5 单实例最大可写节点数 1 0 单实例最大只读节点数 15 15 创建实例时最多可批量申请10个只读节点。 父主题: RegionlessDB
-
删除RegionlessDB 删除RegionlessDB前,请确保从实例已全部与RegionlessDB脱离,具体操作请参见脱离从实例。 单击左侧导航栏中的“RegionlessDB”。 找到目标数据库,单击操作列的“删除”。 若您已开启高危操作保护,在弹框中单击“去验证”,跳转至验证页面,单击“免费获取验证码”,正确输入验证码并单击“认证”,页面自动关闭。 关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》的内容。 在“删除RegionlessDB”弹框中,根据需要选择是否勾选“同步删除RegionlessDB下的实例”,输入框中按照提示输入“DELETE”,单击“确定”。 图3 删除RegionlessDB 稍后刷新“RegionlessDB”列表页面,查看删除结果。 您也可以通过“任务中心”查看详细进度和结果。
-
INTERVAL RANGE分区表与任意类型表的相互转换 语法: 其他类型表转化为INTERVAL RANGE分区表。 ALTER TABLE table_name table_definition partition_options; partition_options: PARTITION BY { RANGE{(expr) | COLUMNS(column_list)} } { INTERVAL(type, value) | INTERVAL(value) } [(partition_definition [, partition_definition] ...)] partition_definition: PARTITION partition_name [VALUES LESS THAN {expr | MAXVALUE}] [[STORAGE] ENGINE [=] engine_name] [COMMENT [=] 'string' ] [DATA DIRECTORY [=] 'data_dir'] [INDEX DIRECTORY [=] 'index_dir'] [MAX_ROWS [=] max_number_of_rows] [MIN_ROWS [=] min_number_of_rows] [TABLESPACE [=] tablespace_name] INTERVAL子句关联参数说明: 表3 参数说明 参数名称 参数说明 INTERVAL(value) 使用RANGE(expr) 或者 RANGE COLUMNS(column_list)且column是整型字段时,INTERVAL子句的格式,其中value代表间隔数值,必须是正整数。 expr RANGE(expr)中的分区表达式,目前只支持整数类型。 column_list RANGE COLUMNS(column_list)的分区字段列表,在INTERVAL RANGE分区表中,column_list只能是单列。 INTERVAL(type, value) 使用RANGE COLUMNS(column_list)且column_list是DATE/TIME/DATETIME类型时,INTERVAL子句的格式,其中type代表间隔类型,value代表间隔数值。 type目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND)。 value代表间隔数值,必须是正整数;当type为SECOND类型时,间隔不能小于60。 INTERVAL RANGE分区表转化为其他任意类型的表,这里partition_options是可选的,具体定义取决于要转化的目标表类型。 ALTER TABLE table_name table_definition [partition_options]; partition_options选项取决于要转化为表的分区类型信息。 示例: 将其他类型表转为INTERVAL RANGE表: CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL ); ALTER TABLE orders PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01') ); 将INTERVAL RANGE表转化为其他类型表: CREATE TABLE orders (a INT, b DATETIME) PARTITION BY RANGE (a) INTERVAL(10) ( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20) ); ALTER TABLE orders PARTITION BY LIST COLUMNS (a) ( PARTITION p0 VALUES IN (1, 11, 25) ); 修改INTERVAL RANGE表的INTERVAL子句信息: CREATE TABLE orders (a INT, b DATETIME) PARTITION BY RANGE (a) INTERVAL(10) ( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20) ); ALTER TABLE orders PARTITION BY RANGE (a) INTERVAL(20) ( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20) ); # 消除INTERVAL子句 ALTER TABLE orders PARTITION BY RANGE (a) ( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20) ); # 添加INTERVAL子句 ALTER TABLE orders PARTITION BY RANGE (a) INTERVAL(100) ( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20) );
-
SET INTERVAL子句支持 支持使用SET INTERVAL子句修改INTERVAL RANGE表定义的INTERVAL子句间隔类型和间隔值,也可实现消除或添加INTERVAL子句。 语法: ALTER TABLE table_name SET INTERVAL {() | (type, value) | (value)}; 表4 参数说明 参数名称 参数说明 type 目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND),不显式指定默认是数字类型的间隔。 value 指定间隔的数值大小。当type为SECOND类型时,间隔不能小于60。 示例: 修改INTERVAL RANGE表的INTERVAL类型和值。 CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL ) PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01') ); ALTER TABLE orders SET INTERVAL(YEAR, 1); 实现RANGE表和INTERVAL RANGE表之间的转化。 CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL ) PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01') ); # 删除INTERVAL子句 ALTER TABLE sales SET INTERVAL(); # 添加INTERVAL子句 ALTER TABLE sales SET INTERVAL(DAY, 60); 即使当前功能开关rds_interval_range_enabled关闭,"ALTER TABLE table_name SET INTERVAL()"语句也可使用(用于消除INTERVAL RANGE表的INTERVAL子句定义信息,转化为普通RANGE表)。
-
使用限制 INTERVAL RANGE表只支持HASH/KEY二级分区。 采取RANGE COLUMNS(column_list) INTERVAL([type], value)形式描述INTERVAL RANGHE规则时: column_list(分区键)中列个数只能为1,并且只能是是整数类型或者DATE/TIME/DATETIME类型。 如果分区键是整型,INTERVAL的间隔类型type不需要填写。 如果分区键为DATE类型,INTERVAL的间隔类型type只能取YEAR、QUARTER、MONTH、WEEK、DAY。 如果分区键为TIME类型,INTERVAL的间隔类型type只能取HOUR、MINUTE、SECOND。 如果分区间为DATETIME类型,INTERVAL的间隔类型type可以取YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND。 间隔值value只能为正整数。 如果INTERVAL的间隔类型是SECOND,间隔不能小于60。 采取RANGE(expr) INTERVAL(value)形式描述INTERVAL RANGHE规则时,expr表达式的结果应为整数,间隔值value只能为正整数。 不支持使用INSERT ...SELECT语句、INSERT ...ON DUPLICATE KEY UPDATE语句、UPDATE语句触发分区新增。 LOAD DATA时不会触发分区新增(如果分区覆盖了所有插入数据的范围,能使用load data导入数据,如果分区没有覆盖插入数据的范围,load data无法触发自增分区,导入数据失败)。 事务中如果触发分区自增,一旦新分区创建成功,不支持回滚。 自增的分区使用'_p'作为分区名的前缀,因此客户设置的以此开头的分区名可能导致分区自增失败。 SET INTERVAL([type], value)子句只适用于INTERVAL RANGE表和RANGE表,如果这两种表有二级分区,只支持二级分区为HASH或KEY类型。 SET INTERVAL([type], value)子句的type和value取值要受原表的分区表达式expr或分区键column_list的约束。
-
创建INTERVAL RANGE分区表 INTERVAL RANGE分区表定义格式类似于RANGE分区表,但多了INTERVAL子句。 语法: CREATE TABLE [IF NOT EXISTS] [schema.]table_name table_definition partition_options; 其中,partition_options为: PARTITION BY RANGE {(expr) | COLUMNS(column_list)} {INTERVAL(value) | INTERVAL(type, expr)} (partition_definition [, partition_definition] ...) partition_definition为: PARTITION partition_name [VALUES LESS THAN {expr | MAXVALUE}] [[STORAGE] ENGINE [=] engine_name] [COMMENT [=] 'string' ] [DATA DIRECTORY [=] 'data_dir'] [INDEX DIRECTORY [=] 'index_dir'] [MAX_ROWS [=] max_number_of_rows] [MIN_ROWS [=] min_number_of_rows] [TABLESPACE [=] tablespace_name] 其中,INTERVAL子句仅支持设置间隔数值(value)和间隔类型(type)。 INTERVAL子句关联参数说明: 表2 参数说明 参数名称 参数说明 INTERVAL(value) 使用RANGE(expr) 或者 RANGE COLUMNS(column_list)且column是整型字段时,INTERVAL子句的格式,其中value代表间隔数值,必须是正整数。 expr RANGE(expr)中的分区表达式,目前只支持整数类型。 column_list RANGE COLUMNS(column_list)的分区字段列表,在INTERVAL RANGE分区表中,column_list只能是单列。 INTERVAL(type, value) 使用RANGE COLUMNS(column_list)且column_list是DATE/TIME/DATETIME类型时,INTERVAL子句的格式,其中type代表间隔类型,value代表间隔数值。 type目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND)。 value代表间隔数值,必须是正整数;当type为SECOND类型时,间隔不能小于60。 间隔数值(value)和间隔类型(type)的进一步说明:
-
步骤6:测试ALT效果 当ALT功能开启,使用Sysbench,Tpcc-MySQL或MySQL客户端等工具连接到数据库代理地址,只读升主过程中用户的连接不会中断,只会出现短时间的卡顿后很快恢复。 以下分别是使用Sysbench,Tpcc-MySQL和MySQL客户端工具进行主备切换的效果示意。 使用Sysbench的进行只读升主的示例 使用tpcc-mysql的进行只读升主的示例 使用MySQL命令行工具进行只读升主的示例 如下图所示,用户自定义变量、会话变量、数据库在主备切换前后保持一致。 如下图所示,不同的事务排干超时时间,可能会影响到当前会话的ALT能力。
-
特性参数说明 表1 参数说明 参数名称 描述 取值范围 默认值 级别 是否动态生效 rds_column_compression 当参数取值为0时,表示字段压缩特性关闭,不再支持显式或者自动创建压缩列。 当参数取值为1时,表示仅支持显式创建压缩列。 当参数取值为2时,表示同时支持显式或自动创建压缩列。 [0,2] 0 GLOBAL 是 rds_default_column_compression_algorithm 设置字段压缩特性默认的压缩算法,适用于如下场景: 显式创建压缩字段而不指定具体的压缩算法。 自动压缩场景。 ZLIB或ZSTD ZLIB GLOBAL 是 rds_column_compression_threshold 设置字段压缩特性的阈值。 当列定义最大长度小于此阈值时,可以显式创建压缩列,但会收到提示信息,不能自动地创建压缩列。 当列定义最大长度大于等于此阈值时,支持显式或者自动创建压缩列。 [20-4294967295] 100 GLOBAL 是 rds_zlib_column_compression_level 控制字段压缩特性中zlib压缩算法的压缩级别。 当参数取值为0时代表不压缩。 取值为除0外范围内的其他参数值时,取值越小,压缩速度越快但压缩效果越差;取值越大,压缩速度越慢但压缩效果越好。 [0,9] 6 GLOBAL 是 rds_zstd_column_compression_level 控制字段压缩特性中zstd压缩算法的压缩级别。 取值越小,压缩速度越快但压缩效果越差;取值越大,压缩速度越慢但压缩效果越好。 [1,22] 3 GLOBAL 是
-
语法 扩展column_definition定义,支持在CREATE TABLE/ALTER TABLE ADD/ALTER TABLE CHANGE/ALTER TABLE MODIFY场景定义列属性时使用压缩特性。 create_definition: { col_name column_definition | {INDEX | KEY} [index_name] [index_type] (key_part,...) [index_option] ... | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (col_name,...) reference_definition | check_constraint_definition } alter_option: { table_options | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name] | ADD [COLUMN] (col_name column_definition,...) | CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name] | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name] ... 其中column_definition为: column_definition: { data_type [NOT NULL | NULL] [DEFAULT {literal | (expr)} ] [VISIBLE | INVISIBLE] [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY] [COMMENT 'string'] [COLLATE collation_name] [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}] [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}|COMPRESSED[={ZLIB|ZSTD}**]] [ENGINE_ATTRIBUTE [=] 'string'] [SECONDARY_ENGINE_ATTRIBUTE [=] 'string'] [STORAGE {DISK | MEMORY}] [reference_definition] [check_constraint_definition] | data_type [COLLATE collation_name] [GENERATED ALWAYS] AS (expr) [VIRTUAL | STORED] [NOT NULL | NULL] [VISIBLE | INVISIBLE] [UNIQUE [KEY]] [[PRIMARY] KEY] [COMMENT 'string'] [reference_definition] [check_constraint_definition] }
-
使用须知 GaussDB(for MySQL)实例内核版本大于等于2.0.54.240600可使用该功能。 不支持分区表、临时表、非InnoDB引擎表。 压缩字段上不能包含索引(主键、唯一索引、二级索引、外键、全文索引)。 仅支持的数据类型:BLOB(包含TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB),TEXT(包含TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT),VARCHAR,VARBINARY。 不支持在生成列上使用此特性。 不支持在分区表和带有压缩字段的表之间执行EXCHANGE PARTITION式语句。 不支持IMPORT TABLESPACE。 仅支持在CREATE TABLE/ALTER TABLE ADD/ALTER TABLE CHANGE/ALTER TABLE MODIFY场景使用此特性。 ALTER TABLE ADD COLUMN不支持INSTANT算法,ALTER TABLE {CHANGE|MODIFY} 语法涉及数据变化时不支持使用INSTANT算法。 自动压缩场景(rds_column_compression=2),定义字段的最大长度需大于等于字段压缩阈值(rds_column_compression_threshold)时才可以被添加压缩属性;显式压缩场景(rds_column_compression=1),若定义压缩字段的最大长度小于字段压缩阈值,字段仍可被添加压缩属性,同时收到warning信息。 若当前表中包含压缩字段,暂不支持NDP计算下推。 客户手动拉取BIN LOG 同步过程中ALTER语句会出现不兼容的问题,推荐客户侧使用HINT的方式来解决。 利用DRS迁移至无该特性的实例,压缩属性被消除。全量迁移任务可以进行,增量迁移时ALTER语句中存在压缩字段会导致迁移任务失败。 物理备份方面,利用备份去做数据恢复的版本也必须是带有字段压缩特性的。 升级至新版本之后,如果已经使用字段压缩功能,不支持回退至无该特性的版本。
-
使用须知 请参见约束与限制。 写转发只有在从实例的事务隔离级别为RR的场景下才支持。 当前版本从实例进行写转发时,暂不支持显示WARNING和RECORD信息。 当前版本从实例进行写转发时,暂不支持中断执行中的SQL请求。 写转发会创建用户“_@gdb_WriteForward@_”,请不要修改或者删除该用户,否则写转发功能无法正常运行。 支持的写转发命令如下: SQLCOM_UPDATE SQLCOM_INSERT SQLCOM_DELETE SQLCOM_INSERT_SELECT SQLCOM_REPLACE SQLCOM_REPLACE_SELECT SQLCOM_DELETE_MULTI SQLCOM_UPDATE_MULTI SQLCOM_ROLLBACK 如果执行了不支持的写转发命令,会出现如下报错信息: ERROR xxx (yyy): This version of MySQL doesn't yet support 'operation with write forwarding'. 其中“operation”为具体不支持的操作类型。 不支持的场景: SELECT FOR UPDATE语句。 EXPLAIN写转发语句。 写转发的语句包含SET VARIABLE。 在写转发开启的场景下,不支持SAVEPOINT。 XA事务中不支持写转发。 当前不支持START TRANSACTION READ WRITE,可以直接使用START TRANSACTION进行测试写转发。 存储过程中不支持写转发。 写转发开启时,不支持创建临时表,如果需要创建临时表,可以暂时关闭写转发进行创建。 针对会隐式提交的命令,在不支持写转发的情况下,也会自动提交当前节点和主节点对应的事务。 针对全局一致性级别,每个事务第一次访问数据之前,需要使用会话池中的连接,从主节点获取数据点位(LSN),如果没有可以使用的会话,可能会导致读取数据的命令失败。 如果用户使用写转发的会话出现连接错误,并且用户处于多语句事务中,服务端会主动关闭与客户端和主节点的连接,保证客户端能够感知到对应的错误。 主从实例的版本需要保持为最新版本。 由于写转发是转发到主节点上执行,如果只读节点有相同数据库下的同名临时表,最终以主节点的数据为准。 从实例如果参与了区域切换或者故障转移,写转发相关参数(“rds_open_write_forwarding”和“rds_write_forward_read_consistency”)会恢复为默认值。
-
查看可控RPO状态 执行如下SQL查看RPO实时状态: 图1 查看RPO状态 表1 参数说明 参数名称 说明 IS_RPO_TIME_OUT 表示可控RPO的状态。 null:表示状态正常。 avg_latency_time_out:表示主实例和从实例之间的平均复制时延过大,可控RPO暂时处于退出状态,直到一段时间后,平均复制时延正常后,再次进入可控RPO状态。 wait_time_out:表示由于网络等原因,可控RPO等待主实例的事务数据同步复制到从实例时出现超时,可控RPO暂时处于退出状态,直到一段时间后,再次进入可控RPO状态。 wait_time_out|avg_latency_time_out:表示出现以上两种情况,可控RPO暂时处于退出状态,直到一段时间后环境恢复正常,再次进入可控RPO状态。 RPO_CONTROL_LSN 表示可控RPO成功同步的数据位点。只有满足执行时长的事务,才会进入可控RPO的同步等待集合。
-
可控RPO原理 对于长事务,若提交完成返回成功的一瞬间且提交日志还未复制到从集群,容灾切换后,该长事务产生的数据将全部丢失。为了解决这个问题,RegionlessDB提供可控RPO的能力,用户可以控制在主实例上执行时间超过T的事务进入等待集合,同时主实例实时获取从实例日志持久化的数据位点(LSN)A,直到等待集合中事务提交的数据位点小于等于A时,才返回成功。这样达到用户自主控制长事务提交返回成功前,事务已经完整地持久化在从实例中的效果,从而在容灾切换场景下,减少了数据丢失的程度。
-
脱离从实例 在“RegionlessDB”页面,找到目标RegionlessDB。 单击RegionlessDB名称,进入“RegionlessDB详情”页面。 在实例列表区域,找到目标从实例,单击操作列的“脱离”。 图2 实例列表页面 若您已开启高危操作保护,在弹框中单击“去验证”,跳转至验证页面,单击“免费获取验证码”,正确输入验证码并单击“认证”,页面自动关闭。 关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。 在“脱离RegionlessDB”弹框中,按照提示在输入框中输入“DELETE”,单击“确定”。 图3 脱离RegionlessDB 您可以通过“任务中心”查看详细进度和结果。 只有从实例支持脱离RegionlessDB,主实例无法脱离。 从RegionlessDB脱离后,主实例将中断与该从实例的数据同步。 从RegionlessDB脱离后,该实例将被彻底删除,请谨慎操作。
-
资源计划指令(plan_directive)管理 通过租户下的用户连接数据库,进行资源计划指令管理。 创建资源计划指令 dbms_resource_manager.create_plan_directive ( plan CHAR(128), group_or_subplan CHAR(128), comment VARCHAR(2000), mgmt_p1 bigint(20), utilization_limit bigint(20)); 更新资源计划指令 dbms_resource_manager.update_plan_directive ( plan CHAR(128), group_or_subplan CHAR(128), new_comment VARCHAR(2000), new_mgmt_p1 bigint(20), new_utilization_limit bigint(20)); 删除资源计划指令 dbms_resource_manager.delete_plan_directive ( plan CHAR(128), group_or_subplan VARCHAR(128)); 查看资源计划指令 DBA_RSRC_PLAN_DIRECTIVES记录计划(plan)、消费组(consumer_group)的关联关系,以及对应消费组(consumer_group)的资源配置。 SELECT * FROM information_schema.DBA_RSRC_PLAN_DIRECTIVES; 对于共享租户,禁止使用; 参数说明: plan:plan的名称。 group_or_subplan:consumer_group的名称。 comment:资源计划指令的描述信息,可为''。 mgmt_p1:在系统满负载情况下,承诺分配给本消费组的CPU占比,取值范围[0, 100],100表示使用租户100%的CPU。 utilization_limit:指定消费组使用的CPU资源的上限,取值范围为 [1, 100]。100表示最大可使用租户全部CPU资源,如果取值为70则表示最大可使用租户 70%的CPU资源。 删除正在启用的plan_directive, 将导致对应用户的资源配置失效。 同一消费组下的用户使用的资源总和不超过当前消费组的资源限制。例如:同一租户下有用户user1和user2,user1和user2属于consumer_group1,consumer_group1的UTILIZATION_LIMIT为70;则user1和user2实际使用的CPU资源总和最大为当前租户70%的CPU资源。
-
CPU使用率统计 用户级CPU使用率 新增information_schema.cpu_summary_by_user表显示当前租户下各用户的CPU使用信息,具体使用如下: SELECT * FROM information_schema.cpu_summary_by_user; 需要提前为当前用户(user)配置消费组(consumer_group)。 查询结果中的列名说明: TENANT_NAME:用户所属的租户名称。 USER_NAME:用户名称。 CPU_USAGE:用户CPU使用率,为用户实际使用的CPU占所在租户配置的MAX_CPU的比例。例如,当前租户的max_cpu为4U, 而用户实际用了2U, 那么CPU_USAGE为50%。 租户级CPU使用率 新增information_schema.cpu_summary_by_tenant表显示各租户的CPU使用信息,具体使用如下: SELECT * FROM information_schema.cpu_summary_by_tenant; 查询结果中的列名说明: TENANT_NAME:租户名称。 CPU_USAGE:租户CPU使用率,为租户实际使用的CPU占配置的MAX_CPU的占比。例如,当前租户的max_cpu为4U, 而租户实际用了2U, 那么CPU_USAGE为50%。
-
资源计划(plan)管理 通过租户下的用户连接数据库,进行资源计划管理。 创建资源计划 dbms_resource_manager.create_plan ( plan_name VARCHAR(128), comment VARCHAR(2000)); 启用资源计划 dbms_resource_manager.set_resource_manager_plan( plan_name VARCHAR(128)); 禁用资源计划 dbms_resource_manager.set_resource_manager_plan (''); 删除资源计划 dbms_resource_manager.delete_plan ( plan_name VARCHAR(128)); 查看资源计划 视图DBA_RSRC_PLANS记录当前计划(plan)的详细信息。 SELECT * FROM information_schema.DBA_RSRC_PLANS; 对于共享租户,禁止使用。 参数说明: plan_name:资源计划名称,仅支持包含大写字母、小写字母、数字或下划线。 comment:资源计划描述信息,可为''。 若删除当前启用的资源计划,则会将当前启用的资源计划设置为空,同时删除对应的资源计划指令(plan_directive)。 plan默认可配置的最大数量为128,由参数mt_resource_plan_num控制。
-
用户级资源配置 租户下的用户默认共享当前租户的资源,若要进行用户级资源限制,请使用本节提供的用户级资源配置接口。 资源消费组(consumer_group)管理 通过租户下的用户连接数据库,进行资源消费组管理。 创建消费组 dbms_resource_manager.create_consumer_group ( consumer_group CHAR(128), comment CHAR(2000)); 绑定消费组 consumer_group参数不为'' ,此时将用户和consumer_group绑定。 dbms_resource_manager.set_consumer_group_mapping ( attribute CHAR(128), value varbinary(128), consumer_group CHAR(128)); 解绑消费组 consumer_group参数为'' ,此时将用户和consumer_group解绑。 dbms_resource_manager.set_consumer_group_mapping ( attribute CHAR(128), value varbinary(128), ''); 删除消费组 dbms_resource_manager.delete_consumer_group ( consumer_group CHAR(128)); 查看消费组 视图DBA_RSRC_CONSUMER_GROUPS记录了所属租户(tenant)和消费组(consumer_group)的关联关系。 select * from information_schema.DBA_RSRC_CONSUMER_GROUPS; 查看消费组映射 视图DBA_RSRC_GROUP_MAPPINGS记录所属租户(tenant),用户(user)和消费组(consumer_group)的关联关系。 select * from information_schema.DBA_RSRC_GROUP_MAPPINGS; 对于共享租户,禁止使用。 参数说明: consumer_group:资源消费组名称,仅支持包含大写字母、小写字母、数字或下划线_,在解绑消费组时可设置为''。 comment:资源消费组说明,可为''。 attribute:要添加或修改的映射属性,当前版本仅支持USER。 value:要添加或修改的映射属性,当前版本仅支持用户名。 删除consumer_group的时候会同步删除该资源消费组对应的plan_directive以及consumer_group_mapping条目。 如果特性开关打开,删除用户时,也会删除此用户关联的消费组条目。 如果特性开关打开,重命名用户时,也会同步更新此用户关联的消费组条目。 重新打开特性,如果发现对应的用户已经无效,则自动删除这些无效的条目。 如果特性开关关闭后,删除用户,再创建同名用户,后续打开特性,该用户对应的条目会被保留。
-
用户管理 开启多租模式后,用户分为系统租户下的用户和普通租户下的用户。存量的用户均属于系统租户,新创的用户根据接口语义属于系统租户或者普通租户。 在系统租户下管理用户 创建用户 创建系统租户下的用户: CREATE user [IF NOT EXISTS] user_name@host; 创建普通租户下的用户: CREATE user [IF NOT EXISTS] 'user_name@tenant_name'@host; 重命名用户 重命名系统租户下的用户: RENAME USER user_from@host1 TO user_to@host2; 重命名普通租户下的用户: RENAME USER 'user_from@tenant_name'@host1 TO 'user_to@tenant_name'@host2; 删除用户 删除系统租户下的用户: DROP USER [IF EXISTS] user_name@host; 删除普通租户下的用户: DROP USER [IF EXISTS] 'user_name@tenant_name'@host; 授权用户 为用户user1@tenant_1授予租户tenant_1下的priv_type权限: GRANT priv_type ON *.* to 'user_1@tenant_1'@'%' with grant option; 查看权限: SHOW grants for 'user_1@tenant_1'; 在普通租户下管理用户 创建用户 创建当前租户下的用户: CREATE user [IF NOT EXISTS] user_name@host; 重命名用户 RENAME USER user_from@host1 TO user_to@host2; 删除用户 DROP USER [IF EXISTS] user_name@host; 授权用户 为用户user1授予当前租户下的priv_type权限: GRANT priv_type ON *.* to 'user_1'@'%' with grant option; 查看权限: SHOW grants for 'user_1'; 在系统租户下创建或删除普通租户下的用户时,需要以user_name@tenant_name的方式对用户进行操作。 普通租户下的用户名称的长度被限制为不超过20个字符。 租户内不可以创建部分特殊用户:mysql.sys, mysql.session, mysql.infoschema以及参数rds_reserved_users中保留的用户。 普通租户下的用户重命名时,需要保证user_from和user_to中的tenane_name相同,如不相同,则接口返错。 特性开关关闭时,无法重命名普通租户下的用户。
-
租户管理 创建租户时,需要绑定已经创建的资源配置(resource_config),以此限制该租户下用户使用的CPU资源。 创建租户 CREATE TENANT tenant_name RESOURCE_CONFIG config_name [COMMENT [=] 'comment_string']; 更改租户 ALTER TENANT tenant_name RESOURCE_CONFIG config_name [COMMENT [=] 'comment_string']; 删除租户 DROP TENANT tenant_name; 查看租户 SELECT * FROM information_schema.DBA_RSRC_TENANT; 仅在高权限root用户下可使用。 创建租户 tenant_name长度不超过10个字符,仅支持包含小写字母、数字或下划线_。 创建租户会进行资源约束检查,需要保证所有租户的资源配置中MIN_CPU之和满足资源约束。 更改租户resource_config 如果新绑定的resource_config的MIN_CPU值大于等于原有resource_config的MIN_CPU值时,会进行资源约束检查,需要保证所有租户的资源配置中MIN_CPU之和满足资源约束。 独占租户如果新绑定的resource_config的MIN_CPU值为0,会导致租户变为共享租户,将同时删除租户关联的用户级资源隔离相关的元数据。 删除租户 需要保证租户下的DB和用户已经被删除,否则,无法删除租户。 同时将删除租户关联的用户级资源隔离相关的配置。
-
数据库管理 数据库分为系统租户下的数据库和普通租户下的数据库。系统租户可以访问所有数据库,普通租户只能访问属于自己的数据库。 在系统租户下管理数据库 创建数据库 创建系统租户的数据库: CREATE DATABASE [IF NOT EXISTS] `db_name`; 创建普通租户的数据库: CREATE DATABASE [IF NOT EXISTS] `db_name@tanent_name`; 删除数据库 删除系统租户的数据库: DROP DATABASE [IF EXISTS] `db_name`; 删除普通租户的数据库: DROP DATABASE [IF EXISTS] `db_name@tanent_name`; 在普通租户下管理数据库 创建当前租户的DB: CREATE DATABASE [IF NOT EXISTS] 'db_name'; 删除当前租户的DB: DROP DATABASE [IF EXISTS] 'db_name'; 在系统租户下创建或删除普通租户下的DB时,需要以db_name@tenant_name的方式对DB进行操作。 普通租户当前只支持INFORMATION_SCHEMA系统库的访问,PERFORMANCE_SCHEMA、SYS、MYSQL等系统库暂不允许普通租户访问。 租户内不可以创建部分特殊DB:INFORMATION_SCHEMA, PERFORMANCE_SCHEMA, MYSQL, SYS, __recyclebin。 存量数据库分配租户 为保证兼容性,升级或者迁移到多租实例后,存量的DB默认属于系统租户,可以通过如下语法将存量的DB分配给租户。此外,对于已经开启多租特性后,系统租户创建的且未分配给普通租户的DB,也可通过如下语法分配数据库给对应租户。 数据库分配 将DB分配给租户名为tenant_name的普通租户 ALTER DATABASE db_name TENANT = `tenant_name`; 将DB回收到系统租户下 ALTER DATABASE db_name TENANT = ``; 查看映射关系 SELECT * FROM information_schema.DBA_RSRC_TENANT_DB; 仅在高权限root用户下可使用。 如果DB是开启多租后创建的,以db_name@tenant_name格式命名的DB不允许分配调用此接口,接口会返错。 如果tenant不存在,且不为空,接口返错。 通过租户下的用户连接数据库 在系统租户下,原有连接方式不变。 在普通租户下,指定用户时,需要以user_name@tenant_name的形式;指定DB时,支持db_name和db_name@tenant_name两种形式。 mysql --host=**** -u user1@tenant_1 -D db1 -p pwssword; mysql --host=**** -u user1@tenant_1 -D db1@tenant_1 -p pwssword; 连接成功后,该用户将受到对应租户下的资源限制。
-
使用须知 多租户管理与资源隔离功能支持租户级数据隔离、租户级CPU资源隔离、用户级CPU资源隔离。 多租户管理与资源隔离功能需要GaussDB(for MySQL)实例内核版本为2.0.54.240600及以上。 开启多租户管理与资源隔离前必须开启thread pool功能。 开启多租户管理与资源隔离功能前,要求实例中的数据库名称和用户名称不能包含@字符。 Serverless不支持多租户管理与资源隔离功能。 租户跨实例迁移: 开启多租户管理与资源隔离功能后,DRS迁移可以迁移所有租户下的数据,但DRS不会同步多租元数据,故租户信息不会被同步到目标端。如果需要迁移某个租户到另一个实例,需要遵循以下步骤: 目标端需要使用具备多租特性的实例,首先在目标端手动创建租户。 使用DRS数据同步功能创建库级同步任务(如果源端和目标端租户名有改动,则这里需要改动目标端库名)。 进行同步。 Binlog: 目前Binlog没有实现租户隔离,如果允许普通租户拉取Binlog会破坏租户间数据隔离,因此当前禁止普通租户下的用户拉取Binlog。 本特性引入的租户和资源隔离相关接口,记录的Binlog为row格式。在binlog_format不为row的情况下,通过Binlog进行同步,将无法同步租户及资源配置信息。 Proxy: 支持带Proxy使用,带Proxy使用时show processlist显示结果是节点级别。 因HTAP标准版和轻量版不支持带@字符的数据库,普通租户下的数据库迁移到该类HTAP引擎时会更改目标端库名,但Proxy的自动行存/列存引流功能要求源端和目标端的库名一致,因此普通租户创建的数据库将无法使用Proxy的自动行存/列存引流功能。 备份恢复: 恢复已打开多租开关的多租实例数据到新实例,未开启多租开关下,新实例不支持创建带@的用户和DB。 兼容性: 先开启后关闭多租开关,创建DB和用户时,名称中不能包含@字符。 普通租户下,数据库名称最大长度由64降低为50,用户名称最大长度由32降低为20。 当前仅支持普通租户访问information_schema,其他系统库暂不开放给普通租户。 普通租户不支持tablespace相关语法。
-
资源管理 资源配置(resource_config)和租户是一对多的关系,当某一租户绑定此资源配置时便可限制此租户下用户使用的CPU资源。 创建资源配置 CREATE resource_config config_name MAX_CPU [=] {max_cpu_value} [MIN_CPU [=] {min_cpu_value}]; 更新资源配置 ALTER resource_config config_name MAX_CPU [=] {max_cpu_value} [MIN_CPU [=] {min_cpu_value}]; 删除资源配置 DROP resource_config config_name; 查看资源配置 SELECT * FROM information_schema.DBA_RSRC_TENANT_RESOURCE_CONFIGS; 仅在高权限root用户下可使用。 参数说明: config_name: 资源配置名称。最大长度为64,仅支持包含大写字母、小写字母、数字或下划线。 MAX_CPU:该资源配置能够使用的CPU的最大数量,最小值为0.1,最大值为mt_flavor_cpu。粒度0.1U。 MIN_CPU:该资源配置能够使用的CPU的最小数量,为可选项。默认等于MAX_CPU,最小值为0,最大值不超过MAX_CPU。粒度为0.1U。如果设置为0,表示该租户为共享租户,如果大于0则为独占租户。 更新resource_config时,如果该resource_config已经绑定租户,且更新后MIN_CPU值大于原有的MIN_CPU值,则需要校验修改后的值是否满足资源约束,否则不做资源约束校验。 删除resource_config时,若租户正在使用该资源配置,则无法进行删除操作。 实际使用中,共享租户的资源分配不依赖MAX_CPU,是随机争夺资源的。 CPU争抢时,租户间资源分配会尽量按照租户的MIN_CPU分配资源,但存在一定的误差,误差通常在1U以内。 租户性能比同等规格实例性能低,实际使用中多个租户抢占资源性能将更低。
-
其他操作和检查 主从实例分别是独立的GaussDB(for MySQL)数据库集群,主从切换和故障转移不会交换主从间的各种配置,为了避免配置参数不同引起的性能和兼容性等问题,建议在主从切换和故障转移后检查主从实例的配置项差异。 检查应用程序读取/写入地址 主从切换和故障转移不会切换实例的读写地址,需要检查应用程序的读写地址是否符合预期。 故障转移期间,可以配置应用程序使用新的主实例的读写地址,等待故障实例重建完成后重新配置应用程序的读写地址。 检查备机支持写转发配置,请参考从实例写转发。 检查参数组参数配置,请参考修改GaussDB(for MySQL)实例参数。 配置监控告警,请参考监控指标与告警。 如果操作前主实例关联了数据库代理或者HTAP分析节点,需要手动移除。
共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
推荐文章