华为云用户手册
-
ADM_TAB_COLUMNS ADM_TAB_COLUMNS视图显示关于表和视图的字段的信息。数据库中每个表和视图的每一个字段在ADM_TAB_COLUMNS里有一行对应的数据。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TAB_COLUMNS字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表的名称。 column_name character varying(64) 列名。 data_type character varying(128) 列的数据类型。 data_type_mod character varying(3) 暂不支持,值为NULL。 data_type_owner character varying(128) 列的数据类型的所有者。 data_length integer 列的字节长度。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 nullable bpchar 该列是否允许为空。取值范围: y:允许。 n:不允许。对于主键约束和非空约束,该值为n。 column_id integer 创建表时列的序号。 default_length numeric 列的默认值字节长度,无默认值时为空。 data_default text 列的默认值。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的最小值。 high_value raw 列中的最大值。 density numeric 列密度。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图的桶数。 last_analyzed timestamp(0) without time zone 上次分析的日期。 sample_size numeric 用于分析此列的样本量。 character_set_name character varying(44) 暂不支持,值为NULL。 char_col_decl_length numeric 字符类型列的声明长度。 global_stats character varying(3) 暂不支持,值为NO。 user_stats character varying(3) 暂不支持,值为NO。 avg_col_len numeric 列的平均长度(单位字节)。 char_length numeric 列的长度(以字符计),只对varchar,nvarchar2,bpchar,char类型有效。 char_used character varying(1) 暂不支持,varchar,bpchar,char类型值为B,nvarchar2类型置C,其余值为NULL。 v80_fmt_image character varying(3) 暂不支持,值为NULL。 data_upgraded character varying(3) 暂不支持,值为YES。 histogram character varying(15) 直方图是否存在以及存在的类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI_W IDT H:表示等宽直方图。 default_on_null character varying(3) 暂不支持,值为NULL。 identity_column character varying(3) 暂不支持,值为NULL。 sensitive_column character varying(3) 暂不支持,值为NULL。 evaluation_edition character varying(128) 暂不支持,值为NULL。 unusable_before character varying(128) 暂不支持,值为NULL。 unusable_beginning character varying(128) 暂不支持,值为NULL。 collation character varying(100) 列的排序规则。因该字段与保留关键字冲突,调用该字段需加视图名。 comments text 列的注释。 schema character varying(64) 列所属的名称空间的名称。 父主题: 其他系统视图
-
GaussDB 的DROP、TRUNCATE、DELETE这三种删除数据的方式主要区别是什么? 答:DROP、TRUNCATE、DELETE这三种删除方式的区别主要体现在删除的速度和删除的范围上,具体所下: DROP语句的删除速度最快,可以删除整个表,包括表结构、数据、索引和权限。 TRUNCATE语句的删除速度中等,可以删除表中的所有数据,但不删除表结构。 DELETE语句的删除速度最慢,可以根据条件删除表中的数据,但不包括表结构。 父主题: FAQ
-
采用接口三连接数据库 使用DriverManager.getConnection(String url, Properties info)接口创建数据库连接,命令如下: 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。 java.util.Properties的setProperty() 方法,用于设置Properties 对象的属性值。此外,用户需要根据实际的应用场景,再导入其他的接口和类,具体请参见JDBC接口参考。 1 2 3 import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。 用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。 String sourceURL = "jdbc:gaussdb://$ip:$port/database"; String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); 创建Properties 对象,并将userName和password设置为该对象的属性值。 Properties info = new Properties(); info.setProperty("user", userName); info.setProperty("password", password); 加载驱动。 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。 String driver = "com.huawei.gaussdb.jdbc.Driver"; Class.forName(driver); 创建数据库连接。 调用DriverManager.getConnection(String url, Properties info),进行数据库连接。 1 Connection conn = DriverManager.getConnection(sourceURL, info);
-
创建数据库连接的接口介绍 JDBC提供了三种接口,用于创建数据库连接。url、info、user、password参数描述,请参见表1。 接口一:DriverManager.getConnection(String url)。该方式需要把数据库用户名、密码写在url中,有一定的安全风险,因此不推荐使用。 接口二:DriverManager.getConnection(String url, String user, String password)。具体请参见采用接口二连接数据库。 接口三:DriverManager.getConnection(String url, Properties info)。具体请参见采用接口三连接数据库。 表1 数据库连接参数 参数 描述 url gaussdbjdbc.jar数据库连接描述符。 host为服务器名称或IPv4时,格式如下: jdbc:gaussdb:(数据库名称缺省则与用户名一致) jdbc:gaussdb:database jdbc:gaussdb://host/database jdbc:gaussdb://host:port/database jdbc:gaussdb://host:port/database?param1=value1¶m2=value2 jdbc:gaussdb://host1:port1,host2:port2/database?param1=value1¶m2=value2 host为IPv6时,格式如下: jdbc:gaussdb:(数据库名称缺省则与用户名一致) jdbc:gaussdb:database jdbc:gaussdb://host/database 或 jdbc:gaussdb://[host]/database jdbc:gaussdb://[host]:port/database jdbc:gaussdb://[host]:port/database?param1=value1¶m2=value2 jdbc:gaussdb://[host1]:port1,[host2]:port2/database?param1=value1¶m2=value2 说明: database为要连接的数据库名称。 host为数据库服务器名称或IP地址,同时支持IPv4和IPv6。 由于安全原因,数据库主节点禁止数据库内部其他节点无认证接入。如果要在数据库内部访问数据库主节点,请将JDBC程序部署在数据库主节点所在机器,host使用“127.0.0.1”。否则可能会出现“FATAL: Forbid remote connection with trust method!”错误。 建议业务系统单独部署在数据库外部,否则可能会影响数据库运行性能。 缺省情况下,连接服务器为localhost。 port为数据库服务器端口。 缺省情况下,会尝试连接到5432端口的database。 当host为IPv6且在url中指定port时,需要通过“[]”分隔IP,如:[IP]:port。 param为参数名称,即数据库连接属性。参数可以配置在URL中,以“?”开始配置,以“=”给参数赋值,以“&”作为不同参数的间隔。 value为参数值,即数据库连接属性值。 连接时需配置connectTimeout、socketTimeout,如果未配置,默认为0,即不会超时。在DN与客户端出现网络故障时,客户端一直未收到DN侧ACK确认报文,会启动超时重传机制,不断的进行重传。当重传次数达到默认的15次后才会报超时错误,会导致RTO时间很高。 建议使用JDBC标准接口建立连接时,确保url格式的合法性,不合法的url会导致异常,且异常中包含原始url字符串,可能造成敏感信息泄漏。 info 数据库连接属性。全量参数请参见连接参数参考。 user 数据库用户名。 password 数据库用户的密码。
-
采用接口二连接数据库 使用DriverManager.getConnection(String url, String user, String password)接口创建数据库连接,命令如下: 导入java.sql.Connection和java.sql.DriverManager。 java.sql.Connection是数据库连接接口,通过java.sql.DriverManager的 getConnection() 方法让应用程序连接到数据库。此外,用户需要根据实际的应用场景,再导入其他的接口和类,具体请参见JDBC接口参考。 1 2 import java.sql.Connection; import java.sql.DriverManager; 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。 用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。 String sourceURL = "jdbc:gaussdb://$ip:$port/database"; String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV"); 加载驱动。 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。 String driver = "com.huawei.gaussdb.jdbc.Driver"; Class.forName(driver); 创建数据库连接。 调用DriverManager.getConnection(String url, String user, String password),进行数据库连接。 Connection conn = DriverManager.getConnection(sourceURL, userName, password);
-
加载驱动方式介绍 加载驱动有两种方式: 在代码中创建连接之前在任意位置隐含装载: Class.forName("com.huawei.gaussdb.jdbc.Driver"); 在JVM启动时参数传递,jdbctest为测试用例程序的名称。 java -Djdbc.drivers=com.huawei.gaussdb.jdbc.Driver jdbctest; 由于GaussDB在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC驱动的时候,可能会造成类名冲突。 GaussDB JDBC驱动主要做了以下特性的增强: 支持SHA256加密方式登录。 支持对接实现sf4j接口的第三方日志框架。 支持容灾切换。
-
背景 一个数据库可能有很多的用户需要访问,为了方便管理这些用户,将用户组成一个数据库角色。一个数据库角色可以视为一个数据库用户或者一组数据库用户。 对于数据库来说,用户和角色是基本相同的概念,不同之处在于,使用CREATE ROLE创建角色,不会创建同名的SCHEMA,并且默认没有LOGIN权限;而使用CREATE USER创建用户,会自动创建同名的SCHEMA,默认有LOGIN权限。换句话说,一个拥有LOGIN权限的角色可以被认为是一个用户。在业务设计中,仅建议通过ROLE来组织权限,而不是用来访问数据库。
-
解决方案 数据库用户 数据库用户的主要用途是使用该用户账号连接数据库、访问数据库对象和执行SQL语句。在连接数据库时,必须使用一个已经存在的数据库用户。因此,作为数据库管理员,需要为每一个需要连接数据库的使用者规划一个数据库用户。 在创建数据库用户时,至少需要指定用户名和密码。 默认情况下,数据库用户可以分为两大类,详细信息请参见表1。 表1 用户分类 分类 描述 初始用户 具有数据库的最高权限,并且具有所有的系统权限和对象权限。初始用户不受对象的权限设置影响。这个特点类似Unix系统的root的权限。从安全角度考虑,除了必要的情况,建议尽量避免以初始用户身份操作。 在安装数据库或者初始化数据库时,可以指定初始用户名和密码。如果不指定用户名则会自动生成一个与安装数据库的OS用户同名的初始用户。如果不指定密码则安装后初始用户密码为空,需要通过gsql客户端设置初始用户的密码后才能执行其他操作。 说明: 基于安全性考虑,GaussDB Kernel禁止了所有用户trust方式的远程登录方式,禁止了初始用户的任何方式的远程登录。 普通用户 默认可以访问数据库的默认系统表和视图(pg_authid、pg_largeobject、pg_user_status和pg_auth_history除外),可以连接默认的数据库postgres以及使用public模式下的对象(包括表、视图和函数等)。 可以通过CREATE USER、ALTER USER指定系统权限,或者通过GRANT ALL PRIVILEGE授予SYSADMIN权限。 可以通过GRANT语句授予某些对象的权限。 可以通过GRANT语法将其他角色或用户的权限授权给该用户。 数据库权限分类 通过权限和角色,可以控制用户访问指定的数据,以及执行指定类型的SQL语句。详细信息请参见表2。 系统权限只能通过CREATE/ALTER USER、CREATE/ALTER ROLE语句指定(其中SYSADMIN还可以通过GRANT/REVOKE ALL PRIVILEGES的方式赋予、回收),无法从角色继承。 表2 权限分类 分类 描述 系统权限 系统权限又称为用户属性,可以在创建用户和修改用户时指定,包括SYSADMIN、MONADMIN、OPRADMIN、POLADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。 系统权限一般通过CREATE/ALTER USER语句指定。除了SYSADMIN外的其他系统权限,无法通过GRANT/REVOKE进行授予和撤销。并且,系统权限无法通过ROLE被继承。 对象权限 对象权限是指在表、视图、索引和函数等数据库对象上执行各种操作的权限,对象权限包括SELECT、INSERT、UPDATE和DELETE等。 只有对象的所有者或者系统管理员才可以执行GRANT/REVOKE语句来分配/撤销对象权限。 角色 角色是一组权限的集合,可以将一个角色的权限赋予其他角色和用户。 由于无法给其他角色和用户赋予系统权限,所以角色只有是对象权限的集合时才有意义。 数据库权限模型 系统权限模型 默认权限机制 图1 权限架构 权限架构如图1,默认权限机制下sysadmin具有大多数的权限。 初始安装用户:集群安装过程中自动生成的账户,拥有系统的最高权限,能够执行所有的操作。 SYSADMIN:系统管理员权限,权限仅次于初始安装用户,默认具有与对象所有者相同的权限,但不包括监控管理员权限和运维管理员权限。 MONADMIN:监控管理员权限,具有监控模式dbe_perf及模式下视图和函数的访问权限和授予权限。 OPRADMIN:运维管理员权限,具有使用Roach工具执行备份恢复的权限。 CREATEROLE:安全管理员权限,具有创建、修改、删除用户/角色的权限。 AUDITADMIN:审计管理员权限,具有查看和维护数据库审计日志的权限。 CREATEDB:具有创建数据库的权限。 POLADMIN:安全策略管理员权限,具有创建资源标签,数据动态脱敏策略和统一审计策略的权限。 三权分立机制 图2 三权分立机制 SYSADMIN:系统管理员权限,不再具有创建、修改、删除用户/角色的权限,也不再具有查看和维护数据库审计日志的权限。 CREATEROLE:安全管理员权限,具有创建、修改、删除用户/角色的权限。 AUDITADMIN:审计管理员权限,具有查看和维护数据库审计日志的权限。 一个用户/角色只能具有SYSADMIN、CREATEROLE和AUDITADMIN中的一项系统权限。 对象权限模型 对象权限:指在数据库、模式、表等数据库对象上执行特定动作的权限,比如:SELECT、INSERT、UPDATE、DELETE和CONNECT等。 针对不同的数据库对象有不同的对象权限,相应地可以被授予用户/角色。 通过GRANT/REVOKE来传递对象权限,对象权限可以通过角色被继承。 角色权限模型 GaussDB Kernel提供了一组默认角色,以gs_role_开头命名。它们提供对特定的、通常需要高权限操作的访问,可以将这些角色GRANT给数据库内的其他用户或角色,让这些用户能够使用特定的功能。在授予这些角色时应当非常小心,以确保它们被用在需要的地方。表3描述了内置角色允许的权限范围。 表3 内置角色权限 角色 权限描述 gs_role_copy_files 具有执行copy … to/from filename的权限,但需要先打开GUC参数enable_copy_server_files。 gs_role_signal_backend 具有调用函数pg_cancel_backend()、pg_terminate_backend()和pg_terminate_session()来取消或终止其他会话的权限,但不能操作属于初始用户和PERSISTENCE用户的会话。 gs_role_tablespace 具有创建表空间(tablespace)的权限。 gs_role_replication 具有调用逻辑复制相关函数的权限,例如kill_snapshot()、pg_create_logical_replication_slot()、pg_create_physical_replication_slot()、pg_drop_replication_slot()、pg_replication_slot_advance()、pg_create_physical_replication_slot_extern()、pg_logical_slot_get_changes()、pg_logical_slot_peek_changes(),pg_logical_slot_get_binary_changes()、pg_logical_slot_peek_binary_changes()。 gs_role_account_lock 具有加解锁用户的权限,但不能加解锁初始用户和PERSISTENCE用户。 gs_role_pldebugger 具有执行dbe_pldebugger下调试函数的权限。 gs_role_directory_create 具有执行创建directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 gs_role_directory_drop 具有执行删除directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 系统权限配置 默认权限机制配置方法 初始用户 数据库安装过程中自动生成的账户称为初始用户。初始用户也是系统管理员、监控管理员、运维管理员和安全策略管理员,拥有系统的最高权限,能够执行所有的操作。如果安装时不指定初始用户名称则该账户与进行数据库安装的操作系统用户同名。如果在安装时不指定初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端修改初始用户的密码。如果初始用户密码为空,则除修改密码外无法执行其他SQL操作以及升级、扩容和节点替换等操作。 初始用户会绕过所有权限检查。建议仅将此初始用户作为DBA管理用途,而非业务用途。 系统管理员 gaussdb=#CREATE USER u_sysadmin WITH SYSADMIN password '********'; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_sysadmin01 SYSADMIN; 监控管理员 gaussdb=#CREATE USER u_monadmin WITH MONADMIN password '********'; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_monadmin01 MONADMIN; 运维管理员 gaussdb=#CREATE USER u_opradmin WITH OPRADMIN password "xxxxxxxxx"; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_opradmin01 OPRADMIN; 安全策略管理员 gaussdb=#CREATE USER u_poladmin WITH POLADMIN password "xxxxxxxxx"; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_poladmin01 POLADMIN; 三权分立机制配置方式 此模式需要设置guc参数“enableSeparationOfDut”y的值为“on”,该参数为POSTMASTER类型参数,修该完之后需要重启数据库。 gs_guc set -Z datanode -N all -I all -c "enableSeparationOfDuty=on" gs_om -t stop gs_om -t start 创建和配置相应的用户权限的语法和默认权限一致。 角色权限配置 --创建数据库test gaussdb=#CREATE DATABASE test; --创建角色role1,创建用户user1 gaussdb=#CREATE ROLE role1 PASSWORD '********'; gaussdb=#CREATE USER user1 PASSWORD '********'; --赋予CREATE ANY TABLE权限角色role1 gaussdb=#GRANT CREATE ON DATABASE test TO role1; --将角色role1赋予给用户user1,则用户user1属于组role1,继承role1的相应权限可以在test数据库中创建模式。 gaussdb=#GRANT role1 TO user1; --查询用户和角色信息 gaussdb=#\du role1|user1; List of roles Role name | Attributes | Member of -----------+--------------+----------- role1 | Cannot login | {} user1 | | {role1}
-
什么是MVCC? 答:MVCC,即Muti-Version Concurrency Control(多版本并发控制)。MVCC是数据库并发控制协议的一种,写事务不会立即修改元组内容,每次操作都会在旧的版本之上创建新的版本,并且会保留旧的版本。当某个事务要读取数据时,数据库系统会从所有版本中选取出符合改事务隔离级别要求的版本。 MVCC的主要优点是:读数据的锁请求和写数据的锁请求不冲突,可以实现读不阻塞写,写不阻塞读。 父主题: FAQ
-
存储过程 商业规则和业务逻辑可以通过程序存储在GaussDB中,这个程序就是存储过程。 存储过程是SQL和PL/SQL的组合。存储过程使执行商业规则的代码可以从应用程序中移动到数据库。从而,代码存储一次能够被多个程序使用。 存储过程的创建及调用办法请参考CREATE PROCEDURE。 PL/SQL语言函数节所提到的PL/SQL语言创建的函数与存储过程的应用方法相通。下面各节中,除非特别声明,否则内容通用于存储过程和PL/SQL语言函数。 父主题: 存储过程
-
函数和存储过程的区别是什么? 答:函数和存储过程是数据库中常见的两种对象,两者都可以封装一系列的SQL语句,以完成某些特定的操作。两者区别见表1: 表1 函数和存储过程的区别 函数 存储过程 函数的标识符为FUNCTION。 存储过程标识符为PROCEDURE。 函数必须有返回值。 存储过程可以有返回值,也可以没有返回值。 函数只可以输入参数。 存储过程可以输入输出参数。 函数只可以调用SELECT语句,不可以对表中的数据作出修改。 存储过程可以对表中的数据作出修改,如UPDATE、DELETE和INSERT等。 不可以在函数中调用存储过程。 可以在存储过程中调用函数和存储过程。可以简化一系列复杂语句。 函数适用于需要返回单个值的情况,比如计算某个数据、字符串处理、返回表等。 存储过程适用于需要执行DML操作的情况,比如批量插入、更新、删除数据等。 父主题: FAQ
-
常用方法 表1 CopyManager常用方法 方法名 返回值类型 描述 throws 支持JDBC4 copyIn(String sql) CopyIn - SQLException Yes copyIn(String sql, InputStream from) long 使用COPY FROM STDIN从InputStream中快速向数据库中的表加载数据。 SQLException,IOException Yes copyIn(String sql, InputStream from, int bufferSize) long 使用COPY FROM STDIN从InputStream中快速向数据库中的表加载指定长度的数据。 SQLException,IOException Yes copyIn(String sql, Reader from) long 使用COPY FROM STDIN从Reader中快速向数据库中的表加载数据。 SQLException,IOException Yes copyIn(String sql, Reader from, int bufferSize) long 使用COPY FROM STDIN从Reader中快速向数据库中的表加载指定长度的数据。 SQLException,IOException Yes copyOut(String sql) CopyOut - SQLException Yes copyOut(String sql, OutputStream to) long 将一个COPY TO STDOUT的结果集从数据库发送到OutputStream类中。 SQLException,IOException Yes copyOut(String sql, Writer to) long 将一个COPY TO STDOUT的结果集从数据库发送到Writer类中。 SQLException,IOException Yes 本接口类不支持计划外ALT特性。
-
常用方法 表1 PGReplicationStream常用方法 方法名 返回值类型 描述 throws close() void 结束逻辑复制,并释放资源。 SQLException forceUpdateStatus() void 强制将上次接收、刷新和应用的 LSN 状态发送到后端。 SQLException getLastAppliedLSN() LogSequenceNumber 获取上次主机日志回放的LSN。 - getLastFlushedLSN() LogSequenceNumber 获取上次主机刷新的LSN,即当前逻辑解码推进的LSN。 - getLastReceiveLSN() LogSequenceNumber 获取上次接收的LSN(针对LSN序复制槽)或 CS N(针对CSN序复制槽)。 - isClosed() boolean 复制流是否关闭。 - read() ByteBuffer 从后端读取下一条WAL记录。如果读取不到,该方法阻塞I/O读。 SQLException readPending() ByteBuffer 从后端读取下一条WAL记录。如果读取不到,该方法不阻塞I/O读。 SQLException setAppliedLSN(LogSequenceNumber applied) void 设置应用的LSN。 - setFlushedLSN(LogSequenceNumber flushed) void 设置刷新的LSN(针对LSN序复制槽)或CSN(针对CSN序复制槽),在下次更新时发送至后端,用于推进服务端LSN(针对LSN序复制槽)或CSN(针对CSN序复制槽)。 - 本接口类不支持计划外ALT特性。
-
PGReplicationStream的继承关系 PGReplicationStream是逻辑复制的接口,实现类是V3PGReplicationStream,该类位于com.huawei.gaussdb.jdbc.core.v3.replication Package中,该类的声明如下: public class V3PGReplicationStream implements PGReplicationStream
-
接口介绍 高级功能包DBE_UTILITY支持的所有接口请参见表1。 表1 DBE_UTILITY 接口名称 描述 DBE_UTILITY.FORMAT_ERROR_BACKTRACE 输出存储过程异常的调用堆栈。 DBE_UTILITY.FORMAT_ERROR_STACK 输出存储过程异常的具体信息。 DBE_UTILITY.FORMAT_CALL_STACK 输出存储过程的调用堆栈。 DBE_UTILITY.GET_TIME 输出当前时间,一般用于做差得到执行时长。 DBE_UTILITY.CANONICALIZE 用于给表名字符串做规范。 DBE_UTILITY.COMMA_TO_TABLE 将用逗号隔开的名字列表的字符串转换为PL/SQL表名列表。 DBE_UTILITY.DB_VERSION 返回数据库的版本号和兼容性版本号。 DBE_UTILITY.EXEC_DDL_STATEMENT 用于执行用户输入的DDL语句。 DBE_UTILITY.EXPAND_SQL_TEXT_PROC 用于展开SQL查询的视图。 DBE_UTILITY.GET_CPU_TIME 返回当前CPU处理时间的测量值。 DBE_UTILITY.GET_ENDIANNESS 用于获取数据库所在平台字节序的大小端信息。 DBE_UTILITY.GET_HASH_VALUE 返回一个给定字符串的哈希值。 DBE_UTILITY.GET_SQL_HASH 输出一个给定字符串的哈希值,该存储过程在不打开proc_outparam_override时使用。 DBE_UTILITY.IS_BIT_SET 用于检查参数n是否存在于r。 DBE_UTILITY.IS_CLUSTER_DATABASE 用于判断当前数据库是否在数据库集群模式下运行。 DBE_UTILITY.NAME_RESOLVE 解析给定的对象名称,包括同义词翻译和必要的授权检查。 DBE_UTILITY.NAME_TOKENIZE 用于解析a [. b [. c ]][@ dblink ]形式的名字。 DBE_UTILITY.OLD_CURRENT_SCHEMA 返回当前用户环境下的数据库模式名称。 DBE_UTILITY.OLD_CURRENT_USER 返回当前用户的名称。 DBE_UTILITY.TABLE_TO_COMMA 将PL/SQL中的表名转换为用逗号隔开的名字列表的字符串。 DBE_UTILITY.GET_SQL_HASH_FUNC 功能同DBE_UTILITY.GET_SQL_HASH,该函数在打开proc_outparam_override时使用。 DBE_UTILITY.EXPAND_SQL_TEXT 内部函数,不建议用户使用。 DBE_UTILITY.CANONICALIZE_RET 内部函数,不建议用户使用。 DBE_UTILITY.COMMA_TO_TABLE_FUN 内部函数,不建议用户使用。 DBE_UTILITY.COMPILE_SCH.... 内部函数,不建议用户使用,推荐使用pkg_util.gs_compile_schema。 DBE_UTILITY.NAME_SEPARATE 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_LOWER 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_LOWER_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.PRIVILEGE_CHECK 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_CLASS_WITH_NSPOID_ONAME_TYPE 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_OBJE CTS 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_OBJECTS_SYNONYM_FILL_SECHEMA 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_PROCEDURE_WITH_NSPOID_ONAME 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_SYNONM_WITH_NSPOID_ONAME 内部函数,不建议用户使用。 DBE_UTILITY.TABLE_TO_COMMA_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.USER_NAME 内部函数,不建议用户使用。 DBE_UTILITY.FORMAT_ERROR_BACKTRACE 存储过程FORMAT_ERROR_BACKTRACE返回在执行过程中出现错误时,出现错误位置的调用堆栈。DBE_UTILITY.FORMAT_ERROR_BACKTRACE函数原型为: 1 2 DBE_UTILITY.FORMAT_ERROR_BACKTRACE() RETURN TEXT; DBE_UTILITY.FORMAT_ERROR_STACK 存储过程FORMAT_ERROR_STACK返回在执行过程中出现错误时,出现错误位置的具体信息。DBE_UTILITY.FORMAT_ERROR_STACK函数原型为: 1 2 DBE_UTILITY.FORMAT_ERROR_STACK() RETURN TEXT; DBE_UTILITY.FORMAT_CALL_STACK 存储过程FORMAT_CALL_STACK设置输出函数调用堆栈。DBE_UTILITY.FORMAT_CALL_STACK函数原型为: 1 2 DBE_UTILITY.FORMAT_CALL_STACK() RETURN TEXT; DBE_UTILITY.COMPILE_SCHEMA 重编译指定schema下的PL/SQL类型包和函数(系统自带的包和函数除外), DBE_UTILITY.COMPILE_SCHEMA函数原型为: DBE_UTILITY.COMPILE_SCHEMA ( SCHEMA IN VARCHAR2, COMPILE_ALL IN BOOLEAN DEFAULT TRUE, REUSE_SETTINGS IN BOOLEAN DEFAULT FALSE ) RETURNS VOID; 示例参考11.12.1.2中pkg_util.utility_compile_schema函数使用方式, 调用处改为: call DBE_UTILITY.compile_schema('pkg_var_test'); DBE_UTILITY.GET_TIME 存储过程GET_TIME设置输出时间,通常用于做差,单独的返回值没有意义。DBE_UTILITY.GET_TIME函数原型为: 1 2 DBE_UTILITY.GET_TIME() RETURN BIGINT;
-
关闭连接 libpq通常使用PQfinish函数来关闭与数据库的连接。如果你的应用程序建立了多个连接,则需要确保每个连接都被正确关闭。 示例如下(完整示例请参考数据库建连、执行SQL并返回结果): /* 关闭入口 ... 不用检查错误 ... */ res = PQexec(conn, "CLOSE myportal"); PQclear(res); /* 结束事务 */ res = PQexec(conn, "END"); PQclear(res); /* 关闭数据库连接并清理 */ PQfinish(conn); 父主题: 开发步骤
-
MY_TAB_COLUMNS MY_TAB_COLUMNS视图显示当前用户拥有的表和视图的字段信息。该视图同时存在于PG_CATALOG和SYS Schema下。该视图所有用户可访问,仅显示该用户所属的信息。 表1 MY_TAB_COLUMNS字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名称。 column_name character varying(64) 列名。 data_type character varying(128) 列的数据类型。 data_type_mod character varying(3) 暂不支持,值为NULL。 data_type_owner character varying(128) 列的数据类型的所有者。 data_length integer 列的字节长度。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 nullable bpchar 该列是否允许为空,对于主键约束和非空约束,该值为n。取值范围: y:允许。 n:不允许。 column_id integer 创建表时列的序号。 default_length numeric 列的默认值字节长度。 data_default text 列的默认值。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的最小值。 high_value raw 列中的最大值。 density numeric 列密度。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图的桶数。 last_analyzed timestamp(0) without time zone 上次分析的日期。 sample_size numeric 用于分析此列的样本量。 character_set_name character varying(44) 暂不支持,值为NULL。 char_col_decl_length numeric 字符类型列的声明长度。 global_stats character varying(3) 暂不支持,值为NO。 user_stats character varying(3) 暂不支持,值为NO。 avg_col_len numeric 列的平均长度(单位字节)。 char_length numeric 列的长度(单位字符),只对varchar,nvarchar2,bpchar,char类型有效。 char_used character varying(1) 暂不支持,varchar,bpchar,char类型值为B,nvarchar2类型置C,其余值为NULL。 v80_fmt_image character varying(3) 暂不支持,值为NULL。 data_upgraded character varying(3) 暂不支持,值为YES。 histogram character varying(15) 表示直方图是否存在,如果存在的话是什么类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI_WIDTH:表示等宽直方图。 default_on_null character varying(3) 暂不支持,值为NULL。 identity_column character varying(3) 暂不支持,值为NULL。 sensitive_column character varying(3) 暂不支持,值为NULL。 evaluation_edition character varying(128) 暂不支持,值为NULL。 unusable_before character varying(128) 暂不支持,值为NULL。 unusable_beginning character varying(128) 暂不支持,值为NULL。 collation character varying(100) 列的排序规则。因该字段与保留关键字冲突,调用该字段需加视图名。 comments text 列的注释。 schema character varying(64) 列所属的名称空间的名称。 父主题: 其他系统视图
-
日志应用 在日志管理页面的日志总览下方,支持多种日志应用,即LTS提供开箱即用的日志仪表盘模板,用户接入即可进行日志的快速分析,主要有如下几个应用: ELB日志中心:支持ELB日志接入LTS和ELB仪表盘模板。详情请参考ELB仪表盘模板(共享型)。 APIG日志中心:支持APIG日志接入LTS和APIG仪表盘模板。详情请参考APIG仪表盘模板。 VPC日志流中心:支持VPC日志接入LTS和VPC仪表盘模板。详情请参考VPC仪表盘模板。 CFW日志中心:支持CFW日志接入LTS和CFW仪表盘模板。详情请参考CFW仪表盘模板。 CTS日志中心:支持CTS日志接入LTS,暂不支持CTS仪表盘模板,支持CTS接入LTS。详情请参考 云审计 服务CTS接入LTS。 多账号日志汇聚中心:支持您将多个账号下的日志流复制到指定的账号中,实现多账号日志的集中存储和分析。详细请参考设置多账号日志汇聚。
-
资源统计 在日志资源统计页面,支持查看资源统计、资源详情。日志资源统计是对日志进行分类统计及日志数据的可视化展示,统计日志资源的数据量仅供参考。 登录 云日志 服务控制台。 在日志总览下方,单击资源统计旁边的“相关明细”,进入日志资源统计详情页面。 资源统计主要展示日志资源数据,默认展示时间为1周(相对)的日志资源数据,您可以根据业务需要选择时间范围。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 在资源统计下方,查看资源统计数据: 目前华北-北京一、华北-北京二、华南-广州-友好用户环境、华南-深圳、华北-乌兰察布一、西南-贵阳一、华东-上海二、华东-青岛局点已全部开启日志转储计费功能。 读写流量:读写流量根据传输的流量计算,传输流量为压缩后的日志大小,日志一般有5倍压缩率。 索引流量-标准型日志流:原始日志数据默认都会建立全文索引,创建索引(对日志分词处理)后,才能搜索日志,在日志写入数据库时一次性收取流量费用。 标准存储量:日志标准存储量为压缩后的日志数据、索引数据、副本数据之和,这些空间约等于原始日志数据大小。 标准存储量统计是指在选定时间范围内最新的存储总量。 原始日志流量:原始日志数据的大小。 基础转储流量:开启日志转储计费功能后,才会显示基础转储流量。日志转储不需要字段映射,转储算力消耗少,例如转储OBS/DMS/DIS。 高级转储流量:开启日志转储计费功能后,才会显示高级转储流量。日志转储需要字段映射,转储算力消耗较多,例如转储DWS/ DLI 。 在资源详情下方,查看Top100的日志组资源统计和Top100的日志流资源统计。根据选择的时间范围,支持表格或柱状图展示每日标准存储量(GB)、每日索引流量-标准型日志流(GB)、每日读写流量(GB)、每日基础转储流量 (GB)、每日高级转储流量 (GB)的数据。 新创建的日志组/日志流,需间隔至少1小时才能进行资源统计。 单击Top100中的日志组名称,可查询该日志组下的日志流资源统计。 单击,可下载日志组资源统计和日志流资源统计。 下载的日志组资源统计和日志流资源统计文件为.CSV格式。
-
删除日志组 如果日志组不再需要使用,可以删除日志组。日志组删除后,日志组中的日志流、日志数据将被同时删除。删除日志组会导致用户日志相关业务异常,日志组删除后无法恢复,请谨慎操作。 如果日志组绑定了日志转储任务,删除日志组之前,需要先删除该日志组关联的日志转储任务。 在日志组列表中,单击待删除日志组操作列下的“删除”。 在弹出框中输入“DELETE”后,单击“确定”,完成日志组删除。 图1 删除日志组
-
创建日志组 登录云日志服务控制台。 进入“日志管理”页面,单击“创建日志组”。 在“创建日志组”页面中,参考表1填写日志组相关信息。 表1 日志组参数说明 参数 说明 日志组名称 日志组名称只支持输入英文、数字、中文、中划线、下划线及小数点,且不能以小数点、下划线开头或以小数点结尾。长度为1-64个字符。 日志采集后,将发送到对应的日志组中的日志流。如果日志较多,需要分门别类,建议您给日志组做好命名,方便后续快速查找日志。 企业项目 选择业务需要的企业项目,也可单击“查看企业项目”,在企业项目管理页面查看全部企业项目。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 说明: 企业项目需要开通后才能使用,请参考如何开通企业项目。 日志存储时间(天) 日志组的存储时间,即日志上报到LTS后日志存储的时间。 日志数据默认存储30天,可以在1~365天之间设置。 云日志服务LTS 根据配置的日志存储时间定时清理日志内容,例如日志存储时间为30天,上报到LTS的日志只保存30天,30天后开始删除日志内容。 说明: 目前白名单用户的日志存储时间支持1095天,如有需要,请提工单申请。详细操作请参考提交工单。 创建日志组免费,使用阶段按照日志量收费,详细请参考价格计算器。 标签 按照业务需求对不同的日志组添加对应的标签。单击“添加标签”,分别填写标签键key和标签值value,开启应用到日志流。 如需添加多个标签可重复该步骤,最多支持添加20个标签。 如需删除标签可单击标签操作列的“删除”。 标签键长度不能超过128个字符;标签值长度不能超过255个字符。 标签键名称不可重复。 如果配置转储时使用了该标签,删除标签后,请同步修改转储配置信息。 说明: 若您的组织已经设定云日志服务的相关标签策略,则需按照标签策略规则为日志组、日志流、日志接入、主机组添加标签。标签如果不符合标签策略的规则,则可能会导致日志组、日志流、日志接入、主机组创建失败,请联系组织管理员了解标签策略详情。标签策略详细介绍请参考标签策略概述,标签管理详细介绍请参考标签管理。 备注 自定义填写备注信息,字符长度0-1024个字符。 单击“确定”,日志组创建成功,即可在日志组列表下方生成一条日志组信息。 在日志组列表中,可以查看日志组名称、标签、日志流数量等信息。 单击日志组名称,可跳转到日志流详情页面。 并发创建时,可能会偶现创建个数超过限制。
-
云端结构化解析 登录云日志服务控制台,进入“日志管理”页面。 单击目标日志组和日志流名称。 在日志流详情页面,单击右上角,在弹出页面中,选择“云端结构化解析”,进行日志结构化配置。 正则分析:使用正则表达式提取字段。 JSON:通过提取JSON字段将其拆分为键值对。 分隔符:使用分隔符(例如:冒号、空格或字符等)提取字段。 Nginx:通过log_format指令来自定义访问日志的格式。 结构化模板:通过自定义模板或系统内置模板提取字段。 云端结构化解析配置完成后,支持修改或删除结构化配置。 在云端结构化解析页面中,单击,修改结构化配置。 在云端结构化解析页面中,单击,删除结构化配置。 结构化配置删除后,将无法恢复,请谨慎操作。
-
JSON JSON是通过提取JSON字段将其拆分为键值对。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤2 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 {"a1": "a1", "b1": "b1", "c1": "c1", "d1": "d1"} 当日志提取字段的类型为float时,精度为16位有效数字。如果超过16位有效数字,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 当日志提取字段的类型为long时,日志内容超过16位有效数字,只会精确显示前16位有效数字,后面的数字会变为0。 当日志提取字段的类型为long时,日志内容超过21位有效数字,则会识别为float类型,建议将字段类型修改为String。 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
-
Nginx Nginx是通过log_format指令来自定义访问日志的格式。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据 在“步骤2 输入Nginx日志配置”中需要输入Nginx日志配置,根据输入或选择的日志进行配置。其中有默认配置可使用,单击“默认Nginx配置”即可。 标准Nginx配置文件中,日志配置的部分通常以log_format开头。 日志格式 默认配置如下所示。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 用户也可进行自定义配置,具体配置格式要求如下所示。 使用Nginx配置,不可为空 以log_format开头,并且包含(')和字段名称 长度最大限制为5000 需要与示例日志内容匹配 log_format字段之间的间隔,除大小字母、数字、下划线及中划线外,可使用其他任意字符 以(')或者(';)结尾 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 39.149.31.187 - - [12/Mar/2020:12:24:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-" 并使用如下Nginx日志配置。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
-
分隔符 分隔符是使用分隔符(例如:逗号、空格或字符)提取字段。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据 在“步骤2 指定分隔符”需要根据原始日志内容选择分隔符,或自定义其他需要的特殊字符作为分隔符。 不可见字符需要输入0x开头的16进制字符,长度为0-4个字符,总共32个不可见字符。 自定义字符支持输入1-10个字符,每个字符都作为独立的分隔符。 自定义字符串支持输入1-30个字符,字符串整体作为一个分隔符。 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 1 5f67944957444bd6bb4fe3b367de8f3d 1d515d18-1b36-47dc-a983-bd6512aed4bd 192.168.0.154 192.168.3.25 38929 53 17 1 96 1548752136 1548752736 ACCEPT OK 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
-
相关操作 创建仪表盘后,单击仪表盘名称进入详情页,您可以编辑仪表盘中的图表、移除仪表盘中的图表、调整仪表盘中图表的位置等,详细请参考表3。 表3 相关操作 操作 说明 编辑仪表盘中的图表 将光标移至图表框右上角,单击,在下拉框中选择“编辑图表”,在可视化页面编辑图表,具体操作请参考分析LTS日志。 移除仪表盘中的图表 将光标移至图表框右上角,单击,在下拉框中选择“移除图表”,单击“保存设计”,可将已创建图表删除。 调整仪表盘中图表的位置 将光标移至待操作的图表框内,选中该图表,可将该图表移动至仪表盘内任意位置,单击“保存设计”,调整当前图表布局。 调整仪表盘中图表的大小 将光标移至待操作的图表框右下角边缘,选中该图表,可根据业务展示内容需求调整图表大小,单击“保存设计”,调整当前图表布局。 编辑仪表盘中的过滤器 将光标移至过滤器框右上角,单击,在下拉框中选择“编辑”,在添加过滤器页面编辑过滤器,具体操作请参考添加过滤器。 复制仪表盘中的过滤器 将光标移至过滤器框右上角,单击,在下拉框中选择“复制”,跳转到添加过滤器页面,单击“确定”即可复制过滤器。 删除仪表盘中的过滤器 将光标移至过滤器框右上角,单击,在下拉框中选择“删除”,在弹出的“删除过滤器”提示框中,单击“确定”即可删除过滤器。 调整仪表盘中过滤器的大小 将光标移至待操作的过滤器右下角边缘,可根据业务展示内容需求调整过滤器大小,单击“保存设计”,调整当前过滤器布局。 自动刷新 单击右上角的,开启仪表盘自动刷新功能,选择自动刷新的时间,可使仪表盘中的所有图表数据自动进行刷新。自动刷新的时间有1分钟、5分钟、15分钟。 手动刷新 选择待操作的仪表盘,单击可手动刷新当前页面。 全屏显示 选择待操作的仪表盘,单击,可全屏显示仪表盘。全屏后,勾选保持在线按钮,可以保持在线状态,会话一直有效,当前账号不会退出。 退出全屏显示 将光标移至屏幕上方,单击弹出的,或者单击,或者按键盘中的“Esc”可退出全屏模式。 全屏显示单个图表 选择待操作的仪表盘,单击取消退出编辑模式。将光标移至图表框右上角,单击,在下拉框中选择“全屏”,可全屏显示图表数据。 退出全屏显示单个图表 将光标移至屏幕上方,单击弹出的,或者单击,在下拉框中选择“退出全屏”,或者按键盘中的“Esc”可退出全屏模式。 手动刷新单个图表 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“刷新”,或者在全屏模式下,单击,在下拉框中选择“刷新”,可手动刷新当前图表页面。 查询时间设置 选择待操作的仪表盘,单击前面的下拉框。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 说明: 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 查看图表详情 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“查看图表详情”,可查看图表详情。 添加告警 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“添加告警”,可新建告警规则。 复制 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“复制”,可复制图表到当前仪表盘。 复制到其他仪表盘 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“复制到其他仪表盘”,可将该图表复制到其他仪表盘。 复制搜索分析语句 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“复制搜索分析语句”,可复制该图表的搜索分析语句。 导出图表数据 选择待操作的仪表盘,将光标移至图表框右上角,单击,在下拉框中选择“导出图表数据”,可导出图表数据。
-
创建仪表盘 登录云日志服务控制台,在左侧导航栏中选择“仪表盘 ”。 单击,在“添加仪表盘分组”对话框,自定义填写“分组名称”。 分组名称只支持英文、数字、中文、中划线、下划线及小数点,且不能以小数点、下划线开头或小数点结尾,长度不超过64。 单击“确定”,创建分组成功后。 单击“添加仪表盘”,进入“创建仪表盘”页面,参考表1填写仪表盘相关参数。 表1 创建仪表盘参数 参数名称 说明 仪表盘名称 自定义仪表盘名称,用于区分日志流下不同的仪表盘。 仅支持中英文、数字、中划线、下划线、小数点,不能以小数点开头和结尾,长度不超过255。 企业项目 选择业务需要的企业项目,默认为default。也可单击“查看企业项目”,在企业项目管理页面查看全部企业项目。 添加到仪表盘分组 将新建的仪表盘进行分组管理。 不开启“添加到仪表盘分组”,新建仪表盘会添加到系统自带的“默认分组”中。 开启“添加到仪表盘分组”,新建仪表盘按“分组类型”进行添加: 已有分组:选择已有的仪表盘分组。 新建分组:输入新建仪表盘分组名称。 简洁模式 仪表盘页面简介模式。 开启“简洁模式”,仪表盘界面不显示编辑、删除、添加过滤器等按钮。 关闭“简洁模式”,仪表盘界面显示编辑、删除、添加过滤器等按钮。 添加图表 添加可视化图表:将日志流的可视化图表加入仪表盘。 在“添加图表”区域中,鼠标悬浮在添加可视化图表模块,单击“开始添加图表”,进入添加可视化图表界面。 选择业务需要的日志流,根据业务需要勾选一个或多个图表名称前的,单击“确定”,进入仪表盘详情页后,调整图表信息,单击“保存设计”。 如果当前日志流未配置或没有当前需要的可视化图表,单击“前往添加图表”,新建图表。 使用仪表盘模板:支持选择自定义模板(用户从已创建的仪表盘中提取的模板)和系统模板(LTS提供的系统内置模板,用户无法修改): 在“添加图表”区域中,鼠标悬浮在使用仪表盘模板模块,单击“使用仪表盘模板”,进入使用仪表盘模板界面。 根据业务需要选择仪表盘模板,单击下一步选择业务需要的日志流,根据业务需要勾选一个或多个日志流名称前的,单击“确定”。 仪表盘创建成功后,在仪表盘列表生成一条仪表盘信息。 单击仪表盘操作列的编辑,修改仪表盘名称和简洁模式。 单击仪表盘操作列的移动分组,修改仪表盘分组。 单击仪表盘操作列的删除按钮即可删除删除仪表盘。
-
新建可视化图表到仪表盘 在仪表盘目录下方,选中仪表盘分组,单击待操作的仪表盘名称进入详情页。 单击,在添加可视化图表界面中,选择相应日志流。单击“前往添加图表”。 在“添加图表”页面,单击“新建”,参照表2填写相关参数,填写完成后单击“确定”。 表2 创建图表 参数 说明 图表名称 自定义图表名称,用于区分日志流下不同的图表。 仅支持中英文、数字、中划线、下划线、空格、括号、小数点,不能以小数点、空格开头或结尾。长度为1-64个字符。 可视化对象 默认语句“SELECT * ”,表示查询该日志流内的结构化数据,其中*为结构化字段。 如需自行编辑SQL语句,请参考SQL分析语法介绍。 图表类型 LTS提供表格、柱状图、折线图等多种图表类型供用户选择。 同时添加到仪表盘 开启“同时添加到仪表盘”,勾选一个或多个仪表盘前面的,可将图表同步添加至勾选的仪表盘中。 关闭“同时添加到仪表盘”,则表示新建图表不在仪表盘显示。 单击“确定”,可视化图表创建成功。
-
Nginx Nginx是通过log_format指令来自定义访问日志的格式。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据 在“步骤2 输入Nginx日志配置”中需要输入Nginx日志配置,根据输入或选择的日志进行配置。其中有默认配置可使用,单击“默认Nginx配置”即可。 标准Nginx配置文件中,日志配置的部分通常以log_format开头。 日志格式 默认配置如下所示。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 用户也可进行自定义配置,具体配置格式要求如下所示。 使用Nginx配置,不可为空 以log_format开头,并且包含(')和字段名称 长度最大限制为5000 需要与示例日志内容匹配 log_format字段之间的间隔,除大小字母、数字、下划线及中划线外,可使用其他任意字符 以(')或者(';)结尾 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3 字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 39.149.31.187 - - [12/Mar/2020:12:24:02 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" "-" 并使用如下Nginx日志配置。 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
-
分隔符 分隔符是使用分隔符(例如:逗号、空格或字符)提取字段。 选择示例日志:应选择一条比较典型的日志作为示例日志。在“步骤1 选择示例日志”中,可单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,也可以直接在输入框中输入待操作的日志,单击“确定”。通过选择不同时间段筛选日志。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据 在“步骤2 指定分隔符”需要根据原始日志内容选择分隔符,或自定义其他需要的特殊字符作为分隔符。 不可见字符需要输入0x开头的16进制字符,长度为0-4个字符,总共32个不可见字符。 自定义字符支持输入1-10个字符,每个字符都作为独立的分隔符。 自定义字符串支持输入1-30个字符,字符串整体作为一个分隔符。 字段提取。可将输入或选择的日志自动提取为以一个示例字段对应一个字段名称的格式的日志解析结果。 在“步骤3字段提取”下单击“智能提取”。以如下原始日志为例进行分析: 将以下原始日志输入待操作框中。 1 5f67944957444bd6bb4fe3b367de8f3d 1d515d18-1b36-47dc-a983-bd6512aed4bd 192.168.0.154 192.168.3.25 38929 53 17 1 96 1548752136 1548752736 ACCEPT OK 当日志提取字段的类型为float时,精确度为7位有效数字。 如果超过7位有效数字的话,则会导致提取字段内容不准确,从而影响可视化查看和快速分析,因此建议将字段类型修改为String。 在字段提取完成后,可对日志模板进行设置。结构化字段设置规则请参考设置结构化字段。 若需要指定某一字段作为日志时间,详细请参考自定义日志时间。 单击“保存”,完成日志结构化配置,初次设置完成后将不能对字段类型编辑修改。
共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
推荐文章