创建数据库时能将数据库文件分成两个文件存放那么是否也能将日志文件也分成两个存放 比如
create database test
on
primary
(name=test_master
filename='C:\test_master.mdf')
,
(name=test_slavre
filename='C:\test_master.mdf'
)
现在要将test_master和test_slavre的日志分别存放,有无办法实现.PS:分别建两个数据库的方法我知道,处此之外呢?

解决方案 »

  1.   

    USE master
    GO
    CREATE DATABASE test 
    ON
    PRIMARY ( NAME = test1,
          FILENAME = 'c:\program files\microsoft sql server\mssql\data\test1.mdf',
          SIZE = 100MB,
          MAXSIZE = 200,
          FILEGROWTH = 20),
    ( NAME = test2,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\test2.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20),
    ( NAME = test3,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\test3.ndf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    LOG ON 
    ( NAME = testlog1,
       FILENAME = 'c:\program files\microsoft sql server\mssql\data\test_log.ldf',
       SIZE = 100MB,
       MAXSIZE = 200,
       FILEGROWTH = 20)
    GO
      

  2.   

    当然可以请参考这个例子:
    DECLARE @data_path nvarchar(256);
    SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
                      FROM master.sys.master_files
                      WHERE database_id = 1 AND file_id = 1);-- execute the CREATE DATABASE statement 
    EXECUTE ('CREATE DATABASE Archive 
    ON
    PRIMARY  
        (NAME = Arch1,
        FILENAME = '''+ @data_path + 'archdat1.mdf'',
        SIZE = 100MB,
        MAXSIZE = 200,
        FILEGROWTH = 20),
        ( NAME = Arch2,
        FILENAME = '''+ @data_path + 'archdat2.ndf'',
        SIZE = 100MB,
        MAXSIZE = 200,
        FILEGROWTH = 20),
        ( NAME = Arch3,
        FILENAME = '''+ @data_path + 'archdat3.ndf'',
        SIZE = 100MB,
        MAXSIZE = 200,
        FILEGROWTH = 20)
    LOG ON 
       (NAME = Archlog1,
        FILENAME = '''+ @data_path + 'archlog1.ldf'',
        SIZE = 100MB,
        MAXSIZE = 200,
        FILEGROWTH = 20),
       (NAME = Archlog2,
        FILENAME = '''+ @data_path + 'ldf'',
        SIZE = 100MB,
        MAXSIZE = 200,
        FILEGROWTH = 20)'
    );
    GO
      

  3.   

    USE master
    GO
    CREATE DATABASE test 
    ON
    PRIMARY ( NAME = test1,
          FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test1.mdf',
          SIZE = 3MB,
          MAXSIZE = 20,
          FILEGROWTH = 2),
    ( NAME = test2,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2.mdf',
       SIZE = 3MB,
       MAXSIZE = 20,
       FILEGROWTH = 2),
    ( NAME = test3,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test3.mdf',
       SIZE = 3MB,
       MAXSIZE = 20,
       FILEGROWTH = 2)
    LOG ON 
    ( NAME = testlog1,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test1_log.ldf',
       SIZE = 1MB,
       MAXSIZE = 20,
       FILEGROWTH = 2),
    ( NAME = testlog2,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test2_log.ldf',
       SIZE = 1MB,
       MAXSIZE = 200,
       FILEGROWTH = 2),
    ( NAME = testlog3,
       FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test3_log.ldf',
       SIZE = 1MB,
       MAXSIZE = 20,
       FILEGROWTH = 2)
    GO
      

  4.   

    谢谢楼上的各位
    此外能不能使那个数据库文件对应那个日志,日志文件中只记录对应的数据库文件的变动情况如:我说的'C:\test_master.mdf对应'C:\test_master_l.ldf;C:\test_slavre.ndf对应'C:\\test_slavre_l.ldf
      

  5.   

    谢谢楼上的各位 
    此外能不能使那个数据库文件对应那个日志,日志文件中只记录对应的数据库文件的变动情况 如:我说的'C:\test_master.mdf对应'C:\test_master_l.ldf;C:\test_slavre.ndf对应'C:\\test_slavre_l.ldf---------------------------------------
    这个应该不能
    也没有这个必要吧
    如果一定要一一对应,可以建多个数据库