欢迎光临
我们一直在努力

docker 安装sql2017还原windows2012数据库备份

docker 安装sql2017还原windows2012数据库备份

1. centos7.6安装docker

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#下载docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#下载docker
yum install -y docker
#配置国内镜像
[root@node1 ~]#cat /etc/docker/daemon.json 
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
#启动&开机启动docker
systemctl start docker && systemctl enable docker

2.docker安装mssql2017

#搜索镜像
[root@node1 ~]# docker search mssql
INDEX       NAME    DESCRIPTION         STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/microsoft/mssql-server-linux                          Deprecated SQL Server on Linux Container R...   1159                 
docker.io   docker.io/microsoft/mssql-server-windows-developer              Official Microsoft SQL 
..........................

#下载镜像
[root@node1 ~]#docker pull microsoft/mssql-server-linux:2017-latest
#查看下载好的镜像
[root@node1 ~]# docker images      
REPOSITORY   TAG                 IMAGE ID            CREATED             SIZE
docker.io/microsoft/mssql-server-linux   2017-latest         314918ddaedf        11 months ago       1.35 GB

#创建并运行容器
[root@node1 ~]#docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourpasSw0rd' --net=host -d microsoft/mssql-server-linux
[root@node1 ~]# docker start eae198ad6034(可以启动ID或者容器名)
eae198ad6034
#查看创建好的容器(UP代表已经启动)
[root@node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
eae198ad6034        314918ddaedf        "/opt/mssql/bin/sq..."   24 hours ago        Up 58 minutes     MSSQL_1433
8b1962a03efe        314918ddaedf        "/bin/bash"              25 hours ago        Exited (0) 24 hours ago                       linuxmssql
#进入容器
[root@node1 ~]# docker exec -it eae198ad6034 /bin/bash
#进入数据库(IP是宿主机的IP,用户是大写的)
root@node1:~# /opt/mssql-tools/bin/sqlcmd -S 172.16.10.66 -U SA  -P 'lihao@123' 
    #出现这个就表示进入数据库了
1> select name from sys.databases;
2> go
name            
--------------------------------------------------------------------------------------------------------------------------
master          
tempdb          
model           
msdb   

3.还原数据库

#上传备份文件
下载winscp或者lrzsz工具,把备份文件上传宿主机,再把备份文件复制到容器的/var/opt/mssql/data/目录下
[root@node1 ~]# docker cp EastRiver.bak eae198ad6034:/var/opt/mssql/data/
root@node1:~# ll /var/opt/mssql/data/
total 1300488
drwxr-xr-x 2 root root      4096 Nov 19 14:25 ./
drwxr-xr-x 7 root root        73 Nov 18 15:23 ../
-rw-r--r-- 1 root root 205852672 Nov  4 09:43 EastRiver.bak
-rw-r----- 1 root root   4194304 Nov 19 15:14 master.mdf
-rw-r----- 1 root root   2097152 Nov 19 15:23 mastlog.ldf
-rw-r----- 1 root root   8388608 Nov 19 14:09 model.mdf
-rw-r----- 1 root root   8388608 Nov 19 14:09 modellog.ldf
-rw-r----- 1 root root  15466496 Nov 19 15:14 msdbdata.mdf
-rw-r----- 1 root root    786432 Nov 19 15:14 msdblog.ldf
-rw-r----- 1 root root   8388608 Nov 19 14:09 tempdb.mdf
-rw-r----- 1 root root   8388608 Nov 19 15:14 templog.ldf
-rw-r----- 1 root root   8388608 Nov 19 14:09 test.mdf
-rw-r----- 1 root root   8388608 Nov 19 15:09 test_log.ldf
 #打开Windows下的sql管理工具(我用2008R2中文版的不行,用2012的英文版的可以,不清楚是中英文的关系,还是版本的的关系,有兴趣的你们可以试试)
新建了一个test库
create database test;

#还原数据库

后面的操作因为某些原因无法上图了,都跟Windows还原一样了,百度一下就可以了
还原成功后,就出现新的库了

#在容器上查看
1> select name from sys.databases
2> go
name            
--------------------------------------------------------------------------------------------------------------------------------
master          
tempdb          
model           
msdb            
test            
EastRiver       

(6 rows affected)
1> use EastRiver
2> go
Changed database context to 'EastRiver'.
1> select name from sys.tables;
2> go
name            
--------------------------------------------------------------------------------------------------------------------------------
BlackCardTask   
ReplaceReg_D    
TransRecords    
Archs           
RefuseReg_M     
BlackCardTaskClockState                     
MChargeRecords  
Area     
...... 
UpLoadTable_comp2                           
Company         
PriceHistory                       
CommMsg             
OpLog           
CardTypeConfig  
OutWork_D       
RealCardState                         
RealStateInfo   
OutWork_M       
EmployeeAccount 
OverTime_Detail 
TimeReport2     
ClockDefaultParam                           
Scheme          
ClockParams     
Groups          
NumberPool
DataBaseConfig  
DoorTimeBound   
user_log        

ZKDownHis       
tblAdmin        
TB_FREESPACE    

Accounts        

(212 rows affected)

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。