海运的博客

SQL2008定时备份数据库并上传到FTP

发布时间:April 27, 2012 // 分类:备份存储,Windows // No Comments

首先新建数据库维护计划,定时执行数据库备份,打开数据库管理器——>管理——>维护计划——右键新建维护计划向导——>计划更改——>选择执行时间。
SQL维护计划执行时间.png
选择维护任务:备份数据库
SQL2008备份数据库完整.png
选择要备份的数据库,可选数据库备份目录,备份报告。
SQL2008选择要备份的数据库.png
维护计划添加完成。
SQL2008新建维护计划完成.png
FTP上传脚本,由于windows下ftp命令不支持被动模式,此脚本使用curl命令上传到FTP

set sqlpath=d:\back #备份目录
set dbname=onovps #备份数据库名称,例onovps.bak
set ftphost=www.haiyun.me #FTP服务器地址
set ftpuser=ftp #FTP用户
set ftppasswd=passwd #FTP密码
path=%path%;C:\Program Files\WinRAR\;C:\Program Files\curl\ #设置环境变量
cd %sqlpath%
Rar.exe a  "%dbname%"-"%date:~0,10%".rar -df "%dbname%".bak
curl -u  %ftpuser%:%ftppasswd% -T %dbname%-"%date:~0,10%".rar ftp://%ftphost%

然后将此脚本添加到计划任务,定时每天执行。

更新:
经过调试发现问题有点多哦,首先维护计划未成功执行,错误日记:SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-KC19Q4LEIOD\Administrator' 的信息,错误代码 0x534。
解决:原来之前有更改过计算机名称,更改SQL管理器——>安全性——>登录名——>当前管理员账户前计算机名称。
其次维护计划执行后备份的数据库名称是随机的,不便于处理,使用sqlcmd命令备份数据库解决。

sqlcmd -U -P -Q "backup database onovps to disk="c:\back\onovps.bak"
-U:  #数据库用户 (可选)
-P   #数据库密码 (可选)
#如未指定-U -P以本地账户验证登录
#如果数据库以www.haiyun.me形式,须以[www.haiyun.me]方式备份,不然会提示语法错误

SQL2000/2008安全设置及更改服务运行账户非System

发布时间:April 24, 2012 // 分类:数据库 // No Comments

SQL如果在安装时未指定用户默认以system权限运行,这给服务器带来很大的安全隐患,可以更改运行账户为普通用户。
在CMD下新建运行SQL的用户,或在用户管理新建。

net user newuser password /add

SQL2000下,打开SQL企业管理器,选择local——右键——属性——安全性——启动服务用户
SQL2000更改服务运行用户.png
更改后确定重启SQL服务,要保证SQL安装目录、数据库目录新用户有读写权限,一般经过上述步骤后系统会自动更改相应权限。
SQL2008下,打开SQL server配置管理器,SQL server服务——SQL server——右键——属性。
SQL2008更改服务运行用户.png
SQL2000删除危险的扩展,包括xp_cmdshell。

use master
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_dropextendedproc 'Sp_OACreate'
EXEC sp_dropextendedproc 'Sp_OADestroy'
EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
EXEC sp_dropextendedproc 'Sp_OAGetProperty'
EXEC sp_dropextendedproc 'Sp_OAMethod'
EXEC sp_dropextendedproc 'Sp_OASetProperty'
EXEC sp_dropextendedproc 'Sp_OAStop'
EXEC sp_dropextendedproc 'Xp_regaddmultistring'
EXEC sp_dropextendedproc 'Xp_regdeletekey'
EXEC sp_dropextendedproc 'Xp_regdeletevalue'
EXEC sp_dropextendedproc 'Xp_regenumvalues'
EXEC sp_dropextendedproc 'Xp_regread'
EXEC sp_dropextendedproc 'Xp_regremovemultistring'
EXEC sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask 

网站数据库用户不要使用SA账号,新建特定账号拥有数据库public和db_owner权限。
sql数据库安全用户权限.png
更改TCP端口:
sql2000更改tcp端口.png

Mssql/SQL备份、恢复多个数据库

发布时间:April 20, 2012 // 分类:数据库 // No Comments

如果有多个数据库同时备份在Mysql下可在shell下备份,SQL可在数据库查询分析器下执行多个backup database语句备份,用restore database语句恢复数据库。
首先打开SQL查询分析器,备份命令如下:

backup database dbname
to disk= 'c:\back\back.bak'

恢复命令如下:

restore database dbname
from disk= 'c:\back\back.bak'

如果要保留用户及对应数据库信息需备份master数据库。
2012-04-20_122835.png

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...