分类目录归档:数据库

Oracle & MySQL & MSSQLServer

linux下使用crontab定时备份MYSQL数据库的方法

原文地址:http://my.oschina.net/u/919074/blog/223920

只需按照下面3步做,一切都在你的掌控之下:

第一步:在服务器上配置备份目录代码:

——————————————————————————–

mkdir /var/lib/mysqlbackup

cd /var/lib/mysqlbackup

——————————————————————————–

第二步:编写备份脚本代码:

——————————————————————————–

vi dbbackup.sh

——————————————————————————–

粘帖以下代码,务必更改其中的username,password和dbname。

代码:

——————————————————————————–

#!/bin/sh

mysqldump -uuser -ppassword dbname | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz

cd  /var/lib/mysqlbackup

rm -rf `find . -name ‘*.sql.gz’ -mtime 10`  #删除10天前的备份文件

——————————————————————————–

第三步:更改备份脚本权限

代码:

——————————————————————————–

chmod +x dbbackup.sh

——————————————————————————–

第四步:用crontab定时执行备份脚本代码:

——————————————————————————–

crontab -e

——————————————————————————–

若每天晚上21点00备份,添加如下代码,

代码:

——————————————————————————–

00 21 * * * /var/lib/mysqlbackup/dbbackup.sh

注:

1、任务调度设置文件的写法
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek   command
分钟     小时   天     月       天每星期       命令
每个字段代表的含义如下:
Minute             每个小时的第几分钟执行该任务
Hour               每天的第几个小时执行该任务
Day                 每月的第几天执行该任务
Month             每年的第几个月执行该任务
DayOfWeek     每周的第几天执行该任务
Command       指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选

字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
举例如下:
5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令
30     5       *           *     *     ls             指定每天的 5:30 执行ls命令
30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令
30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,

以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3     10,20     *     *     ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25     8-11 *           *     *     ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15   *       *           *     *     ls         每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30   6     */10         *     *     ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

2、新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

安装SQL Server2008时报错:已安装 SQL Server 2005 Express 工具。

安装SQL Server 2008时,提示错误:

Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具。 失败,已安装 SQL Server 2005 Express 工具。若要继续,请删除 SQL Server 2005 Express 工具。

sql server 2005 management和sql server 2008 management不是兼容吗?为什么会有这样的提示?

答案是SQL Server 2005 Express 工具不是sql server 2005 management,不用卸载sql server 2005 management,用一个小技巧就行:修改注册表!

打开注册表编辑器,找到HKEYLocalMachine/Software/Microsoft/Microsoft SQL Server/90/Tools/ShellSEM。

网上有的讲把这个文件夹删了,我怕删了sql server 2005 management不能用了,重命名一下,把ShellSEM改成ShellSEM1试试,结果继续安装sql server 2008 management的时候显示安装成功!打开也没问题。

只是因为前面修改了注册表,导致sql server 2005 management启动不了,双击打开界面闪一下就没有了。

接着再打开注册表把ShellSEM1改回ShellSEM,就可以打开sql server 2005 management,OK。搞定sql server 2008 management、 sql server 2005 management同时安装的问题!

数据库的版本为661,无法打开。此服务器支持662版及更低版本。不支持降级路径。

很多人会问:服务器版本比数据库版本还高,按说是可以向下兼容的,为什么会报错呢?

是这样的,662是SQL Server 2008 SP2以后的数据库版本号,SP2之前的SQL Server 2008
的数据库版本是655,而661是SQL Server 2008 R2的数据库版本号,本身SQL Server 2008 R2的版本要比SQL Server 2008 要高,按常理661版的数据库文件是不能附加到支持655版本号的SQL Server 2008里的。至于出现这个蛋疼的提示是因为微软在SQL Server 2008 SP2里加入了15k分区数的功能,而发布SP2之前就已经发布了SQL Server 2008 R2了,由于SQL Server 2008 R2 RTM并不支持15k分区的功能,如果按常规SQL Server 2008还保持655的版本号的话就可能会出现附加15k分区的数据文件到SQL Server
2008 R2 RTM中,这肯定是不能附加的,所以微软为了解决这个难题,就打破常规,SQL Server 2008 SP2里将数据库的版本号改为662,这样,由SQL Server 2008 R2 RTM的数据库版本号比SQL Server 2008 SP2的低,所以自然就不能附加了,避免了麻烦,不过为了一15k分区的功能改变了版本号带来的副作用就像楼主这种情况了。
这是问题的根本缘由。也就是说,661的数据库版本比662高。

解决办法:

第一种:

升级到 SQL Server 2008 R2。注意,下载的时候看清是R2。

第二种:

将数据库附加到SQL Server 2008 R2版的数据库实例里,生成SQL Server 2008版的脚本文件,使用脚本文件部署到SQL Server 2008里。

修改oracle10g express版本数据库字符集

Oracle 10g EXPress Edition是Oracle专门为小型用户提供的免费版本。Oracle XE十分小巧,安装简单,可供第三方软件开发商部署较小的应用。

不过Oracle XE目前的beta2缺省安装的字符集是WE8MSWIN1252,不是中文字符集,并且不能通过直接运行 alter database character set ZHS16GBK ; 来修改,因为ZHS16GBK不是缺省字符集的超集。过去流传很广的直接修改sys用户下的PROPS$表的方法,也会给字符集的变更留下很多潜在的问题.

不过在安装完Oracle XE后,可以在sqlplus(即Oracle XE的run SQL command line)中, 进行如下的操作来修改字符集:

connect sys/sys as sysdba

shutdown immediate

startup mount

alter system enable restricted session ;

alter system set JOB_QUEUE_PROCESSES=0;

alter system set AQ_TM_PROCESSES=0;

alter database open ;

alter database character set internal_use ZHS16GBK ;

shutdown immediate

startup

这样字符集的修改就完成了