Menu

Oozie Server Backup

module.exports = header: 'Oozie Server Backup', handler: ({options}) ->
  {db_admin, oozie} = @config.ryba

Database

Note: to backup the oozie database in oozie, we must add the "hex-blob" option or we get an error while importing data. The mysqldump command does not escape all charactere and the xml stored inside the database create syntax issues. Here's an example:

mysqldump -uroot -ppassword --hex-blob oozie > /data/1/oozie.sql
  @call header: 'Backup Database', ->
    jdbc = db.jdbc oozie.site['oozie.service.JPAService.jdbc.url']
    engines_cmd =
      mysql: """
      mysqldump \
        -u#{oozie.db.username} -p#{oozie.db.password} \
        -h#{jdbc.addresses[0].host} -P#{jdbc.addresses[0].port} \
        --hex-blob #{jdbc.database}
      """
    throw Error 'Database engine not supported' unless engines_cmd[jdbc.engine]
    @tools.backup
      name: 'oozie-db'
      cmd: engines_cmd[jdbc.engine]

Logs

Archive the logs generated by Oozie Server.

  @tools.backup
    header: 'Backup Logs'
    name: 'oozie-logs'
    source: oozie.log_dir

Configuration

Backup the active Oozie configuration.

  @tools.backup
    header: 'Backup Configuration'
    name: 'oozie-conf'
    source: oozie.conf_dir

Dependencies

db = require '@nikitajs/core/lib/misc/db'