linux怎么备份数据库(linux如何备份mysql数据库)

linux怎么备份数据库(linux如何备份mysql数据库),第1张

一、使用mysql相关命令进行简单的本地备份

1mysqllmp命令

mysqlmp是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。

使用mysqlmp进行备份非常简单,如果要备份数据库”db_backup”,使用命令:

#mysqlmp_u-pphpbb_db_backup/backups/mysql/db_backup2008-1-6sql

还可以使用gzip命令对备份文件进行压缩:

#mysqlmpdb_backup|gzip/backups/mysql/db_backup2008-1-6sqlgz(备份后生成的sql不含建库语句!)

只备份一些频繁更新的数据库表:

##mysqlmpsample_dbarticlescommentslinks/backups/mysql/sample_dbart_comm_lin2008-1-6sql

上面的命令会备份articles,comments,和links三个表。

恢复数据使用命令:

#mysql_u-pdb_backup/backups/mysql/db_backup2008-1-6sql

注意使用这个命令时必须保证数据库正在运行。

2使用SOURCE语法

其实这不是标准的SQL语法,而是mysql客户端提供的功能,例如:

#SOURCE/tmp/db_namesql;

这里需要指定文件的绝对路径,并且必须是mysqld运行用户(例如nobody)有权限读取的文件。

3备份

只能用于备份MyISAM,并且只能运行在linux和Unix和NetWare系统上。支持一次性拷贝多个数据库,同时还支持正则表达。以下是几个例子:

#-h=localhost-u=goodcjh-p=goodcjhdb_name/tmp

(把数据库目录db_name拷贝到/tmp下)

注意,想要使用,必须要有SELECT、RELOAD(要执行FLUSHTABLES)权限,并且还必须要能够有读取datadir/db_name目录的权限。

还原数据库方法:

备份出来的是整个数据库目录,使用时可以直接拷贝到mysqld指定的目录(在这里是/usr/local/mysql/data/)目录下即可,同时要注意权限的问题,另外首先应当删除数据库旧副本如下例:

#/bin/rm-rf/mysql-backup///old

关闭mysql服务器、复制文件、查询启动mysql服务器的三个步骤:

#/etc/initd/mysqldstop

StoppingMySQL:[OK]

#cp-af/mysql-backup////var/lib/mysql/

#/etc/initd/mysqldstart

StartingMySQL:[OK]

#chown-Rnobody:nobody/usr/local/mysql/data/(将db_name目录的属主改成mysqld运行用户)

二、使用网络备份

将MYSQL数据放在一台计算机上是不安全的,所以应当把数据备份到局域网中其他Linux计算机中。假设Mysql服务器IP地址是:19216813。局域网使用Linux的远程计算机IP地址是19216814;类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。linux系统NFS服务端配置方法如下:

(1)修改/etc/exports,增加共享目录

/export/home/sunky19216814(rw)

/export/home/sunky1(rw)

/export/home/sunky2linux-client(rw)

有关linux:

1、卸载某一个特定的挂在点。

umount /dev/datavg01 /data01

2、移掉lvm。

vgremove /dev/datavg01

3、拷贝数据。

scp -r /home/gaogetxt root@192168101:/opt 或rsync -av /root/rpmpkgs /tmp/backups/

4、显示系统盘符并以树状格式展开。

lsblk。

5、扫描新增设备。

echo "---" >/sys/class/scsi-host/hosto/scan

6、强行杀死mysql

kill -9 $(ps -ef | grep mysql)

7、将文件内容以每一行5个的形式展示出来。

cat test2txt | xargs -n 5

8、用cut去实现awk切割列的效果

cat/etc/passwd | cut -d : -f 2

9、sed、grsp、awk。之前已经说过了、具体看 从linux三剑客说起 这篇。

10、增加一个oracle用户让其属于oinstall组同时也隶属于dba组。useradd oracle -g oinstall -G dba

11、新建立一个组groupnew并将组id修改为255。

groupadd -g 255 groupnew

12、将本地/dev/hdb整盘中的数据备份到/dev/hdd上。

dd if=/dev/hdb of=/dev/hdd

13、查看服务器cpu个数。

cat /proc/cpuinfo | grep "physical id" | wc -l

14、查看服务器io状况并以每间隔1秒的速度输出5次。

iostat 1 5

15、查看服务器内存使用情况并以每间隔2秒的速度输出10次。

vmstat 2 10

16、将gaogetxt中的第一列db2找到并将db两个字符用ab替换。

cat gaogetxt |grep db2 | awk -F 2 '{print $1}' | tr db ab

17、将包名解压到指定目录。

tar -cxvf 包名 -C 指定的目录

18、linux中前后台任务切换。

ctrl+z 切换到后台、jobs显示id、fg + id 切换至前台。

19、杀掉top下stopped的进程。

ps -A -ostat,ppid,pid,cmd |grep -e '^[T]'

然后在进行kill

20、监控cpu状态。

mpstat

21、查看虚拟内存使用了多少。

swapon

22、每月1到10号4:45重启nginx。

crontab -u root -l 显示root当前的计划任务。

crontab -u root -e 后输入以下内容并保存退出。

45 4 1,10 systemctl start nginx

23、awk打印df -h 的第一列、第三列、最后一列。

df -h | awk '{print $1 " " $3 " " $NF}'

24、批量拉、打标签、推docker镜像的shell脚本。

#!/bin/bash

for image in 'docker images | grep 10171101:10000 | awk ' { print $1 ":" $2 }

do

version = 'echo $image | awk -F / ' { print $2 } '

docker tag $image 192168101/$version

docker push 192168101/$version

done

25、正则表达式匹配电话号码。

(0d{2}[) -]d{8}

26、编译安装三步骤。

/configure --prefix=安装目录

make

make install

有关kubernetes:

将kubernetes中pod的数据拷贝到物理宿主机上。

kubectl cp gyl-run/gyl-mysql-01020304: /opt/dockersh /opt

将kubernetes中物理宿主机上的数据拷贝到pod中。

kubectl cp /opt/dockersh gyl-run/gyl-mysql-01020304: /opt

检查当前用户有没有权限在k8s中创建资源权限。

kubectl auth can-i '' ''

检查当前用户有没有权限在k8s集群中创建namespace权限。

kubectl auth can-i create pods --all-namespaces

查看集群是否 健康 。

kubectl get cs

有关数据库:

查看 mysql 二进制日志格式。

show variables like ‘%binlog_format%’

查看所有二进制日志文件

show master logs

查看正在写入的二进制日志

show master status

格式化二进制显示为sql格式

mysqlbinlog --base64 --output=decode-rows -v --start-date="2019-01-25 00:00:00" --stop-date=“2019-01-26 17:30” master-bin000006

利用bin-log去还原数据

/usr/bin/mysqlbinlog --no-default /var/lib/mysql/mysql-bin00001 | usr/bin/mysql -u root -p pwd test

连接 postgresql

psql -U 用户名 -d 数据

数据库名 -h 主机地址 -p端口(默认端口为5432)

l 显示数据库列表

d 显示所有表

d 表名称 显示表结构

du 显示所有数据库用户

c 数据库名 连接数据库

q 退出pg窗口

pg备份:

pg_dump -U kong -d kong -f /opt/2019-01-26-pgsql

pg还原:

psql -d kong -U kong -f /opt/2019-01-26-pgsql

mongo 批量更新数据:把age大于20的class name修改为,设置multi为true

SQLite数据库是一种嵌入式数据库,他的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现对于数据库而言的必备的功能。尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色,它具有这样一些特性:

支持ACID事务(ACID是Automic、Consisten、Isolated和Durable的缩写)

零配置,不需要任何管理性的配置过程

支持SQL92标准

所有数据存放单独的文件中,支持的最大文件可达2TB

数据库可以在不同字节的机器间共享

体积小

系统开销小,检索效率高

简单易用的API接口

可以和TCL、Python、C/C++、JAVA、Ruby、Lua、Perl、PHP等多种语言绑定

自包含,不依赖于外部支持

良好注释的代码

代码测试覆盖率高达95%以上

开放源码,可用于任何合法途径

在 Linux 中获取硬盘信息的一种常用方法是使用命令 "df"。可以使用 "df -h" 来获取硬盘空间使用情况的人类可读格式。

要将这些信息存入数据库,首先需要在数据库中创建一个表来存储这些信息。您可以使用 SQL 语句来创建表和定义其字段。

然后,您可以使用 Linux 的管道命令来将 "df" 命令的输出导入 SQL 命令中。例如, "df -h | mysql -u <username> -p<password> <database> -e 'INSERT INTO <table> (field1, field2, field3) VALUES(<value1>, <value2>, <value3>)'"

这样就可以实现将硬盘信息自动存入数据库。

如果要自动每隔一段时间更新一次,可以使用 crontab 命令来设置定时任务。

以常见的mysql和oracle这两种数据库为例:

一、连接mysql(mysql服务已开启)

1、mysql数据库安装在本机,则直接敲入命令mysql -u root -p即可。

2、mysql数据库不是安装在本机,则需要加参数,常用参数如下:

1),-h,指定目标ip地址

2),-u,指定登录用户名。

3),-p,指定密码,密码可以接在-p后面输入mysql -uroot -p123456。也可以mysql -uroot -p回车等提示输入密码时输入,这样输入密码没有回显。

二、连接oracle数据库

1、若当前用户为root用户,则需要执行命令 su - oracle切换至oracle用户;若当前用户为oracle用户则此步骤省略。

2、若oracle安装在本机,则在oracle用户下直接执行sqlplus username/password(username,password替换成真实的用户名和密码),若提示connected则表示连接成功;

3、若oracle安装在其他机器,则在oracle用户下执行sqlplus username/password@//host:port/sid。host为oracle所在机器的ip或者机器名,port为端口号,通常为1521,sid指oracle的实例名。

扩展资料:

linux下 *** 作数据库(以mysql为例)的其他命令

一、linux下查看mysql服务的命令两种方式:

1、[root@localhost bin]ps -ef|grep mysql

2、[root@localhost bin]netstat -nlp

二、linux下启动mysql服务的两种方式:

1、命令方式:

[root@localhost bin]cd /usr/bin

[root@localhost bin]/mysqld_safe &

2、服务方式:

[root@localhost ~]service mysql start

如果服务在启动状态,直接重启服务用以下命令:[root@localhost ~]service mysql restart

三、linux下关闭mysql服务的两种方式:

1、命令方式:

[root@localhost ~]mysqladmin -u root shutdown

2、服务方式:

[root@localhost ~]service mysql stop

参考资料:

mysql官方文档

你需要查看你的数据库软件 *** 作系统支持列表才可以。目前,PC平台上较知名的数据库软件基本上都能够跨平台(即既有windows也有类unix版本)而手机平台因为出现时间较短,而且受制于单个公司(例如ios被苹果限制),且应用环境的制约,一般PC平台上出名的数据库都未见有手机版本,或者正打算出手机版本。

开源的数据库推荐你使用postgreSQL。这东西虽然是属于实验性质的数据库(基本上包括了所有能见到的数据库特性),但是无论性能还是可靠性都是不错的。这东西也有商业化的版本,当然要付费支持。

以上就是关于linux怎么备份数据库(linux如何备份mysql数据库)全部的内容,包括:linux怎么备份数据库(linux如何备份mysql数据库)、linux和k8s和数据库笔记、嵌入式linux的小数据库有哪些能介绍一下吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9840052.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存