sql server只读

The SQL Server Always On Availability Groups concept was introduced the first time in SQL Server 2012 as an enterprise-level high availability and disaster recovery solution that will replace the database mirroring feature. Always On Availability Group provides a high availability solution on the group level, where each group can contain any number of databases that can be replicated to multiple secondary servers known as Replicas.

SQL Server Always On可用性组概念是在SQL Server 2012中首次引入的,它是一种企业级的高可用性和灾难恢复解决方案,它将替代数据库镜像功能。 Always On可用性组在组级别提供了一个高可用性解决方案,其中每个组可以包含任意数量的数据库,这些数据库可以复制到多个称为副本服务器的辅助服务器上。

SQL Server 2016 supports up to eight replicas. By default, the secondary replicas do not allow any workload, which is the same as the secondary party of the SQL Server Mirroring site, where the replica will be used only for failover purposes in a disaster recovery situation. The secondary replicas can also be configured as an active readable secondary to allow read-only access to all secondary databases, as the data in the secondary databases is near real-time data. Setting the readable secondary as Read-Intent Only will allow the secondary server to serve the read-only workload only if the connection string of the application contains the Application Intent=Readonly parameter. Connections with Application Intent value equal to ReadOnly can be enforced to secondary replicas using a new Always On Availability Group feature called Read-Only Routing. In this way, the queries that will perform read-only processes that are directed to the Always On Availability Group listener will be redirected to the secondary replicas instead of the primary replica.

SQL Server 2016最多支持八个副本。 默认情况下,辅助副本不允许任何工作负载,该负载与SQL Server镜像站点的辅助角色相同,在该站点中,副本仅用于灾难恢复情况下的故障转移。 辅助副本也可以配置为活动的可读辅助副本,以允许对所有辅助数据库进行只读访问,因为辅助数据库中的数据接近实时数据。 仅当应用程序的连接字符串包含Application Intent = Readonly参数时,将可读辅助服务器设置为“只读”才允许辅助服务器处理只读工作负载。 可以使用称为只读路由的新的始终在线可用性组功能,将应用程序意图值等于ReadOnly的连接强制执行到辅助副本。 这样,将执行定向到Always On可用性组侦听器的只读过程的查询将重定向到辅助副本而不是主副本。

In SQL Server 2012 and 2014 versions, the read-only workload redirection process will redirect the queries specifically to the first secondary replica defined in the routing list, unless it was not accessible, and then it will direct the connection to the next replica in the routing list. The other secondary replicas will not participate in serving the read-only workload, limiting the load balancing mechanism to only one replica. As a workaround, the Read-Only routing list can be updated periodically, so that you will make sure that all replicas will be used to serve the read-only workload. SQL Server 2016 removes this limitation by introducing the native load balancing mechanism, as we will see later.

在SQL Server 2012和2014版本中,除非无法访问,否则只读工作负载重定向过程将把查询专门重定向到路由列表中定义的第一个辅助副本,然后将连接定向到服务器中的下一个副本。路由列表。 其他辅助副本将不参与为只读工作负载提供服务,从而将负载平衡机制限制为仅一个副本。 解决方法是,可以定期更新“只读”路由列表,以便确保所有副本将用于服务只读工作负载。 SQL Server 2016通过引入本机负载平衡机制消除了此限制,我们将在后面看到。

Assume that we have configured the Availability Group AG40VS that contains three replicas: DB41VS, DB42VS, and DB43VS. The DB41VS SQL Server is configured as the primary replica, and the DB42 and DB43 SQL servers are configured as readable Secondary replicas. Both DB41VS and DB42VS are configured for Automatic Failover.

假设我们已经配置了包含三个副本的可用性组AG40VS:DB41VS,DB42VS和DB43VS。 DB41VS SQL Server配置为主要副本,DB42和DB43 SQL服务器配置为可读辅助副本。 DB41VS和DB42VS均配置为自动故障转移。

In order to create the Read-Only Routing list, we should check first that an Availability Group Listener is configured, as the read-only client will direct the connection requests to the Availability Groups listener. We can do that by querying the sys.availability_group_listeners DMV and join it with the sys.availability_groups DMV to get the Availability Group name as follows:

为了创建只读路由列表,我们应该首先检查是否配置了可用性组侦听器,因为只读客户端会将连接请求定向到可用性组侦听器。 我们可以通过查询sys.availability_group_listeners DMV并将其与sys.availability_groups DMV进行联接来获得可用性组名称,如下所示:


SELECT  AV.name AS AVGName, AVGLis.dns_name AS ListenerName, AVGLis.ip_configuration_string_from_cluster AS ListenerIP
FROM    sys.availability_group_listeners AVGLis
INNER JOIN sys.availability_groups AV on AV.group_id = AVGLis.group_id

The result in our case will show us that the Availability Group listener is already configured as below:

在本例中,结果将向我们显示可用性组侦听器已按以下方式配置:

The second prerequisite for creating a Read-Only Routing list is that at least one secondary replica should be configured for read-only access, where it can be set to allow all connections for read-only access or only the read-intent connections. Expanding the AlwaysOn High Availability node from the SQL Server Management Studio, right-click on the Availability Group, and choose Properties. From the Availability Group Properties window, change the Readable Secondary properties of each secondary replica with YES value to allow all connections for read-only access or Read-Intent Only to allow only the read-intent connections. In this demo, we will allow only the read-intent connections as follows:

创建只读路由列表的第二个前提条件是,至少应将一个辅助副本配置为只读访问,在该副本中可以将其设置为允许所有连接进行只读访问,或者仅允许只读连接。 从SQL Server Management Studio扩展AlwaysOn高可用性节点,右键单击可用性组,然后选择属性。 在“可用性组属性”窗口中,将每个辅助副本的“可读辅助”属性更改为“ YES”,以允许所有连接进行只读访问,或者“仅读取意图”仅允许进行读取意图连接。 在此演示中,我们将仅允许如下所示的意图读取连接:

Now we are ready to configure Read-Only Routing. Read-Only Routing allows SQL Server to route the incoming read-intent connections that connect to the availability group listener to be served by the available readable secondary replica. To support that, the readable secondary replica should have a read-only routing URL that works when the replica is working as a secondary replica. The read-only routing URL consists of the system address or the port number that defines the readable secondary replica, which is similar to the endpoint URL that is used when configuring the SQL Server Mirroring. Each readable secondary replica can be assigned a read-only routing URL that will be used for routing read-intent connection requests to a specific readable secondary replica. In this way, the read-only routing URL is defined on a replica-by-replica basis. The ALLOW_CONNECTIONS property of the read-only routing can be set to READ_ONLY or ALL.

现在,我们准备配置只读路由。 只读路由允许SQL Server路由连接到可用性组侦听器的传入读取意图连接,以由可用的可读辅助副本提供服务。 为此,可读辅助副本应具有只读路由URL,该URL在该副本用作辅助副本时可以使用。 只读路由URL由定义可读二级副本的系统地址或端口号组成,类似于配置SQL Server镜像时使用的端点URL。 可以为每个可读二级副本分配一个只读路由URL,该URL将用于将读取意图的连接请求路由到特定的可读二级副本。 这样,只读路由URL是在逐个副本的基础上定义的。 只读路由的ALLOW_CONNECTIONS属性可以设置为READ_ONLY或ALL。

Unfortunately, until SSMS 17.4, there is no way via the GUI to define Read-Only Routing using SQL Server Management Studio. It can be defined through T-SQL or PowerShell commands only. The T-SQL script below modifies each replica from our Always On Availability Group to allow Read_Only workload when it acts as a secondary replica and defines the read-only routing URL for each replica:

不幸的是,直到SSMS 17.4为止,都无法通过GUI使用SQL Server Management Studio定义只读路由。 只能通过T-SQL或PowerShell命令定义它。 下面的T-SQL脚本修改了Always On Availability组中的每个副本,以在其充当辅助副本时允许Read_Only工作负载,并为每个副本定义了只读路由URL:


ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB41VS' WITH(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB41VS' WITH(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://DB41VS.test.com:50000'));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB42VS' WITH(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB42VS' WITH(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://DB42VS.test.com:50000'));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB43VS' WITH(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB43VS' WITH(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP:// N'DB43VS'.test.com:50000'));

The sys.availability_replicas DMV can be used to review the configured read-only routing URL for each replica as below:

sys.availability_replicas DMV可以用于查看每个副本的配置的只读路由URL,如下所示:


SELECT replica_server_name, read_only_routing_url, secondary_role_allow_connections_desc
FROM sys.availability_replicas

The result in our case will be like:

在我们的案例中,结果将是:

For each primary replica, you should define at least one secondary replica that will work as the routing target to which the read-only workloads will be redirected. These secondary replicas that will server these redirected read-only requests can be defined in the Read-Only Routing List, that will be considered only when the replica is running under the primary role. The below T-SQL script is used to define the read-only routing list for each replica when acting as primary replica. For example, if the DB41VS SQL Server is the primary replica, the read-intent only workload will be redirected to the readable secondary replicas; the DB42VS and DB43VS consequently:

对于每个主副本,您应该至少定义一个辅助副本,该副本将作为只读工作负载将重定向到的路由目标。 这些将处理这些重定向的只读请求的辅助副本可以在“ 只读路由列表”中定义,仅当副本在主要角色下运行时才会考虑。 下面的T-SQL脚本用作主副本时,为每个副本定义只读路由列表。 例如,如果DB41VS SQL Server是主副本,则仅读意图的工作负载将被重定向到可读的辅助副本;否则,只读副本将被重定向到可读副本。 因此,DB42VS和DB43VS:


ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB41VS' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('DB42VS','DB43VS')));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB42VS' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('DB43VS','DB41VS')));ALTER AVAILABILITY GROUP [AG40VS]MODIFY REPLICA ONN'DB43VS' WITH(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('DB42VS','DB41VS')));

The Always On Availability Group read-only routing list can be checked using the sys.availability_read_only_routing_lists DMV, that returns the read-only routing list of each Availability Group replica in an AlwaysOn Availability Group, joined with the sys.availability_replicas and sys.availability_groups DMVs as follows:

可以使用sys.availability_read_only_routing_lists DMV检查AlwaysOn可用性组只读路由列表,该DMV返回AlwaysOn可用性组中每个可用性组副本的只读路由列表,并与sys.availability_replicas和sys.availability_groups DMV结合在一起如下:


SELECT    AVGSrc.replica_server_name AS SourceReplica       , AVGRepl.replica_server_name AS ReadOnlyReplica, AVGRepl.read_only_routing_url AS RoutingURL, AVGRL.routing_priority AS RoutingPriority
FROM sys.availability_read_only_routing_lists AVGRL
INNER JOIN sys.availability_replicas AVGSrc ON AVGRL.replica_id = AVGSrc.replica_id
INNER JOIN sys.availability_replicas AVGRepl ON AVGRL.read_only_replica_id = AVGRepl.replica_id
INNER JOIN sys.availability_groups AV ON AV.group_id = AVGSrc.group_id
ORDER BY SourceReplica

The Read-Only Routing List with the routing URLs and routing priorities in our case will be like:

在本例中,带有路由URL和路由优先级的只读路由列表将类似于:

The last point to check before starting our tests is that the replica to which the read-only workload is directed is in synchronized or synchronizing state. The synchronization status can be checked from the Databases node of the SQL Server Management Studio as follows:

在开始测试之前要检查的最后一点是,只读工作负载定向到的副本处于同步或同步状态。 可以从SQL Server Management Studio的“数据库”节点检查同步状态,如下所示:

Now the Read-Only Routing is fully configured and the secondary replicas are ready to receive the read-only workload. From the application side, the application connection string should be modified to set the Application Intent property value to “ReadOnly”, so that the connection requests that come from that application will be classified as read-intent requests. An example of connection string that specify the application intent type to ReadOnly is shown below:

现在,已完全配置了只读路由,并且辅助副本已准备就绪,可以接收只读工作负载。 从应用程序方面,应修改应用程序连接字符串以将“应用程序意图”属性值设置为“ ReadOnly”,以便将来自该应用程序的连接请求分类为“读取意图”请求。 下面显示了一个将应用程序意图类型指定为ReadOnly的连接字符串示例:

Server= tcp:AG40VS,50000; Database=test; IntegratedSecurity=SSPI; MultiSubnetFailover=True; ApplicationIntent=ReadOnly;

服务器= tcp:AG40VS,50000; 数据库=测试; IntegratedSecurity = SSPI; MultiSubnetFailover =真; ApplicationIntent = ReadOnly ;

Starting from SQL Server 2012, the ApplicationIntent ODBC connection string keywords was added to support Always On Availability Groups in SQL Server Native Client. If your application uses an ODBC connection string to connect to the SQL Server, you will be able to specify the Application Intent value to ReadOnly from ODBC Data Source configuration, which works same as adding the “ApplicationIntent=ReadOnly” value to the connection string. In this way, the read-only workload will be directed to the readable secondary replicas as follows:

从SQL Server 2012开始,添加了ApplicationIntent ODBC连接字符串关键字以支持SQL Server本机客户端中的Always On可用性组。 如果您的应用程序使用ODBC连接字符串连接到SQL Server,则可以从ODBC数据源配置中将应用程序意图值指定为ReadOnly,其作用与向连接字符串添加“ ApplicationIntent = ReadOnly”值相同。 通过这种方式,只读工作负载将被定向到可读二级副本,如下所示:

Assume that you manage to use the secondary replicas to run your read-only queries, in order not to affect the performance of the primary replica. If you try to connect to the DB42VS secondary replica and run a simple SELECT statement from the TEST database, an error will be generated showing that this database is only available for the ReadOnly application intent connections as below:

假设您设法使用辅助副本来运行只读查询,以便不影响主副本的性能。 如果您尝试连接到DB42VS辅助副本并从TEST数据库运行一个简单的SELECT语句,将生成一个错误,表明该数据库仅可用于ReadOnly应用程序意图连接,如下所示:

To overcome this problem, we need to pass the ApplicationIntent=ReadOnly parameter to Additional Connection Parameters screen in SSMS, which will be shown when you click on the Options button from the Connect to Server dialog as follows:

为了克服这个问题,我们需要通过 SSMS中“其他连接参数”屏幕上的ApplicationIntent = ReadOnly参数,当您从“连接到服务器”对话框中单击“选项”按钮时,将显示以下内容:

Adding this connection parameter specifies that the connection requests that come from SSMS will be classified as read-intent requests. If you try to run the same previous SELECT statement, the query will be executed successfully retrieving the requested data from the secondary replica without affecting the primary replica performance as below:

添加此连接参数指定来自SSMS的连接请求将被分类为读取意图请求。 如果您尝试运行相同的先前SELECT语句,查询将成功执行,并从辅助副本中检索请求的数据,而不会影响主副本的性能,如下所示:

As configured previously in the read-only routing lists, the read intent workload will be redirected to the DB42VS secondary replica when the DB41VS is the primary replica, and redirected to the DB43VS when the DB42VS is the primary replica.

如先前在只读路由列表中配置的,当DB41VS是主副本时,读意图工作负载将重定向到DB42VS辅助副本,而在DB42VS是主副本时,重定向到DB43VS。

Let us test that workload redirection practically using the sqlcmd tool. To do that, we should specify the ReadOnly value for the –K application intent parameter. We should also provide the Availability Group Listener name in the –S parameter and the Availability Group database name in the –d parameter.

让我们实际使用sqlcmd工具测试工作负载重定向。 为此,我们应该为–K应用程序意图参数指定ReadOnly值。 我们还应该在–S参数中提供可用性组侦听器名称,并在–d参数中提供可用性组数据库名称。

In our current Availability Group setup, the DB41VS SQL Server is the primary replica. Running the below SQL CMD command:

在我们当前的可用性组设置中,DB41VS SQL Server是主要副本。 运行以下SQL CMD命令:

sqlcmd -S AG40VS,50000 -E -d test -K ReadOnly

sqlcmd -S AG40VS,50000 -E -d测试-K ReadOnly

The result will show us that the current server that is receiving my ReadOnly application intent workload is the first secondary replica in the read-only routing list, which is the DB42VS SQL Server as follows:

结果将向我们显示,正在接收我的ReadOnly应用程序意图工作负载的当前服务器是只读路由列表中的第一个辅助副本,它是DB42VS SQL Server,如下所示:

Let us perform a failover for the Availability Group to the DB42VS replica:

让我们对可用性组执行故障转移到DB42VS副本:

Now, the DB42VS is the primary replica. If we run the same previous SQL CMD command:

现在,DB42VS是主要副本。 如果我们运行相同的先前SQL CMD命令:

sqlcmd -S AG40VS,50000 -E -d test -K ReadOnly

sqlcmd -S AG40VS,50000 -E -d测试-K ReadOnly

The result will show us that, the server that is serving my ReadOnly application intent request is the first secondary replica in the read-only routing list, which is the DB43VS SQL Server as below:

结果将向我们显示,服务于我的ReadOnly应用程序意图请求的服务器是只读路由列表中的第一个辅助副本,它是DB43VS SQL Server,如下所示:

We mentioned previously that, only the first secondary replica from the read-only routing list will receive the ReadOnly application intent connections, and the other secondary replicas will not participate in serving that read-only connections. To resolve that issue, SQL Server 2016 introduced load balance lists in the read-only routing list.

前面我们提到过,只有只读路由列表中的第一个辅助副本将接收ReadOnly应用程序意图连接,而其他辅助副本将不参与为该只读连接提供服务。 为了解决该问题,SQL Server 2016在只读路由列表中引入了负载平衡列表。

Let us modify the read-only routing list of the DB41VS SQL Server that acts as primary replica to use the load balance list below:

让我们修改充当主副本的DB41VS SQL Server的只读路由列表,以使用以下负载平衡列表:


ALTER AVAILABILITY GROUP AG40VS MODIFY REPLICA
ON N'DB41VS'
WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(('DB42VS', 'DB43VS'), 'DB41VS')));

This new read-only routing list has two routing lists: the first list contains the DB42VS and DB43VS secondary replicas and the second list contains the DB41VS replica only. The first received read-only connection will be served by the DB42VS replica, and the second read-only connection will be routed to the DB43VS replica, with a round-robin distribution of the read-only connections between these two replicas. If one of the secondary replicas in the first read-only routing list is not available, the read-only connections will be received only by the available replica of the first read-only routing list. The second read-only routing list will start receiving read-only connections when all replicas in the first read-only routing list become unavailable.

这个新的只读路由列表包含两个路由列表:第一个列表包含DB42VS和DB43VS辅助副本,第二个列表仅包含DB41VS副本。 第一个接收到的只读连接将由DB42VS副本提供服务,第二个只读连接将被路由到DB43VS副本,并在这两个副本之间以只读方式循环分配。 如果第一个只读路由列表中的辅助副本之一不可用,则只读连接将仅由第一个只读路由列表的可用副本接收。 当第一个只读路由列表中的所有副本都不可用时,第二个只读路由列表将开始接收只读连接。

Having the DB41VS SQL Server acting as the primary replica. If we run the previous SQL CMD command again two times:

让DB41VS SQL Server充当主副本。 如果我们再次运行前面SQL CMD命令两次:

sqlcmd -S AG40VS,50000 -E -d test -K ReadOnly

sqlcmd -S AG40VS,50000 -E -d测试-K ReadOnly

The result will show us that, the first read-only request will be served by the DB42VS secondary replica and the second read-only request will be served by the DB43VS secondary replica as below:

结果将告诉我们,第一个只读请求将由DB42VS辅助副本提供服务,第二个只读请求将由DB43VS辅助副本提供服务,如下所示:

结论 (Conclusion)

SQL Server Always On Availability Groups is an enterprise-level high availability and disaster recovery feature that provides a high availability solution on the databases groups level. By default, the secondary replicas refuse any read-only workload unless you configure it to receive all connections for read-only access or only read-intent connections. Read-Only Routing, which is not configured by default, allows the read-only requests that are directed to the Always On Availability Groups listener to be served by the secondary replicas instead of the primary replica. This can be performed by configuring the read-only routing URL for each replica and defining the read-only routing list for these replicas. SQL Server 2016 resolved the load balancing problem by defining the new load balance list in which all the secondary replicas from a read-only routing list can handle the read-only workload, rather than directing the workload to the first secondary replica in the read-only routing list in the prior SQL Server versions. The examples in this article showed us practically how all of that works.

SQL Server Always On可用性组是一项企业级的高可用性和灾难恢复功能,可在数据库组级别提供高可用性解决方案。 默认情况下,辅助副本拒绝任何只读工作负载,除非您将其配置为接收所有连接以进行只读访问或仅接收意图连接。 只读路由(默认情况下未配置)允许定向到Always On可用性组侦听器的只读请求由辅助副本而不是主副本服务。 这可以通过为每个副本配置只读路由URL并为这些副本定义只读路由列表来执行。 SQL Server 2016通过定义新的负载平衡列表解决了负载平衡问题,在该列表中,只读路由列表中的所有辅助副本都可以处理只读工作负载,而不是将工作负载定向到只读路由列表中的第一个辅助副本。 SQL Server早期版本中的唯一路由列表。 本文中的示例实际上向我们展示了所有这些工作原理。

翻译自: https://www.sqlshack.com/how-to-configure-read-only-routing-for-an-availability-group-in-sql-server-2016/

sql server只读

sql server只读_如何在SQL Server 2016中为可用性组配置只读路由相关推荐

  1. sql server 数组_如何在SQL Server中实现类似数组的功能

    sql server 数组 介绍 (Introduction) I was training some Oracle DBAs in T-SQL and they asked me how to cr ...

  2. sql server 性能_如何在SQL Server中收集性能和系统信息

    sql server 性能 介绍 (Introduction) In this article, we're going through many of the tools we can use fo ...

  3. sql azure 语法_如何在SQL 2016中使用Azure Key Vault使用AlwaysOn配置TDE数据库

    sql azure 语法 One of the recent tasks I undertook on configuring Transparent Data encryption (TDE) us ...

  4. sql server 监视_如何在SQL Server中监视对象空间增长

    sql server 监视 介绍 (Introduction) There are many situations in a DBA's life that lead him or her to mo ...

  5. @sql 单元测试_如何在SQL单元测试中使用假表?

    @sql 单元测试 In this article on SQL unit testing, we will talk about how to isolate SQL unit tests from ...

  6. pl/sql 测试函数_如何在SQL单元测试中使用伪函数?

    pl/sql 测试函数 In this article series, we are exploring SQL unit testing, in general, and also we are r ...

  7. 为SQL Server Always On可用性组配置故障转移群集,存储控制器和仲裁配置

    This article explores the configuration of Windows failover clusters, storage controllers and quorum ...

  8. 为SQL Server Always On可用性组配置托管服务帐户

    This article is a 6th article in the series for SQL Server Always On Availability Groups. It covers ...

  9. sql查询禁用缓存_如何在SQL Server 2017中启用和禁用身份缓存

    sql查询禁用缓存 Every data warehouse developer is likely to appreciate the significance of having surrogat ...

最新文章

  1. OCP读书笔记(5) - 使用RMAN创建备份
  2. Wsus存储更新文件的磁盘已满
  3. Linux操作系统下以不同颜色命名的文件类型
  4. Typora开始收费,介绍几款免费的MarkDown编辑器
  5. 威联通nas怎么更换大硬盘_QNAP NAS在线RAID组态迁移及在线RAID容量扩充教程
  6. leetcode-15-三数之和
  7. MSP430F5529 DriverLib 库函数学习笔记(十五)SFR 模块
  8. nginx反向代理配置如何去除前缀
  9. 【Python】SyntaxError: Non-UTF-8 code starting with ‘\xe5‘ in file XXX.py on line XX 的解决方法
  10. 论文解读丨文档结构分析
  11. [PyTorch] 深度学习框架PyTorch中的概念和函数
  12. python正则表达式re
  13. CCS的c语言编程,CCS_C语言编程
  14. #windowsxpsp3系统MS12-020漏洞测试
  15. 排除美颜相机等第三方相机直接调用系统相机处理方法
  16. NSIS 头文件介绍_WordFunc.nsh(3)
  17. Android studio离线安装教程
  18. cpu,内存条,硬盘,显卡,主板,显示器之间的关系
  19. 数据分区与放置策略解析_数据策略好数据与坏数据
  20. 地狱飞龙 [simpson][积分

热门文章

  1. 捡到的苹果手机怎么解id锁_深圳苹果售后维修点告诉你iPhone XR手机面容id不能使用是怎么回事?...
  2. jQuery - 获取内容和属性
  3. 2017IEC计算机第二次作业
  4. css按钮口诀 - CSS BUG顺口溜
  5. 中国余数定理 1(codevs 3040)
  6. c# winform WebBrower 控件中右键获取控件坐标
  7. [导入]基于Spring+zk的WebDisk系统研究.pdf(462.84 KB)
  8. LeetCode(118)——杨辉三角(JavaScript)
  9. C++---异常处理
  10. 六级词汇打卡第三天(三)