当前位置:首页 » 编程语言 » sql维护技巧
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql维护技巧

发布时间: 2023-07-01 18:23:51

sql server 2008数据库维护有哪些

一:目标任务: 使用SQL Server 2008自带的维护计划自动备份数据库,并且自动删除超过设定期限的历史备份文件:
1. 每天0点自动备份指定数据库 testDB,备份文件放在E:\autoBack文件夹下
2. 备份文件保留1周,每天备份完数据库后自动删除超过1周的备份文件

二:前提条件
1. 已经安装SQL Server Integration Services 服务
2. 已经安装SQL Server 代理 (MSSQLSERVER) 服务

如果未安装SQL Server Integration Services 服务,依然可以创建维护计划,但是不会生效

三: 创建维护计划(使用维护计划向导)
1. 选择对象资源管理器下的“管理”,点击右键,选择“维护计划向导”
2. 选择“下一步”进入“选择计划属性”界面, 我们这里修改计划名称为 testMaintenancePlan
因为我们现在有两个任务,一个是备份数据库testDB,一个是删除历史备份文件。所以选择“整个计划统筹安排或无计划”
3. 点击“更改”按钮,进入时间计划设置界面
我们这里需要每天重复执行,频率是每天0点钟执行,从当天开始执行
4. 点击“确定”后,返回计划属性界面
5. 选择“下一步”,进入选择维护任务界面
我们这里有两个任务,备份数据库和删除超期的历史备份文件,所以勾选“备份数据库(完整)”和“‘清除维护’任务”两个任务
6. 选择“下一步”, 进入设置维护任务顺序的界面
这里的顺序是先备份数据库, 再执行“清除维护”任务,删除历史备份
7. 选择“下一步”,进入备份数据库任务的设置界面
选择指定的特定数据库testDB:
指定备份文件存放的目录为E:\autoBack
备份文件扩展名为bak(默认),bak字母前面不要加点( . )
8. 选择“下一步”进入“定义清除维护任务”界面
我们需要删除文件夹(E:\autoBack)下面的以bak为扩展名的数据库备份文件,文件保留时间为1周, 这里需要注意的是,
文件扩展名填“bak”而不要填“.bak”,扩展名前不要加点,否则不会删除
9. 选择“下一步”设置报告文件路径
10. 选择“下一步”完成
11. 刷新“管理” 下的“维护计划”文件夹, 可以看到创建的维护计划
12. 双击新建的维护计划或点击右键选择“修改”,可以看到维护计划的内容,并修改,修改后点击保存即可
13. 最后重启SQL Server 代理 服务即可

⑵ 数据库要怎么维护

数据库日常维护(参考)

数据库日常维护工作是系统管理员的重要职责。其内容主要包括以下几个部分:
一、备份系统数据
SYBASE 系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server 提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过 DUMP 和 LOAD 命令来执行人工备份和恢复工作。因此定期备份事务日志和数据库是一项十分重要的日常维护工作。

1、备份数据库

每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。比如每周五卸出数据库。对一般数据库系统卸出数据库周期建议为每周一次。
除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。例如:
·每次强制地运行了 DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
·每次用 sp_dboption 允许 select into/bulk 做快速拷贝,或用 SELECT INTO 命令创建一个永久性的表,或使用了 WRITETEXT 命令。
卸出数据库的命令为:

DUMP DATABASE database_name
TO mp_device

database_name 是要卸出的数据库名称,mp_device 是卸出设备的名称。用系统过程 sp_helpdevice 可以获得设备的信息。
下面一条命令用来卸出数据库 my_db :

DUMP DATABASE my_db
TO db_bk_dev

2、备份事务日志

如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。master 数据库和小于 4M 的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用 DUMP TRAN 命令单独备份日志。
备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。
备份事务日志的命令格式为:

DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]

其中 database_name 是要备份事务的数据库名称,mp_device 是备份设备名称,仅当包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句时,才可以备份到设备。
注意:如果总是用 DUMP DATEBASE (备份数据库及其日志),而不用 DUMP TRAN ,事务日志将不会刷新,而变得非常庞大。
对于 master 数据库和小型数据库每次运行 DUMP DATEBASE 之后应当运行 DUMP TRANsaction 命令刷新日志 。
下面一条命令备份数据库 db160 的事务日志到备份设备上:

DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY

3、备份数据库及其日志间的相互作用

在至少卸出一次数据库前,卸出事务日志是毫无意义的。下图显示了备份数据库及其日志间的关系

如果在星期二下午5:01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:数据恢复),由于磁带5是下午5:00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。
但是,如果在星期二下午4:49失效会怎么样呢?在这种情况下,要装入磁带1(在星期五下午5:00的卸出)。然后,依次装入磁带2,3以及4。这样,系统将恢复到星期二上午10:00点的状态,星期二的大部分工作丢失了。此例显示了经常卸出事务的重要性。

二、万一系统失败时恢复数据库系统

如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着 WITH NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出它。
要恢复数据库按如下步骤去做:
1、如果日志存在于一个分离的设备上,用带着 NO_TRUNCATE 选项的 DUMP TRANsaction 命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2、用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库 mydb 设备使用和尺寸情况:

SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = “mydb”)

3、检查查询的输出。在 segmap 列的 ‘3’代表数据分配,‘4’代表日志分配。size 列代表 2K 数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:

segmapSize
--------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M

4、用 DROP DATABASE 命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR 命令的 DROPDB 选项。
5、删除数据库后,用 sp_dropdevice 删除毁坏了的设备。
6、用 DISK INIT 初始化新的数据库设备。
7、重建数据库。用 CREATE DATABASE 命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:

CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10

8、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:

ALTER DATABASE mydb ON datadev1=2[page]

9、用 LOAD DATABASE 重新装入数据库,然后用 LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:

LOAD DATABASE database_name
FROM mp_device

LOAD TRANsaction 命令的语法是:

LOAD TRANsaction database_name
FROM mp_device

卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。

二、产生用户信息表,并为信息表授权;
系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。创建表以及为表授权的方法已经在讲过,在此只将有关命令语法写出来。
·创建表的命令为:

CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……

go

ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go

·删除表的命令格式为:

DROP TABLE table_name
go

·为表授权的命令格式为:

GRANT
ON table_name TO user_name
go

·收回权限的命令格式为

REVOKE
ON table_name FROM user_name
go

三、监视系统运行状况,及时处理系统错误;
系统管理员的另一项日常工作是监视系统运行情况。主要有以下几个方面:
1、监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。

---------------------------------------------------------------

2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER

SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。
如果监视时发现进程总数接近最大连接数(用系统过程:sp_configure “user conn” 查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
2、监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:

NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail

日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
3、监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:

Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)

上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息

四、保证系统数据安全,周期更改用户口令;
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程sp_password 来实现的。Sp_password 的语法为:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。

在网络搜索:数据库日常维护(参考)

相 关 文 章
Sybase存储过程的建立和使用

SYBASE dbcc

电信企业参与竞争的利器-数据仓库和数据挖掘

SCOUNIX下磁带机的安装与备份

StoredProcere(存储过程)编写经验和优化措施

细说SYBASE数据库日志

常见数据库系统之比较 - SYBASE 和 SQL SERVER

SYBASE ASE FOR LINUX安装及perl连接SYBASE

Sybase数据库应用(一)

安装Sybase ASE

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

⑶ SQL 数据库索引如何维护

第一步:查看是否需要维护,查看扫描密度/Scan Density是否为100%
declare @table_id int
set @table_id=object_id('表名')
dbcc showcontig(@table_id)

第二步:重构表索引
dbcc dbreindex('表名',pk_索引名,100)
重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引
dbcc dbreindex('表名','',100)

⑷ 如何维护SQL Server 2005 CE数据库(非编程)

维护数据库时涉及对数据库进行收缩、压缩和修复操作通过使用
SQL
Server
Management
Studio
同对框内执行所有些任务
Management
Studio
打开对象资源管理器
In对象资源管理器单击连接选择SQL
Server
Compact
Edition
连接服务器对框选择要收缩
SQL
Server
2005
Compact
Edition
(SQL
Server
Compact
Edition)
数据库单击连接
对象资源管理器右键单击所添加
SQL
Server
Compact
Edition
数据库选择属性
数据库属性对框打开从左侧窗格选择收缩和修复
单击通过删除空闲页收缩数据库单击确定
Management
Studio
打开对象资源管理器
对象资源管理器单击连接选择SQL
Server
Compact
Edition
连接服务器对框选择要压缩
SQL
Server
Compact
Edition
数据库单击连接
对象资源管理器右键单击所添加
SQL
Server
Compact
Edition
数据库选择属性
数据库属性对框打开选择执行完全数据库压缩
文件选项下您选择压缩之替换现有数据库或使用新文件名创建新数据库通过选择覆盖现有数据库文件复选框您修改现有数据库名称与位置进行替换
Management
Studio
打开对象资源管理器
对象资源管理器单击连接选择SQL
Server
Compact
Edition
连接服务器对框选择要修复
SQL
Server
Compact
Edition
数据库单击连接
对象资源管理器右键单击所添加
SQL
Server
Compact
Edition
数据库选择属性
数据库属性对框打开选择修复物理损坏数据库
选恢复已损坏行复选框恢复已损坏行
文件选项下您选择修复之替换现有数据库或使用新文件名创建新数据库通过选择覆盖现有数据库文件复选框您修改现有数据库名称与位置进行替换

⑸ 怎么维护数据库 防止核心存储过程被篡改

解决方法:可以在表中加一个MD5的字段,这个字段的值是表中几个主要字段+随机数组合起来通过MD5加密的方式加密后的字符串,获取数据时校验MD5的值是否一致,如果不一致则表示数据被非法篡改了,反之则数据正常。同时修改数据的时候需要更新MD5的值。