如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Percona XtraBackup是一个免费的基于MySQL的程序,用于进行热备份。它也是开源的。使用Percona XtraBackup,您可以对正在运行的MySQL,MariaDB或Percona Server数据库进行热备份,而无需停止数据库服务或将其设置为只读。这是许多在线业务的一项关键业务功能。
对于使用InnoDB,XtraDB和HailDB存储引擎的数据库,Percona XtraBackup可以执行非阻塞备份。对于使用MyISAM,合并和存档存储引擎的数据库,Percona XtraBackup还可以通过在备份过程结束时短暂地暂停写入来执行备份。
在本文中,我将向您展示如何安装和使用Percona XtraBackup在基于一键WordPress应用程序的Vultr服务器上执行完整和增量热备份。我们将执行完整备份和两个增量备份,然后将数据库还原到三个备份中每个备份的状态。
我假设您已从头开始部署一键式WordPress Vultr服务器实例,并已使用SSH作为根用户登录。
为了安全起见,建议的做法是创建另一个具有root权限的用户帐户,然后使用该帐户登录并在系统上执行日常操作。您仍然可以使用该sudo
命令执行几乎所有的超级用户命令。
1)创建一个新用户。sysuser
用您自己的用户名替换。
useradd sysuser
2)设置新用户的密码。sysuser
用您自己的用户名替换。
passwd sysuser
3)向新用户授予root权限。
visudo
查找下面的段落。
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在此段落的正下方添加一行,sysuser
并用您自己的用户名替换。
sysuser ALL=(ALL) ALL
保存并退出。
:wq
4)切换到您的新用户帐户。
logout
然后,使用新用户的凭据从您的终端窗口登录。
默认情况下,MySQL根登录名保存在VPS中/root/.my.cnf
。使用以下命令在您的终端中显示密码。
sudo cat /root/.my.cnf
使用屏幕上显示的凭据登录到MySQL控制台。
mysql -u root -p
在MySQL Shell中,运行以下命令。
SHOW DATABASES;
屏幕上将显示所有MySQL数据库。名为like wp5273512
的数据库是我们要备份的WordPress数据库。在以下命令中,wp5273512
用您自己的命令替换:
USE wp5273512;
检查每个表的存储引擎:
SHOW TABLE STATUS\G
您会发现WordPress MySQL数据库中的所有表都使用InnoDB存储引擎,该引擎非常适合通过Percona XtraBackup执行热备份。
对于使用MyISAM存储引擎的任何其他MySQL数据库,我们仍然可以通过短暂暂停写入来使用Percona XtraBackup备份它们。
仍在MySQL Shell中,使用以下命令创建专用的数据库用户进行备份。请记住用您自己的用户名xbuser
和密码替换数据库用户名和密码xbpasswd
:
CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
上面授予的特权对于完整的Percona XtraBackup功能是必需的。您可以删除其中一些功能,以减少功能并提高安全性。有关更多详细信息,请参见Percona XtraBackup 官方网站。
您可以很容易地从Percona的RPM存储库安装Percona XtraBackup:
sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup
首先,您需要将用户添加sysuser
到mysql
组中。sysuser
用您自己的用户名替换。
sudo gpasswd -a sysuser mysql
创建一个目录来存储完整备份。
sudo mkdir -p /dbbackup/full/
创建另一个目录来存储增量备份。
sudo mkdir -p /dbbackup/inc/
将这些目录的所有者更改为user sysuser
和group sysuser
。
sudo chown -R sysuser:sysuser /dbbackup
注销以使这些更改生效。
logout
然后,sysuser
再次登录。
XtraBackup主要由XtraBackup程序和innobackupex
perl脚本组成。通常,innobackupex
为了方便起见,您可以使用perl脚本执行各种操作过程。
输入以下命令以创建第一个完整备份。请记住用您自己的xbuser
数据库用户名,数据库用户密码xbpasswd
和完整备份目录/dbbackup/full/
替换。
sudo innobackupex --user=xbuser --password=xbpasswd /dbbackup/full/
正确执行此命令后,您将看到确认消息“ innobackupex:已完成,确定!”。在输出的最后一行。
此完全备份的所有新创建的文件都将存储在带有时间戳的目录下/dbbackup/full/
。例如,/dbbackup/full/2015-05-22_05-45-54
。
输入以下命令以创建第一个增量备份。相应地在命令中替换变量。
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
再次,您将看到“ innobackupex:完成,确定!” 命令成功执行时在输出的末尾。备份文件将存储在带有时间戳的目录下/dbbackup/inc/
。
输入以下命令以创建第二个增量备份。相应地替换命令中的变量。
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
成功后,您将看到“ innobackupex:完成OK!” 再次留言。/dbbackup/inc/
再次检查文件夹以查看备份文件。
必须先准备所有数据库备份文件,然后才能将其用于还原数据库。
注意:在执行准备和还原过程之前,最好将整个备份目录的副本(例如/dbbackup/
)保留在另一个位置,以防由于错误导致备份文件损坏。
在每个备份目录中,都有一个名为的文件xtrabackup_checkpoints
,其中包含备份类型以及开始和结束日志序列号(from_lsn
和to_lsn
)。您可以使用这些数字来阐明数据库还原策略。看下面的例子。
在xtrabackup_checkpoints
第一次完整备份的文件中,我有:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
在xtrabackup_checkpoints
第一个增量备份的文件中,我有:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
在xtrabackup_checkpoints
第二个增量备份的文件中,我有:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
简而言之,您应该以递增的lsn顺序处理每个备份。如果lsn序列不完整或混乱,则可能会丢失数据。
注意:以下命令涉及三个目录,用您自己的目录替换。
要将数据库还原到第一次完全备份的状态,需要使用以下命令准备备份文件:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
要将数据库还原到第一个增量备份的状态,需要使用以下命令准备备份文件:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
要将数据库还原到第二个增量备份的状态,您需要使用以下命令准备备份文件:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
注意事项:
对于增量备份,应该--redo-only
在除最后一个增量备份之外的所有备份上使用该选项。但是,在最后一次增量备份上使用此选项仍然对数据的一致性无害-只会由于数据库回滚而导致一些延迟。
每个增量方案的最后一个命令是可选的,但建议使用,因为它会加速还原。
准备之后,增量备份文件中记录的更改将附加到已准备的基本完全备份文件中,因此,无论选择完全备份还是增量备份,都应始终使用已准备好的完全备份文件来还原数据库。
在还原数据库之前,您需要停止数据库服务。
sudo service mysqld stop
您还需要清空数据库目录。您可以将当前数据库文件移动到另一个位置以防万一。
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
使用准备好的“完全备份”文件还原数据库。
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
由于还原过程将修改数据库目录的所有者,因此您需要将其更改回mysql:mysql
使其可以运行。
sudo chown -R mysql:mysql /var/lib/mysql
重新启动数据库服务。
sudo service mysqld start
而已。此时,您可以访问WordPress网站以验证还原过程是否成功。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战
使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)
Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性
Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。
使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示
简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin
在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区
使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量
本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio
Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据
使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何
使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有
使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息