linux备份还原数据库
1. Window下备份的DB2数据库,在linux下怎么恢复
将windows下的数据库备份文件直接复制到LINUX下,在LINUX下创建一个同名空库,然后执行restore db命令,应该成功的。
另外一种方法是可以用db2look取得windows数据库的DDL语句,到LINUX系统下执行一遍。数据依靠windows下执行EXPORT命令导出,LINUX下IMPORT。
2. linux怎么备份数据库
一、 使用mysql相关命令进行简单的本地备份
1 mysqllmp命令
mysqlmp 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。
使用 mysqlmp进行备份非常简单,如果要备份数据库” db_backup ”,使用命令:
#mysqlmp –u -p phpbb_db_backup > /usr/backups/mysql/db_backup2008-1-6.sql
还可以使用gzip命令对备份文件进行压缩:
#mysqlmp db_backup | gzip > /usr/backups/mysql/ db_backup2008-1-6.sql.gz (备份后生成的sql不含建库语句!)
只备份一些频繁更新的数据库表:
## mysqlmp sample_db articles comments links > /usr/backups/mysql/sample_db.art_comm_lin.2008-1-6.sql
上面的命令会备份articles, comments, 和links 三个表。
恢复数据使用命令:
#mysql –u -p db_backup </usr/backups/mysql/ db_backup2008-1-6.sql
注意使用这个命令时必须保证数据库正在运行。
2 使用 SOURCE 语法
其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:
# SOURCE /tmp/db_name.sql;
这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。
3 mysqlhot备份
mysqlhot 只能用于备份 MyISAM,并且只能运行在 linux 和Unix 和 NetWare 系统上。mysqlhot 支持一次性拷贝多个数据库,同时还支持正则表达。以下是几个例子:
#mysqlhot -h=localhost -u=goodcjh -p=goodcjh db_name /tmp
(把数据库目录 db_name 拷贝到 /tmp 下)
注意,想要使用 mysqlhot,必须要有 SELECT、RELOAD(要执行 FLUSH TABLES) 权限,并且还必须要能够有读取 datadir/db_name 目录的权限。
还原数据库方法:
mysqlhot 备份出来的是整个数据库目录,使用时可以直接拷贝到 mysqld 指定的 目录 (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题,另外首先应当删除数据库旧副本如下例:
# /bin/rm -rf /mysql-backup/**//*old
关闭mysql 服务器、复制文件、查询启动mysql服务器的三个步骤:
# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
# cp -af /mysql-backup/**//* /var/lib/mysql /
# /etc/init.d/mysqld start
Starting MySQL: [ OK ]
#chown -R nobody:nobody /usr/local/mysql/data/ (将 db_name 目录的属主改成 mysqld 运行用户)
二、使用网络备份
将MYSQL数据放在一台计算机上是不安全的,所以应当把数据备份到局域网中其他Linux计算机中。假设Mysql服务器IP地址是:192.168.1.3。局域网使用Linux的远程计算机IP地址是192.168.1.4;类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。linux系统NFS服务端配置方法如下:
(1)修改 /etc/exports,增加共享目录
/export/home/sunky 192.168.1.4(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
3. 如何在Linux下实现DB2数据库备份和恢复
Linux, 环境, 数据库Linux, 数据库, 环境
通过如下备份脚本备份的数据库进行恢复
备份脚本:
- ./home/db2admin/sqllib/db2profile
- db2backupdbdatedbonlineto/dbbackup/dateincludelogs
- cd/dbbackup/datetoday=`date+”%Y%m%d”`
- file1=”*$today*”
- ftpfile=`ls$file1`
- echo$ftpfile
- lftp-c“openftp地址;user用户名密码@$0;put$ftpfile”
- find/dbbackup/date-ctime+15-execrm{};
恢复命令:
通过root命令登录到服务器上后切换到数据库用户名下用su – db2admin命令。
进入到备份文件存放目录即可。
4. 从Linux备份DB2数据库到AIX上怎么恢复
DB2数据库离线和在线全备、增量备份及恢复的具体操作步骤:
1、离线全备份
(1)、首先确保没有用户使用DB2:
$db2 list applications for db sample
(2)、停掉数据库并重新启动,以便断掉所有连接:
db2stop force
db2start
(3)、执行备份命令:(使用TSM作为备份的介质)
db2 backup db sample use tsm
备份成功,将会返回一个时间戳。
(4)、检查备份成功:
Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
Db2atl query命令也可以看到返回值。
(5)、备注:
首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。
2、 在线备份:
(1)、首先打开一下支持在线备份的数据库配置参数:
db2 update db cfg for sample using userexit on 启用用户出口
db2 update db cfg for sample using logretain on 启用归档日志
db2 update db cfg for sample using trackmod on 启用增量备份功能
(需要各个Node都分别做设置)
开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。
(2)、在线备份命令如下:
db2 backup db sample online use tsm
备份成功,返回一个时间戳。
(3)、同样可以用db2atl 和db2 list history察看备份纪录。
(4)、备注:
同样,对每个节点都做这个操作。
3、 在线增量备份
(1)、在开启了必须的三个参数的情况下,做增量备份:
db2 backup db sample online incremental use tsm
备份成功,返回一个时间戳。
(2)、同样可以用db2atl 和db2 list history察看备份纪录。
(3)、还有一种delta的备份:
db2 backup db sample online
incremental delta use tsm
这两种备份的区别,类似Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。
(4)、备注:同样,对每个节点都做这个操作。
4、 恢复数据库
(1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作:
db2 drop db sample
(2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的:
db2 restore db sample history file use tsm
taken at 20030102223107 buffer 100
(3)、使用db2的恢复帮助工具:
db2ckrst -d sample -t 20030101224424 -r database
命令返回建议的必需的恢复操作命令。
(4)、按照帮助工具的提示,先做版本恢复,恢复命令如下:
db2 restore db sample incremental use tsm taken at 20030101224424 buffer 100
同样先做主节点的恢复,再做其他节点的恢复操作。
(5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:
db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop
前滚到同一个时间点。这个操作要在主节点来做。
5、说明:
(1)、恢复操作也有online和offline的,区别等同backup的操作。
(2)、按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name 即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。
(3)、恢复的例子中只做了版本恢复。若还有更新的全备份和增量备份的image,可以依次做恢复(请注意使用db2ckrst的建议恢复次序和次数)之后,最后做roll forward.
5. linux系统mysql怎么还原
你说的还原,指有备份的还原,下面是你做过备份的恢复:
如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqlmp
命令格式如下:
[root@linuxsir01 root]# mysqlmp -u root -p linux > /root/linux.sql
Enter password:在这里输入数据库的密码
通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。
[root@linuxsir01 root]#mysqlmp -u root -p linux > /home/beinan/linuxsir031130.sql
Enter password:在这里输入数据库管理员root的数据库密码
如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:
#mysqlmp -u root -p tm | gzip > tm_050519.sql.gz
这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
综上所述,我们学习时要学会变通。
恢复:
首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql
Enter password:在这里输入密码
如果机器好,数据库比较小,几分钟就好了。
如何导出数据库表的数据?(不同于备份哦)
#mysql
(#mysql>use linux;)#可有可无
#mysql>select * from linux.table-name into outfile "/home/table-name.txt";
#/home/table-name.txt 可能会报错,如果这样去掉/home直接"table-name.txt"
默认保存在/var/lib/mysql/table-name.txt
对mysql数据库常用命令的一点补充;
几个常用的mysql相关的管理命令
mysql 命令:基本文本的,显示和使用的mysql数据库。前面已经简单的提过用法;比如登录等。
mysqladmin 命令,用来创建和维护mysql数据库的命令,前面已经简单的提过;
isamchk 是用来修复、检查和优化.ism后缀的数据库文件;
mysqlmp 是用于备份数据库,前面已经简单的说明过;
myisamchk 用来修复.myi后缀的数据库文件;
比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;
要把mysqld服务器停下来
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop
然后执行
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI
上面的命令的意思就是检查所有的.myi文件,数据库的目录在/opt/mysql/var/linux/目录中
如果有问题,应该用-r参数来修复
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI
7]mysqlshow 命令:显示用户选择的数据库和表
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [数据库名]
比如我要查看名为linux的数据库;应该是:
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux
6. linux下mysql数据库备份工具有哪些
命令行 mysqlmp
网页phpmyadmin
7. 如何用java程序在linux中备份和还原mysql数据库
将MySql中的数据库导出到文件中 备份import java.io.*;import java.lang.*;public class BeiFen {public static void main(String[] args) {// 数据库导出String user = "root"; // 数据库帐号String password = "root"; // 登陆密码String data...