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