Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FAQ: update slow log, DDL and Syncer related questions #854

Merged
merged 3 commits into from
Jan 17, 2019
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,8 @@ You can use Docker Compose to build a TiDB cluster locally, including the cluste

2. If a slow query occurs, you can locate the `tidb-server` instance where the slow query is and the slow query time point using Grafana and find the SQL statement information recorded in the log on the corresponding node.

3. Besides the log, you can also view the slow query using the `admin show slow` command. For details, see [`admin show slow` command](sql/slow-query.md#admin-show-slow-command).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Besides the log, you can also view the slow query using the `admin show slow` command. For details, see [`admin show slow` command](sql/slow-query.md#admin-show-slow-command).
3. In addition to the log, you can also view the slow query using the `admin show slow` command. For details, see [`admin show slow` command](sql/slow-query.md#admin-show-slow-command).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please try to avoid using the word "besides". Reference: #505


#### How to add the `label` configuration if `label` of TiKV was not configured when I deployed the TiDB cluster for the first time?

The configuration of TiDB `label` is related to the cluster deployment architecture. It is important and is the basis for PD to execute global management and scheduling. If you did not configure `label` when deploying the cluster previously, you should adjust the deployment structure by manually adding the `location-labels` information using the PD management tool `pd-ctl`, for example, `config set location-labels "zone, rack, host"` (you should configure it based on the practical `label` level name).
Expand Down Expand Up @@ -749,6 +751,10 @@ CREATE TABLE if not exists mysql.user (
INSERT INTO mysql.user VALUES ("%", "root", "", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y");
```

#### 4.1.5 Can TiDB provide services while Loader is running?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### 4.1.5 Can TiDB provide services while Loader is running?
#### Can TiDB provide services while Loader is running?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not use the heading number in English FAQ :)


Since Loader inserts the data logically, TiDB can provide services while it's running. But do not perform the related DDL operations.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Since Loader inserts the data logically, TiDB can provide services while it's running. But do not perform the related DDL operations.
Because Loader inserts the data logically, TiDB can provide services while it is running. But do not perform the related DDL operations.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Use "because" instead of "since".
  • Do not use contractions in the documentation, which might cause difficulty for translation and ambiguity.


#### How to export the data in TiDB?

Currently, TiDB does not support `select into outfile`. You can use the following methods to export the data in TiDB:
Expand Down Expand Up @@ -788,6 +794,10 @@ Two solutions:

- You can also increase the limited number of statements in a single TiDB transaction, but this will consume more memory.

#### Does TiDB have a function like the Flashback Query in Oracle? Does it support DDL?

Yes, it does. And it supports DDL as well. For details, see [how TiDB reads data from history versions](op-guide/history-read.md).

### Migrate the data online

#### Syncer
Expand Down Expand Up @@ -829,6 +839,11 @@ Two solutions:
- Put the `syncer.meta` file in a relatively secure disk. For example, use disks with RAID 1.
- Restore the location information of history synchronization according to the monitoring data that Syncer reports to Prometheus regularly. But the location information might be inaccurate due to the delay when a large amount of data is synchronized.

##### If the downstream TiDB data is not consistent with the MySQL data during Syncer's synchronization process, will DML operations cause exits?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
##### If the downstream TiDB data is not consistent with the MySQL data during Syncer's synchronization process, will DML operations cause exits?
##### If the downstream TiDB data is not consistent with the MySQL data during Syncer synchronization process, will DML operations cause exits?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally, do not use 's to show the possessive form of inanimate objects. You can omit it or use of.


- If data exists in the upstream MySQL and doesn't exist in the downstream TiDB, and the upstream MySQL performs the `UPDATE` or `DELETE` operation on this piece of data, it will not cause errors or exits and the data will not exist during Syncer's synchronization process.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If data exists in the upstream MySQL and doesn't exist in the downstream TiDB, and the upstream MySQL performs the `UPDATE` or `DELETE` operation on this piece of data, it will not cause errors or exits and the data will not exist during Syncer's synchronization process.
- If the data exists in the upstream MySQL but does not exist in the downstream TiDB, when the upstream MySQL performs the `UPDATE` or `DELETE` operation on this row of data, Syncer will not report an error and the synchronization process will not exit, and this row of data does not exist in the downstream.

- If conflicts exist in the primary key indexes or the unique indexes in the downstream, preforming `UPDATE` will cause exits while performing `INSERT` will not.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If conflicts exist in the primary key indexes or the unique indexes in the downstream, preforming `UPDATE` will cause exits while performing `INSERT` will not.
- If a conflict exists in the primary key indexes or the unique indexes in the downstream, performing the `UPDATE` operation will cause an exit while performing the `INSERT` operation will not cause an exit.


### Migrate the traffic

#### How to migrate the traffic quickly?
Expand Down