Hi All,
I have a situation here.
I have created a Database. Then I created a Secondary File Group and Placed a File in it.
Now I created a Table on Primary File Group and Created 2 Indexes on secondary File Group
I took a backup of secondary Filegroup and then deleted the indexes. Now when I restore the secondary FIle Group I am unable to see indexes. Why Indexes are not being restored. Below is the script,
USE [master]
GO
CREATE DATABASE [MSSD_LAB]
GO
USE [master]
GO
ALTER DATABASE [MSSD_LAB] ADD FILEGROUP [IDX_FG]
GO
ALTER DATABASE [MSSD_LAB] ADD FILE
( NAME = N'MSSD_LAB_IDX', FILENAME = N'D:\MSSQLSERVER\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\MSSD_LAB_IDX.ndf' ,
SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [IDX_FG]
GO
USE [MSSD_LAB]
GO
CREATE TABLE TESTIDXBackup
(
Col_ClusIdx int
,Col_NClusIdx int
,Col_NoIdx varchar(10)
,Col_NoIdx1 nvarchar(10)
) ON [PRIMARY]
GO
--CREATE INDEX ON SECONDARY FILE GROUP
CREATE CLUSTERED INDEX [IDX_Clus_TESTIDXBackup_Col_ClusIdx] ON [dbo].[TESTIDXBackup]
(
[Col_ClusIdx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [IDX_FG]
GO
CREATE NONCLUSTERED INDEX [IDX_Clus_TESTIDXBackup_Col_NClusIdx] ON [dbo].[TESTIDXBackup]
(
[Col_NClusIdx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [IDX_FG]
GO
USE master
GO
--BACKUP SECONDARY FILE GROUP
BACKUP DATABASE MSSD_LAB
File = 'MSSD_LAB_IDX',
FILEGROUP = 'IDX_FG'
TO DISK = 'D:\MSSD_LAB\MSSQL_BACKUPS\Test_IDX_Backup\MSSD_LAB_IDX_FG.FLG'
GO
--DROP INDEXES ON SECONDARY FILEGROUP
USE MSSD_LAB
GO
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[TESTIDXBackup]') AND name = N'IDX_Clus_TESTIDXBackup_Col_ClusIdx')
DROP INDEX [IDX_Clus_TESTIDXBackup_Col_ClusIdx] ON [dbo].[TESTIDXBackup] WITH ( ONLINE = OFF )
GO
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[TESTIDXBackup]') AND name = N'IDX_Clus_TESTIDXBackup_Col_NClusIdx')
DROP INDEX [IDX_Clus_TESTIDXBackup_Col_NClusIdx] ON [dbo].[TESTIDXBackup] WITH ( ONLINE = OFF )
GO
--RESTORE SECONDARY FILE GROUP
USE master
GO
ALTER DATABASE MSSD_LAB SET SINGLE_USER with ROLLBACK IMMEDIATE
GO
RESTORE DATABASE MSSD_LAB
File = 'MSSD_LAB_IDX',
Filegroup = 'IDX_FG'
FROM DISK = 'D:\MSSD_LAB\MSSQL_BACKUPS\Test_IDX_Backup\MSSD_LAB_IDX_FG.FLG'
WITH RECOVERY, MOVE 'MSSD_LAB_IDX' TO 'D:\MSSQLSERVER\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\MSSD_LAB_IDX.ndf'
GO
ALTER DATABASE MSSD_LAB SET MULTI_USER with ROLLBACK IMMEDIATE
I am not sure what wrong I am doing. Any help greatly appreciated.
Thanks & Regards,
Manjunath C Bhat,
http://manjunathcbhat.blogspot.com
http://manjunathcbhat.wordpress.com