当前位置: 代码网 > it编程>数据库>MsSqlserver > SQLserver批量将数据库备份文件还原,并将数据文件和日志文件迁移至其他路径脚本

SQLserver批量将数据库备份文件还原,并将数据文件和日志文件迁移至其他路径脚本

2024年08月06日 MsSqlserver 我要评论
sqlserver批量将数据库物理文件位置迁移至指定路径(还原备份文件时使用)

背景:我在工作时常常需要将一整个生产环境的数据库全部备份同步到测试环境使用,由于测试环境磁盘数量有限,直接还原会导致报错目录查找失败

因此,我会自定义一个路径,用于将备份文件的数据文件和日志文件迁移至该路径,以下是脚本内容,分为两种情况,以下两种方式都应在备份数据库的服务器(生产db)上执行

1、数据文件和日志文件分开放置

declare @file_path nvarchar(255)
declare @log_path nvarchar(255)
set @file_path = 'f:\databasefiles\'  --数据文件路径
set @log_path = 'd:\databasefiles\' --日志文件路径

declare @file_path_from nvarchar(255)
set @file_path_from = 'd:\databasebackup\'  --备份文件路径

declare @sql01 nvarchar(max)
declare @sql02 nvarchar(max)
declare @sql03 nvarchar(max)
declare @sql04 nvarchar(max)
declare @len int

declare @dbname nvarchar(50)
declare @logic_file_name nvarchar(50) --逻辑文件名
declare @logic_file_name_total nvarchar(50) --物理文件名
create table #db_name(dbname nvarchar(50))
create table #sql_move(sql_move nvarchar(max))
create table #sql_restore(sql_restore nvarchar(max))

insert into  #db_name select db.name 
                      from   sys.sysdatabases db  
                      where db.dbid >4 and db.name not like '%snap%' --排除了系统数据库和快照
    
    while exists(select top 1 * from #db_name)
        begin
        select  top 1 @dbname  = dbname from #db_name
        create table #logic_name(dbname nvarchar(50),logic_file_name nvarchar(50),logic_file_name_total nvarchar(50))

        insert into #logic_name select db.name,mf.name,right(phy

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com