1. 集群部署相干命令
参考《TiDB 软件和硬件环境倡议配置》,以下操作Ubuntu LTS零碎上。
a.筹备ubuntu环境1: 磁盘分区,swap敞开
参考:官网 磁盘格式化
# 实例:4t Nvme固态parted /dev/nvme0n1(parted) print(parted) mklabel gpt (parted) mkpart primary 0KB 4TB (parted) printmkfs.ext4 -F /dev/nvme0n1# 查看文件系统类型blkidvi /etc/fstabUUID="040c7a9c-1dd3-494c-b7b9-298ec2165b83" /DATA4T ext4 defaults,nodelalloc,noatime 0 2echo "vm.swappiness = 0">> /etc/sysctl.confswapoff -a && swapon -a# reboot
b.零碎设置2: 工具装置、其余设置,免登陆
ufw disableapt-get install ntp curl net-tools ifupdown network-scripts openssh-server mysql-client-core-8.0# 查看网卡名称ifconfig # 设置动态IPgedit /etc/network/interfaces# interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback auto enp4s0iface enp4s0 inet staticaddress 192.168.1.11gateway 192.168.1.1netmask 255.255.255.0# SSH设置vi /etc/ssh/sshd_config++MaxSessions 20service sshd restart# 增加用户,免登陆adduser tidbpasswd tidbvi /etc/sudoers++tidb ALL=(ALL) NOPASSWD:ALL
c.部署配置:
参考:官网 应用 TiUP 部署(举荐)
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shsource .bashrctiup cluster template > topology.yaml
批改topology.yaml,单机配置:
# # Global variables are applied to all deployments and used as the default value of# # the deployments if a specific deployment value is missing.global: user: "tidb" ssh_port: 22 deploy_dir: "/DATA4T/tidb-deploy" # # TiDB Cluster data storage directory data_dir: "/DATA4T/tidb-data" arch: "amd64"monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115server_configs: tidb: log.slow-threshold: 300 tikv: readpool.storage.use-unified-pool: false readpool.coprocessor.use-unified-pool: true pd: replication.enable-placement-rules: true replication.location-labels: - host tiflash: logger.level: "info"pd_servers: - host: 192.168.1.11tidb_servers: - host: 192.168.1.11 port: 4000 status_port: 10080 deploy_dir: "/DATA4T/tidb-deploy/tidb-4000" log_dir: "/DATA4T/tidb-deploy/tidb-4000/log" - host: 192.168.1.11 port: 4001 status_port: 10081 deploy_dir: "/DATA4T/tidb-deploy/tidb-4001" log_dir: "/DATA4T/tidb-deploy/tidb-4001/log" - host: 192.168.1.11 port: 4002 status_port: 10082 deploy_dir: "/DATA4T/tidb-deploy/tidb-4002" log_dir: "/DATA4T/tidb-deploy/tidb-4002/log"tikv_servers: - host: 192.168.1.11 port: 20160 status_port: 20180 deploy_dir: "/DATA4T/data1/tidb-deploy/tikv-20160" data_dir: "/DATA4T/data1/tidb-data/tikv-20160" log_dir: "/DATA4T/data1/tidb-deploy/tikv-20160/log" config: server.labels: { host: "192.168.1.11" } - host: 192.168.1.11 port: 20161 status_port: 20181 deploy_dir: "/DATA4T/data2/tidb-deploy/tikv-20161" data_dir: "/DATA4T/data2/tidb-data/tikv-20161" log_dir: "/DATA4T/data2/tidb-deploy/tikv-20161/log" config: server.labels: { host: "192.168.1.11" } - host: 192.168.1.11 # ssh_port: 22 port: 20162 status_port: 20182 deploy_dir: "/DATA4T/data3/tidb-deploy/tikv-20162" data_dir: "/DATA4T/data3/tidb-data/tikv-20162" log_dir: "/DATA4T/data3/tidb-deploy/tikv-20162/log" # numa_node: "0" config: server.labels: { host: "192.168.1.11" }tiflash_servers: - host: 192.168.1.11 tcp_port: 9000 http_port: 8123 flash_service_port: 3930 flash_proxy_port: 20170 flash_proxy_status_port: 20292 metrics_port: 8234 deploy_dir: /DATA4T/data1/tidb-deploy/tiflash-9000 data_dir: /DATA4T/data1/tidb-data/tiflash-9000 log_dir: /DATA4T/data1/tidb-deploy/tiflash-9000/log - host: 192.168.1.11 tcp_port: 9001 http_port: 8124 flash_service_port: 3931 flash_proxy_port: 20171 flash_proxy_status_port: 20293 metrics_port: 8235 deploy_dir: /DATA4T/data2/tidb-deploy/tiflash-9001 data_dir: /DATA4T/data2/tidb-data/tiflash-9001 log_dir: /DATA4T/data2/tidb-deploy/tiflash-9001/log - host: 192.168.1.11 # ssh_port: 22 tcp_port: 9002 http_port: 8125 flash_service_port: 3932 flash_proxy_port: 20172 flash_proxy_status_port: 20294 metrics_port: 8236 deploy_dir: /DATA4T/data3/tidb-deploy/tiflash-9002 data_dir: /DATA4T/data3/tidb-data/tiflash-9002 log_dir: /DATA4T/data3/tidb-deploy/tiflash-9002/logmonitoring_servers: - host: 192.168.1.11 grafana_servers: - host: 192.168.1.11alertmanager_servers: - host: 192.168.1.11
利用配置,并尝试启动集群,验证
tiup cluster deploy tidb-test v6.1.0 ./topology.yaml --user tidb -ptiup cluster start tidb-test --initStarted cluster `tidb-test` successfullyThe root password of TiDB database has been changed.The new password is: 'V+12S&Bh5*JY91_3EZ'.Copy and record it to somewhere safe, it is only displayed once, and will not be stored.The generated password can NOT be get and shown again.tiup cluster display tidb-testmysql -u root -h 192.168.1.11 -P 4000 -p
验证mysql连贯、运维后盾[http://127.0.0.1:2379/dashboard/],用户root、明码如上。
2. 数据迁徙
a. 应用dumpling
导出mysql
tiup install dumpling# 近程数据库连贯验证mysql -h192.168.1.10 -P3307 -uroot -p123456
导出mysql
tiup dumpling -u root -P 3307 -h 192.168.1.10 -p 123456 -o ./export/table1 -F 8G -T jobdb.tb1 -t 20 --compress gziptiup dumpling -u root -P 3307 -h 192.168.1.10 -p 123456 -o ./export/table1 -F 8G -T jobdb.tb2 -t 20 --compress gziptiup dumpling -u root -P 3307 -h 192.168.1.10 -p dA1mJ3jA1eC6hA6gU0fV5eA0bM0sI5dR -o ./export/table1 -F 8G -T table1.page -t 20 --compress gziptiup dumpling -u root -P 3307 -h 192.168.1.10 -p dA1mJ3jA1eC6hA6gU0fV5eA0bM0sI5dR -o ./export/table1 -F 8G -T table1.page_analysis -t 20 --compress gzip
b. 建设上游表构造
从大数据量分库分表 MySQL 合并迁徙数据到 TiDB
# 原mysql库show create table table;# tidb 4000端口库# 执行导入建表语句,同步库、表构造
c. 应用tidb-lightning
导入数据
批量选中*.sql.gz文件,抉择解压目录到磁盘
tiup tidb-lightning -config tidb-lightning.toml# 期待实现
数据库查看后果,曾经分区过的大表查问后果:
mysql> select count(*) from page;+-----------+| count(*) |+-----------+| 104408407 |+-----------+1 row in set (4.51 sec)
很快,完满。
d. 创立新用户
select user,host from user;select user,host,plugin,authentication_string from mysql.user;select user,host,plugin from mysql.user;-- 13 腾讯云drop user 'search'@'%';create user search@'%' identified by 'qq8d#p^azkzqvkyWHQNTd8M6HKb8##V9';grant all privileges on *.* to search@'%';flush privileges;drop user 'server'@'%';create user server@'%' identified by 'h@VvZIDwGERTxM^pnw1PrdEj!VgIcZ#V';grant all privileges on complaint_paper.* to server@'%';flush privileges;drop user 'test'@'%';create user test@'%' identified by '123456t';grant select,insert on *.* to test@'%';flush privileges;-- 11 tidb => dbALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Fn0AxdMrqcwLPrwLa9bR1cJ9IF#x0Gzh';drop user 'search'@'%';create user search@'%' identified by 'qq8d#p^azfzqvkyWHQNTd8M6HKb8##V9';update mysql.user set authentication_string = '' where user = 'search';FLUSH PRIVILEGES;update mysql.user set host = '%', plugin = 'mysql_native_password' where user = 'search';ALTER USER 'search'@'%' IDENTIFIED WITH mysql_native_password BY 'qq8d#p^azfzqvkyWHQNTd8M6HKb8##V9';grant all privileges on *.* to search@'%';flush privileges;drop user 'tidb_job'@'%';create user tidb_job@'%' identified by 'Gy1sDiq8sgzlJeT3WEZ&RZ4BNowy#tY1';update mysql.user set authentication_string = '' where user = 'tidb_job';FLUSH PRIVILEGES;update mysql.user set host = '%', plugin = 'mysql_native_password' where user = 'tidb_job';ALTER USER 'tidb_job'@'%' IDENTIFIED WITH mysql_native_password BY 'Gy1sDiq8sgzlJeT3WEZ&RZ4BNowy#tY1';grant all privileges on table1.* to tidb_job@'%';grant all privileges on platform.* to tidb_job@'%';flush privileges;drop user 'test'@'%';create user test@'%' identified by '123456t';update mysql.user set authentication_string = '' where user = 'test';FLUSH PRIVILEGES;update mysql.user set host = '%', plugin = 'mysql_native_password' where user = 'test';ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456t';grant select,insert on *.* to test@'%';flush privileges;