即使有足够的内存来还原具有内存优化表的数据库,你仍希望遵循最佳做法并将数据库绑定到命名资源池。 由于在将数据库绑定到池之前数据库必须存在,因此恢复数据库是一个多步骤的过程。 本主题将引导你完成此过程。
使用 NORECOVERY 还原
还原数据库时,NORECOVERY 会导致创建数据库并还原磁盘映像,而无需占用内存。
RESTORE DATABASE IMOLTP_DB
FROM DISK = 'C:\IMOLTP_test\IMOLTP_DB.bak'
WITH NORECOVERY
创建资源池
以下 Transact-SQL 创建了一个名为 Pool_IMOLTP 的资源池,其中有 50% 的内存可供使用。 创建池后,资源调控器将重新配置为包含Pool_IMOLTP。
CREATE RESOURCE POOL Pool_IMOLTP WITH (MAX_MEMORY_PERCENT = 50);
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
绑定数据库和资源池
使用系统函数 sp_xtp_bind_db_resource_pool 将数据库绑定到资源池。 该函数接受两个参数:数据库名称,然后是资源池名称。
以下 Transact-SQL 定义数据库IMOLTP_DB到资源池Pool_IMOLTP的绑定。 只有完成下一步后,绑定才会生效。
EXEC sp_xtp_bind_db_resource_pool 'IMOLTP_DB', 'Pool_IMOLTP'
GO
使用 RECOVERY 进行还原
还原数据库时,使用恢复操作,数据库将上线并还原所有数据。
RESTORE DATABASE IMOLTP_DB
WITH RECOVERY
监视资源池性能
将数据库绑定到命名资源池并通过恢复进行还原后,监视 SQL Server 的资源池统计对象。 有关详细信息 ,请参阅 SQL Server 资源池统计信息对象。
另请参阅
将具有 Memory-Optimized 表的数据库绑定到资源池
sys.sp_xtp_bind_db_resource_pool(Transact-SQL)
SQL Server 资源池统计信息对象
sys.dm_resource_governor_resource_pools