SQL Server实战一:创建、分离、附加、删除、备份数据库

sql,server · 浏览次数 : 7

小编点评

**文件分组测试结果** | 数据库名称 | 文件组 | 文件大小 | 最大文件大小 | 文件增长 | |---|---|---|---|---| | testbase2_group1 | testbase2_group1_sub1 | 5 MB | 50 MB | 5 MB | | testbase2_group1 | testbase2_group1_sub2 | 5 MB | 50 MB | 5 MB | | testbase2_group2 | testbase2_group2_sub1 | 5 MB | 50 MB | 15 MB | | testbase2_group2 | testbase2_group2_sub2 | 5 MB | 50 MB | 15 MB | **数据库属性结果** | 属性 | 值 | |---|---| | 文件 | G:\sql\chutianjia sql\testbase2_group1_sub1.dat.ndf | | 文件大小 | 5,000,000 | | 最大文件大小 | 50,000,000 | | 文件增长 | 5,000,000 | | 连接状态 | 激活 | | 文件系统 | NDF |

正文

  本文介绍基于Microsoft SQL Server软件,实现数据库创建、分离、附加、删除备份的方法。

  空间数据库同样是GIS行业中至关重要的一部分。因此,本系列博客就将基于Microsoft SQL Server软件,对数据库基础知识与实际操作、代码含义等加以细致梳理与介绍。

  系列文章中示例数据来源于《SQL Server实验指导(2005版)》一书。依据本系列文章的思想与对操作步骤、代码的详细解释,大家用自己手头的数据,可以将相关操作与分析过程加以完整重现。

1 交互式创建数据库

(1) 启动Microsoft SQL Server 2008 R2软件;

(2) 在 “对象资源管理器”中,右键“数据库”按钮,选择“新建数据库”选项,即可弹出“新建数据库”窗口,如下图;

image

(3) 在所弹出的“新建数据库”窗口中“数据库名”一栏内输入“jxsk”;在“数据库文件”列表中,选择数据库数据文件的存储“路径”右侧的省略号按钮,并将路径设置为“G:\sql\chutianjia sql”;选择数据库日志文件的存储“路径”右侧的省略号按钮,将路径设置为“G:\sql\chutianjia sql”,同时可在此处查看其他相关数据的设置;点击“确定”按钮,数据库创建完成。在“对象资源管理器”一栏处刷新后可以看到所建立的数据库已存在;

(4) 在“对象资源管理器”中,右键选择jxsk,选择“属性”项目,打开“数据库属性”窗口,在左侧 “选择页”中,选择“文件”一栏,即可查看数据库文件属性,如下图;

(5) 单击选择数据文件行中“自动增长”单元格右侧的省略号按钮,即可弹出更改自动增长设置对话框;在“文件增长”项目中,选择“按MB(M)”勾选框,并在其右侧文本框中输入4;在“最大文件大小”一栏中,选择“限制文件增长(MB)”勾选框,并在其右侧文本框中输入100;单击“确定”,即可实现对数据库属性的更改。

2 Transact-SQL指定参数创建数据库

(1) 创建数据库“testbase”

i. 单击屏幕上方工具栏中的“新建查询”按钮,打开“查询编辑器”窗口,并在查询编辑器窗口中输入以下T-SQL语句,如下图:

CREATE DATABASE testbase1
ON
(NAME=testbase1_data,
FILENAME='G:\sql\chutianjia sql\testbase_data.mdf')
LOG ON
(NAME=taetbase1_log,
FILENAME='G:\sql\chutianjia sql\testbase_data.ldf')
GO

ii. 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;若语句存在问题,将会在下方的提示窗口中显示问题所在;

iii. 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的testbase1数据库;

iv. 在“对象资源管理器”中,右击数据库testbase1,选择快捷菜单中的“属性”选项,打开数据库testbase1属性对话框窗口,即可分别查看“常规”“文件”“文件组”等属性页内容,结果分别如以下三图所示;

(2) 指定多个参数创建数据库“testbase2”

i. 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:

CREATE DATABASE testbase2
ON
PRIMARY
(NAME=testbase2_prim_sub_dat1,
FILENAME='G:\sql\chutianjia sql\testbase2_prim_sub_dat.mdf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=20%),
(NAME=testbase2_prim_sub_dat2,
FILENAME='G:\sql\chutianjia sql\testbase2_prim_sub_dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=20%),
FILEGROUP testbase2_group1
(NAME=testbase2_group1_sub1,
FILENAME='G:\sql\chutianjia sql\testbase2_group1_sub1.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=5MB),
(NAME=testbase2_group1_sub2,
FILENAME='G:\sql\chutianjia sql\testbase2_group1_sub2.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=5MB),
FILEGROUP testbase2_group2
(NAME=testbase2_group2_sub1,
FILENAME='G:\sql\chutianjia sql\testbase2_group2_sub1.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=15%),
(NAME=testbase2_group2_sub2,
FILENAME='G:\sql\chutianjia sql\testbase2_group2_sub2.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=15%)
LOG ON
(NAME=testbase2_testbase2_log,
FILENAME='G:\sql\chutianjia sql\testbase2_log_file.idf',
SIZE=20MB,
MAXSIZE=500MB,
FILEGROWTH=10MB)
GO

ii. 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;若语句存在问题,将会在下方的提示窗口中显示问题所在;

iii. 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的testbase2数据库,如下图;

iv. 在“对象资源管理器”窗格中,右击数据库testbase2,选择快捷菜单中的“属性”选项,打开数据库testbase1属性对话框窗口,即可分别查看“常规”“文件”“文件组”等属性页内容,结果分别如以下三图所示;

3 交互式分离数据库testbase1

(1) 在“对象资源管理器”中,右击数据库testbase1,选择快捷菜单中的“属性”选项,打开数据库testbase1属性对话框窗口,在“选择页”一栏中,选择“文件”按钮,即可查询对应数据库文件名和物理文件路径名;

(2) 在“对象资源管理器”中,右击数据库testbase1,在弹出的窗口中选择“任务”→分离”;

(3) 在弹出的窗口中,若“状态”选项为“就绪”字样,则表明该数据库testbasel目前正处于非活动连接状态;此时选择“确定”按钮即可完成数据库的分离操作;而如果上述“状态”一栏为“非就绪”字样,表明该数据库目前正处于活动连接状态,即正在被使用中,则需选中“删除连接”字样处的复选框,再单击“确定”按钮即可完成分离,如下图;

(4) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在通过上述方法新建立的testbase1数据库,如下图。

4 使用系统存储过程分离数据库testbase2

(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:

EXEC sp_detach_db testbase2,true

(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;

(3) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在通过上述方法新建立的testbase2数据库,如下图。

5 数据库文件备份:分离数据库再复制其物理文件

(1) 在“对象资源管理器”中,右击数据库testbase1,选择快捷菜单中的“属性”选项,打开数据库testbase1属性对话框窗口,在“选择页”一栏中,选择“文件”按钮,即可查询对应数据库文件名和物理文件路径名;

(2) 在“对象资源管理器”中,右击数据库testbase1,在弹出的窗口中选择“任务”→分离”;

(3) 在资源管理器中,打开文件夹“G:\sql\chutianjia sql”,将数据库文件testbase_data.mdf、testbase_data.ldf复制到可移动磁盘“G:\sql”文件目录下,如下图;

6 数据库文件备份:停止SQL Server 2008服务再复制数据库物理文件

(1) 选择“开始”→“Microsoft SQL Server 2008 R2”→“SQL Server 配置管理器”→“SQL Server服务”,右击选择“SQL Server(MSSQLSERVER)”,选择“停止”,如以下两图;

(2) 打开“对象资源管理器”窗格,发现(local)左侧的数据库标记增加了一个红色的点状符号,说明服务已停止;

(3) 在资源管理器中,打开文件夹“G:\sql\chutianjia sql”,将数据库文件testbase_data.mdf、testbase_data.ldf复制到可移动磁盘“G:\sql”文件目录下,如下图。

7 交互式附加数据库

(1) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“附加”选项;

(2) 选择需要加以附加的数据库物理文件,选择定位文件夹“G:\sql\chutianjia sql”并选择对应数据库的物理文件并选择“确定”按钮,再次选择“确定”即可;

(3) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的testbase2数据库,如下图。

8 使用系统存储过程附加数据库

(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:

EXEC sp_attach_single_file_db @dbname='testbase1',
@physname='G:\sql\chutianjia sql\testbase_data.mdf'

(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;

(3) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已存在通过上述方法新建立的数据库。

9 交互式删除数据库

(1) 在“对象资源管理器”中,右击数据库testbase1,选择快捷菜单中的“删除”选项,如下图;

(2) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在testbase1数据库。

10 Transact-SQL删除数据库

(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:

drop database testbase2

(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;

(3) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“刷新”选项,可见其所示内容中已不存在testbase2数据库,如下图;

至此,大功告成。

与SQL Server实战一:创建、分离、附加、删除、备份数据库相似的内容:

SQL Server实战一:创建、分离、附加、删除、备份数据库

本文介绍基于Microsoft SQL Server软件,实现数据库创建、分离、附加、删除与备份的方法。 目录1 交互式创建数据库2 Transact-SQL指定参数创建数据库3 交互式分离数据库testbase14 使用系统存储过程分离数据库testbase25 数据库文件备份:分离数据库再复制其

SQL Server实战五:存储过程与触发器

本文介绍基于Microsoft SQL Server软件,实现数据库存储过程与触发器的创建、执行、修改与删除等操作。 目录1 交互式创建并执行——存储过程一2 交互式创建并执行——存储过程二3 用T-SQL创建——存储过程一4 用T-SQL创建——存储过程二5 交互式修改存储过程6 用T-SQL修改

SQLSERVER 的主键索引真的是物理有序吗?

一:背景 1. 讲故事 最近在看 SQL SERVER 2008 查询性能优化,书中说当一个表创建了聚集索引,那么表中的行会按照主键索引的顺序物理排列,这里有一个关键词叫:物理排列,如果不了解底层原理,真的会被忽悠过去,其实仔细想一想不可能实现严格的 物理排列 ,那对性能是非常大的损害,本篇我们就从

SQL Server实战二:创建、修改、复制、删除数据库表并加以数据处理

本文介绍基于Microsoft SQL Server软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。 目录1 交互式创建数据库表T2 交互式创建数据库表S3 T-SQL创建数据库表C4 T-SQL创建数据库表SC5 T-SQL创建数据库表TC6 交互式向数据库表S中添加新列NATIVE

SQL Server实战七:自定义数据类型、标量值、内嵌表值、多语句表值函数的操作

本文介绍基于Microsoft SQL Server软件,实现数据库用户自定义数据类型的创建、使用与删除,以及标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除方法~

SQL Server实战三:数据库表完整性约束及索引、视图的创建、编辑与删除

本文介绍基于Microsoft SQL Server软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法~

SQL Server实战六:T-SQL、游标、存储过程的操作

本文介绍基于Microsoft SQL Server软件,实现数据库T-SQL语言程序设计,以及游标的定义、使用与存储过程的创建、信息查找的方法~

构建高可用性的 SQL Server:Docker 容器下的主从同步实现

摘要:本文将介绍如何在 Docker 环境下搭建 MS SQL Server 的主从同步,帮助读者了解主从同步的原理和实现方式,进而提高数据的可靠性和稳定性。 一、前言 在当今信息化的时代,数据的安全性和稳定性显得尤为重要。数据库是许多企业和组织存储和管理数据的核心,因此如何保证数据库的高可用性和数

[转帖]【最佳实践】prometheus 监控 sql server (使用sql_exporter)

https://www.cnblogs.com/gered/p/13535212.html 目录 【0】核心参考 【简述】 【1】安装配置 sql_exporter 【1.1】下载解压 sql_exporter 【1.2】修改配置文件 【1.3】自带的sql server监控采集器 【2】整合 pr

Python史上最全种类数据库操作方法,你能想到的数据库类型都在里面!甚至还有云数据库!

本文将详细探讨如何在Python中连接全种类数据库以及实现相应的CRUD(创建,读取,更新,删除)操作。我们将逐一解析连接MySQL,SQL Server,Oracle,PostgreSQL,MongoDB,SQLite,DB2,Redis,Cassandra,Microsoft Access,El