SQL 数据库的分离、附加、备份和还原是常见的数据库管理任务。下面是这些任务的基本介绍:
一、数据库的分离(detach):
将数据库从 SQL Server 实例中分离。这个过程会使数据库脱离 SQL Server 实例的管理,但不会删除数据库的数据和日志文件。使用以下命令(这些命令可以在 SQL Server Management Studio 或者使用 Transact-SQL 脚本执行。在执行这些操作之前,务必先备份数据库以防止意外的数据丢失。)可以将数据库分离:
EXEC sp_detach_db 'database_name'
SQL Server Management studio 中操作:
右键RWDB数据库→任务→分离
数据库的文件一般存放在DATA文件夹,且分离操作仅会断开数据库与数据文件的连接,不会删除数据文件
二、数据库的附加(attach):
将已分离的数据库附加回 SQL Server 实例。这个过程会使数据库重新归入 SQL Server 实例的管理,并可以访问其中的数据和日志文件。使用以下命令可以将数据库附加回 SQL Server 实例:
EXEC sp_attach_db 'database_name', 'file_path'
SQL Server Management studio 中操作:
右键数据库→附加
DEBUG: Operating system error 5: "5(Access is denied.)".
要解决这个问题,可以尝试以下几步:
- 检查文件目录和文件名是否正确,并确保指向正确的路径。
- 确保当前用户具有足够的权限来访问该文件。您可以尝试以管理员身份运行Navicat或将文件权限更改为允许当前用户访问该文件。
- 如果您正在使用SQL Server Express,则默认情况下只允许管理员访问数据文件。您可以通过将SQL Server服务帐户修改为拥有访问该文件的权限来解决此问题。
如果您使用的是 SQL Server 默认实例,则该实例的服务帐户通常是 "NT Server\MSSQLSERVER",这是一个内置帐户。如果您没有明确更改过该帐户,请按照以下步骤执行:- 打开Windows资源管理器,找到包含数据文件的文件夹。
- 右键单击该文件夹,选择“属性”。
- 进入“安全”选项卡,并点击“编辑”按钮。
- 在新对话框中,点击“添加”按钮,输入 "NT Server\MSSQLSERVER" 并点击“检查名称”按钮。
- 点击“确定”按钮并关闭对话框。
- 选中 "NT Server\MSSQLSERVER" 帐户,并在下方的权限列表中勾选“完全控制”复选框。
- 点击“确定”按钮并关闭所有对话框。
- 重启 SQL Server 服务。
三、数据库的备份(backup):
将数据库备份到一个备份文件中。使用备份文件可以在需要时恢复数据库。使用以下命令可以备份数据库:
BACKUP DATABASE database_name TO disk='backup_file_path'
SQL Server Management studio 中操作:
右键RWDB数据库→任务→备份
四、数据库的还原(restore):
从备份文件中还原数据库。还原操作会覆盖当前数据库,所以在还原之前要确保当前数据库中的数据已经备份。使用以下命令可以还原数据库:
RESTORE DATABASE database_name FROM disk='backup_file_path'
SQL Server Management studio 中操作:
-
右键Database→还原数据库
-
设备→浏览→添加→选择数据库备份文件(注意路径,文件类型)
-
注意C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA不能有同名的数据库
- 如果提示还原失败,有其它用户连接,则需要先将其它用户连接断开
操作步骤:- 右键数据库选择属性
-
选项→状态→选择SINGEL_USER