zoukankan      html  css  js  c++  java
  • sqlserver数据库文件相关知识

    在SQL Server 数据库中

    文件有三大类:

      主数据文件:扩展名为.mdf。

        主数据文件是数据库的关键文件,是所有数据文件的起点,包含指向其他数据库文件的指针,每个数据库都必须有且仅有一个主文件

      辅数据文件:扩展名为.ndf。

         辅助主文件存储数据,包含不在主文件内的其他数据,一个数据库可以有0~n个辅文件

      日志文件:扩展名为.ldf。

        记录存放恢复数据库时所需要的所有日志信息,一个数据库可有1~n个日志文件

     一个数据库必须至少包含一个主数据文件和一个日志文件。

    文件组分为两种:

    主文件组(PRIMARY)

      存放主数据库文件和任何没有明确指定文件组的其他文件。

    用户定义文件组

      在创建火修改数据库时,用FileGroup关键字定义的文件组,存放辅数据文件。

    文件组的特性:

    (1)一个文件只能属于一个文件组;

    (2)只有数据文件才能归属于某个文件组,日志文件不属于任何文件组;

    (3)每个数据库中都有一个默认的文件组在运行,可以指定默认文件组,没有指定的话,则默认为主文件组;

    (4)若没有用户定义文件组,则所有的数据文件都存放在主文件组中。

     查看文件存放位置

    选择对应的数据库文件,右击属性,选择文件,即可查找文件存放的位置;

     使用命令的方式查询文件存放位置

    select database_id,name,physical_name AS CurrentLocation,state_desc,size
    from sys.master_files 
    where database_id=db_id(N'master');

    修改存放位置

    alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
    alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
    
    alter database testDb modify file ( name = testDb, filename = 'D:Program FilesSQL_DATA	estDb	estDb.mdf');
    alter database testDb modify file ( name = testDb_log, filename = 'D:Program FilesSQL_DATA	estDb	estdb_log.ldf');

    后续其他文件也统一存放,需要修改默认配置:

    EXEC xp_instance_regwrite 
    @rootkey='HKEY_LOCAL_MACHINE', 
    @key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
    @value_name='DefaultData', 
    @type=REG_SZ, 
    @value='D:Program FilesMSSQL_MDFData' 
    GO 
    EXEC master..xp_instance_regwrite 
    @rootkey='HKEY_LOCAL_MACHINE', 
    @key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
    @value_name='DefaultLog', 
    @type=REG_SZ, 
    @value='D:Program FilesMSSQL_MDFData' 
    GO

    Management studio的使用

    参考官方文档

    https://docs.microsoft.com/zh-cn/sql/ssms/tutorials/connect-query-sql-server?view=sql-server-ver15

    创建一个名为 TutorialDB 的数据库:

    USE master
    GO
    IF NOT EXISTS (
       SELECT name
       FROM sys.databases
       WHERE name = N'TutorialDB'
    )
    CREATE DATABASE [TutorialDB]
    GO

    执行查询,请选择“执行”(或选择键盘上的 F5)

    在新创建的 TutorialDB 数据库中创建一个表。

    USE [TutorialDB]
    -- Create a new table called 'Customers' in schema 'dbo'
    -- Drop the table if it already exists
    IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
    DROP TABLE dbo.Customers
    GO
    -- Create the table in the specified schema
    CREATE TABLE dbo.Customers
    (
       CustomerId        INT    NOT NULL   PRIMARY KEY, -- primary key column
       Name      [NVARCHAR](50)  NOT NULL,
       Location  [NVARCHAR](50)  NOT NULL,
       Email     [NVARCHAR](50)  NOT NULL
    );
    GO
  • 相关阅读:
    Spring IOC容器的初始化-(二)BeanDefinition的载入和解析
    Spring IOC容器的初始化—(一)Resource定位
    SpringMVC的启动过程
    Spring IOC容器在Web容器中是怎样启动的
    Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again 问题分析
    网络丢包分析
    yum安装jdk如何配置JAVA_HOME
    Linux网卡绑定
    Linux Buffer/Cache 的区别
    理解load averages
  • 原文地址:https://www.cnblogs.com/zxh06820/p/13343039.html
Copyright © 2011-2022 走看看