Quantcast
Channel: SQL Server Database Engine forum
Viewing all articles
Browse latest Browse all 5123

Filegroup Restoration Post FG Restore Index Not reflecting

$
0
0

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


Viewing all articles
Browse latest Browse all 5123

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>