DB1:数据库的创建和文件的修改

在SQL Server中,使用Create Database创建数据库,使用Alter Database命令,能够修改数据库的数据文件和日志文件。

一,创建数据库

1,在创建数据库时,最佳实践是:

  • 创建一个或多个文件组,并设置默认文件组
  • 每个文件组中的数据文件和CPU的内核数据相同,将文件均匀分布在不同的物理硬盘上,使IO均匀分布在不同的物理磁盘上;
  • 数据文件的初始大小,文件增长和最大大小保持一致,这样,能够使每个文件的IO次数相对均匀;
  • 日志文件分配在性能最好的物理硬盘上,写日志的性能直接影响数据修改的性能;
  • 在创建文件时,为每个文件分配足够大的初始空间,避免数据文件size的增长

创建数据库的示例:

create database newdb
on primary
(name=‘newdb‘,  filename=‘D:\MSSQLServer\newdb.mdf‘,  size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_1‘,filename=‘D:\MSSQLServer\newdb_1.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_2‘,filename=‘D:\MSSQLServer\newdb_2.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_3‘,filename=‘D:\MSSQLServer\newdb_3.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB),
(name=‘newdb_4‘,filename=‘D:\MSSQLServer\newdb_4.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
log on
(name=‘newdb_log‘,filename=‘D:\MSSQLServer\newdb_log.ldf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
go

参数name指定逻辑文件名(logical_file_name),参数FileName指定物理文件名,SQL Server通过逻辑文件名引用数据文件或日志文件。

2,查看当前数据库的文件

use newdb
go

select df.file_id,
    df.type,
    df.type_desc,
    df.name,
    df.physical_name,
    df.state,
    df.state_desc,
    df.size*8/1024/1024 as size_gb,
    df.max_size*8/1024/1024 as max_size_gb,
    df.growth,
    df.is_percent_growth,
    fg.name as filegroup_name,
    fg.is_default
from sys.database_files df
inner join sys.filegroups fg
    on df.data_space_id=fg.data_space_id

3,查看所有数据库的文件

select
    DB_NAME(mf.database_id) as dbname,
    mf.file_id,
    mf.type as file_type,
    mf.type_desc,
    mf.data_space_id as file_group,
    mf.name as logical_file_name,
    mf.physical_name,
    mf.state_desc,
    mf.size*8/1024/1024 as size_gb,
    mf.max_size*8/1024/1024 as max_size_gb,
    mf.growth,
    mf.is_percent_growth
from sys.master_files mf
--where database_id=db_id(‘newdb‘)

二,增加数据/日志文件

1,增加文件组(File Group)

use master
go
alter database newdb
add filegroup fg_newdb1;

2,向fg_newdb1文件组(File Group)中增加数据文件

alter database newdb
add file
(name=fg_newdb1_1,filename =‘d:\MSSQLServer\fg_newdb1_1.ndf‘,size=1GB,maxsize=10GB,filegrowth=1GB)
to filegroup fg_newdb1;

3,增加日志文件

alter database newdb
add log file
(name=newdb_log_1,filename =‘d:\MSSQLServer\newdb_log_1.ldf‘,size=1GB,maxsize=10GB,filegrowth=1GB);

三,修改数据库文件

1,修改数据文件的逻辑文件名(Logical file name)

MODIFY FILE ( NAME = ‘logical_file_name’, NEWNAME = ‘new_logical_name’ ) 

示例,将数据文件fg_newdb1_1 的逻辑文件名修改 fg_newdb1_file1

alter database newdb
modify file
(NAME =‘fg_newdb1_1‘,newname=‘fg_newdb1_file1‘)

2,修改数据文件的物理文件名

MODIFY FILE ( NAME = logical_file_name, FILENAME = ‘ new_path/os_file_name ‘ )

修改数据文件的物理文件名,能够将数据文件移动到不同的位置上,分四步实现:

step1,在数据库中注册数据文件的新的物理文件名

alter database newdb
modify file
(name=‘fg_newdb1_file1‘,filename=‘F:\MSSQLServer\fg_newdb1_file1.ndf‘);

语句执行成功之后,数据库会显示:物理文件名已经在系统目录中修改

The file "fg_newdb1_file1" has been modified in the system catalog. The new path will be used the next time the database is started.

step2,使数据库离线

use master
go
alter database newdb
set offline
with rollback immediate;

在将数据库离线(脱机,take offline)时,如果数据中有Sleeping Session存在,或者有query正在执行,那么Take Offline操作会一直等待下去,直到没有任何query运行,使用 ROLLBACK IMMEDIATE  选项,能够立即回滚数据库中正在执行的所有事务,使Take Offline 操作迅速完成。

step3,将数据文件移动到新的位置上

以管理员权限运行move命令将文件移动到新的位置上,并重命名为新的物理文件名

move D:\MSSQLServer\fg_newdb1_1.ndf F:\MSSQLServer\fg_newdb1_file1.ndf

step4,使数据库联机

use master
go
alter database newdb
set online

四,从数据库中移除数据文件

在SQL Server中,不管是日志文件,还是数据文件,在删除之前,必须清空,只有空的文件才能从数据库中删除。

1,从数据库中删除数据文件

step1,清空数据文件

USE [db_study]
GO
DBCC SHRINKFILE (N‘db_study_file1‘ , EMPTYFILE)
GO

Step2, 从数据库中删除数据文件

USE master;
GO
ALTER DATABASE db_study
REMOVE FILE db_study_file1;
GO

2,从数据库中删除日志文件

step1,清空日志文件

USE [db_study]
GO
DBCC SHRINKFILE (N‘db_study_log1‘ , EMPTYFILE)
GO

step2,从数据库中删除日志文件

USE master;
GO
ALTER DATABASE db_study
REMOVE FILE db_study_log1;
GO

3,从数据库中删除文件组

USE master;
GO
ALTER DATABASE db_study
REMOVE FILEGROUP fg_study1;
GO
时间: 2024-07-30 22:13:06

DB1:数据库的创建和文件的修改的相关文章

数据库的创建和文件的修改

在SQL Server中,使用Create Database创建数据库,使用Alter Database命令,能够修改数据库的数据文件和日志文件. 一,创建数据库 1,在创建数据库时,最佳实践是: 创建一个或多个文件组,并设置默认文件组 每个文件组中的数据文件和CPU的内核数据相同,将文件均匀分布在不同的物理硬盘上,使IO均匀分布在不同的物理磁盘上: 数据文件的初始大小,文件增长和最大大小保持一致,这样,能够使每个文件的IO次数相对均匀: 日志文件分配在性能最好的物理硬盘上,写日志的性能直接影响

数据库之创建、增加、修改、删除、约束及三大范式

一. 1.创建数据库 create database MyDB on primary ( Name=MyDB, FileName="D:\MyDB.MDF" ), --创建主数据文件叫MyDB,放在D盘中. ( Name=MyDB1, FileName="E:\MyDB1.NDF" ), --创建次数据文件叫MyDB1,放在E盘中. log on ( Name="MyDB_Log", FileName="E:\MyDB.Log"

sql 数据库中用创建好的视图修改表数据

只要满足下列条件,即可通过视图修改基础基表的数据: 1.任何修改(包括 UPDATE.INSERT 和 DELETE 语句)都只能引用一个基表的列. 2.视图中被修改的列必须直接引用表列中的基础数据.不能通过任何其他方式对这些列进行派生,如通过以下方式: 1)聚合函数:AVG.COUNT.SUM.MIN.MAX.GROUPING.STDEV.STDEVP.VAR 和 VARP.2)计算.不能从使用其他列的表达式中计算该列.使用集合运算符 UNION.UNION ALL.CROSSJOIN.EXC

oracle(创建数据文件)

--创建数据文件 create tablespace--创建表空间同时创建数据文件 create temporary tablespace --创建临时表空间的同时创建临时数据文件 alter tablespace...add datafile --向表空间添加数据文件 alter tablespace...add tempfile--向临时表空间添加数据文件 create database --创建数据库时创建数据文件 alter database...create datefile--数据氈

windows命令行窗口打开mysql,并创建数据库,导入sql文件

mysql的命令以分号结尾. 1.打开一个命令行窗口,在命令行窗口中切换到mysql的安装路径下到bin文件夹(我没有配置mysql的环境变量,所以需要切换到安装路径,如果已经配置环境变量不需要切换) cd C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin 回车输入下边的命令 mysql -h localhost -u root -p  或 mysql -u root -p 回车提示输入密码,成功后连接mysql数据库 2.创建数据库 //创建数

SQL Server 2008 R2 附加数据库 “尝试打开或创建物理文件 拒绝访问”的解决办法

其实是来自一篇SQL Server 2005同样错误的帖子,不过试了在SQL Server 2008 R2下面也有效,记录一下. 解决方法: 在所有程序—Microsoft SQL Server 2008 R2—配置工具—SQL Server 配置管理器,点击"SQL Server 服务",右边会显示正在运行的服务,以及对应的用户,右击SQL Server (MSSQLSERVER),选择“属性”,把内置帐户选择为"Local System",点击重新启动就OK了.

Git使用(二)版本库创建及文件修改

一.创建版本库 1.安装完成后,在开始菜单里找到"Git"->"Git Bash",蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]" 因为Git是分布式版本控制系统,所以,每个机

每个用户创建的文件各个用户之间可以互相修改、查看但只有root及其属主可删除

知识储备: 特殊权限: SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:(常用于普通用户有管理员权限执行某些命令,非常危险) chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限,则SUID显示为s:否则显示S: SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组: chmod g+s FILE chmod g-s FILE Sticky: 在一个公共目录,每个人都可以创建文件,删除自己的文件

SQL创建表、数据库、约束、文件夹语法

use mastergo ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------创建数据库存放位置(文件夹)----------------------------