这篇文章将为大家详细讲解有关TDSQL怎么安装部署附图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

分布式数据库(Tencent Distributed SQL,TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。

TDSQL按照官方要求配置相对较高,现通过4台虚拟机演示TDSQL的全套部署。 如有不对的地方请指证 wx:moonstar00

** 机器数量规划:**

tdsql 规划机器如下:4台(CPU:2core/MEM:8G/HDD:50G) ,内存至少5G以上 ,CPU 至少2C以上, 否则检查通不过

#######################TDSQL安装部署#######################1.设主机名hostnamectlset-hostnamehuyidb01hostnamectlset-hostnamehuyidb02hostnamectlset-hostnamehuyidb03hostnamectlset-hostnamehuyidb042.配置主机名vim/etc/hosts10.85.10.51huyidb0110.85.10.52huyidb0210.85.10.53huyidb0310.85.10.54huyidb043.设置时间同步以huyidb01为主时钟mount/dev/cdrom/mntyum-yinstallntp*[root@huyidb01~]#vim/etc/ntp.conf#同步地址server127.127.1.0iburstsystemctlrestartntpd.service[root@huyidb02~]#vim/etc/ntp.confserver10.85.10.51restrict10.85.10.51mask255.255.240.0nomodifynotrapsystemctlrestartntpd.servicentpdate-u10.85.10.51[root@huyidb03~]#vim/etc/ntp.confserver10.85.10.51restrict10.85.10.51mask255.255.240.0nomodifynotrapsystemctlrestartntpd.servicentpdate-u10.85.10.51[root@huyidb04~]#vim/etc/ntp.confserver10.85.10.51restrict10.85.10.51mask255.255.240.0nomodifynotrapsystemctlrestartntpd.servicentpdate-u10.85.10.514.配置免密登录(管理机110.85.10.54上操作)ssh-keygen-trsa--这里不用输入密码,免密码登录ssh-copy-id10.85.10.51--下面要输入远程主机的密码ssh-copy-id10.85.10.52ssh-copy-id10.85.10.53ssh-copy-id10.85.10.54#这里是通过IPcopy的,测试的时候也只要用IP例:ssh10.85.10.515.准备数据目录路径(所有机器)mkdir-p/mysql/datamkdir-p/mysql/log

#安装ANSIBLEunziptdsql_full_install_ansible.zipcdtdsql_full_install_ansiblepythonsettings/install_ansible.py

#配置tdsql_hostsvi/soft/tdsql_full_install_ansible/tdsql_hosts[envcheck]tdsql_huyidb01ansible_ssh_host=10.85.10.51tdsql_huyidb02ansible_ssh_host=10.85.10.52tdsql_huyidb03ansible_ssh_host=10.85.10.53tdsql_huyidb04ansible_ssh_host=10.85.10.54[zk]tdsql_zk1ansible_ssh_host=10.85.10.51tdsql_zk2ansible_ssh_host=10.85.10.52tdsql_zk3ansible_ssh_host=10.85.10.53[scheduler]tdsql_scheduler1ansible_ssh_host=10.85.10.52tdsql_scheduler2ansible_ssh_host=10.85.10.53[oss]tdsql_oss1ansible_ssh_host=10.85.10.52tdsql_oss2ansible_ssh_host=10.85.10.53[chitu]tdsql_chitu1ansible_ssh_host=10.85.10.52tdsql_chitu2ansible_ssh_host=10.85.10.53[monitor]tdsql_monitor1ansible_ssh_host=10.85.10.52tdsql_monitor1ansible_ssh_host=10.85.10.53[db]tdsql_db1ansible_ssh_host=10.85.10.51tdsql_db2ansible_ssh_host=10.85.10.52tdsql_db3ansible_ssh_host=10.85.10.53[proxy]tdsql_proxy1ansible_ssh_host=10.85.10.51tdsql_proxy2ansible_ssh_host=10.85.10.52tdsql_proxy3ansible_ssh_host=10.85.10.53[hdfs]tdsql_hdfs1ansible_ssh_host=10.85.10.54[lvs]tdsql_lvs1ansible_ssh_host=10.85.10.52tdsql_lvs2ansible_ssh_host=10.85.10.53[kafka]tdsql_kafka1ansible_ssh_host=10.85.10.51tdsql_kafka2ansible_ssh_host=10.85.10.52tdsql_kafka3ansible_ssh_host=10.85.10.53[consumer]tdsql_consumer1ansible_ssh_host=10.85.10.54[es]tdsql_es1ansible_ssh_host=10.85.10.54[newdb]tdsql_newdb1ansible_ssh_host=1.1.1.1tdsql_newdb2ansible_ssh_host=2.2.2.2tdsql_newdb3ansible_ssh_host=3.3.3.3修改ansible变量vi/soft/tdsql_full_install_ansible/group_vars/allzk_num:3netif_name:ens38#<—填入scheduler(ifconfig看到的)网卡的名称tdsql_pass:a+complex+passwordzk_rootdir:/tdsqlzk#下面参数后面安装相关模块时在调整metadb_ip:10.120.109.204metadb_port:15001metadb_ip_bak:10.120.109.205metadb_port_bak:15001metadb_user:hanlonmetadb_password:hanlonssh_port:36000hdfs_datadir:/data2/hdfs,/data3/hdfs,/data4/hdfskafka_logdir:/data2/kafka,/data3/kafka,/data4/kafkaes_mem:8es_log_days:7es_base_path:/data/application/es-install/estdsql_secret_pass:K2JatUv5llBbMrske/k2YbqCoc_secret_pass:LGhVs0v5nVxcOLQie/k9bb2Iclouddba_metadb_pass:h6Wyg2Xy

#执行安装part1_site.ymlshencrypt.sh<---------必须执行,更新密文密码ansible-playbook-itdsql_hostspart1_site.yml执行了近20多分钟,执行完成要无failed=0PLAYRECAP********************************************************************************************************************************************************chitu1:ok=20changed=19unreachable=0failed=0chitu2:ok=20changed=19unreachable=0failed=0db1:ok=13changed=12unreachable=0failed=0db2:ok=13changed=12unreachable=0failed=0db3:ok=13changed=12unreachable=0failed=0huyidb01:ok=30changed=19unreachable=0failed=0huyidb02:ok=27changed=16unreachable=0failed=0huyidb03:ok=27changed=16unreachable=0failed=0huyidb04:ok=27changed=17unreachable=0failed=0oss1:ok=14changed=11unreachable=0failed=0oss2:ok=14changed=11unreachable=0failed=0proxy1:ok=13changed=10unreachable=0failed=0proxy2:ok=13changed=10unreachable=0failed=0proxy3:ok=13changed=10unreachable=0failed=0scheduler1:ok=25changed=23unreachable=0failed=0scheduler2:ok=22changed=20unreachable=0failed=0zk1:ok=19changed=17unreachable=0failed=0zk2:ok=19changed=17unreachable=0failed=0zk3:ok=19changed=17unreachable=0failed=0

#错误:
TASK [zk_cluster : upload the template file zk_configure.py to the dst host] ************************************************************************************************************************************************************
fatal: [tdsql_zk1]: FAILED! => {“changed”: false, “msg”: “AnsibleUndefinedVariable: “hostvars[‘zk1']” is undefined”}
fatal: [tdsql_zk2]: FAILED! => {“changed”: false, “msg”: “AnsibleUndefinedVariable: “hostvars[‘zk1']” is undefined”}
fatal: [tdsql_zk3]: FAILED! => {“changed”: false, “msg”: “AnsibleUndefinedVariable: “hostvars[‘zk1']” is undefined”}
to retry, use: --limit @/soft/tdsql_full_install_ansible/part1_site.retry
原因: tdsql_hosts 配置标签不规范 , 版本不同,标签有所不同. 具体的参考模板,只改IP)
解决办法: tdsql_zk1 改为 zk1

#初始化chituhttp://10.85.10.52/tdsqlpcloud注意这里的OSSIP,可能不是实际IP可以查看cat/data/application/OSS/conf/scheduler.xml或netstat查看[root@huyidb02~]#netstat-an|grep8080tcp00192.168.58.131:80800.0.0.0:*LISTEN


注意这里的OSSIP,可能不是实际IP可以查看cat/data/application/OSS/conf/scheduler.xml或netstat查看[root@huyidb02~]#netstat-an|grep8080tcp00192.168.58.131:80800.0.0.0:*LISTEN


机型查看:[root@huyidb02data]#dmidecode|grep“ProductName”ProductName:VMwareVirtualPlatformProductName:440BXDesktopReferencePlatform#DB机型这里填440BX

注意:不同DB要在不同的IDC
同一个网关组的要在同一个IDC中

登录运营管理平台:帐号密码admin/123456

测试登录[root@huyidb02data]#mysql-utdsqlpcloud-h20.85.10.52-P15001-p'tdsqlpcloud'WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMySQLconnectionidis3171Serverversion:5.7.17-11-V2.0R540D002-20191226-1152-logSourcedistributionCopyright&copy;2000,2018,Oracle,MariaDBCorporationAbandothers.Type‘help;'or‘\h'forhelp.Type‘\c'toclearthecurrentinputstatement.MySQL[(none)]>

在管理库修改vi/soft/tdsql_full_install_ansible/group_vars/allmetadb_ip:10.85.10.52metadb_port:15001metadb_ip_bak:10.85.10.53metadb_port_bak:15001metadb_user:tdsqlpcloudmetadb_password:tdsqlpcloud执行安装part2_site.ymlshencrypt.sh<---------必须执行,更新密文密码ansible-playbook-itdsql_hostspart2_site.yml注意:failed=0PLAYRECAP********************************************************************************************************************************************************chitu1:ok=19changed=16unreachable=0failed=0chitu2:ok=5changed=4unreachable=0failed=0huyidb01:ok=18changed=11unreachable=0failed=0huyidb02:ok=18changed=11unreachable=0failed=0huyidb03:ok=18changed=11unreachable=0failed=0huyidb04:ok=18changed=11unreachable=0failed=0monitor1:ok=12changed=12unreachable=0failed=0oss1:ok=14changed=9unreachable=0failed=0oss2:ok=14changed=9unreachable=0failed=0scheduler1:ok=31changed=26unreachable=0failed=0scheduler2:ok=22changed=18unreachable=0failed=0#在任意一台scheduler机器上执行下面的命令:cd/data/application/scheduler/bin./agent_config--modemodify--option=“ocagent_port”--value=“8966”./agent_config--modemodify--option=“hadoop_dir”--value="/data/home/tdsql/hadoop-3.2.1/bin"

#安装备用赤兔(如果有另一个未初始化的chitu)将已初始化的chitu机器上拷贝2个文件到未初始化的chitu机器上,并删除未初始化chitu机器上的crontab,如下:10.85.10.52已初始化chitu10.85.10.53未初始化chitu(1)在52机器上,拷贝文件到53机器上scp-p/data/website/tdsqlpcloud/www/config/database.php10.85.10.53:/data/website/tdsqlpcloud/www/config/scp-p/data/website/tdsqlpcloud/www/config/install.lock10.85.10.53:/data/website/tdsqlpcloud/www/config/(2)删除53机器上nginx用户的crontabcp-a/var/spool/cron/nginx/data/tools/nginx_cron_bakrm-f/var/spool/cron/nginx(3)测试,登录53的chituhttp://10.85.10.53/tdsqlpcloud至此TDSQL的基本模块已安装完成。

安装其它模块(可选)
安装以下模块之前要确保TDSQL核心模块安装无误后再进行。
如果需要使用hdfs异地冷备存储binlog和镜像文件,用于数据回档恢复,安装hdfs。
如果需要使用tdsql默认提供的接入层lvs,安装lvs。
如果需要使用多源同步功能,安装kafka和consumer。
如果需要使用网关日志分析及sql审计功能,安装es。

#安装hdfs(1)准备hdfs的数据目录的路径首先用lsblk查看磁盘信息格式化为xfs文件系统mkfs.xfs-f/dev/sdg创建目录mkdir-p/mysql/backup修改/etc/fstab文件,设置自动挂载到指定路径/dev/sdg/mysql/backupxfsdefaults,noatime00挂载磁盘mount-a(2)设置主机名在hdfs机器上设置主机名,hdfs集群中主机名不能重复,不能有下划线、中划线等特殊字符,hostnamectlset-hostnamehuyidb04(3)检查tdsql_hosts文件vimtdsql_hosts[hdfs]<—填入hdfs机器地址,hdfs的数量只能是1或3hdfs1ansible_ssh_host=10.85.10.54(4)修改hdfs变量修改group_vars/all中下面的相关变量vimgroup_vars/all—ssh_port:36000<----实际的ssh通信端口hdfs_datadir:/mysql/backup<----多个迪特一个磁盘一个路径,逗号分隔注意这些数据文件路径的权限要是tdsql,如下:chown-Rtdsql:users/mysql/backup(5)#安装hdfs单点(我的是单点HDFS)执行安装ansible-playbook-itdsql_hostshdfs_single.ymlsu-tdsqlhdfsnamenode-format<—格式化namenode启动namenode和datanode:hdfs--daemonstartnamenodehdfs--daemonstartdatanode附:用tdsql用户关闭hdfs进程:hdfs--daemonstopdatanodehdfs--daemonstopnamenode(6)#安装hdfs高可用架构(如果是高可用用下面的方式安装)3个节点,并且zk集群不能是单点。执行安装hdfsansible-playbook-itdsql_hostshdfs.ymlsu-tdsql用tdsql用户初始化hdfs集群,初始化顺序如下,初始化的工作只用做一次,不要重复初始化用tdsql用户在hdfs1机器,格式化zkhdfszkfc-formatZK用tdsql用户在所有机器,启动journalnodehdfs--daemonstartjournalnode用tdsql用户在hdfs1机器,格式化并启动namenodehdfsnamenode-formathdfs--daemonstartnamenode用tdsql用户在hdfs2机器,格式化namenodehdfsnamenode-bootstrapStandby用tdsql用户启动hdfs集群,启动顺序如下,已经启动的进程就不用重复再启动了,查看启动的进程”jps”在所有hdfs机器上启动journalnodehdfs--daemonstartjournalnode在hdfs1和hdfs2上启动namenodehdfs--daemonstartnamenode在hdfs1和hdfs2上启动zkfchdfs--daemonstartzkfc在所有hdfs机器上启动datanodehdfs--daemonstartdatanode附:用tdsql用户关闭hdfs集群,关闭顺序如下在所有hdfs机器上关闭datanodehdfs--daemonstopdatanode在hdfs1和hdfs2上关闭zkfchdfs--daemonstopzkfc在hdfs1和hdfs2上关闭namenodehdfs--daemonstopnamenode在所有hdfs机器上关闭journalnodehdfs--daemonstopjournalnode(7)在hdfs集群下查看/tdsqlbackup路径用tdsql用户执行以下命令#查看/tdsqlbackup目录是否已经被自动创建,权限是否如下hadoopfs-ls/drwxr-xr-x-tdsqlsupergroup02019-01-0217:52/tdsqlbackup如果目录不在或者权限不对,用下面命令修改:hadoopfs-mkdir/tdsqlbackuphadoopfs-chowntdsql.supergroup/tdsqlbackup(8)管理hdfs集群用tdsql用户执行以下命令查看所有namenode节点状态,及主备情况(只适用于高可用3节点架构)hdfshaadmin-getAllServiceState查看所有datanode节点的状态,及上报的容量情况hdfsdfsadmin-report(9)注意用tdsql用户执行jps命令,可以看到hdfs的进程名称(只适用于高可用3节点架构)hdfs1和hdfs2机器上应该看到NameNode、JournalNode、DataNode、DFSZKFailoverControllerhdfs3机器上应该看到DataNode、JournalNode(10)配置hdfs监控如果有HDFS,但是没有配置HDFS监控,到"“集群管理->集群配置”中设置“HDFS服务列表”",注意:如上图所示填写namenode节点(一般2个)的50070端口生产环境不能用单节点hdfs,单节点架构的hdfs的端口号是9870

#安装lvslvs机器建议单独部署,不建议和别人复用(最多只能和zk复用)。(1)检查tdsql_hosts文件vimtdsql_hosts[lvs]<—填入lvs地址,lvs的数量固定为2lvs1ansible_ssh_host=10.85.10.52lvs2ansible_ssh_host=10.85.10.53(2)安装lvsansible-playbook-itdsql_hostslvs.yml(3)赤兔前台操作lvs接入层管理->LVS设备资源管理->上报LVS设备资源上报lvs机器信息(2台lvs机器信息都要上报)设备IP:填入LVS机器的通信ip地址。网卡名字:通信网卡设备名。子网掩码:填入实际的子网掩码。IDC:lvs机器需要划分到同一个IDC中,比如这里的“IDC_SZ_YDGL_0401_000001”。

创建 VIP(不能选取部署的机器 IP 作为 VIP,需要另选之外一个)
VIP:规划一个 vip 的地址,vip 的地址要和 lvs 机器的通信 ip 地址在同一个网段内。
设备 IP 列表:填入 lvs 机器的通信 ip 地址,一行一个。

创建 VIPGroup
VIPGroup 名:新建一个 vipgroup,取一个有意义的名字。


#安装kafka(1)检查tdsql_hosts文件vimtdsql_hosts[kafka]<----填入kafka集群的地址,kafka的数量固定为3kafka1ansible_ssh_host=10.85.10.51<----kafka机器的java虚拟机占用3个g以上内存kafka2ansible_ssh_host=10.85.10.52kafka3ansible_ssh_host=10.85.10.53(2)修改多源同步变量修改group_vars/all中下面的相关变量vimgroup_vars/allkafka_logdir:/mysql/log/kafka#日志要创建kafka目录(3)执行安装多源同步ansible-playbook-itdsql_hostskafka.yml(4)验证是否安装成功cd/data/application/kafka_2.12-2.3.1/logsvimserver.log<----查看kafka启动信息#安装consumer(1)查看tdsql_hosts文件[consumer]<—填入消费者的地址,数量固定为1consumer1ansible_ssh_host=10.240.139.35(2)执行安装consumeransible-playbook-itdsql_hostsconsumer.yml(3)启动消费者服务在consumer的机器上,使用下面命令启动消费者服务cd/data/application/consumer/bin/./binlogconsumermgn--zklist10.240.139.35:2181--zkrootpath/noshard1--kafkazklist10.240.139.35:2181--kafkazkrootpath/kafka--deveth2参数说明:–zklistZK的ip:port,可以写多个ZKip:port,多个之间用英文逗号分隔–zkrootpath注意整理zk根节点与部署的时候group_vars/all下的”zk_rootdir”一致–kafkazklistkafka所在zk,通常与–zklist一样–kafkazkrootpathkafka在ZK上的根节点,固定是/kafka–devconsumer的网卡名称例如:./binlogconsumermgn--zklist10.85.10.51:2181,10.85.10.52:2181,10.85.10.53:2181--zkrootpath/tdsqlzk--kafkazklist10.85.10.51:2181,10.85.10.52:2181,10.85.10.53:2181--kafkazkrootpath/kafka--devens38

#安装es(1)查看tdsql_hosts文件(不能与chitu同一台机器)[es]<—填入es的地址,数量固定为1es1ansible_ssh_host=10.85.10.54修改变量文件vimgroup_vars/alles_mem:8<-----内存占用,如果这里写8则至少占用8*2=16G内存es_log_days:7<-----日志保留天数es_base_path:/data/application/es-install/es<-----es数据存放路径改为es_mem:2es_log_days:7es_base_path:/mysql/data/es-install/es(2)执行安装esansible-playbook-itdsql_hostses_single.yml(3)启停命令(在es机器上操作):#stopps-ef|grepelasticsearch|grep-v‘grep'|awk‘{print$2}'|xargskill-9ps-ef|greplogstash|grep-v‘grep'|awk‘{print$2}'|xargskill-9ps-ef|grepes-cleaner|grep-v‘grep'|awk‘{print$2}'|xargskill-9ps-ef|grep‘node/bin/node'|grep-v‘grep'|awk‘{print$2}'|xargskill-9#starttdsql用户启动:cd/data/application/es-install/es/master/tools./start-elasticsearch.shcd/data/application/es-install/es/data/tools./start-elasticsearch.shroot用户启动:cd/data/application/es-install/logstash/tools./start-logstash.shcd/data/application/es-install/es-cleaner./start-es-cleaner.shcd/data/application/es-install/kibana-5.6.4-linux-x86_64/bin/nohup./kibana&#检测是否正常启动ps-ef|grepelasticsearch|grep-v‘grep'|wc-l输出为:4<--------我的单个ES个数为0ps-ef|greplogstash|grep-v‘grep'|wc-l输出为:2ps-ef|grepes-cleaner|grep-v‘grep'|wc-l输出为:1ps-ef|grep‘node/bin/node'|grep-v‘grep'|wc-l输出为:1(3)es的验证及相关配置输入esIP地址,打开es前台页面。启动es后,需要把实例详情中的“网关审计数据是否入库”打开,选择“是”。只有在打开这个开关后的日志才会入es,为了可以定位问题,需要的话一定要尽早打开。

至此,TDSQL所有模块已部署完成,后期可以直接使用和测试了。

关于“TDSQL怎么安装部署附图”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。