您的位置:首页 > 科技 > IT业 > 淮南城乡建设局网站_江门网红桥_百度怎么投放自己的广告_关键词在线下载

淮南城乡建设局网站_江门网红桥_百度怎么投放自己的广告_关键词在线下载

2025/4/16 10:47:49 来源:https://blog.csdn.net/morliz/article/details/147238655  浏览:    关键词:淮南城乡建设局网站_江门网红桥_百度怎么投放自己的广告_关键词在线下载
淮南城乡建设局网站_江门网红桥_百度怎么投放自己的广告_关键词在线下载

浅谈SQL Server系统内核管理机制

应用环境

  • Microsoft Windows 10.0.19045.5487 x64 专业工作站版 22H2
  • Microsoft SQL Server 2019 - 15.0.2130.3 (X64)
  • SQL Server Management Studio -18.6 laster

文章目录

  • 浅谈SQL Server系统内核管理机制
    • 数据库和文件
    • 服务器管理视图
    • 系统动态视图查询对象信息
    • 系统动态管理视图
      • 查询动态管理视图
      • 数据库对象
      • 执行的对象跟踪与监视
    • 业务连续性
      • 数据库的备份和还原
        • (1) 创建完全备份
        • (2) 差异备份
        • (3) 日志备份
        • (4) 文件或文件组备份
        • (5) 备份选项
        • (6) 数据库还原
        • (7) 收缩指定数据库的大小

数据库和文件

描述:数据库和文件目录视图

# 系统数据库实例
SELECT [name] AS dbname				--数据库名称,database_id					--数据库 ID,physical_database_name					--数据库的物理名称	--,owner_sid						--注册到服务器的数据库外部所有者的 SID(安全标识符),create_date					--数据库的创建或重命名日期/* SQL Server 版本的整数* 70 - SQL Server 7.0 到 SQL Server 2008 (10.0.x)* 80 - SQL Server 2000 (8.x) 到 SQL Server 2008 R2 (10.50.x)* 90 - SQL Server 2008 (10.0.x) 到 SQL Server 2012 (11.x)* 100 - SQL Server 2008 (10.0.x) 及更高版本和 Azure SQL 数据库* 110 - SQL Server 2012 (11.x) 及更高版本和 Azure SQL 数据库* 120 - SQL Server 2014 (12.x) 及更高版本和 Azure SQL 数据库* 130 - SQL Server 2016 (13.x) 及更高版本和 Azure SQL 数据库* 140 - SQL Server 2017 (14.x) 及更高版本和 Azure SQL 数据库* 150 - SQL Server 2019 (15.x) 及更高版本和 Azure SQL 数据库* 160 - SQL Server 2022 (16.x) 及更高版本和 Azure SQL 数据库*/,compatibility_level					--对应于兼容行为的 SQL Server 版本的整数,collation_name							--数据库的排序规则--,user_access						--用户访问设置:0 = MULTI_USER 指定,1 = SINGLE_USER 指定,2 = RESTRICTED_USER,user_access_desc						--用户访问设置说明--,[state],state_desc								--数据库状态的说明--,snapshot_isolation_state,snapshot_isolation_state_desc			--允许快照隔离事务的状态--,recovery_model,recovery_model_desc					--选定的恢复模式的说明--,page_verify_option,page_verify_option_desc				--PAGE_VERIFY选项设置的说明--,service_broker_guid					--数据库的服务代理标识符,log_reuse_wait_desc					--日志空间的重复使用正在等待最后一个检查点的描述,delayed_durability_desc				--延迟持续性设置(有关详细信息,请参阅控制事务持续性)FROM sys.databases# master上的库文件挂载
-- Example
DECLARE @dbasename NVARCHAR(20) ='OHYJTest'
SELECT database_id				--数据库的 ID,type_desc					--数据类型:rows行(mdf), log日志(ldf)--,data_space_id,[name] AS logicalName		--逻辑名,physical_name				--物料路径文件名,state_desc					--文件状态,[size]						--文件大小(以 8 KB 为单位的页数),max_size					--最大文件大小,growth						--文件自动增长(以 8 KB 页为单位)FROM sys.master_files
WHERE database_id = DB_ID(@dbasename)

服务器管理视图

描述:链接服务器目录视图

# 服务器配置视图
SELECT a.server_id					--服务器的 ID,a.remote_name					--连接时使用的远程用户名。 虽然也存储了密码,但并不显示在目录视图界面中,b.name AS srvlinkname			--当server_ID为0时,则指本机名,否则为链接服务器名(或别名),b.product						--链接服务器的产品名,可以为空,b.provider						--提供程序,用于连接到链接服务器的 OLE DB 访问接口名称,b.data_source					--OLE DB 数据源连接属性,可以为计算机名或IP地址,b.is_linked					--是否链接服务器,b.is_remote_login_enabled		--是否开启远程登录(本机配置使用),b.is_rpc_out_enabled			--是否启用RPC(本机配置使用),b.is_data_access_enabled		--是否启用分布式查询服务FROM sys.linked_logins a		--链接服务器登录视图
JOIN sys.servers b ON b.server_id = a.server_id		--链接服务器配置视图## 附创建链接服务器Example
--创建远程链接服务器
execute sys.sp_addlinkedserver @server='otherServer',    --被访问的服务器别名@srvproduct='',@provider='SQLOLEDB',@datasrc='192.168.1.3,1466\SFKLPOS\MSSQL2008'    --被访问的服务器地址(IP地址,端口号\服务器名称)
--创建本地用户与远程服务器中用户之间的映射
execute sys.sp_addlinkedsrvlogin @rmtsrvname='otherServer',    --被访问的服务器别名@useself='false',			--是否通过模拟本地登录名或显式提交登录名和密码来连接到远程服务器@locallogin=null,			--本地登录@rmtuser='sa',				--用户名@rmtpassword='xxxxxx'	--密码
go--建立完成之后就可以正常使用了 
select * from srv_lnkU9CTest22.OHYJTest.dbo.CBO_Person    --连接服务器别名.数据库名称.dbo.表名称
go--删除运行本地与远程之间的用户映射
execute sys.sp_droplinkedsrvlogin @rmtsrvname='otherServer',@locallogin=null
--删除链接服务器
execute sys.sp_dropserver @server='otherServer',@droplogins='droplogins'
go

系统动态视图查询对象信息

描述:从表、表索引、主外键、视图、函数、存储过程等等,一切对象皆可查。

# 查询当前数据表行数排名Example
SELECT a.name,b.[rows] FROM sysobjects a JOIN sysindexes b ON b.id = a.idWHERE a.[type] ='U' AND b.indid IN(0,1)ORDER BY b.[rows] DESC
GO

系统动态管理视图

动态管理视图(DMV)和动态管理功能(DMF)返回可用于监视服务器实例运行状况、诊断问题和优化性能的服务器状态信息。

动态管理视图和函数分为两种类型:

  • 服务器范围内的动态管理视图和函数。 此类型需要具有该服务器的 VIEW SERVER STATE 权限。 对于 SQL Server 2022 及更高版本,需要 VIEW SERVER 性能状态,或者需要与安全相关的几个 DMV 的 VIEW SERVER 安全状态。
  • 数据库范围内的动态管理视图和函数。 此类型需要具有该数据库的 VIEW DATABASE STATE 权限。 对于 SQL Server 2022 及更高版本,需要 VIEW DATABASE PERFORMANCE STATE,或者需要与安全相关的几个 DMV 的 VIEW DATABASE SECURITY STATE。

查询动态管理视图

通过使用两部分、三部分或四部分所组成的名称,可在 Transact-SQL 语句中引用动态管理视图。 另一方面,也可使用两部分或三部分所组成的名称在 Transact-SQL 语句中引用动态管理函数。 不能使用单部分名称在 Transact-SQL 语句中引用动态管理视图和函数。

所有动态管理视图和函数都存在于 sys 架构中,并遵循 dm_* 命名约定。 当使用动态管理视图或函数时,必须使用 sys 架构作为视图或函数名称的前缀。 例如,若要查询 dm_os_wait_stats 动态管理视图,请运行以下查询:

SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats;

数据库对象

描述:返回事务日志的虚拟日志文件 (VLF) 信息。 请注意,所有事务日志文件都合并在表输出中。 输出中的每行均表示事务日志中的 VLF,并提供与日志中该 VLF 相关的信息。

# 事务日志的虚拟日志文件 (VLF) 信息
DECLARE @dbaseName NVARCHAR(20) ='XXXXX'
SELECT database_id					--数据库 ID,[file_id]						--事务日志的文件 ID,vlf_begin_offset				--VLF开头的偏移位置,vlf_size_mb					--虚拟日志文件 (VLF)大小MB,vlf_sequence_number			--序列号(按已创建的顺序)。 用于唯一标识日志文件中的 VLF,vlf_active						--VLF激活: 0 - VLF 未被使用, 1 - VLF 处于活动状态,vlf_status						--VLF状态: 0 - VLF 处于非活动状态, 1 - VLF 已初始化,但未使用, 2 - VLF 处于活动状态,vlf_parity						--奇偶校验: 在内部用于确定 VLF 内的日志结尾,vlf_first_lsn					--第一条日志记录的日志序列号,vlf_create_lsn					--日志记录的日志序列号--,vlf_encryptor_thumbprintFROM sys.dm_db_log_info(db_id(@dbaseName))# 返回有关数据库的事务日志文件的摘要级别属性和信息。 使用此信息监视和诊断事务日志运行状况。
DECLARE @dbaseName NVARCHAR(20) ='zhongcaiERP'
SELECT database_id					--数据库 ID,recovery_model					--数据库的恢复模式,log_min_lsn					--当前开始 日志序列号(LSN),log_end_lsn					--最后一条日志记录的日志序列号,current_vlf_sequence_number	--执行时当前的VLF序列号,current_vlf_size_mb			--当前VLF大小,total_vlf_count				--事务日志中的虚拟日志文件(VFS)总数,total_log_size_mb				--事务日志总大小,active_vlf_count				--事务日志中的活动 虚拟日志文件(VFS) 总数,active_log_size_mb				--活动事务日志大小总计,log_truncation_holdup_reason	--日志截断保留原因FROM sys.dm_db_log_stats(db_id(@dbaseName))

执行的对象跟踪与监视

# 对计划异步(后台)执行的每个查询处理器作业返回一行。
sys.dm_exec_background_job_queue# 对于每个为异步(后台)执行而提交的查询处理器作业,相应地返回一行,以提供聚合统计信息。
sys.dm_exec_background_job_queue_stats# 为每个 Transact-SQL 执行计划、公共语言运行时 (CLR) 执行计划和与计划关联的游标返回一行。
sys.dm_exec_cached_plan_dependent_objects# 返回有关与此数据库引擎实例建立的连接的信息以及每个连接的详细信息。
sys.dm_exec_connections# *返回每个节点的工作器可用性信息。
sys.dm_exec_query_parallel_workers# *正执行查询时监视实时查询进度。
sys.dm_exec_query_profiles/* 返回 SQL Server 中缓存查询计划的聚合性能统计信息。 缓存计划中的每个查询语句在该视图中对应一行,并且行的生存期与计划本身相关联。 在从缓存删除计划时,也将从该视图中删除对应行。
sys.dm_exec_query_stats 的结果可能因每次执行而有所不同,因为数据仅反映已完成的查询,而不是仍在进行中的查询。
*/
sys.dm_exec_query_stats# 返回有关在 SQL Server 中正在执行的每个请求的信息。有关请求的详细信息,请参阅 线程和任务体系结构指南。
sys.dm_exec_requests
## Example:仅查询正在请求执行的数据库备份、或恢复以及数据收缩的会话作业
SELECT session_id		--请求会话ID,request_id			--请求ID,start_time			--请求到达时间,[status]			--请求状态,command			--正在处理的命令的当前类型,percent_complete	--为以下命令完成的工作的百分比/* T-SQL command* ALTER INDEX REORGANIZE: 对于行存储索引,REORGANIZE指定重新组织索引叶级别。* AUTO_SHRINK 选项 ALTER DATABASE: 自动收缩数据库选项(一般为OFF)* BACKUP DATABASE: 创建数据库备份* DBCC CHECKDB: 检查指定数据库中所有对象的逻辑和物理完整性* DBCC CHECKFILEGROUP: 检查当前数据库的指定文件组中的所有表和索引视图的分配和结构完整性* DBCC CHECKTABLE: 检查组成表或索引视图的所有页和结构的完整性* DBCC INDEXDEFRAG: 指定表或视图的索引碎片整理* DBCC SHRINKDATABASE: 收缩指定数据库中的数据文件和日志文件的大小* DBCC SHRINKFILE: 收缩当前数据库的指定数据或日志文件大小。 可以使用它将一个文件中的数据移到同一文件组中的其他文件,这会清空文件,从而允许删除数据库。 可以将文件收缩到小于创建大小,同时将最小文件大小重置为新值。 仅在必要时使用 DBCC SHRINKFILE。* RECOVERY: 数据库恢复状态,类似 RESTORE DATABASE [dbaseName] WITH RECOVERY; 用法* RESTORE DATABASE: 还原使用 BACKUP 命令所做的 SQL 数据库备份* ROLLBACK: 将显式或隐式事务回滚到事务的开头,或回滚到事务内的保存点。 可用于 ROLLBACK TRANSACTION 清除从事务开始或保存到保存点进行的所有数据修改。 它还释放由事务控制的资源* TDE ENCRYPTION: 透明数据加密 (TDE) 也称为静态数据加密,数据库文件加密在页面级执行。 已加密数据库中的页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE 不会增加已加密数据库的大小*/--,database_id		--数据库ID--,[user_id]		--提交请求的用户ID,wait_type			--如果请求当前被阻塞,则此列返回等待类型,wait_time			--如果请求当前被阻塞,则此列返回当前等待的持续时间(ms),last_wait_type		--如果此请求先前已经阻塞,则此列返回上次等待的类型,transaction_id		--在其中执行此请求的事务ID,cpu_time			--请求所使用的 CPU 时间(ms),total_elapsed_time	--请求到达后经过的总时间(ms),scheduler_id		--正在计划此请求的计划程序ID,task_address		--分配给与此请求关联的任务的内存地址,reads				--此请求执行的读取数,writes				--此请求执行的写入数,logical_reads		--此请求已经执行的逻辑读取数,text_size			--此请求的大小 设置FROM sys.dm_exec_requests
WHERE command IN ('RESTORE DATABASE', 'BACKUP DATABASE','DbccSpaceReclaim')# 返回 SQL Server 中有关当前活动的锁管理器资源的信息。 向锁管理器发出的已授予锁或正等待授予锁的每个当前活动请求分别对应一行。
## Example
DECLARE @dbaseName NVARCHAR(20) ='dbaseName'
SELECT resource_type				--表示资源类型/** DATABASE* FILE* OBJECT* PAGE* KEY* EXTENT* RID(Row ID)* APPLICATION* METADATA* HOBT(Heap OR B-tree)* ALLOCATION_UNIT* XACT (事务)* OIB (联机索引生成)* ROW_GROUP*/--,resource_subtype				--表示资源子类型,resource_database_id			--数据库的 ID,request_mode					--请求的模式/* 对于已授予的请求,为已授予模式;对于等待请求,为正在请求的模式。* NULL = 不授予对资源的访问权限* Sch-S(架构稳定性)= 确保在任何会话持有对架构元素(例如表或索引)的架构稳定性锁时,不删除该架构元素* Sch-M(架构修改)= 必须由要更改指定资源架构的任何会话持有。 确保没有其他会话正在引用所指示的对象。* S(共享)= 授予持有锁的会话对资源的共享访问权限。* U(更新)= 指示对最终可能更新的资源获取的更新锁。 用于防止常见形式的死锁,这类死锁在多个会话锁定资源并且稍后可能更新资源时发生。* X(独占)= 授予持有锁的会话对资源的独占访问权限。* IS(意向共享)= 指示有意将 S 锁放置在锁层次结构中的某个从属资源上。* IU(意向更新)= 指示有意将 U 锁放置在锁层次结构中的某个从属资源上。* IX(意向独占)= 指示有意将 X 锁放置在锁层次结构中的某个从属资源上。* SIU(共享意向更新)= 指示对有意在锁层次结构中的从属资源上获取更新锁的资源进行共享访问。* SIX(共享意向独占)= 指示对有意在锁层次结构中的从属资源上获取独占锁的资源进行共享访问。* UIX(更新意向独占)= 指示对有意在锁层次结构中的从属资源上获取排他锁的资源进行更新锁保留。* BU = 由批量操作使用。* RangeS_S(共享键范围和共享资源锁)= 指示可序列化的范围扫描。* RangeS_U(共享键范围和更新资源锁)= 指示可序列化的更新扫描。* RangeI_N(插入键范围和 Null 资源锁)= 用于在索引中插入新键之前测试范围。* RangeI_S = 通过 RangeI_N 和 S 锁的重叠创建的键范围转换锁。* RangeI_U = 通过 RangeI_N 和 U 锁的重叠创建的键范围转换锁。* RangeI_X = 通过 RangeI_N 和 X 锁的重叠创建的键范围转换锁。* RangeX_S = 通过 RangeI_N 和 RangeS_S 锁的重叠创建的键范围转换锁 。* RangeX_U = 通过 RangeI_N 和 RangeS_U 锁的重叠创建的键范围转换锁。* RangeX_X(独占键范围和独占资源锁)= 这是在更新范围中的键时使用的转换锁。*/,request_type				--请求类型。 该值为 LOCK,request_status			--当前状态,可能的值有GRANTED、CONVERT、WAIT、LOW_PRIORITY_CONVERT、LOW_PRIORITY_WAIT 或 ABORT_BLOCKERS,request_session_id		--请求会话ID,request_owner_type		--拥有请求的实体类型。 锁管理器请求可由各种实体所拥有,lock_owner_address		--用于跟踪该请求的内部数据结构的内存地址
FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID(@dbaseName)# 对于 SQL Server 中每个经过身份验证的会话都返回一行。 sys.dm_exec_sessions 是服务器范围的视图,显示了有关所有活动用户连接和内部任务的信息。 此信息包含客户端版本、客户端程序名称、客户端登录时间、登录用户、当前会话设置等。 使用 sys.dm_exec_sessions,首先可以查看当前的系统负荷并标识相关会话,然后可以通过其他动态管理视图或动态管理函数了解有关该会话的详细信息。
SELECT session_id						--请求会话ID,login_time							--建立会话的时间,[host_name]						--客户端工作站名称,program_name						--客户端程序的名称,host_process_id					--客户端程序的进程 ID--,client_version,client_interface_name				--客户端用于与服务器通信的库/驱动程序的名称--,security_id,login_name							--当前会话所使用的 SQL Server 登录名--,nt_domain--,nt_user_name,[status]							--会话的状态,Running\Sleeping\Preconnect,reads								--请求所执行的读取次数,writes								--请求所执行的写入次数,text_size							--会话内容字节大小FROM sys.dm_exec_sessions# 返回由指定 sql_handle标识的 SQL 批处理的文本。此表值函数替换系统函数 fn_get_sql
SELECT t.*
FROM sys.dm_exec_requests a
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS t

业务连续性

每个人在部署 SQL Server 时都需执行一项常见任务,即确保所有任务关键型 SQL Server 实例以及其中的数据库在业务和最终用户需要时(无论是朝九晚五还是全天候)可用。 其目标是尽量减少或杜绝中断,保持业务正常运行。 此概念也称为业务连续性。

SQL Server 2017 (14.x) 在现有功能基础上引入了许多新功能或增强功能,其中部分功能用于提高可用性。 SQL Server 2017 (14.x) 的最大变化在于在 Linux 发行版上增加了对 SQL Server 的支持。

数据库的备份和还原

SQL Server 备份和还原组件提供基本的保护措施,可以保护存储在 SQL Server 数据库中存储的关键数据。 为了尽量降低灾难性数据丢失的风险,需备份数据库,以便定期保存对数据的修改。 计划良好的备份和还原策略有助于保护数据库,使之免受各种故障导致的数据丢失的威胁。 测试策略,方法是先还原一组备份,然后恢复数据库,以便准备好对灾难进行有效的响应。

(1) 创建完全备份

完整备份将整个数据库备份到指定的备份介质(如磁盘或磁带)。

# database_name: 要备份的数据库名称
# disk: 备份文件的路径和名称
BACKUP DATABASE database_name TO disk = 'backup_device_path' [,...n]
(2) 差异备份

差异备份仅备份自上次完整备份或差异备份以来发生更改的部分数据。

BACKUP DATABASE 和 BACKUP LOG 权限默认为 sysadmin 固定服务器角色以及 db_ownerdb_backupoperator 固定数据库角色。

备份设备的物理文件的所有权和权限问题将会妨碍备份操作。 SQL Server 需要能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中为备份设备添加项目的 sp_addumpdevice 检查文件访问权限。 在你因尝试备份或还原而访问物理资源之前,备份设备物理文件中的权限问题并不明显。

先决条件

创建差异数据库备份需要有以前的完整数据库备份。 如果你的数据库从未进行过备份,则请在创建任何差异备份之前,先执行完整数据库备份。

建议

当差异备份的大小增大时,还原差异备份会显著延长还原数据库所需的时间。 建议按设定的间隔执行新的完整备份,以便为数据建立新的差异基准。 例如,您可以每周执行一次整个数据库的完整备份(即完整数据库备份),然后在该周内执行一系列常规的差异数据库备份。

# DIFFERENTIAL: 指定差异备份选项
BACKUP DATABASE database_name TO disk = 'backup_device_path' WITH DIFFERENTIAL
-- Example
BACKUP DATABASE AdventureWorks TO disk = 'C:\Backup\AdventureWorks_diff.bak' WITH DIFFERENTIAL

SQL Server 2008 (10.0.x) Enterprise 及更高版本支持备份压缩。 默认情况下,是否压缩备份取决于 backup-compression default 服务器配置选项的值。 但是,不管当前服务器级默认设置如何,都可以通过选中 **“压缩备份”**来压缩备份,并且可以通过选中 **“不压缩备份”**来防止压缩备份。

# 查看备份压缩默认选项
SELECT value
FROM sys.configurations
WHERE name = 'backup compression default';
GO# 配置备份压缩默认选项
EXECUTE sp_configure 'backup compression default', 1;
RECONFIGURE;
GO
(3) 日志备份

指定仅备份事务日志。 该日志是从上一次成功执行的日志备份到当前日志的末尾。 必须创建完整备份,才能创建第一个日志备份。日志备份将数据库的事务日志备份到指定的备份介质。适用于实现点恢复或完整恢复模型的数据库。

通过在 WITH STOPAT 语句中指定 STOPATMARKSTOPBEFOREMARK 或 ,可以将日志备份还原到备份中的特定时间或事务。

BACKUP LOG database_name TO disk = 'backup_device_path'
-- Example
BACKUP LOG AdventureWorks TO disk = 'C:\Backup\AdventureWorks_log.trn'
(4) 文件或文件组备份

文件或文件组备份允许备份数据库的部分文件或文件组。

# FILE: 指定要包含在文件备份中的文件的逻辑名称。
# FILEGROUP: 指定要包含在文件备份中的文件组的逻辑名称。 在简单恢复模式下,只允许对只读文件组执行文件组备份。
BACKUP DATABASE database_name FILE = 'logical_file_name' TO disk = 'backup_device_path'
BACKUP DATABASE database_name FILEGROUP = 'filegroup_name' TO disk = 'backup_device_path'
-- Example
BACKUP DATABASE AdventureWorks FILE = 'AdventureWorks_Data' 
TO disk = 'C:\Backup\AdventureWorks_Data.bak'BACKUP DATABASE AdventureWorks FILEGROUP = 'PRIMARY' 
TO disk = 'C:\Backup\AdventureWorks_Primary.bak'
(5) 备份选项

备份命令还支持一些其他选项,如备份选项、初始化选项、镜像选项和压缩选项,以优化备份过程或降低备份文件的大小。
这些命令和选项使得 SQL Server 提供了灵活和多样化的备份策略,可以根据实际需求选择适合的备份类型和参数。

备份命令中可以使用一些选项来进一步控制备份的行为和性能。
WITH INIT:初始化备份介质,覆盖现有备份集。
WITH FORMAT:使用新的媒体格式写入备份集。
WITH COPY_ONLY:在不中断现有备份链的情况下进行备份。
WITH COMPRESSION:使用压缩备份,减少备份文件大小。

-- Example
BACKUP DATABASE AdventureWorks 
TO disk = 'C:\Backup\AdventureWorks_full.bak' 
WITH INIT, FORMAT, COMPRESSION# 可以将备份同时写入多个备份设备,以提高备份的冗余性和性能。
-- Example
BACKUP DATABASE AdventureWorks 
TO disk = 'C:\Backup\AdventureWorks_full1.bak',disk = 'D:\Backup\AdventureWorks_full2.bak'
WITH INIT# 备份完成后,可以使用 WITH CHECKSUM 选项验证备份的完整性。
BACKUP DATABASE AdventureWorks 
TO disk = 'C:\Backup\AdventureWorks_full.bak' 
WITH CHECKSUM
(6) 数据库还原

在完整恢复模式或大容量日志恢复模式下,可能需要先备份活动事务日志(称为 日志尾部),然后才能还原数据库。数据库完整还原的目的是还原整个数据库。 整个数据库在还原期间处于脱机状态。 在数据库的任何部分变为联机之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间点并且不存在未提交的事务。

在简单恢复模式下,数据库不能还原到特定备份中的特定时间点。

先决条件和建议

  • 若要还原已加密的数据库,您必须有权访问用于对数据库进行加密的证书或非对称密钥。 如果没有证书或非对称密钥,数据库将无法还原。 因此,只要需要该备份,就必须保留用于对数据库加密密钥进行加密的证书。
  • 出于安全性考虑,我们建议您不要从未知或不信任的源附加或还原数据库。 此类数据库可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构或物理数据库结构导致错误。 使用来自未知源或不可信源的数据库前,请在非生产服务器上针对数据库运行 DBCC CHECKDB ,然后检查数据库中的代码,例如存储过程或其他用户定义代码。
-- Example
RESTORE DATABASE [OHYJTest] 
FROM DISK = N'F:\MSSQLDataBase\OHYJ_backup_2025_03_21_000101_4304684.bak' 
WITH FILE = 1,MOVE N'blank' TO N'F:\DBase\OHYJTest_Data.mdf',  MOVE N'blank_Log' TO N'F:\DBase\OHYJTest_Log.ldf', 
NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 5
GO
RESTORE DATABASE [OHYJTest] WITH RECOVERY;
(7) 收缩指定数据库的大小

收缩指定数据库中的数据文件和日志文件的大小。

备注

收缩操作不应被视为常规维护操作。 由于常规定期业务操作而增长的数据和日志文件不需要收缩操作。

# target_perent: 整型值,收缩操作完成后要留在数据库文件中的可用空间百分比。
DBCC SHRINKDATABASE(N'dbaseName', target_perent )
GO

-待续-

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com