SQL Server in Docker 創建 啟動 還原數據庫 docker-compose


此文演示docker-compose  創建、運行、還原 SqlServer
操作系統:CentOS7.6
系統環境:Docker、Docker-Compose 關閉防火牆
 
一、創建docker-mssql.yml文件,位置/usr/local/richpencil/docker-mssql.yml
version: '3'
services:
  mssql:
    image: microsoft/mssql-server-linux:2017-latest
    ports:
      - "1433:1433"
    container_name: mssql
    volumes:
      - /usr/local/richpencil/mssql:/var/opt/mssql
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=a12345678.
      - TZ=Asia/Shanghai

注意數據庫密碼必須為8位長度以上,否則無法啟動docker

 
二、啟動mssql docker容器
此命令會自動下載sqlserver docker並啟動
docker-compose -f /usr/local/richpencil/docker-mssql.yml up

 

三、放置備份文件、進入容器、成功還原
3.1將sqlserver bak文件放在linux系統的映射目錄
linux系統目錄為
/usr/local/richpencil/mssql/blst.bak
docker容器目錄為
/var/opt/mssql/blst.bak

3.2進入docker容器

a、通過啟動文件進入docker
docker-compose -f /usr/local/richpencil/docker-mssql.yml exec mssql bash
b、查看備份文件的邏輯名
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'a12345678.' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/blst.bak"' | tr -s ' ' | cut -d ' ' -f 1-  
數據邏輯名稱
fl_db_birdnestle
fl_db_birdnestle_log
c、根據邏輯名進行還原
命令中指定還原數據庫名、邏輯數據庫名、邏輯數據庫文件名、邏輯數據庫日志名、邏輯數據庫日志文件名、數據庫密碼等重要信息
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'a12345678.' -Q 'RESTORE DATABASE blst FROM DISK = "/var/opt/mssql/blst.bak" WITH MOVE "fl_db_birdnestle" TO "/var/opt/mssql/data/blst.mdf" , MOVE "fl_db_birdnestle_log" TO "/var/opt/mssql/data/blst.ldf"'  

d、通過Microsoft Sql Server Management Studo 連接數據庫

服務器名稱: 192.168.0.203,1433
用戶:sa
密碼:a12345678.  
注意連接數據庫和端口之前用逗號分隔(重要!!!) 連接成功

總結:

1、安裝最新版docker、docker-compose 關閉防火牆

2、創建docker-compose文件時,直接設置管理員sa密碼,密碼長度需大於8位

3、還原數據庫之前需要先查詢邏輯文件名、邏輯日志文件名

4、還原時需要保證文件的位置正確無誤,數據庫密碼正確、邏輯名稱正確

5、在還原時要注意如果有錯誤命令提示,有可能是硬盤空間不夠導致

6、最好申請一個騰訊或阿里的docker加速地址,否則下載sqlserver docker可能會很慢或失敗

7、連接sqlserver的服務器名稱是ip+","+端口 而不是ip+":"+端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM