首页 文章 精选 留言 我的

精选列表

搜索[主数据管理],共10006篇文章
优秀的个人博客,低调大师

CentOS7设置SWAP分区,小内存服务器的救世主

前言 Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。 设置 1.添加SWAP分区 sh 复制代码 cd / && dd if=/dev/zero of=swapfile bs=1024 count=4194304 chmod 600 /swapfile && mkswap /swapfile swapon /swapfile && swapon -s echo "/swapfile swap swap defaults 0 0" >> /etc/fstab 注: count=4194304中4194304为交换分区大小 4194304=102410244大小为4G 交换区大小设置有个参考依据,物理内存小于4G则SWAP设置为物理内存的两倍、物理内存等于4G则SWAP设置为4G、物理内存大于4G则SWAP设置为物理内存的1/2。 2.重启系统 sh 复制代码 shutdown -r now 3.查看分区结果 sh 复制代码 free -m 4.关闭交换空间 sh 复制代码 cd / && swapoff swapfile && rm -rf swapfile

优秀的个人博客,低调大师

Mysql主主同步失败后的恢复

基础信息 主库: 数据库2 10.126.4.2 数据库3 10.126.4.3 1. 停止数据库3对外服务 防止同步过程中服务通过数据库3写入数据 $ firewall-cmd --remove-port=3306/tcp $ firewall-cmd --add-rich-rule="rule f amily="ipv4" source address="10.126.4.2" port protocol="tcp" port="3306" accept" $ firewall-cmd --reload 2. 备份主库 $ mysqldump -uroot -p --single-transaction --master-data=2 --no-autocommit -A >alldatas-190708.sql 记住 MASTER_LOG_FILE 和 MASTER_LOG_POS $ head -n 30 alldatas-190708.sql -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000016', MASTER_LOG_POS=801595396; 3. 切断数据库2、3的同步 两台主机分别执行 mysql>change master to master_host='' mysql>stop slave; mysql>reset slave; 4. 清空数据库3 清空数据文件 $ rm /var/lib/mysql $ mv /db/mysql /db/mysql-190708 $ mkdir /db/mysql $ ln -s /db/mysql /var/lib/mysql chown mysql:mysql /var/lib/mysql chown -h mysql:mysql /var/lib/mysql 初始化 mysqld --initialize --user=mysql grep password /var/log/mysqld.log 重置 master 和 slave mysql> reset master; mysql> show master status\G mysql> stop slave; mysql> reset slave; mysql> show slave status\G File: mysql-bin.000001 Position: 154 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec) ERROR: No query specified 5. 导入主库信息,重新指向主库 $ mysql -uroot -p < alldatas.sql mysql > change master to -> master_host='10.126.4.2', -> master_user='repl', -> master_password='********', -> master_log_file='binlog.???', -> master_log_pos=???; mysql > start slave; mysql > show slave status\G 6. 数据库2配置主库信息 查询数据库3的 master_log_file 和 master_log_pos 10.126.4.3 show master status; 10.126.4.2 mysql > change master to -> master_host='10.126.4.3', -> master_user='repl', -> master_password='********', -> master_log_file='binlog.???', -> master_log_pos=???; mysql > show slave status\G 7. 放开数据库3对外服务 $ firewall-cmd --reload www.tonglei.win

优秀的个人博客,低调大师

Docker数据管理

Docker的数据卷是可以绕过文件系统的,而且数据卷是可以共享,可重用的 查看数据卷: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@docker~] #dockerinspect-f``.`Volumes`volume-test1 map[ /data : /var/lib/docker/volumes/9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5/_data ] [root@docker~] #cd/var/lib/docker/ [root@dockerdocker] #ls containersdevicemappergraphinitlinkgraph.dbrepositories-devicemappertmptrustvolumes [root@dockerdocker] #cdvolumes/ [root@dockervolumes] #ls-lrt total8 drwxr-xr-x3rootroot4096Feb2409:2963ccf5d524567c835c6d542cfc74d1a28d28fdf48a0bca0c517cb8dedf46b632 drwxr-xr-x3rootroot4096Feb2409:309f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5 [root@dockervolumes] #cd9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5/ [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] # [root@docker~] #dockerrun-it--namevolume-test1-hnginx-v/datacentos [root@nginx/] #ls/data 测试: 1、系统随机生成的目录,进行挂载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 容器的宿主机: [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] #ls _data [root@docker9f36c1a9b7728974566268a2beebb0b917226952280c96107388469659bfcfe5] #cd_data/ [root@docker_data] #ls passwd [root@docker_data] #ddif=/dev/zeroof=test.isobs=1Mcount=10 10+0records in 10+0recordsout 10485760bytes(10MB)copied,0.00956288s,1.1GB /s [root@docker_data] #ls passwd test .iso 容器内: [root@nginx/] #cd/data/ [root@nginxdata] #ls [root@nginxdata] #cp/etc/passwd. [root@nginxdata] #ls passwd [root@nginxdata] #ls passwd test .iso 说明:容器的宿主机的目录已共享给容器使用(删除容器后,原有的数据卷目录中的文件仍旧是存在的) 2、系统指定的目录,进行挂载 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 宿主机的操作: [root@docker~] #mkdir-p/volume-test2-data [root@docker~] #dockerrun-it-d--namevolume-test2-hcentos7--restart=always-v/volume-test2-data:/centos-datacentos 29e9a41e563d514c8b9f14d14a0426af955651b28109c4851cfec40a186244d0 [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 7secondsagoUp5secondsvolume-test2 [root@docker~] #cp-r/usr/share/doc/abrt-2.0.8//volume-test2-data/ [root@docker~] #ls-l/volume-test2-data/ total4 drwxr-xr-x2rootroot4096Feb2409:58abrt-2.0.8 容器内的操作: [root@docker~] #./in.sh29e9a41e563d [root@centos7/] #df-h FilesystemSizeUsedAvailUse%Mountedon /dev/mapper/docker-8 :3-8388750-29e9a41e563d514c8b9f14d14a0426af955651b28109c4851cfec40a186244d09.8G230M9.0G3%/ tmpfs1.9G01.9G0% /dev shm64M064M0% /dev/shm /dev/sda3 193G11G173G6% /etc/hosts [root@centos7/] #cd/centos-data/ [root@centos7centos-data] #ls abrt-2.0.8 [root@centos7centos-data] #cp/etc/passwd. [root@centos7centos-data] #ls abrt-2.0.8 passwd [root@docker_data] #ls/volume-test2-data/ abrt-2.0.8 passwd 3、系统指定的目录,进行挂载(可挂载多个,并设置权限,默认为rw权限) 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 宿主机的操作: 先删除原有的容器 [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 11minutesagoUp11minutesvolume-test2 8884fc392971nginx"nginx-g'daemonof13hoursagoUp51minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp51minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp51minutescentos_aways 删除正在允许的容器时,会有报错信息: [root@docker~] #dockerrm29e9a41e563d-f Errorresponsefromdaemon:Cannotdestroycontainer29e9a41e563d:Conflict,Youcannotremovearunningcontainer.Stopthecontainerbeforeattemptingremovaloruse-f Errorresponsefromdaemon:nosuch id :-f Error:failedtoremovecontainers:[29e9a41e563d-f] [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 29e9a41e563dcentos "/bin/bash" 11minutesagoUp11minutesvolume-test2 8884fc392971nginx"nginx-g'daemonof13hoursagoUp52minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp52minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp52minutescentos_aways 先停止容器,然后再进行删除: [root@docker~] #dockerstop29e9a41e563d 29e9a41e563d [root@docker~] #dockerrm29e9a41e563d 29e9a41e563d [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 8884fc392971nginx"nginx-g'daemonof13hoursagoUp52minutes80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 46hoursagoUp52minutes0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 47hoursagoUp52minutescentos_aways 运行一个基于centos镜像的容器,容器名称为volume-test2,并设置容器中的主机名为centos7(仅对容器有效),挂载本地的 /volume-test2-data 以及 /opt 目录,并且指定 /opt 目录对容器是只读的 [root@docker~] #dockerrun-it-d--namevolume-test2-hcentos7--restart=always-v/volume-test2-data:/centos-data-v/opt:/opt:rocentos 37652d4601948fe8421c0371278e9bee8c5cbb35f16c7bf755764d56ddafa304 [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 37652d460194centos "/bin/bash" 16secondsagoUp15secondsvolume-test2 [root@docker~] #./in.sh37652d460194 容器内的操作: [root@centos7/] #cd/opt/ [root@centos7opt] #ls rh [root@centos7opt] #ls opt.isorh [root@centos7opt] #touch123.txt touch :cannot touch ‘123.txt’:Read-only file system --volume-from: 继承容器数据卷的操作: [root@docker~] #dockerrun-it-d--restart=always--namevolume-test04--volumes-fromvolume-test2centos 94ea720a2c418286d26068d126df35523742e2f910685863f876c3ba9c09638c [root@docker~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 6secondsagoUp4secondsvolume-test04 [root@docker~] #./in.sh94ea720a2c41 [root@94ea720a2c41/] #ls/ anaconda-post.logcentos-dataetcliblost+foundmntprocrunsrvtmpvar bindevhomelib64mediaoptrootsbinsysusr [root@94ea720a2c41/] #cd/opt/ [root@94ea720a2c41opt] #ls opt.isorh [root@94ea720a2c41opt] #cd/centos-data/ [root@94ea720a2c41centos-data] #ls abrt-2.0.8 passwd [root@94ea720a2c41centos-data] #touch12345.txt [root@94ea720a2c41centos-data] #cd/opt [root@94ea720a2c41opt] #ls opt.isorh [root@94ea720a2c41opt] #touch111 touch :cannot touch ‘111’:Read-only file system 拥有volume-test2的容器的操作: [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 45secondsagoUp43secondsvolume-test04 37652d460194centos "/bin/bash" AboutanhouragoUpAboutanhourvolume-test2 8884fc392971nginx"nginx-g'daemonof14hoursagoUpAboutanhour80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUpAboutanhour0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUpAboutanhourcentos_aways [root@docker~] #./in.sh37652d460194 [root@centos7/] #ls anaconda-post.logcentos-dataetcliblost+foundmntprocrunsrvtmpvar bindevhomelib64mediaoptrootsbinsysusr [root@centos7/] #cd/centos-data/ [root@centos7centos-data] #ls abrt-2.0.8 passwd [root@centos7centos-data] #ls 12345.txtabrt-2.0.8 passwd 进一步进行测试: 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 [root@docker~] #dockerrun-it-d--restart=always--namevolume-test04--volumes-fromvolume-test2centos 94ea720a2c418286d26068d126df35523742e2f910685863f876c3ba9c09638c 宿主机上的操作: [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 14minutesagoUp14minutesvolume-test04 37652d460194centos "/bin/bash" AboutanhouragoUpAboutanhourvolume-test2 8884fc392971nginx"nginx-g'daemonof14hoursagoUp2hours80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUp2hours0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUp2hours [root@docker~] #dockerstop37652d460194 37652d460194 [root@docker~] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 94ea720a2c41centos "/bin/bash" 14minutesagoUp14minutesvolume-test04 8884fc392971nginx"nginx-g'daemonof14hoursagoUp2hours80 /tcp ,443 /tcp nginxdocker 14caa9ab03a9dockerui /dockerui "/dockerui" 47hoursagoUp2hours0.0.0.0:9000->9000 /tcp dockerui_qinwen e278cabec91ecentos "/bin/bash" 2daysagoUp2hourscentos_aways [root@docker_data] #cd/volume-test2-data [root@dockervolume-test2-data] #ls 12345.txtabrt-2.0.8 passwd [root@dockervolume-test2-data] #ls-lrt total8 drwxr-xr-x2rootroot4096Feb2409:58abrt-2.0.8 -rw-r--r--1rootroot692Feb2410:01 passwd -rw-r--r--1rootroot0Feb2411:1612345.txt 容器内的操作: [root@94ea720a2c41opt] #cd/centos-data/ [root@94ea720a2c41centos-data] #ls-lrt total8 drwxr-xr-x2rootroot4096Feb2401:58abrt-2.0.8 -rw-r--r--1rootroot692Feb2402:01 passwd -rw-r--r--1rootroot0Feb2403:1612345.txt [root@94ea720a2c41centos-data] # 说明: 1、验证后可以发现,ro权限是正常的 2、这种映射在Dockerfile里面是没法使用的 3、这里我们不管volume-test2 所属的容器是否正在允许,在新主机中均能够继承 本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1744570,如需转载请自行联系原作者

优秀的个人博客,低调大师

5 docker数据管理

容器中管理数据主要有两种方式 1、数据卷 2、数据卷容器 一、数据卷 1、基于training/webapp镜像创建一个容器,并在容器内创建一个数据卷 使用training/webapp镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录 root@docker-test:~# root@docker-test:/# docker run -idt -P --name web -v /tantianran training/webapp python run.py 4c5baed6426181815ddd9f0884855bd9e22a27b460eb1c77b5a97a07ecbbd813 提示: -P 发布所有暴露的端口到随机端口 创建的数据卷/tantianran ,挂载给名字为web的容器时,会在容器内部的根目录下自动创建一个名为tantianran的目录 2、查看运行的容器 root@docker-test:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8bf5a39b85f0 training/webapp:latest "python app.py" 6 minutes ago Up 6 minutes 0.0.0.0:32772->5000/tcp web 提示:0.0.0.0:32772->5000/tcp 表示访问172.17.42.1:32772端口都会重定向到容器侦听的5000端口(flask web程序) 3、进入这个容器后查看IP地址 docker exec -ti 078519be8a26 /bin/bash #进入容器 root@8bf5a39b85f0:/opt/webapp# ifconfig #查看IP地址 eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:16 inet addr:172.17.0.22 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:16/64 Scope:Link UP BROADCAST RUNNING MTU:1500 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:39 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2868 (2.8 KB) TX bytes:3034 (3.0 KB) 4、在本地主机查看IP地址 root@docker-test:~# ifconfig docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99 inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:288 errors:0 dropped:0 overruns:0 frame:0 TX packets:181 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:19306 (19.3 KB) TX bytes:15494 (15.4 KB) 提示:那么,通过查看本地主机的IP地址,和进入容器后查看IP地址,就一目了然了,docker会在本地主机虚拟出一块网卡 作为docker容器网络连接的网关,以及给docker容器分配IP地址 5、挂载一个主机目录作为数据卷 (在做这个操作之前,之前的容器需停止掉,或者删除掉,或者将创建此容器时命名为别的名字,不然会存在冲突) 在本地主机根目录下创建目录:local_mydata/ #其实不用创建也行,docker会自动创建 并创建几个文件:touch my_test.py my_config.py root@docker-test:~# docker run -d -P --name testweb -v /local_mydata:/mydata training/webapp python run.py #加载本地主机的/local_mydata目录到容器的/mydata目录 9fa32094da848d2b5817edc49b9971ffdb72319589a10334b442174dd0061c81 注意,容器中的/mydata目录会自动创建,另外,本地主机的目录的路径必须是绝对路径,如果目录不存在,docker会自动创建 6、挂载一个本地主机作为数据卷 二、数据卷容器 1、基于ubuntu镜像创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata root@docker-test:~# docker run -idt -v /dbdata/ --name dbdata ubuntu 2、基于ubuntu镜像创建db1和db2两个容器,并从dbdata容器挂载数据卷 root@docker-test:~# docker run -idt --volumes-from dbdata --name db1 ubuntu #创建db1容器 593de70961a07bc1af5d12591833a62d691d594f302f92ee96c3587d87ae6aa6 root@docker-test:~# docker run -idt --volumes-from dbdata --name db2 ubuntu #创建db2容器 39d71abc194d66f53211893efcdcd1cdff6cc5b52c0365a03d2a1e55aa225216 root@docker-test:~# docker ps -a #查看容器信息 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39d71abc194d ubuntu:latest "/bin/bash" 5 seconds ago Up 4 seconds db2 593de70961a0 ubuntu:latest "/bin/bash" 12 seconds ago Up 11 seconds db1 a6a32f7838ee ubuntu:latest "/bin/bash" 4 minutes ago Up 4 minutes dbdata 此时,容器db1和db2都同时挂载同一个数据卷到相同的/dbdata目录,任何一方在该目录下写入数据,其它容器都能看到 3、进入dbdata容器中创建一些文件 root@docker-test:~# docker exec -ti dbdata /bin/bash #进入容器 4、分别进入db1和db2查看 root@docker-test:~# docker exec -ti db1 /bin/bash root@docker-test:~# docker exec -ti db2 /bin/bash 本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1958348

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册