在Ubuntu下使用SQL Server进行备份与恢复,通常需要使用mssql-tools工具包,它包含了sqlcmd和其他管理工具。以下是备份和恢复数据库的基本步骤:
首先,确保你已经安装了Microsoft SQL Server。如果还没有安装,可以参考官方文档进行安装:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup?view=sql-server-ver15
安装完成后,你需要安装mssql-tools:
sudo apt-get update;
sudo apt-get install mssql-tools unixodbc-dev;
为了能够在bash中使用sqlcmd等工具,你需要将mssql-tools的路径添加到环境变量中:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile;
source ~/.bash_profile;
使用sqlcmd工具连接到SQL Server实例,然后执行备份命令。以下是一个备份数据库的示例:
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "BACKUP DATABASE [YourDatabaseName] TO DISK = '/var/opt/mssql/backup/YourDatabaseName.bak'"
请将YourPassword替换为你的SQL Server SA用户的密码,YourDatabaseName替换为你要备份的数据库名称。
恢复数据库通常涉及到两个步骤:首先是从备份文件中还原数据到一个新的数据库,然后将数据从新数据库迁移到目标数据库(如果需要)。以下是一个基本的恢复示例:
sqlcmd -S localhost -U SA -P 'YourPassword' -Q "RESTORE DATABASE [NewDatabaseName] FROM DISK = '/var/opt/mssql/backup/YourDatabaseName.bak' WITH MOVE 'YourDatabaseLogicalName' TO '/var/opt/mssql/data/NewDatabaseName.mdf', MOVE 'YourDatabaseLogicalName_log' TO '/var/opt/mssql/data/NewDatabaseName.ldf'"
在这个命令中,NewDatabaseName是你想要创建的新数据库的名称。YourDatabaseLogicalName是备份文件中数据库的逻辑名称,这通常可以在备份文件的属性中找到。/var/opt/mssql/data/NewDatabaseName.mdf和/var/opt/mssql/data/NewDatabaseName.ldf是新数据库的数据文件和日志文件的路径。
请注意,恢复数据库可能会覆盖目标数据库中的所有数据,因此在执行恢复操作之前,请确保目标数据库已经备份或者不重要。
在执行这些操作之前,请确保你有足够的权限,并且已经对生产环境中的数据进行了适当的备份。如果你是在生产环境中操作,请先在测试环境中验证备份和恢复过程。