cPanel主机面板定时自动备份MySQL数据库_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

cPanel主机面板定时自动备份MySQL数据库

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:备份数据库自动定时
黑客防线网安网讯:    现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)。AU 和 NZ 是网站的部分实时数据,目前某一步操作的REPLICATION方案是从服务器B到...

    现在需要在一台服务器(A)上的数据库(Master)里访问另外一台服务器(B)的另外两个数据库(NZ 和 AU)AU 和 NZ 是网站的部分实时数据目前某一步操作的REPLICATION方案是从服务器B到AAU / NZ 的表结构同Master 数据结构基本一致
 
这样一来,当把AU Replication 到 Master 后,在把 NZ  Replication 到 Master , Master 里的就只剩 NZ 的数据了。反过来就只有AU的了,具体的Replication 是怎么一回事,我也不懂,也没有细看。
 
如果能在Master 里直接操作 AU 和 NZ 就好了。
SQLServer 有函数:
OPENROWSET 和 OPENDATASOURCE
 
这两个函数不但能实现从另外的数据库读数据,而且还能从EXCEL、TXT, ORACLE, ODBC 等读数据。
--启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
 
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=SQLServerName;User ID=sa;Password=xxx'
).Help.dbo.Help_Category
 

 
select * from openrowset( 'SQLOLEDB ', 'SQLServerName'; 'sa'; 'xxx', Help.dbo.Help_Category )
 
 
--关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
 
 
但是,这样写着有点复杂,而且不便于维护,假如数据库密码改变了,就需要把一个一个把密码改正。
 
 
Oracle 里有 DB Link, 而且语法非常简洁。
 
 
查了一下帮助,SQLServer 里有 "链接服务器"  这个东东。要创建 链接服务器需要用到SQLServer 的一个系统存储过程:
 
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
     [ , 当广大Wordpresser欢欣鼓舞地升级到2.9,享受着在线图片编辑器、回收站等一系列新功能的时候,却发现Wordpress的生理周期突然失调了——以前她能够自动地定时为我们发布文章、清除缓存、备份数据库等等等等,而现在这一切都需要我们手工完成。经过在Wordpress官方论坛一番搜寻,发现原来这是Wordpress 2.9的大BUG——定时模块失效……  注明:目前2.9.1版本已经修复此问题

又,最近在国内互联网“扫黄打非”的狂风暴雨下,个人网站的站长们被弄得一个个诚惶诚恐,一觉醒来说不定域名就“被”停止解析,服务器就“被”关停!所以,及时备份网站的程序和数据对于当下的中国站长们极为重要,然而Wordpress 2.9偏偏又在这当口来一个定时模块失效,这的确是雪上加霜!

 

不过,如今最优秀的主机面板cPanel已经越来越普及了,如果您有幸用上了采用cPanel面板的主机,那么其中的Cron jobs模块就是雪中送炭了。您不但可以使用Cron jobs结合Linux bash shell脚本更加细致地控制各种自动定时作业——备份数据库、优化数据库和备份网站程序,还可以永久性地省掉几个Wordpress插件,提高Wordpress的运行速度。

定时自动备份MySQL数据库

 

如右图所示,首先请在您的cPanel面板中的Advanced部分找到Cron jobs。点击进入,您就会看到Cron jobs的操作页面,不过先别着急,我们要首先编写备份网站数据库的Linux bash shell脚本。

我们需要首先用mysqldump命令导出整个数据库至一个文本文件,然后用压缩工具将数据文件压缩打包,最后用mutt命令将数据库压缩包发送至您指定的电子邮件地址。

现在我们开始,请用远程登录软件(如SecureCRT、Putty)或者FTP软件(如FileZilla、FireFTP)连接到您的主机,并创建一个存储备份脚本和临时文件的文件夹,比如我在我的主机根目录建立了一个backup目录。根据cPanel主机的文件夹格式,该目录的绝对路径应为/home/cPanel登录名/backup。

下面以/home/xirangus/backup目录为例。请打开任意一个文本编辑软件,录入如下内容。[XXX]处请更换为您的真实数据(去掉[和])。

cd /home/xirangus/backup #切换到工作目录
stamp=$(date+%y%m%d) #获取当前日期
mysqldump -u[数据库用户名] -p[数据库密码] [数据库名] >  db_backup_$stamp.sql #导出数据库
bzip2 -z -9 -f db_backup_$stamp.sql #压缩数据库
mutt [电子邮件地址] -a db_backup_$stamp.sql.bz2 -s "Database Backup" #邮件发送
rm db_backup_$suffix.sql.bz2 #移除临时文件 


其中第4行采用了bzip2来压缩数据,如果您的主机不支持bzip2,请更换为使用tar或zip等命令来压缩数据,具体情况请咨询您的主机商。

脚本录入完毕后,请将其保存,比如我将其命名为dbbackup.sh。然后上传到刚刚建立的/home/xirangus/backup目录下,并更改该脚本文件的权限为755。

大功快要告成,现在请点击cPanel中的Cron jobs图标,选择Standard进入标准模式。将/home/xirangus/backup/dbbackup.sh填入Command to run中,并选择定时运行方式,如下图。

 

这里的时间是以服务器的时区为准,所以您需要自己换算一下。嘻来嚷往所在的Just Host的数据中心位于美国中部时区,比中国标准时间晚14个小时,所以按照上图设置,每天中国标准时间晚上8点,嘻来嚷往的数据库备份邮件就会自动被发送到我的邮箱里。

定时自动优化MySQL数据库

频繁地对数据库进行各种操作,会使数据库产生一些错误和冗余数据而导致性能下降,因此及时修复和优化数据库也是非常必要的。我们可以采用mysqlcheck命令对MySQL数据库进行修复和优化。脚本文件如下。

mysqlcheck -u[数据库用户名] -p[数据库密码] –auto-repair –database [数据库名] #检查并自动修复数据库
mysqlcheck -u[数据库用户名] -p[数据库密码] -o –database [数据库名] #优化数据库 


如何让Cron jobs自动运行脚本就不再赘述了。

定时自动备份网站程序

有了前面数据库的列子,备份程序文件就简单多了,稍稍修改一下脚本文件就行了。还是以Wordpress为例吧,一般我们修改得最多的就是主题文件,所以我们就让Cron jobs定时备份Wordpress的themes文件夹吧。直接给出脚本文件。

cd /home/xirangus/backup #切换工作目录
stamp=$(date+%y%m%d) #获取当前日期
tar -cvf theme_$stamp.tar /home/xirangus/public_html/wp-content/themes #打包主题目录
bzip2 -z -9 -f theme_$stamp.tar #压缩
mutt [电子邮件地址] -a theme_$stamp.tar.bz2 -s "Themes Backup" #邮件发送
rm theme_$stamp.tar.bz2 #移除临时文件 


虽然tar命令可以使用-j参数进行bzip2的打包+压缩,但是不能指定压缩级别,所以我还是采用了tar先打包,接着使用bzip2最高级别压缩的方式。

就介绍这么多吧,如果您熟悉Linux,那么您还可以尽情发挥,让Cron jobs完成更多的自动定时作业,使网站的运行更加高效和有保障。

[ @provider= ] 'provider_name' ]
     [ , [ @datasrc= ] 'data_source' ]
     [ , [ @location= ] 'location' ]
     [ , [ @provstr= ] 'provider_string' ]
     [ , [ @catalog= ] 'catalog' ]
 
 
exec sp_addlinkedserver @server= 'XLING' , @srvproduct = '', @provider = 'SQLNCLI' , @datasrc = 'SQLServerName2'
执行后,可以在 Sqlserver Management Studio 的对象资源管理器里的 服务器对象 -》 链接服务器 里看到看这个 XLING
然后就可以用:
SELECT * FROM XLING.PricemeHelp.dbo.Help_Category
 
这里的XLING就是指向数据库SQLServerName2的链接服务器,从上面的SELECT可以看出,写的依然复杂。
 
SQLServer 也有,而且语法差不多:
 
CREATE SYNONYM dbo.Help_Category_NZ FOR XLING.PricemeHelp.dbo.Help_Category
执行后,就可以用:
SELECT * FROM Help_Category_NZ
了!

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10923-1.html
网站维护教程更新时间:2012-03-21 03:12:15  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer