docker后台数据恢复 odoo 数据库
1.数据库的备份
odoo数据库备份有两种格式
1.zip包:包含存储文件和应用附件以及清单文件
2…dump文件
恢复数据库
(1).切换到postgres用户,在路径*/var/lib/postgresql/*下新建backup目录。
hrp@hrpdev:~$ docker exec -it $db_docker_name bash *[db_docker_name需要根据实际情况替换]
root@dbcbb2339148:/# su - postgres
postgres@dbcbb2339148:/var/lib/postgresql$ pwd
/var/lib/postgresql
postgres@dbcbb2339148:/var/lib/postgresql$ mkdir backup
postgres@dbcbb2339148:/var/lib/postgresql$ ls
backup data
postgres@dbcbb2339148:/var/lib/postgresql$ cd backup
postgres@dbcbb2339148:/var/lib/postgresql/backup$ pwd
/var/lib/postgresql/backup
(2)将备份数据库的压缩包解压缩,并将解压后的文件夹中的sql转储文件上传到数据库服务器中/var/lib/postgresql/backup下
docker cp dump.sql db:/ [复制在根目录下,因为尝试直接复制出错]
(3)新建一个空数据库
postgres@dbcbb2339148:/var/lib/postgresql/backup$ psql -U odoo -d $database_name *[database_name是已有的数据库名]
psql (9.5.6)
Type "help" for help.
postgres=# create database testtest[新建数据库名] with owner=odoo;
CREATE DATABASE
(4)恢复数据库,将日志输出为一个log文件
postgres@dbcbb2339148:/var/lib/postgresql/backup$ nohup psql --username=odoo --dbname=testtest -q -f dump.sql >>testtest.log &
当出现
[1]+ Done nohup psql --username=odoo --dbname=testtest -q -f dump.sql >> testtest.log
时说明后台回复已完成