[one-users] OpenNbula 3.0 migration: problem with onedb

Javier Fontan jfontan at opennebula.org
Tue Oct 18 13:50:25 PDT 2011


Can you tell me the packages needed to be able to compile/install the
failing gems? I already had rake and gcc for most of the gems but
probably some slipped through my fingers.

2011/10/18 Ruben Diez <rdiez at cesga.es>:
> We had used the /usr/share/one/install_gems script to install gems....
>
> Never the less seems that some of them need the corresponded devel c
> library, and fails to install
>
> We now had install the gems one by one, and these errors appears...
>
> Now the onedb command runs....
>
> Thanks a lot for your help....
>
>
>
>
> Ruben Diez escribió:
>>
>> Thank you for your help....
>>
>> After the modification you suggest, this is the output:
>>
>> oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v
>> undefined method `fetch' for nil:NilClass
>> Database schema does not look to be created by OpenNebula: table user_pool
>> is missing or empty.
>>
>> Seems to fail to find a function.... Perhaps any library is needed??
>> We think all the ruby gems are installed, as the documentation explain....
>>
>>
>>
>>
>> Carlos Martín Sánchez escribió:
>>>
>>> I don't see any other reasons why this could fail... Could you edit
>>> /usr/lib/one/ruby/onedb/onedb_backend.rb to output some more info?
>>>
>>> Just add the Exception message to the rescue clause in db_exists?
>>>
>>>    def db_exists?
>>>        begin
>>>            # User with ID 0 (oneadmin) always exists
>>>            @db.fetch("SELECT * FROM user_pool WHERE oid=0") { |row| }
>>>            return true
>>>        rescue Exception => e
>>>            puts e.message
>>>            return false
>>>        end
>>>    end
>>>
>>> Thank you
>>> --
>>> Carlos Martín, MSc
>>> Project Engineer
>>> OpenNebula - The Open Source Toolkit for Cloud Computing
>>> www.OpenNebula.org <http://www.opennebula.org/> | cmartin at opennebula.org
>>> <mailto:cmartin at opennebula.org>
>>>
>>>
>>> 2011/10/18 Ruben Diez <rdiez at cesga.es <mailto:rdiez at cesga.es>>
>>>
>>>    Yes: it is populated:
>>>
>>>    mysql> select * from user_pool where oid=0;
>>>
>>>  +-----+-----------+------------------------------------------+---------+
>>>    | oid | user_name | password                                 |
>>>    enabled |
>>>
>>>  +-----+-----------+------------------------------------------+---------+
>>>    |   0 | oneadmin  | 8944aada99d6d0122494dd0ac8129db653bc1f4a |
>>>  1 |
>>>
>>>  +-----+-----------+------------------------------------------+---------+
>>>    1 row in set (0.00 sec)
>>>
>>>    When you put the "-p" option followed by a blank space you are
>>>    prompted for the password... in this case "opennebula" is the
>>>    database name, not the password...
>>>
>>>    We can't make onedb backup in the old machine because the onedb
>>>    command don't exist in OpenNebula 2.1...
>>>
>>>    Any way, the onedb backup command seems to be a wrapper of the
>>>    mysqldump command....
>>>
>>>
>>>
>>>    Carlos Martín Sánchez escribió:
>>>
>>>        Hi,
>>>
>>>        Is the DB in the new machine correctly populated?
>>>        Can you manually perform a "select * from user_pool where
>>>        oid=0;" ?
>>>
>>>        I'm asking because the '-p' option of the mysql commands needs
>>>        the password right next to it, without any space; i.e.
>>>        '-popennebula' instead of '-p opennebula'
>>>
>>>
>>>        In case any other user is in a similar situation, you can use
>>>        the onedb command to move the DB to the new mysql server using
>>>        "onedb backup" and "onedb restore".
>>>
>>>        Regards.
>>>        --
>>>        Carlos Martín, MSc
>>>        Project Engineer
>>>        OpenNebula - The Open Source Toolkit for Cloud Computing
>>>        www.OpenNebula.org <http://www.OpenNebula.org>
>>>        <http://www.opennebula.org/> | cmartin at opennebula.org
>>>        <mailto:cmartin at opennebula.org> <mailto:cmartin at opennebula.org
>>>        <mailto:cmartin at opennebula.org>>
>>>
>>>
>>>
>>>        On Tue, Oct 18, 2011 at 12:35 PM, Ruben Diez <rdiez at cesga.es
>>>        <mailto:rdiez at cesga.es> <mailto:rdiez at cesga.es
>>>        <mailto:rdiez at cesga.es>>> wrote:
>>>
>>>           Hi:
>>>
>>>           We are attempt to migrate OpenNebula from 2.1.80 to 3.0....
>>>
>>>           But the new 3.0 OpenNebula was installed in a new machine.
>>>
>>>           For database migration, we have followed these steps:
>>>
>>>           1- In the old machine, we made a dump of the database:
>>>
>>>           mysqldump -h localhost -u oneadmin -p opennebula
>>>           >opennebula_2_database.mysq
>>>
>>>           2- In the new machine, we create the oneadmin user, an empty
>>>           opennebula database and grant privileges to user oneadmin on
>>>           database opennebula:
>>>
>>>           mysql> create user 'oneadmin'@'localhost' identified by
>>>        'XXXXX';
>>>           mysql> create database opennebula;
>>>           mysql> grant all privileges on opennebula.* to
>>>        'oneadmin'@'localhost';
>>>
>>>           3- Now, in the new machine, we restore the 2.1 version
>>>        database:
>>>
>>>           mysql -h localhost -u oneadmin -p opennebula
>>>           <opennebula_2_database.mysql
>>>
>>>           4- The configuration of the database is set in the
>>>        oned.conf file:
>>>
>>>           DB = [ backend = "mysql",
>>>                 server  = "localhost",
>>>                 port    = 0,
>>>                 user    = "oneadmin",
>>>                 passwd  = "XXXXX",
>>>                 db_name = "opennebula" ]
>>>
>>>           5- Now, we attempt the database conversion: but it fails:
>>>
>>>           #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v
>>>                          Database schema does not look to be
>>>        created by
>>>           OpenNebula: table user_pool is missing or empty.
>>>
>>>
>>>           We attempt to avoid oned.conf file, but also fails:
>>>
>>>           #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v  -u oneadmin -d
>>>           opennebula   MySQL Password:
>>>           MySQL option DBNAME is needed
>>>
>>>           #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v  -u root -d
>>>        opennebula
>>>           MySQL Password:
>>>           MySQL option DBNAME is needed
>>>
>>>           #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v -P 3306 -S
>>>           localhost -u oneadmin -d opennebula
>>>           MySQL Password:
>>>           MySQL option DBNAME is needed
>>>
>>>
>>>           Any ideas about why the database migration fails??
>>>
>>>           Regards....
>>>
>>>           _______________________________________________
>>>           Users mailing list
>>>           Users at lists.opennebula.org
>>>        <mailto:Users at lists.opennebula.org>
>>>        <mailto:Users at lists.opennebula.org
>>>        <mailto:Users at lists.opennebula.org>>
>>>           http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opennebula.org
>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>



-- 
Javier Fontán Muiños
Project Engineer
OpenNebula Toolkit | opennebula.org



More information about the Users mailing list