• 热门专题

odoo9.0的数据库备份总结

作者:  发布日期:2016-06-23 17:23:11
Tag标签:备份  数据库  
  • 备份策略:阶段性备份+特定事件备份。周期性自动备份+手动检查+自动通知。

    官方参考:https://www.odoo.com/forum/help-1/question/how-to-setup-a-regular-postgresql-database-backup-4728

    1、odoo备份数据库
    http://ip/web/data/manager
    选择backup,输入密码admin
    提示:Database backup error: Access denied
    处理:登陆odoo服务器,修改/etc/openerp_server.conf更改数据库维护的Master password
    ; 管理员主控密码(用于创建、还原和备份数据库等操作)
    admin_passwd = admin
    保存文件后运行:service odoo restart 重启动odoo配置生效
    重试备份数据库 http://ip/web/data/manager
    backup数据库,输入Mastrer password:admin
    提示: Database backup error: Command `pg_dump` not found.
    尝试:在odoo服务器centos上安装postgresql/pg_dump,在终端中:yum -install postgresql
    安装了pg_dump执行备份结果提示:Database backup error: Postgres subprocess ('/usr/bin/pg_dump', '--no-owner', '--file=/tmp/tmpGs8RYD/dump.sql', u'gsola') error 1
    2、odoo数据库duplicate操作:odoo数据库管理的duplicate数据库,是将所选数据库在同一个服务器上复制一份不同名称的克隆,用于测试或者联系等用途。
    http://ip/web/data/manager
    选择duplicate,输入密码admin,新数据库名称例如:lianxi,完成后会多出一个数据库“lianxi”共登陆或者操作室选择,表示duplicate成功。
    3、odoo数据库的restore操作
    http://ip/web/data/manager
    选择restore
    4、登陆freebsd+postgresql服务器,用pg_dump 备份,用pg_restore 恢复,这两个命令是postgresql系统自带的。备份前停止odoo服务器:
    # Stop OpenERP Server
    /etc/init.d/openerp-server stop
    # start OpenERP Server
    /etc/init.d/openerp-server start
    使用tar格式备份和恢复:
    pg_dump -U username -Ft TestDb1>TestDb1.tar
    没有testDb2则需要先创建:createdb testDb2,或者使用-C --create选项
    pg_restore -U username -c -d TestDb2 TestDb1.tar
    对odoo来说需要先记住原来的数据库名和拥有者的用户名,然后删除之,再建同名同拥有者的数据库,然后恢复。或者-c --clean使用此选项,恢复对象前先删除。(此选项会出现错误提示,但是经过先备份后删除几个项目然后恢复,证明删除项正确恢复了)
    5、在客户端pgAdminIII可以备份数据库
    6、客户端pgAdmin带的pg_dump 备份,psql恢复,程序在pgadmin的安装目录。
    备份:pg_dump -h 192.168.12.40 -U uhml gsola > e:gsola.bak
    指令解释:
    pg_dump 是备份数据库指令,
    192.168.12.40是数据库的ip地址(必须保证数据库允许外部访问的权限,如果是本地可以用localhost)
    uhml是数据库的用户名
    gsola是数据库名。
    > 意思是导出到e:gsola.bak文件里,如果没有写路径,单单写gsola.bak文件名,那么备份文件会保存在
    当前目录
    恢复:psql -h 192.168.12.40 -c -U uhml -d gsola < e:gsola.bak
    指令解释:
    psql是恢复数据库命令
    192.168.12.40 是数据库的ip地址(必须保证数据库允许外部访问的权限,如果是本地可以用localhost)
    uhml是数据库的用户名
    gsola是要恢复到哪个数据库
    < 的意思是把e:gsola.bak文件导入到指定的数据库里
    -c --clean 选项恢复对象前先删除。
    以上所有的是针对windows,在linux里依然有效。
    7、
    8、备份策略:多级异地异种备份
    保证系统的数据的备份存在3个以上不同位置不同介质的备份
    选择一个异地一个本地备份点,自动备份
    移动备份/磁带备份:定期备份
    9、pg_rman备份
    10、barman备份
    异常处理:
    1、删除有活动链接的数据库:
    如果数据库尚有活动连接,则drop数据库时会失败并有错误提示。
    postgres=# DROP DATABASE testdb;

    ERROR: database "testdb" is being accessed by other users
    DETAIL: There are 3 other sessions using the database.
    可以先用下面的语句把testdb的活动连接中止,然后再DROP数据库就可以了。
    postgres=# SELECT pg_terminate_backend(pid)
    postgres-# FROM pg_stat_activity
    postgres-# WHERE datname='testdb' AND pid<>pg_backend_pid();

    pg_terminate_backend
    ----------------------
    t
    t
    t
    (3 rows)
    pg_stat_activity是一个系统视图,表中的每一行代表一个服务进程的属性和状态。
    boolean pg_terminate_backend(pid int)是一个系统函数,用于终止一个后端服务进程。
    int pg_backend_pid()系统函数用于获取附加到当前会话的服务器进程的ID
    使用的数据库版本PostgreSQL 9.3
About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规